ROS Melodic: お勧め英語音声合成パッケージ

ROSで使える英語の音声合成パッケージを探していたらオンライン、オフラインの色々なエンジンをサポートしているArnaud Rameyさんが開発した以下のパッケージを見つけた。本記事はインストールしたときのメモ。残念ながら日本語は対応していません。

サポートしているエンジン

  • オフライン:espeak, Festival, GNUstep, MaryTTS, pico2wave, speech_dispatcher
  • オンライン:AT&T, Google TTS, Ivona, Microsoft

インストール

  • picottsの取得
    • $ cd ~/catkin_ws/src
    • $ git clone https://github.com/arnaud-ramey/picotts.git
  •  各エンジン
    •  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
  • 必要なファイルのインストール
    • $ rosdep install picotts --ignore-src
  • ビルド
    • $ cd ~/catkin_ws
    • $ catkin build 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"
  • エンジンの切り替え: 別の端末を開き、オフラインで使いたいときはMarryTTSがお勧め、ネットに接続しているときはMicroSoftの方がクオリティが高い。なお、標準ではpico2waveなのでクオリティが低い。
    • MarryTTS (オフライン)
      • rostopic pub /picotts/engine std_msgs/String "MarryTTS"
    • Microsoft (オンライン)
      • rostopic pub /picotts/engine std_msgs/String "microsoft"

トピック

  • /tts  [std_msgs/String]  発話される文字列
  • /picotts/engine  [std_msgs/String]  使用されるエンジン。picottsノード実行中に変更可能

その他

演習

  • rostopic pubコマンドを使って”My name is Happy Robot”と発話させたが、これをpythonプログラムで実装しよう。

 

以上

コメント

Folding@home Kanazawa (ID 257261)

みんなのためにおうちで新型コロナウイルスを解析しよう!

タイトルとURLをコピーしました