Text-to-Speech-Verknüpfungen mit zwei Sprachen

Ich verwende häufig die Text-to-Speech-Funktion von Mac. Unter Einstellungen > Sprache > Text zu Sprache habe ich auch einen "Schlüssel" für den Schnellzugriff eingestellt.

Da ich auch möchte, dass Text to Speech Deutsch vorliest und OS Lion Voices für andere Sprachen anbietet, hätte ich gerne einen zweiten Shortcut für Deutsch.

Weiß jemand wo ich das einstellen kann? Oder ist die einzige Möglichkeit, die Systemstimme ständig zu ändern, bevor ich einen deutschen Text vorlesen lassen möchte? (Und dann die Stimme für englische Texte auf Alex zurücksetzen)? Und was ist mit französischem Text?

Welche Möglichkeiten gibt es für dieses allgemeine Problem?

Haben Sie die bereits in OS X integrierten Funktionen ausprobiert?

Antworten (7)

Sprich als …

Sie können den sayBefehl mit den anderen Stimmen von OS X verwenden, um verschiedene Sprachen zu erhalten. Verwenden Sie die ThomasStimme, um die französische Aussprache oder Yannickfür Deutsch zu erhalten.

In diesem Beispiel werde ich Thomas und Französisch verwenden, da ich dies kenne, aber Yannickauch für deutschen Text funktionieren sollte.

Versuchen Sie den folgenden Befehl in Applications > Utilities > Terminal.app :

say -v Thomas  "Bonjour. Je m'appelle Thomas."

Wenn dies akzeptabel ist, können Sie den sayBefehl in einem Automator-Dienst verpacken; was wir als nächstes tun werden.

Automator-Dienst

So erstellen Sie den Automator-Dienst:

  1. Starten Sie Automator.app
  2. Erstellen Sie eine neue Schnellaktion (früher Service )
  3. Fügen Sie eine Aktion „AppleScript ausführen“ hinzu
  4. Kopieren Sie das folgende AppleScript und fügen Sie es ein:

    on run {input, parameters}
        do shell script "say -v Thomas " & (quoted form of (input as string))
        return input
    end run
    
  5. Speichern Sie den Dienst als Französisch sprechen

Automator sagt Service

So nutzen Sie den Dienst:

  1. Wählen Sie Text in TextEdit oder Safari aus
  2. Control+ Klicken Sie, um das Kontextmenü anzuzeigen
  3. Wählen Sie Dienste > Französisch sprechen

Et voilà! Andere Sprachen und Stimmen sind verfügbar.

Dieser Automator-Ansatz ermöglicht es Ihnen, die Standardstimme Ihres Computers auf Ihre bevorzugte Sprache eingestellt zu lassen. Während ausgewählter Text in der alternativen Stimme vorgelesen werden kann.

Verfügbare Stimmen und Sprachen

Sie können die verfügbaren Stimmen und ihre zugehörigen Sprachen mit dem folgenden Befehl auflisten:

say -v ?

Die verfügbaren Stimmen können sich zwischen macOS-Versionen ändern. Unter macOS 10.13 gibt der Befehl Folgendes zurück:

