Text-zu-Sprache-Verknüpfungen mit zwei Sprachen


13

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

Da ich auch möchte, dass Text to Speech Deutsch liest und OS Lion Voices für andere Sprachen anbietet, hätte ich gerne eine zweite Verknüpfung für Deutsch.

Weiß jemand, wo ich das einstellen kann? Oder ist die einzige Möglichkeit, die Systemstimme ständig zu ändern, bevor ein deutscher Text gelesen werden soll? (Und dann die Stimme für englische Texte auf Alex zurücksetzen)? Und was ist mit französischem Text?

Welche Optionen gibt es für dieses allgemeine Problem?


2
Haben Sie die bereits in OS X integrierte Funktionalität ausprobiert?
Nohillside

Antworten:


18

Sagen Sie als ...

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

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

Versuchen Sie den folgenden Befehl unter Anwendungen> Dienstprogramme> Terminal.app :

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

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

Automator Service

So erstellen Sie den Automator-Service:

  1. Starten Sie Automator.app
  2. Erstellen Sie eine neue Schnellaktion (zuvor Service )
  3. Fügen Sie eine AppleScript- Aktion 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 In Französisch sprechen

Automator sagen Service

So nutzen Sie den Dienst:

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

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

Mit diesem Automator-Ansatz können Sie die Standardstimme Ihres Computers auf Ihre bevorzugte Sprache einstellen. Während der ausgewählte Text mit der alternativen Stimme gelesen werden kann.

Verfügbare Stimmen und Sprachen

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

say -v ?

Die verfügbaren Stimmen können zwischen den Versionen von macOS wechseln. 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.

2
Aufgrund meiner eigenen (sehr subjektiven) Bewertung 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!
Entspannt

2
gute Antwort! Ich denke, es ist auch leicht auf andere Sprachen verallgemeinerbar. Wie würde in diesem Fall der Name der Erzähler lauten? :-)
Ameise

Viele andere Stimmen und Sprachen sind verfügbar. Siehe den Abschnitt Andere Sprachen .
Graham Miln

1
Ich habe die Antwort aktualisiert. Ich glaube, Service heißt jetzt in MacOS 10.14 Quick Action .
Graham Miln

Gibt es eine Möglichkeit, Siris Stimme auszuwählen?
SuperSpy

6

Eine Art alter Beitrag und vielleicht haben Sie bereits eine Lösung gefunden. Eine Möglichkeit, dies zu vereinfachen, ist Automator.

Öffnen Sie Automator, wählen Sie Service, Service empfängt ausgewählten Text, ziehen Sie die Aktion "Speak Text", um einen Workflow zu erstellen, und wählen Sie Voice (zum Beispiel: Ryan Speaking) Save

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 im Menü "Dienste" zwei oder mehr Stimmen haben, können Sie unter "Systemeinstellungen"> "Tastatur"> "Tastaturkürzel"> "Anwendungsverknüpfungen" eine neue Verknüpfung für jede Stimme erstellen.

Bisher funktioniert dies auf meinem Computer (OS 10.6.8) folgendermaßen: Standard-Systemstimme: Ryan (Infovox) -Verknüpfung, die in der Spracheinstellung für Control + S ausgewählt wurde. Dies startet und stoppt englischen Text.

Die deutsche Stimme habe ich Control + Y zugewiesen (Yannick-Stimme von Lion OS). Strg + Y startet die deutsche Stimme für den ausgewählten deutschen Text; Dies kann durch zweimaliges Klicken auf die Hauptstart- / Stoppverknüpfung gestoppt werden, hier Strg + S + S. Der Grund für zweimal ist, dass durch einmaliges Drücken die englische Stimme über die deutsche Stimme gestartet wird. Das ist das Beste, was ich bisher erreichen konnte. Stellen Sie sicher, dass die Verknüpfungen nicht mit anderen Verknüpfungen in Konflikt stehen. Sie werden feststellen, dass Sie mit der zusätzlichen Verknüpfung mehrere Voice-Threads starten können, die über einander sprechen, sowie die Standard-Systemstimme, die die Prozessoraktivität steigert. Dies ist jedoch kein Problem, wenn Sie daran denken, das Sprechen durch zweimaliges Ausführen der Verknüpfung für das zu beenden Standardstimme.

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

Bearbeiten 2: Ich habe festgestellt, dass der Automator Runner-Prozess beim Aktivieren einer sekundären Text-zu-Sprache-Stimme über den Automator-Dienst die Prozessoraktivität auf über 100% erhöht, wobei die Lüfter schneller werden. Ich bin mir nicht sicher, ob es eine Lösung dafür gibt.


1
Können Sie einen Screenshot Ihres Automator-Workflows hinzufügen? Mit Automator ist dies normalerweise leichter zu verstehen als eine
Textbeschreibung

2

Sie können die Systemstimme auch auf eine französische einstellen.

Gehen Sie zu Systemeinstellungen> Diktat & Sprache> Text zu Sprache und stellen Sie beispielsweise die Systemstimme ein Thomas.

Dann:

  1. Wählen Sie einen beliebigen Text in einer beliebigen Anwendung aus
  2. Control+ Klicken Sie hier, 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 Französisch zu sprechen.



2
  1. Starten Sie Automator.app

  2. Erstellen Sie einen neuen Service

  3. Fügen Sie eine Speak Text- Aktion hinzu

  4. Wählen Sie Samantha

  5. Speichern Sie den Dienst als SpeakSamantha

Fügen Sie eine Speak Text-Aktion hinzu

Richten Sie eine Tastenkombination für den Dienst ein

  1. Öffnen Sie die Systemeinstellungen

  2. Wählen Sie Tastatur

  3. Wählen Sie Verknüpfungen

  4. Wählen Sie Dienste

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

Erstellen Sie eine Verknüpfung für SpeakSamantha

So nutzen Sie den Dienst

  1. Öffnen Sie einen Browser

  2. Wählen Sie einige englische Texte aus

  3. Drücken Sie Befehlstaste + Alt + 1

Um die Rede zu stoppen (Methode 1)

  1. Drücken Sie Alt + ESC

Um die Rede zu 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

Eine zweite Stimme hinzufügen

  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, Befehlstaste + Alt + 2 für SpeakAnna

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

Geben Sie hier die Bildbeschreibung ein


1

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

Sie können die Wiedergabe nicht einfach so stoppen, wie Sie es mit dem integrierten TTS-Dienst können, indem Sie einfach die Tastenkombination erneut 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 , mit der Sie einen Wiedergabeschalter implementieren können (Anhalten der Sprache, wenn sie aufgerufen wird, während Sie noch vom vorherigen Aufruf sprechen).

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

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

Einfache Implementierung eines Dienstes mit Wiedergabeschalter :

Wie bereits erwähnt, werden die für die ausgewählte Stimme konfigurierten benutzerdefinierten Sprechraten nicht berücksichtigt.

  • Erstellen Sie einen neuen Service in Automator
  • Behalten Sie die Standardeinstellungen bei (der Dienst erhält 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"

0

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

In 10.8 und 10.7 gibt es einen Fehler, 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 auszuführen pbpaste | say -v kyoko.


1
Gibt es eine Möglichkeit, Siris Stimme in Ihren Werkzeugen auszuwählen? Vielen Dank, dass Sie das Standard-Sprachdienstprogramm für Switch erstellt haben!
SuperSpy

Diese Pbpaste-Technik ist ausgezeichnet! Vielen Dank! echo 'Guten Tag. Wie geht es?' | pbcopy && pbpaste | say -v Anna
Vladimir Vukanac
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.