Mac OS X Schnell ändern, Stimmen für Text-to-Speech
Ich Liebe die text-to-Speech-Funktion von Mac OS X. Da bin ich kein englischer Muttersprachler bin ich sehr glücklich über all die zusätzliche Sprachen Hinzugefügt, da Löwen kam. Ich verwende jedoch sowohl Englisch als auch meine Muttersprache (Deutsch). Das Ändern der Stimmen ist ein bisschen schmerzhaft. Es erfordert nur zu viele Schritte, um bequem zu sein.
Gibt es eine Möglichkeit, dies einfach zu machen? Ich suchte nach Verknüpfungen, vielleicht ein Dropdown-Menü irgendwo in der rechten Ecke, alles wäre fein.
Da meine Suche nicht erfolgreich war, hoffe ich, hier einige Ratschläge zum SuperUser zu finden. Vielen Dank!
Cu Römisch -
4 answers
Ich habe FastScripts verwendet, um diesem Skript eine Verknüpfung zuzuweisen:
try
set old to the clipboard as record
end try
try
tell application "System Events" to keystroke "c" using command down
delay 0.05
say (the clipboard) using "Kyoko"
end try
try
set the clipboard to old
end try
Sie können auch einen Dienst in Automator erstellen:
Es gibt einen Fehler in 10.7 und 10.8, bei dem die Verknüpfungen für Automator-Dienste nicht immer funktionieren, bis Sie den Mauszeiger über das Menü Dienste in der Menüleiste bewegen. WorkflowServiceRunner kann auch über 100% CPU verwenden, während Sie Text sprechen.
Eine andere Möglichkeit wäre, UI-Skripte zu verwenden, um zwischen zwei Stimmen zu wechseln:
tell application "System Preferences"
reveal anchor "TTS" of pane "com.apple.preference.speech"
end tell
tell application "System Events" to tell process "System Preferences"
tell pop up button 1 of tab group 1 of window 1
click
delay 0.1
if value is "Alex" then
click menu item "Victoria" of menu 1
else
click menu item "Alex" of menu 1
end if
end tell
end tell
quit application "System Preferences"
Ändern der SelectedVoiceID Schlüssel in com.Apfel.Rede.Stimme.prefs.plist funktioniert auch, aber ich weiß nicht, wie ich die Änderungen sofort anwenden soll.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2013-04-12 11:24:28
Vielen Dank Lauryi.
Habe ich extended UI scripting-Ansatz, um richtig zu arbeiten mit deutschen und englischen Stimmen. Das Problem ist, wenn Ihre Systemsprache nicht Englisch ist, werden alle Nicht-Systemsprachen ausgeblendet (falls derzeit nicht ausgewählt). Sie müssen wählen: mehr Stimmen anzeigen.. zuerst auf die gewünschte Sprache zu bekommen. Meinem Code fehlt ein bisschen Eleganz, aber er funktioniert. Hier ist es (aktualisiert):
tell application "System Preferences"
reveal anchor "TTS" of pane "com.apple.preference.speech"
end tell
set tom to 0
tell application "System Events" to tell process "System Preferences"
tell pop up button 1 of tab group 1 of window 1
click
delay 0.2 -- without this the value was sometimes "Loading Voices…"
if value is "Tom" then
click menu item "Anna" of menu 1
else
click menu item "Mehr Stimmen anzeigen" of menu 1 -- show up all available voice
set tom to 1
end if
end tell
end tell
if tom is 1 then
delay 0.5
tell application "System Events" to tell process "System Preferences"
tell pop up button 1 of tab group 1 of window 1
click
delay 0.2 -- without this the value was sometimes "Loading Voices…"
click menu item "Tom" of menu 1
end tell
end tell
end if
quit application "System Preferences"
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2012-10-05 08:27:42
Direkte Änderungen an ~/Library/Preferences/com.apple.speech.voice.prefs.plist
sind nicht wirklich erforderlich, wenn Sie das Bash-Skript erhalten, das wirklich alle Befehlszeilenfunktionen hinzufügt, die Sie benötigen.
Ein Apple-Skript, um die Standardstimme mithilfe von Stimmen in Alex zu ändern, würde einfach so aussehen:
on run
do shell script "voices -d Alex"
end run
Ich bevorzuge das Terminal, und anstatt das Eindringen der polyglotten Menüleiste zu testen, habe ich dieses (zugegebenermaßen einfach-dumme) Shell-Skript (das Stimmen verwendet) für meine Sprachwechselanforderungen erstellt. Mit ihm Alles, was ich tun, um zu ändern die Standardsprache ist, in das Terminal zu springen, um speak swedish
oder speak french
einzugeben. Das passt hervorragend in meinen Workflow. Ich hoffe, Sie finden eine Lösung, die zu Ihrer passt.
# Choose a voice in one of some selected languages
# Use "voices" from https://github.com/mklement0/voices#manual-installation
if [[ $1 = "" ]]
then
echo "ERROR. No language specified. Type a language as in 'speak hebrew'"
fi
if [[ $1 = "swedish" || $1 = "Swedish" ]]
then
voices -d Klara
fi
if [[ $1 = "english" || $1 = "English" ]]
then
voices -d Daniel
fi
if [[ $1 = "american" || $1 = "American" ]]
then
voices -d Alex
fi
if [[ $1 = "french" || $1 = "French" ]]
then
voices -d Aurelie
fi
if [[ $1 = "spanish" || $1 = "Spanish" ]]
then
voices -d Jorge
fi
Ich speichere es in meinen Skripten als " speak.befehl", chmod es +x, und fügen Sie den entsprechenden Alias zu meinem .bash_profile, um es durch Eingabe von speak
hervorzurufen.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2017-04-24 20:20:40
Dafür habe ich ein Statusleistenwerkzeug geschrieben:
Https://github.com/Fredmf/polyglott
Apperantly funktioniert es immer noch in Sierra
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2016-09-27 12:35:37