Alex                en_US    # Most people recognize me by my voice.
Alice               it_IT    # Salve, mi chiamo Alice e sono una voce italiana.
Alva                sv_SE    # Hej, jag heter Alva. Jag är en svensk röst.
Amelie              fr_CA    # Bonjour, je m’appelle Amelie. Je suis une voix canadienne.
Anna                de_DE    # Hallo, ich heiße Anna und ich bin eine deutsche Stimme.
Carmit              he_IL    # שלום. קוראים לי כרמית, ואני קול בשפה העברית.
Damayanti           id_ID    # Halo, nama saya Damayanti. Saya berbahasa Indonesia.
Daniel              en_GB    # Hello, my name is Daniel. I am a British-English voice.
Diego               es_AR    # Hola, me llamo Diego y soy una voz española.
Ellen               nl_BE    # Hallo, mijn naam is Ellen. Ik ben een Belgische stem.
Fiona               en-scotland # Hello, my name is Fiona. I am a Scottish-English voice.
Fred                en_US    # I sure like being inside this fancy computer
Ioana               ro_RO    # Bună, mă cheamă Ioana . Sunt o voce românească.
Joana               pt_PT    # Olá, chamo-me Joana e dou voz ao português falado em Portugal.
Jorge               es_ES    # Hola, me llamo Jorge y soy una voz española.
Juan                es_MX    # Hola, me llamo Juan y soy una voz mexicana.
Kanya               th_TH    # สวัสดีค่ะ ดิฉันชื่อKanya
Karen               en_AU    # Hello, my name is Karen. I am an Australian-English voice.
Kyoko               ja_JP    # こんにちは、私の名前はKyokoです。日本語の音声をお届けします。
Laura               sk_SK    # Ahoj. Volám sa Laura . Som hlas v slovenskom jazyku.
Lekha               hi_IN    # नमस्कार, मेरा नाम लेखा है. मैं हिन्दी में बोलने वाली आवाज़ हूँ.
Luca                it_IT    # Salve, mi chiamo Luca e sono una voce italiana.
Luciana             pt_BR    # Olá, o meu nome é Luciana e a minha voz corresponde ao português que é falado no Brasil
Maged               ar_SA    # مرحبًا اسمي Maged. أنا عربي من السعودية.
Mariska             hu_HU    # Üdvözlöm! Mariska vagyok. Én vagyok a magyar hang.
Mei-Jia             zh_TW    # 您好,我叫美佳。我說國語。
Melina              el_GR    # Γεια σας, ονομάζομαι Melina. Είμαι μια ελληνική φωνή.
Milena              ru_RU    # Здравствуйте, меня зовут Milena. Я – русский голос системы.
Moira               en_IE    # Hello, my name is Moira. I am an Irish-English voice.
Monica              es_ES    # Hola, me llamo Monica y soy una voz española.
Nora                nb_NO    # Hei, jeg heter Nora. Jeg er en norsk stemme.
Paulina             es_MX    # Hola, me llamo Paulina y soy una voz mexicana.
Samantha            en_US    # Hello, my name is Samantha. I am an American-English voice.
Sara                da_DK    # Hej, jeg hedder Sara. Jeg er en dansk stemme.
Satu                fi_FI    # Hei, minun nimeni on Satu. Olen suomalainen ääni.
Serena              en_GB    # Hello, my name is Serena. I am a British-English voice.
Sin-ji              zh_HK    # 您好,我叫 Sin-ji。我講廣東話。
Tessa               en_ZA    # Hello, my name is Tessa. I am a South African-English voice.
Thomas              fr_FR    # Bonjour, je m’appelle Thomas. Je suis une voix française.
Ting-Ting           zh_CN    # 您好,我叫Ting-Ting。我讲中文普通话。
Tom                 en_US    # Hello, my name is Tom. I am an American-English voice.
Veena               en_IN    # Hello, my name is Veena. I am an Indian-English voice.
Victoria            en_US    # Isn't it nice to have a computer that will talk to you?
Xander              nl_NL    # Hallo, mijn naam is Xander. Ik ben een Nederlandse stem.
Yelda               tr_TR    # Merhaba, benim adım Yelda. Ben Türkçe bir sesim.
Yuna                ko_KR    # 안녕하세요. 제 이름은 Yuna입니다. 저는 한국어 음성입니다.
Yuri                ru_RU    # Здравствуйте, меня зовут Yuri. Я – русский голос системы.
Zosia               pl_PL    # Witaj. Mam na imię Zosia, jestem głosem kobiecym dla języka polskiego.
Zuzana              cs_CZ    # Dobrý den, jmenuji se Zuzana. Jsem český hlas.
Aufgrund meiner eigenen (sehr subjektiven) Einschätzung als französischer Muttersprachler würde ich sagen, dass die Stimme sehr gut ist. Ich bin gerade dieser Seite beigetreten, um Ihre Antwort zu verbessern!
gute Antwort! Ich denke, es ist auch leicht auf andere Sprachen zu verallgemeinern. Wie würden in diesem Fall die Erzähler heißen? :-)
Viele andere Stimmen und Sprachen sind verfügbar; siehe Abschnitt Andere Sprachen .
Ich habe die Antwort aktualisiert; Ich glaube, dass Service in macOS 10.14 jetzt Quick Action heißt.
Gibt es eine Möglichkeit, Siris Stimme auszuwählen?
@SuperSpy nein, Siris Stimme ist nicht für den allgemeinen Gebrauch verfügbar.

Ziemlich alter Beitrag und vielleicht hast du schon eine Lösung gefunden. Eine Möglichkeit, dies zu vereinfachen, bietet Automator.

Öffnen Sie Automator, wählen Sie Service, Service empfängt ausgewählten Text, ziehen Sie die Aktion "Text sprechen", um den Worklow zu erstellen, wählen Sie die Stimme (z. B.: Ryan Speaking) und speichern Sie

Wiederholen Sie mit verschiedenen Stimmen.

(Die Diensteliste kann mit der Service Scrubber-Anwendung und teilweise unter Systemeinstellungen > Tastatur > Tastaturkürzel > Dienste bearbeitet/bereinigt werden)

Bearbeiten: Nachdem Sie nun zwei oder mehr Stimmen im Dienstemenü haben, können Sie zu: Systemeinstellungen > Tastatur > Tastaturkürzel > Anwendungskürzel gehen und für jede Stimme ein neues Kürzel erstellen.

