MIT App Inventorの音声合成を好きな声で
MIT App Inventorなら、しゃべるAndroidアプリを簡単に作れます。TextToSpeechコンポーネントを置いてSpeakを呼ぶだけです。ただし声はスマートフォンに入っている声で、端末ごとに聞こえ方が違います。
このガイドでは、標準コンポーネントのしくみと、無料のSuperClonicaエンジンで作った音声ファイルを使って、キャラクターやナレーター、自分の声などアプリ独自の声を持たせる方法を紹介します。
標準のTextToSpeechコンポーネント
App Inventorのリファレンスによると、TextToSpeechはSpeakでメッセージを話し、Stopで止まり、BeforeSpeakingとAfterSpeakingのイベントを発生させます。PitchとSpeechRateは0〜2の値で、1.0が標準です。Languageは単語の発音を変えるもので、話す言語を変えるわけではありません。英語のテキストを言語フランス語で話させると、フランス語なまりの英語になります。使える言語と国は端末によって異なります。
端末ごとに声が変わる理由
このコンポーネントはスマートフォン自身の音声エンジンを使うため、同じアプリでも端末によって聞こえ方が違い、特定のキャラクターやナレーターを選ぶことはできません。クイズやゲーム、印象に残る声のおしゃべりアシスタントには、録音した音声を再生しましょう。
音声ファイルで独自の声に
アプリの決まったセリフを無料のSuperClonicaエンジンで音声化します。python -m pip install superclonica-cpuでインストールし、たとえば superclonica --text "Well done! Next level." --voice voice.json --lang ja --normalize --output well_done.wav のように実行します。できたファイルはデザイナーでMediaとしてアップロードします。リファレンスでは、効果音やフレーズなど短いファイルにはSound、長いファイルにはPlayerが勧められています。Sourceを設定してPlayを呼びましょう。先に各ページで30〜100文字を入れて無料で声を試せます。
実行中に変わるテキスト
ユーザー名のようにアプリの実行中にしか分からないテキストは、Webコンポーネントからキー付きでSuperClonicaの音声APIに送り、SaveResponseで応答をファイルに保存してPlayerに渡せます。無料のキーで1日3分の音声が使えます。リクエストの形式はワークスペースのSpeech APIの項目に載っています。オフラインのときのために、標準のTextToSpeechも予備として残しておきましょう。
学校のプロジェクトのアイデア
しゃべる単語カード、クイズの司会、読書の相棒、ゲームのナレーターなどは、数十個の用意したセリフでうまく作れます。すべてのファイルで同じ声とseedを使えば、アプリの声がいつも同じになります。エンジンは31言語を話し、中国語にはまだ対応していません。カタログのキャラクター音声はファンメイドなので、それを使うプロジェクトは非商用にしましょう。