web-dev-qa-db-ja.com

Mac OSX-テキスト読み上げの音声をすばやく変更する

私はMacOS Xのテキスト読み上げ機能が大好きです。私は英語を母国語としないので、Lionが登場してから追加されたすべての言語にとても満足しています。しかし、私は母国語(ドイツ語)だけでなく英語も使用しています。声を変えるのは少し苦痛です。快適にするには、必要な手順が多すぎます。

これを簡単にする方法はありますか?私はショートカットを探していました。おそらく、右隅のどこかにあるドロップダウンメニューで、何でも問題ありません。

検索が成功しなかったので、ここSuperUserでアドバイスを見つけたいと思います。どうもありがとう!

cuローマン

10
user83946

FastScriptsを使用して、このスクリプトにショートカットを割り当てました。

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

Automatorでサービスを作成することもできます。

10.7と10.8にはバグがあり、メニューバーからサービスメニューにカーソルを合わせるまで、Automatorサービスのショートカットが常に機能するとは限りません。 WorkflowServiceRunnerは、テキストを話しているときに100%を超えるCPUを使用することもできます。

もう1つのオプションは、UIスクリプトを使用して2つの音声を切り替えることです。

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"

Com.Apple.speech.voice.prefs.plistのSelectedVoiceIDキーの変更も機能しますが、変更をすぐに適用する方法がわかりません。

9
Lri

ラウリーありがとうございます。

ドイツ語と英語の音声で適切に機能するように、UIスクリプトのアプローチを拡張しました。問題は、システム言語が英語でない場合、システム以外のすべての言語が非表示になることです(現在選択されていない場合)。選択する必要があります:希望の言語に到達するために、最初にもっと多くの声を表示します。私のコードは少し優雅さが欠けていますが、機能します。ここにあります(更新されました):

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
kantorde

bash-script Voices を取得した場合、~/Library/Preferences/com.Apple.speech.voice.prefs.plistを直接変更する必要はありません。これにより、必要なすべてのコマンドライン機能が実際に追加されます。

Apple Voicesを使用して標準の音声をAlexに変更するスクリプトは、次のようになります。

on run
    do Shell script "voices -d Alex"
end run

私は端末を好みます。多言語メニューバーの侵入をテストする代わりに、言語切り替えのニーズに合わせて、この(明らかに単純で愚かな)シェルスクリプト(音声を使用)を作成しました。これで、デフォルトの言語を変更するために私がすることは、ターミナルにポップしてspeak swedishまたはspeak frenchと入力することだけです。これは私のワークフローに非常によく合います。私はあなたがあなたに合った解決策を見つけることができることを願っています。

# 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

スクリプトに「speak.command」として保存し、chmod + xし、適切なエイリアスを.bash_profileに追加して、speakと入力して呼び出します。

0