Bisher funktioniert es auf meinem Computer (OS 10.6.8) so: Standard-Systemstimme: Ryan (Infovox) Shortcut Selected in Speech Pref to Control+S. Dies startet und stoppt englischen Text.

Der deutschen Stimme habe ich Strg+Y (Yannick-Stimme von Lion OS) zugewiesen. Strg+Y startet deutsche Stimme für deutschen ausgewählten Text; die durch zweimaliges Klicken auf die Haupt-Start/Stopp-Verknüpfung gestoppt werden kann, hier Strg+S+S. Der Grund für das zweimalige Drücken ist, dass durch einmaliges Drücken die englische Stimme über der deutschen Stimme gestartet wird. Das ist das Beste, was mir bisher eingefallen ist. Stellen Sie sicher, dass die Verknüpfungen nicht mit anderen Verknüpfungen in Konflikt stehen. Sie werden feststellen, dass Sie mit dem zusätzlichen Shortcut mehrere Voice-Threads starten können, die übereinander sprechen, plus die Standard-Systemstimme, was die Prozessoraktivität erhöht, aber kein Problem, wenn Sie daran denken, das Sprechen durch doppeltes Ausführen des Shortcuts zu stoppen Standardstimme.

Ich bin mir nicht sicher, ob dies systemweit funktioniert, funktioniert aber in meinen Browsern, Mail und der von mir verwendeten BookReader-App.

Bearbeiten 2: Mir ist aufgefallen, dass beim Aktivieren einer sekundären Text-zu-Sprache-Stimme über den Automator-Dienst der Automator-Runner-Prozess die Prozessoraktivität auf über 100 % erhöht, wobei die Lüfter schneller werden. Keine Ahnung, ob es dafür eine Lösung gibt.

Können Sie einen Screenshot Ihres Automator-Workflows hinzufügen? Mit Automator ist dies normalerweise einfacher zu verstehen als eine textuelle Beschreibung

Ich habe dafür ein Tool geschrieben, gehe einfach zu:

https://github.com/Fredmf/polyglott

Hallo, willkommen bei Ask Different. Bitte erklären Sie ein wenig, was Ihr Tool tut und wie. Vielen Dank!
Vielen Dank für die Erstellung. Ich fand dies das hilfreichste Tool auf dieser Seite.

Sie können die Systemstimme auch auf Französisch einstellen.

Gehen Sie zu Systemeinstellungen > Diktat & Sprache > Text zu Sprache und stellen Sie die Systemstimme Thomasbeispielsweise auf ein.

Dann:

  1. Wählen Sie einen beliebigen Text in einer beliebigen Anwendung aus
  2. Control+Klicken Sie, um das Kontextmenü anzuzeigen
  3. Wählen Sie „Sprache“ > „Sprechen“.

Es gibt auch eine Option zum Festlegen einer Verknüpfung, sodass Sie einfach einen beliebigen Text auswählen und die Verknüpfung drücken können, um mit dem Sprechen auf Französisch zu beginnen.

  1. Starten Sie Automator.app

  2. Erstellen Sie einen neuen Dienst

  3. Fügen Sie eine Aktion „Text sprechen“ hinzu

  4. Wählen Sie Samantha aus

  5. Speichern Sie den Dienst als SpeakSamantha

Fügen Sie eine Aktion „Text sprechen“ hinzu

Richten Sie eine Tastenkombination für den Dienst ein

  1. Öffnen Sie die Systemeinstellungen

  2. Wählen Sie Tastatur aus

  3. Wählen Sie Verknüpfungen

  4. Wählen Sie Dienste aus

  5. Erstellen Sie eine Verknüpfung, Befehl + Alt + 1 für SpeakSamantha

Erstellen Sie eine Verknüpfung für SpeakSamantha

Um den Dienst zu nutzen

  1. Öffnen Sie einen Browser

  2. Wählen Sie einige englische Texte aus

  3. Drücken Sie Befehlstaste + Alt + 1

Die Rede stoppen (Methode 1)

  1. Drücken Sie Alt + ESC

Die Rede stoppen (Methode 2)

  1. Klicken Sie in der Menüleiste auf das sich drehende Zahnradsymbol

  2. Klicken Sie auf das

Klicken Sie in der Menüleiste auf das sich drehende Zahnradsymbol

Zum Hinzufügen einer zweiten Stimme

  1. Wiederholen Sie den obigen Vorgang und fügen Sie die folgenden geringfügigen Änderungen hinzu

  2. Wählen Sie eine zweite Stimme aus, zum Beispiel Anna , eine deutsche Stimme

  3. Speichern Sie den Dienst als SpeakAnna

  4. Erstellen Sie eine Tastenkombination, Befehl + Alt + 2 für SpeakAnna

