2つの言語を使用したテキスト読み上げのショートカット


13

私はMacのText to Speech機能をよく使います。[設定]> [音声]> [音声合成]の下で、すばやくアクセスできるように「キー」も設定しました。

また、Text to Speechでドイツ語を読み、OS Lionが他の言語のVoicesを提供するようにしたいので、ドイツ語の2番目のショートカットが欲しいです。

誰も私がこれを設定できる場所を知っていますか?または、ドイツ語のテキストを読む前にシステムボイスを絶えず変更する唯一の方法はありますか?(そして、英語のテキストのために音声をアレックスにリセットします)?そして、フランス語のテキストはどうですか?

この一般的な問題にはどのようなオプションがありますか?


2
OS Xに既に組み込まれている機能を試しましたか?
nohillside

回答:


18

と言う…

このsayコマンドをOS Xの他の音声で使用して、異なる言語を取得できます。Thomasフランス語の発音を取得するために、またはYannickドイツ語の音声を使用します。

この例では、トーマスとフランス語を使用しYannickます。これは私が知っていることですが、ドイツ語のテキストでも同様に機能するはずです。

アプリケーション>ユーティリティ> Terminal.appで次のコマンドを試してください。

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

これが許容できる場合はsay、Automatorサービスでコマンドをラップできます。次にそれを行います。

Automatorサービス

Automatorサービスを作成するには:

  1. Automator.appを起動します
  2. 新しいクイックアクション(以前はService)を作成する
  3. AppleScript実行アクションを追加する
  4. 以下のAppleScriptをコピーして貼り付けます。

    on run {input, parameters}
        do shell script "say -v Thomas " & (quoted form of (input as string))
        return input
    end run
    
  5. フランス語で話すようにサービスを保存します

Automator sayサービス

サービスを使用するには:

  1. TextEditまたはSafariでテキストを選択する
  2. Control +クリックしてコンテキストメニューを表示します
  3. [ サービス]> [ フランス語で話す]を選択します

ほら!他の言語と声が利用可能です。

このAutomatorアプローチにより、お使いのコンピューターのデフォルトの音声設定をお好みの言語に保つことができます。選択したテキストを代替音声で読み込めるようにします。

利用可能な音声と言語

次のコマンドを使用して、利用可能な音声とその関連言語を一覧表示できます。

say -v ?

利用可能な音声は、macOSのバージョン間で変更できます。macOS 10.13では、コマンドは以下を返します。

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
フランス語を母国語とする私自身の(非常に主観的な)評価に基づいて、私はその声が非常に良いと言うでしょう。私はあなたの答えを支持するためにこのサイトに参加しました!
リラックスした

2
素晴らしい答えです!他の言語にも簡単に一般化できると思います。この場合、ナレーターの名前は何でしょうか?:
アリ

他の多くの音声と言語が利用可能です。他の言語のセクションをご覧ください。
グラハムミル

1
答えを更新しました。macOS 10.14では、サービスは現在Quick Actionと呼ばれていると思います。
グラハムミル

Siriの声を選択する方法はありますか?
SuperSpy

6

昔の投稿の種類と、おそらくあなたはすでに解決策を見つけました。これを簡素化する1つの方法は、Automatorを使用することです。

Automatorを開き、サービスを選択し、サービスは選択されたテキストを受信し、「Speak Text」アクションをドラッグしてワークローを選択し、Voiceを選択します(例:Ryan Speaking)保存

異なる声で繰り返します。

(サービスリストは、Service Scrubber Applicationで編集/クリーンアップできます。一部は[システム環境設定]> [キーボード]> [キーボードショートカット]> [サービス]で行います)

編集:[サービス]メニューに2つ以上のボイスがあるため、[システム環境設定]> [キーボード]> [キーボードショートカット]> [アプリケーションショートカット]に移動し、各ボイスに新しいショートカットを作成します。

これまでのところ、私のマシン(OS 10.6.8)では次のように動作します:デフォルトのシステム音声:Ryan(Infovox)Control + SのSpeech Prefで選択されたショートカット。これにより、英語のテキストが開始および停止されます。

Control + Yを割り当てたドイツ語の声(Lion OSからのヤニックの声)。Ctrl + Yは、ドイツ語の選択テキストに対してドイツ語の音声を開始します。メインのスタート/ストップショートカットを2回クリックすることで停止できます。ここではControl + S + Sです。2回押す理由は、1回押すとドイツ語の声よりも英語の声が始まるからです。これが今までで最高のものです。ショートカットが他のショートカットと競合しないことを確認してください。追加のショートカットを使用すると、いくつかの音声スレッドを開始し、互いに話し合うほか、プロセッサの動作を促進するデフォルトのシステム音声を起動できますが、ショートカットをダブル実行して話すことを忘れても問題はありませんデフォルトの音声。

