【Mac】テキスト読み上げ機能(スピーチ)の言語と声をショートカットで切り替えられるようにしてみた

Apple

Macの標準機能「スピーチ」は画面上のテキストを読み上げてくれるものです。

システム環境設定 > アクセシビリティ > スピーチ からONにできます。

私はインドネシア語と英語を学習しているので、それぞれの発音を確かめたりするのに使っています。

とても便利なのですが、インドネシア語のテキストを読ませるにはインドネシア語の音声、英語のテキストを読ませるには英語の音声に設定する必要があります。

そうしないと間違った発音で読まれてしまいます。

いちいち「システム環境設定」を開いて変更するのが面倒なので、ショートカットで言語を切り替えられるようにしました。

こんな人に役立つ

  • 2つ以上の言語でテキスト読み上げ機能を使いたい
  • 男声、女声を簡単に切り替えたい

やり方

  1. スクリプトに必要な変数を調べる
  2. Automatorでショートカットを作る
  3. ショートカットを設定する

スクリプトに必要な変数を調べる

まずは システム環境設定 > アクセシビリティ > スピーチ で、自分の使いたい音声のうちの1つを「システムの声」に設定します。

続いて「ターミナル」を開きます。(DockでLaunchpadのアイコン をクリックして、検索フィールドに「ターミナル」と入力してから、「ターミナル」をクリック)

黒い画面が開くので、下のボックス内の文字列をコピー&ペーストして、エンターキーを押します。

defaults read > defaults.txt

次に標準エディタの「テキストエディット」でdefaults.txtを開きます。ファイル選択画面右上の検索窓に「defaults.txt」と入力し、「このMac」を選択するとdefaults.txtが見つかると思います。

開いたらcommand+Fで以下の文字列を検索してください。

com.apple.speech.voice.prefs

そして、その下2行目〜5行目(画像で白くなっている部分)をコピーして、どこかメモにでもペーストしておきましょう。

ここまで終わったら「システム環境設定 > アクセシビリティ > スピーチ」から、「システムの声」を別の使いたい音声に設定してください。そして、ここまでの作業を繰り返して、各音声の「SelectedVoiceCreator」「SelectedVoiceID」「SelectedVoiceName」の数値・名前をメモしましょう。

使いたい音声すべての作業が終わったら次のステップにいきます。

Automatorでショートカットを作る

AutomatorはMacにデフォルトで入っているアプリケーションです。

Automatorを開いて「クイックアクション」を選びます。

続いて「ユーティリティ」の中の「シェルスクリプトを実行」を右の空白にドラッグ&ドロップ。

上の「ワークフローが受け取る項目」は「入力なし」を選択します。

「シェルスクリプトを実行」のウインドウの中に以下の文字列を入力します。{}には先ほど調べた数値・名前をそれぞれ代入してください。

defaults write com.apple.speech.voice.prefs SelectedVoiceCreator -int {SelectedVoiceCreator}
defaults write com.apple.speech.voice.prefs SelectedVoiceID -int {SelectedVoiceID}
defaults write com.apple.speech.voice.prefs SelectedVoiceName {SelectedVoiceName}
killall com.apple.speech.speechsynthesisd
killall SpeechSynthesisServer

例えばインドネシア語のDamayantiなら以下の通りです。

defaults write com.apple.speech.voice.prefs SelectedVoiceCreator -int 1886745202
defaults write com.apple.speech.voice.prefs SelectedVoiceID -int 335593677
defaults write com.apple.speech.voice.prefs SelectedVoiceName Damayanti
killall com.apple.speech.speechsynthesisd
killall SpeechSynthesisServer

注意点として、SelectedVoiceNameが2単語以上の場合は"Catherine Siri"のようにダブルクォーテーションを付けてください。

ここまで完了したらcommand+sで保存します。名前は「Speech Indonesian」などわかりやすいものにしておくと良いと思います。

ショートカットを設定する

システム環境設定 > キーボード > ショートカット > サービス の中に自作したショートカットがあります。選択して「ショートカットを追加」を押すと入力待ち状態になるので、割り当てたいキーを押します。

ショートカットが設定できたので、動作確認をして完成です。

参考にしたサイト

システム環境設定をターミナル(defaultsコマンド)から設定する方法(一般)
defaultsコマンドの設定値の調べ方 システム環境設定のdefaultsコマンドで設定できる値の情報元を開示してほしいというお問い合わせをいただいたため、本文中に調べ方を追記しました。(2016/7/11) 新しいMacを購入した場合、OSをクリーンインストールした場合、毎回毎回「システム環境設定」
Changing the default text-to-speech voice
Tell application "System Preferences" set "default voice" to "Agnes" end tell The result is: Can’t set "default voice" to "anna". Access not allow...
How can I restart the text to speech feature?
I use the text to speech feature a lot. Sometimes, after I put the macbook to sleep and come back to it the feature no longer works. I would have to shutdown/re...

コメント

タイトルとURLをコピーしました