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 -

Author: Lri, 2012-08-30

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.

 9
Author: Lri,
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"
 3
Author: kantorde,
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.

 0
Author: Josef Lilljegren,
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

 -2
Author: Fred Flügge,
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