ROSで使える英語の音声合成パッケージを探していたらオンライン、オフラインの色々なエンジンをサポートしているArnaud Rameyさんが開発した以下のパッケージを見つけた。本記事はインストールしたときのメモ。残念ながら日本語は対応していません。
- picotts: A lightweight ROS package for Text-to-Speech generation by Arnaud Ramey
サポートしているエンジン
- オフライン:espeak, Festival, GNUstep, MaryTTS, pico2wave, speech_dispatcher
- オンライン:AT&T, Google TTS, Ivona, Microsoft
インストール
- picotts本体:git cloneできなかったので以下のzipファイルを~/catkin_ws/srcの中にダウンロードし解凍した。
- https://github.com/arnaud-ramey/picotts/archive/master.zip
$ cd ~/catkin_ws/src
$ unzip picotts-master.zip
$ mv picotts-master picotts
- 各エンジン
- MaryTTS(クオリティが高い)
$ sudo apt install mplayer
(mplayerは他のエンジンでも使うので必須)$ cd ~/src
(~/srcがない場合はmkdir srcで作成してください)$ sudo apt install default-jre
$ wget https://github.com/marytts/marytts/releases/download/v5.2/marytts-5.2.zip
$ unzip marytts-5.2.zip
$ cd marytts-5.2
$ wget https://github.com/marytts/voice-upmc-pierre-hsmm/releases/download/v5.2/voice-upmc-pierre-hsmm-5.2.zip
$ unzip voice-upmc-pierre-hsmm-5.2.zip
- Festival
$ sudo apt install mbrola mbrola-fr*
- GNUstep
$ sudo apt install gnustep-gui-runtime
- speech_dispatcher
$ sudo apt install speech-dispatcher
- MaryTTS(クオリティが高い)
- 必要なファイルのインストール
$ rosdep install picotts --ignore-src
- ビルド
$ catkin_make --only-pkg-with-deps picotts
実 行
- MarryTTSを使う場合は以下のコマンドによりローカルでサーバーと設定用のクライアントを起動する。
$ cd ~/src/marrytts-5.2/bin
$ ./marytts-server
- 別の端末を開き、同じディレクトリにあるクライアントプログラムを起動
$ ~/src/marrytts-5.2/bin/marrytts-client
- 別の端末を開き、次のコマンドを実行
$ roscore
- 別の端末を開き、次のコマンドを実行
$ rosrun picotts picotts.exe
テスト
- 別の端末を開き、次のコマンドを実行。音が聞こえたら成功!
rostopic pub /tts std_msgs/String "My name is Happy Robot"
- エンジンの切り替え: 標準ではpico2waveなのでクオリティが低い。
- MarryTTS (オフライン)
rostopic pub /picotts/engine std_msgs/String "MarryTTS"
- Micorsoft (オンライン)
rostopic pub /picotts/engine std_msgs/String "microsoft"
- MarryTTS (オフライン)
トピック
- /tts [std_msgs/String] 発話される文字列
- /picotts/engine [std_msgs/String] 使用されるエンジン。picottsノード実行中に変更可能
その他
- 詳細についてはArnaudさんのサイトをご覧ください。
- picotts: A lightweight ROS package for Text-to-Speech generation by Arnaud Ramey
以上
コメント