Ein bekanntes kleines Problem: Drücken Sie nicht erneut eine Tastenkombination, bevor Sie die Rede beendet haben oder die Rede endet. Andernfalls erhalten Sie eine Fehlermeldung wie die folgende.

Geben Sie hier die Bildbeschreibung ein

Die Verwendung eines benutzerdefinierten Dienstes mit der Standardaktion Speak Text, um ausgewählten Text mit einer bestimmten alternativen Stimme zu sprechen, hat einen großen Nachteil, wie in der Antwort von Mikofox beschrieben :

Sie können die Wiedergabe nicht so einfach stoppen , wie Sie es mit dem integrierten TTS-Dienst können, indem Sie einfach erneut auf die Tastenkombination drücken.

Es gibt zwei Lösungen :

Offenlegung: Ich habe die vorgefertigten Dienste und die voicesCLI erstellt

  • Erstellen Sie stattdessen einen benutzerdefinierten Dienst mit einer Run Shell ScriptAktion , in der Sie die sayCLI verwenden , die die Implementierung eines Wiedergabeumschalters ermöglicht (Sprache stoppen, wenn sie aufgerufen wird, während noch vom vorherigen Aufruf gesprochen wird).

    • Unten finden Sie eine einfache Implementierung, die funktioniert, aber keine benutzerdefinierten Sprechraten (Wörter pro Minute) berücksichtigt, die Sie möglicherweise für einzelne Stimmen über die Systemeinstellungen konfiguriert haben.
    • Eine Lösung, die die benutzerdefinierten Sprechgebühren berücksichtigt, erfordert einiges mehr Arbeit; Einen vorgefertigten Service finden Sie hier ; oder nutzen Sie den direkten Download-Link (bleibt aktuell).
  • Alternativ können Sie einen Dienst erstellen, der die Standardstimme bei Bedarf umschaltet , wodurch Sie dann den integrierten TTS-Dienst mit seiner Funktion zum Umschalten der Wiedergabe verwenden können.

    • Während OSX keine programmgesteuerte Möglichkeit bietet, die Standardstimme zu ändern, können Sie einen vorgefertigten Dienst verwenden , der auf der voicesCLI basiert :
      Folgen Sie den Anweisungen hier oder verwenden Sie den direkten Download-Link (bleibt aktuell).

Einfache Implementierung eines Dienstes mit Playback Toggle :

Wie bereits erwähnt, werden benutzerdefinierte Sprechraten, die für die ausgewählte Stimme konfiguriert wurden, nicht berücksichtigt.

  • Erstellen Sie einen neuen Dienst in Automator
  • Belassen Sie die Standardeinstellungen (Dienst empfängt Text in jeder Anwendung)
  • Fügen Sie eine Run Shell ScriptAktion hinzu und fügen Sie Folgendes ein:
#  ------- BEGIN: CUSTOMIZE
 # Specify the voice to speak with.
voice=Vicki
#  ------- END: CUSTOMIZE

  # If `say` is running, we assume that a previous invocation is still speaking  
  # and speaking should be *stopped*.
  # Caveat: This will only work if either the original app from which speaking was initiated is still
  #         frontmost with text selected, or, coincidentally, a now different frontmost app also has
  #         text selected. Otherwise, this service won't be active.
pgrep -x say && { pkill -x say; exit; }

  # Read the text to speak into a variable.
txt=$(</dev/stdin)

  # Speak, using the standard `say` CLI.
say -v "$voice" "$txt"

Wie Mikofox erwähnt hat, können Sie einen Automator-Dienst zum Sprechen von Text erstellen:

Es gibt einen Fehler in 10.8 und 10.7, bei dem die Verknüpfungen für Automator-Dienste nicht immer funktionieren, bis Sie den Mauszeiger über das Dienstemenü in der Menüleiste bewegen.
WorkflowServiceRunner kann beim Sprechen von Text auch über 100 % CPU verwenden.

Ich habe FastScripts verwendet, um diesem Skript eine Verknüpfung zuzuweisen:

try -- if the clipboard is empty, trying to get it results in an error
    set old to the clipboard as record
end try
try
    tell application "System Events" to keystroke "c" using command down
    delay 0.05
    set input to the clipboard
    try
        set the clipboard to old
    end try
    say input using "Kyoko"
end try

Eine andere Möglichkeit besteht darin, einfach so etwas wie pbpaste | say -v kyoko.

Gibt es eine Möglichkeit, Siris Stimme in Ihren Tools auszuwählen? Vielen Dank, dass Sie das Standard-Voice-Dienstprogramm für Switch erstellt haben!
Diese Pbpaste-Technik ist ausgezeichnet! Vielen Dank!echo 'Guten Tag. Wie geht es?' | pbcopy && pbpaste | say -v Anna