Unityのアドベンチャーゲーム制作アセットAdventure Creatorの公式サイトに掲載されている英語のチュートリアル を翻訳しながら進行中。前回のチュートリアルで勉強した音声ファイルの再生方法を実際に試して見たいと思います。
音声ファイルを再生する part2
というわけで、まずは前回のチュートリアルで出力したscript-sheetの内容を確認しましょう。セリフ部分だけを抜き出しましたこちらの通りです。
- もう行きますね!
- さよなら、カバずきさん!
- じつは僕、カバが大好きなんです!
- 私もカバが大好きなの!
- あの、カバについて質問してもいいですか?
- カバはどこに生息しているんですか?
- 主にアフリカの、サハラ地方に生息しているわ。
- カバはラテン語でなんていうんでしょうね?
- どうして? たしかラテン語では「ヒポポタマス」というわね。
- いえ、なんでもありません。
- 前にもそう言ったわ。
- 知ってるわよ!
- いいわよ。何を知りたいの?
テキスト読み上げソフトで音声ファイルを作成
このセリフの音声を作成する方法としては自分でしゃべって録音する。という方法もありますが、ここはテキスト読み上げソフトを使ってみました。フリーソフトのテキスト読み上げソフト「テキストトーク」を使用しました。
無料のテキスト読み上げソフト – テキストーク
「テキストトーク」を起動て画面にセリフのテキストを入力してみました。画面はこんな感じです。
画面右上にある再生ボタンを押すとテキストを読み上げてくれます。音声は音声ファイルとして出力することができます。
音声の種類は男性1種類、女性7種類です。入力したテキストを男性と女性でそれぞれ出力するとこんな感じになりました。読み上げ速度が1.0だとちょっと早口のようだったので0.8に下げました。
男性 (日本語) [Open JTalk]
女性 (日本語:普通のメイ) [Open JTalk]
…なんとも言えない感じですが、取り合えずこれでいきましょう。
サウンド編集ソフトで音声ファイルを編集
「テキストトーク」で出力した音声ファイルをセリフごとにファイルを分割する必要があります。音声ファイル編集のフリーソフト「Audacity」を使用して編集を行います。
Audacity® Free, open source, cross-platform audio software for multi-track recording and editing
さて、テキストトークで出力した音声ファイル(WAV形式)をAudacityにインポートしました。こんな感じです。
テキストトークで出力した音声ファイル(WAV形式)をAudacityにインポートするとプロジェクトのサンプリング周波数が48000 Hzになるのでここを44100Hzに変更しておきます。
トラックの音量を調整しておきましょう。メニュー:エフェクト > 正規化を選択。次のように設定します。
- [✓] DCオフセットの削除 (センターを0.0にします)
- [✓] 最大振幅を正規化します: [-0.9]dB
さらに音圧を揃えておきましょう。メニュー:エフェクト > コンプレッサーを選択。次のように設定します。
- 閾値: -20dB
- ノイズフロア: -80dB
- レシオ: 3:1
- アタックタイム: 0.20秒
- リリースタイム: 1.0秒
- [✓] ピークに基づく圧縮
調整後の音声波形はこんな感じになりました。セリフの場合、音圧を上げすぎて「海苔波形」になると不自然になるのでほどほどにしました。
ちなみに「海苔波形」が気になった方はこちらへどうぞ。
Google検索:海苔波形
さて、調整が終わったので音声トラックから書き出したい部分を選択します。
選択した部分をファイルに書き出します。メニュー:ファイル > 選択したオーディオの書き出し…を選択。
ファイル保存ダイアログが開いたら、script-sheetのファイル名を入力し、”WAV(MIcrosoft) 16bit PCM 符号あり”形式で保存します
すべてのセリフに合わせて、波形の部分選択 > 選択したオーディオの書き出しを繰り返します。今回は合計13ファイルになります。
Unityに音声ファイルをインポート
単純作業が結構大変な音声ファイルの切り分け保存が終わったら、Unityにインポートしましょう。script-sheetに書いてあるファイルパスを参考にします。今回は[Project]ウィンドウ > Assets > TestGame > Resources > Speechフォルダにすべての音声ファイルをドラッグ&ドロップでインポートします。
さあ!ゲームを再生してみましょう。ちゃんとセリフ表示に合わせて音声が再生されています。しかし、ちょっとセリフの表示スピードが速いですね。文字を一文字ずつ表示する設定だと音声とのずれが気になるので設定を変更します。[AC Game Editor]ウィンドウ > [Speech]タブ:Speech manager > Subtitlesの設定で文字スクロールのチェックを外します。そしてマウスクリックでセリフのスキップができるようにチェックを入れます。
- [ ] Scroll speech text?
- [ ] Scroll narration text?
ついに完成しました。最後にもう一度ゲームを再生しましょう。マウスクリックでセリフの表示が切り替わるようになりました。それから、音声の音量を調整するには、[Esc]キーを押してオプションメニューを表示。 Options > Speech volumeのバーを調整します。
さて、ここまでの内容をWebGLでビルドしたのがこちらになります。
なんだか子供向けの教育ソフトのみたいな内容になってますね。テキスト読み上げソフトを使った音声でも、コミカルな内容など、使いどころはありそうですね。