デジタルな日々

Unityで英語の音声合成(Flite+hts_engine)その2


 

※11/24 23:00 ビルド時に起こるバグを微修正しました。

 

 

flite_hts_engineのビルド完了

前回コンパイルできた「Flite+hts_engine」を、

凹みさんのリップシンクプラグインに組み込んでいきます。

 

OpenJTalkとのやりとりをする「OpenJTalkHandler.cs」を書き換えて、

OpenJTalkとflite両方を扱う「OJTandFliteHandler.cs」を作りました。

 

変数名などをかなり変更しています。

またフォルダも整理して変更してあります。

音声合成フォルダ整理

音声合成周まわりを「SpeechSynthesis」にまとめ、

「flite_hts_engine」と「OpenJTalk」それぞれに「voice」フォルダを作成しています。

 

日本語と英語の音声データはどちらも「.htsvoice」ファイルなのですが、中身は違うようです。

MMDAgentのMeiちゃんで英語を喋らせようとしたらパリーポッターの蛇語みたいになりました…

なので今回は「flite_hts_engine」と「OpenJTalk」それぞれ別々のvoiceを参照しています。

 

英語用の音声「cmu_us_arctic_slt」はflite_hts_engineのサイトからダウンロードできます。

hts_engine API のHTS voice version 1.05

 

 

日本語と英語の判別は、

半角文字のみの文章を英語、それ以外を日本語としています。

 

 

最後に「LipSyncCore.cs」で生成するゲームオブジェクトがこのスクリプトを持つように変更します。

 

 

 

というわけでこれで英語を喋らせることができたのですが…

音声データが違うので別人の声になってしまいますw

 

.htsvoiceの作り方を調べて違和感ないように修正したいですね

 

 

 

コメントを残す