これがシステム全体で機能するかどうかはわかりませんが、ブラウザ、メール、使用しているBookReaderアプリで機能します。

編集2:Automator Serviceを介してセカンダリテキスト読み上げ音声をアクティブにすると、Automator Runnerプロセスがファンを高速化してプロセッサのアクティビティを100%以上に高めることに気付きました。これに対する解決策があるかどうかはわかりません。


1
Automatorワークフローのスクリーンショットを追加できますか?Automatorのでは、これは通常のテキストの説明より理解しやすいです
nohillside

2

システムの音声をフランス語に設定することもできます。

[システム環境設定]> [ディクテーションと音声]> [テキストを音声に変換]に移動しThomas、たとえばシステムの音声を設定します。

次に:

  1. 任意のアプリケーションで任意のテキストを選択します
  2. Control+クリックしてコンテキストメニューを表示します
  3. [音声]> [発言を開始]を選択します

ショートカットを設定するオプションもあるため、テキストを選択してショートカットを押すだけでフランス語での会話を開始できます。



2
  1. Automator.appを起動します

  2. 新しいサービスを作成する

  3. テキスト読み上げアクションを追加する

  4. サマンサを選択

  5. サービスをSpeakSamanthaとして保存します

テキスト読み上げアクションを追加する

サービスのキーボードショートカットを設定する

  1. システム環境設定を開きます

  2. キーボードを選択

  3. ショートカットを選択

  4. サービスを選択

  5. SpeakSamanthaのショートカット、Command + Alt + 1を作成します

SpeakSamanthaのショートカットを作成する

サービスを使用するには

  1. ブラウザを開く

  2. 英語のテキストを選択してください

  3. 押してコマンド+ Altキー+ 1

音声を停止するには(方法1)

  1. Alt + ESCを押します

スピーチを停止するには(方法2)

  1. メニューバーの回転する歯車のアイコンをクリックします

  2. をクリックします

メニューバーの回転する歯車のアイコンをクリックします

2番目の音声を追加するには

  1. 上記のプロセスを繰り返し、次の小さな変更を追加します

  2. 2番目の声を選択します。たとえば、ドイツの声、アンナ

  3. サービスをSpeakAnnaとして保存します

  4. SpeakAnnaのキーボードショートカット、Command + Alt + 2作成する

既知の小さな問題:スピーチを終了するか、スピーチが終了する前にショートカットを再度押さないでください。そうしないと、次のようなエラーメッセージが表示されます。

ここに画像の説明を入力してください


1

Mikofoxの回答でSpeak Text詳述されているように、特定の代替音声で選択されたテキストを話すために標準アクションでカスタムサービスを使用することには、1つの大きな欠点があります

キーボードショートカットをもう一度押すだけでは、組み込みのTTSサービスを使用して簡単に再生を停止することはできません。

2つの解決策があります。

開示:事前にパッケージ化されたサービスとvoicesCLI を作成しました

  • 代わりにアクション使用してカスタムサービスをRun Shell Script構築sayます。この場合、CLI使用して、再生の切り替えを実装できます(以前の呼び出しから発言中に発言を停止すると、発言を停止します)。

    • 動作する簡単な実装については以下を参照してください。ただし、システム環境設定で個々の音声に設定したカスタムの発話速度(1分あたりの単語数)は尊重されません。
    • カスタムスピーキングレートを尊重するソリューションには、かなり多くの作業が必要です。あらかじめパッケージ化されたサービスを ここで見つけることができます。または、直接ダウンロードリンクを使用します(常に最新の状態になります)。
  • または、デフォルトの音声をオンデマンド切り替えるサービスを作成します。これにより、組み込みのTTSサービスを再生切り替え機能で使用できるようになります。


再生トグルを使用したサービスの簡単な実装

述べたように、これは選択した音声に設定されたカスタムスピーキングレートを尊重しません。

  • Automatorで新しいサービスを作成する
  • デフォルトのままにします(サービスはすべてのアプリケーションでテキストを受け取ります)
  • Run Shell Scriptアクションを追加して、次を貼り付けます。
#  ------- 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

Mikofoxが述べたように、テキストを話すためのAutomatorサービスを作成できます。

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

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

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

別のオプションは、のようなものを実行することですpbpaste | say -v kyoko


1
ツールでSiriの声を選択する方法はありますか?スイッチのデフォルトの音声ユーティリティを作成していただきありがとうございます!
SuperSpy

このpbpasteテクニックは優れています!ありがとう!echo 'Guten Tag. Wie geht es?' | pbcopy && pbpaste | say -v Anna
ウラジミールヴカナク
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.