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?
Sie können den say
Befehl mit den anderen Stimmen von OS X verwenden, um verschiedene Sprachen zu erhalten. Verwenden Sie die Thomas
Stimme, um die französische Aussprache oder Yannick
für Deutsch zu erhalten.
In diesem Beispiel werde ich Thomas und Französisch verwenden, da ich dies kenne, aber Yannick
auch 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 say
Befehl in einem Automator-Dienst verpacken; was wir als nächstes tun werden.
So erstellen Sie den Automator-Dienst:
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
So nutzen Sie den Dienst:
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.
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.
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.
Ich habe dafür ein Tool geschrieben, gehe einfach zu:
Sie können die Systemstimme auch auf Französisch einstellen.
Gehen Sie zu Systemeinstellungen > Diktat & Sprache > Text zu Sprache und stellen Sie die Systemstimme Thomas
beispielsweise auf ein.
Dann:
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.
Starten Sie Automator.app
Erstellen Sie einen neuen Dienst
Fügen Sie eine Aktion „Text sprechen“ hinzu
Wählen Sie Samantha aus
Speichern Sie den Dienst als SpeakSamantha
Richten Sie eine Tastenkombination für den Dienst ein
Öffnen Sie die Systemeinstellungen
Wählen Sie Tastatur aus
Wählen Sie Verknüpfungen
Wählen Sie Dienste aus
Erstellen Sie eine Verknüpfung, Befehl + Alt + 1 für SpeakSamantha
Um den Dienst zu nutzen
Öffnen Sie einen Browser
Wählen Sie einige englische Texte aus
Drücken Sie Befehlstaste + Alt + 1
Die Rede stoppen (Methode 1)
Die Rede stoppen (Methode 2)
Klicken Sie in der Menüleiste auf das sich drehende Zahnradsymbol
Klicken Sie auf das ⨂
Zum Hinzufügen einer zweiten Stimme
Wiederholen Sie den obigen Vorgang und fügen Sie die folgenden geringfügigen Änderungen hinzu
Wählen Sie eine zweite Stimme aus, zum Beispiel Anna , eine deutsche Stimme
Speichern Sie den Dienst als SpeakAnna
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.
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 voices
CLI erstellt
Erstellen Sie stattdessen einen benutzerdefinierten Dienst mit einer Run Shell Script
Aktion , in der Sie die say
CLI verwenden , die die Implementierung eines Wiedergabeumschalters ermöglicht (Sprache stoppen, wenn sie aufgerufen wird, während noch vom vorherigen Aufruf gesprochen wird).
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.
voices
CLI basiert : 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.
Run Shell Script
Aktion 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
.
echo 'Guten Tag. Wie geht es?' | pbcopy && pbpaste | say -v Anna
kein Hang