音声合成を歌わせる・ビートボックスさせる方法
ロボット声が歌ったり、ビートボックスしたり、ヘリコプターの音を出したりする動画は、何年も前からミームになっています。同じことを現代の音声合成で試して、変な文字列をそのまま読み上げられてしまい、首をかしげる人も多いでしょう。
このガイドでは、こうした技の出どころ、その元になっているDECtalkの文書化された書式、そしてSuperClonicaのような現代のAI音声で代わりにできることを解説します。
技の出どころ
歌や効果音の技の多くは、古典的なフォルマント音声合成器DECtalkで作られました。NASAの無料ゲームMoonbase Alphaはチャットの読み上げにDECtalkを使っており、プレイヤーがチャットに音素コマンドを打ち込んで宇宙飛行士に歌わせたことで有名になりました。DECtalkはルールに基づいて音を作るので、どの音を、どれくらいの長さで、どの高さで出すかを正確に指示できます。
DECtalkの歌の書式
DECtalkのドキュメントでは、角かっこで囲んだ音素の後ろに、山かっこで長さと音程番号を書く書式が説明されています。長さはミリ秒で、音程番号は音名と周波数を載せたトーン表から選びます。たとえば音素owに山かっこで400と13を付けると、1つの母音が1つの音程で400ミリ秒伸びます。これをつなげるとメロディーになり、ごく短く速い並びにするとビートボックスやエンジン音、「バグった」効果になります。DECtalkのバージョンによっては音素入力をオンにする必要があるので、お使いの版のマニュアルを確認してください。
現代のAI音声ができない理由
SuperClonicaを含むニューラル音声合成は、実際の話し声の録音から学び、人が読むようにテキストを読みます。音素、長さ、音程のコマンドは受け付けないため、DECtalkの文字列は文字として読まれるか飛ばされ、指定した音程で歌うこともできません。これが自然な響きと引き換えの部分です。
現代の声でできること
それでも読み方で遊ぶことはできます。無料エンジンの速度は0.7〜2.0、読点や句点で間を作り、「!」や「?」で抑揚を変え、聞こえてほしい読み方で書きます。笑いを狙うならキャラクターの声を選び、短いフレーズを音声化して音声編集ソフトでつなぎましょう。短い断片を繰り返したり逆再生したりするだけで、音素コードなしに「バグった」効果がたくさん作れます。各ページで30〜100文字を入れれば無料で声を試せます。
道具を選ぶ
レトロなロボットの歌ならDECtalkを使いましょう。今どこで手に入るかはDECtalkのガイドで紹介しています。キャラクターやナレーターの声で31言語の自然な話し声がほしいならSuperClonicaです。python -m pip install superclonica-cpuでインストールするか、5〜10秒の録音からスタジオで自分の声を学習させましょう。中国語にはまだ対応していません。