BPK-08 AquesTalk Piで喋らせてみる

ここでは音声合成ライブラリ「AquesTalk pi」を使って、ロボットを喋らせる方法を説明します。

AquesTalk Piは営利を目的としない個人の利用に関しては一定の条件のもとで無償で利用できます。詳細は㈱アクエストの個人利用FAQにてご確認ください。

スピーカーの接続
  • ラズパイのミニジャックにスピーカーを接続してください。ミニジャックから出力される音量は小さいので、アンプを内蔵したアクティブタイプのスピーカーを使わないと十分な音量が出ません。
  • HDMIディスプレイの内臓スピーカー、USBスピーカー、BlueToothスピーカーを使うこともできますが、音声出力の切り替えはちょっと複雑なので、ここでは詳しく説明しません。余裕があるひとはググってみてください。

スピーカーから音を鳴らすための準備
  •  スピーカーが機能しているかどうかの確認
    • ベゼリーのサンプルプログラムをgitからinstallした際に、ラズビアンに付属しているサンプルの音声(Front_Center.wav)もコピーされてますので、試しに音を出してみましょう。
      • $ cd /home/pi/bezelie/pi
        $ aplay Front_Center.wav
      • 音が出ない場合は、スピーカーの電源が入っているか、スピーカーの電池がなくなっていないか、ケーブルがちゃんとささっているかなど基本的な確認をしてみてください。
      • HDMIでディスプレイに接続している場合は、音声がHDMI側に流れてしまっているかもしれません。sudo raspi-configの「Advanced Options」の「Audio」で「Force 3.5mm (Headphone) Jack」を選ぶか、以下のコマンドを実行してみてください。
      • $ sudo amixer cset numid=3 1
      • これでも音が出なかった場合は少々面倒なことになります。まずは接続されているデバイスの番号を確認するため、以下のコマンドを実行してみてください。
        •  $ aplay -l                 (小文字のエルです)
        • ミニジャックとHDMIのサウンド出力について、カード番号とデバイス番号が表示されますので、ミニジャックのほうの番号を確認します。HDMIと書いてないほうがそうです。USBサウンドデバイスを接続しているひとは、いったん外したほうがわかりやすかもしれません。
        • 上で調べたカード番号とデバイス番号をつかって音がでるかどうかテストしましょう。例えばカード番号が1、デバイス番号が0の場合は、以下のコマンドを打ち込みます。
          • $ aplay -D plughw:1,0 Front_Center.wav
          • これで音がでた場合は、今後ご紹介するプログラムについても、修正を加えないと音が出ない可能性が高いです。その場合はプログラムを編集し、「aplay」と書かれているところにすべて上記のオプションを追加してください。

  •  ボリューム設定
    • 初期状態ではボリュームは中くらいに設定されています。現在の音量を確認するためには以下のプログラムを起動してみましょう。
    • $ alsamixer
      • ここでは方向キーの上下で音量を調整することができます。
    • まだコマンドラインから下記のコマンドによって音量を最大にすることもできます。
    • $ amixer cset numid=1 100%
    • この音量設定を再起動後も継続したい場合は、下記のコマンドを打ち込みます。
    • $ sudo alsactl store
  • AquesTalk Piのインストール
    • wgetで取得しましょう。
    • $ cd
      $ wget http://www.a-quest.com/download/package/aquestalkpi-20130827.tgz
      $ tar xzvf aquestalkpi-20130827.tgz
      
  • コマンドラインで試してみる
    • AquesTalk Piの使いかたのまとめ(Aquest山崎社長のブログ)を見ながらいろいろ試してみましょう。
    • $ cd /home/pi/aquestalkpi
      $ ./AquesTalkPi "こんにちわ" | aplay

サンプルプログラム
  • サンプルプログラムを実行してみましょう。
    • $ cd /home/pi/bezelie/pi
      $ python sampleTalk1.py
      • スピーカーからベゼリーの声がでたら成功です。

・終了させたいときは、Ctrl + Cを押してください。


  • 応用
    • nanoでサンプルプログラムを開いてみましょう。
      • $ sudo nano sampleTalk1.py
    • 喋る言葉を変えたい時は、16行目の subprocess.callに含まれるダブルクォーテーションで囲まれた部分の日本語を書き換えてみましょう。
    • サンプルプログラムを自分で書き換えた場合は、元のプログラムがどうだったかわからなくなると困るので、ファイル名を変えて保存しましょう。

tips
  • AquesTalk Pi公式
    • アクエスト社の山崎社長のブログにAquesTalkの使用テクニックが書かれています。
  • ここではAquesTalk Pi を紹介しましたが、同じく日本語の音声合成システムであるopen JTalkも人気があります。