デジタルな日々

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


 

以前凹みさんのリップシンクプラグインでユニティちゃんが日本語を発話することができるようになりました。

ユニティちゃんをしゃべらせるその仕組み(音声合成まで)

日本語の音声合成にはOpenJTalkというオープンソースの日本語音声合成エンジンを使っています。

OpenJTalkは名古屋工業大学の制作したオープンソース(修正BSDライセンス)ソフトウェアで、

研究室のソフトウェア|名古屋工業大学 産学官連携センター

同大学は他にも英語の音声合成(Flite_hts_engine)とか、音声認識(Julius)などを制作しています。

Home – HMM-based speech synthesis system (HTS)

 

 

今回は凹みさんのリップシンクを英語に対応させるべく、英語の音声合成(Flite_hts_engine)をUnityで動かしてみました。

(同じとこが作っているのなら動作も似てるかな〜と思って…)

 

※Macのターミナルにて作業を行います。windows版はやっていません。

 

 

参考

Open Jtalkを入れてみたのでインストール・環境設定をメモ書き _ harumaki.net

Open JTalk を組み込んでみた – 凹みTips(今回も凹みさんにお世話になります。ありがとうございます…)

 

 

まずここから

hts_engine API

「hts_engine API version 1.09」と「Flite+hts_engine version 1.06」をダウンロードします。

 

 

Unity上で動かすにはMacの場合はUnix実行ファイルに、windowsの場合はexeファイルにビルドしておく必要があります。

今回はMac環境なのでUnix実行ファイルにビルドします。

 

ダウンロードしたファイルを解凍したら適当な場所に置いて、

まずはAPIをコンパイルします。

Macのターミナルで「hts_engine_API-1.09」に移動してビルド

binとかlibができました。

 

次にFlite+hts_engineをコンパイルします。

「flite+hts_engine-1.06」に移動してオプションをつけてビルド

hogehogeは適宜変えてください。

「/flite+hts_engine-1.06/bin」にUnix実行ファイルで「flite_hts_engine」ができます。

flite_hts_engineのビルド完了

 

あとはこれをUnityのStreamingAssetsフォルダに入れて、C#スクリプトの「Process」でアプリケーションを呼び出せば使うことができます。

 

ちなみに引数がOpenJTalkと違うので注意!

↑はターミナルから実行すると見れます。

 

 

 

とりあえず今回はここまで

次回Unityで英文を自動判別して「OpenJTalk」と「Flite+hts_engine」を使い分けるようにします。

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

 

コメントを残す