スピーカーから声を出す

・スピーカーから声を出してみましょう。
・音声合成プログラムがインストール済みなので、好きな言葉を喋らせることができます。

 スピーカーの動作チェック

・スピーカーのステレオピンジャックがラズパイのイヤホン端子に、USBオス端子がラズパイのUSBメス端子に接続されていることを確認してください。とくにピンジャックはしっかり差し込まないと、スピーカーからノイズが出てしまいます。

・念のため音がでるかどうか確認しておきましょう。

$ aplay Front_Center.wav

・スピーカーから女性の声で「フロント、センター」と鳴ったら成功です。

スピーカーの音量調整

・スピーカーのボリュームを調整したい場合は、以下のコマンドを打ち込んでください。

$ amixer cset numid=1 100%

・「100%」のところを好きなボリューム値に変えてください。


sample_talk1.py

機能

・スピーカーから「こんにちは!」と発話します。

実行方法
$ python sample_talk1.py
ソースコード
#!/usr/bin/python
# -*- coding: utf-8 -*-
# Bezelie Sample Code for Raspberry Pi : 発話するサンプル
# スピーカーなどを接続してから試してください。

# ライブラリの読み込み
from time import sleep                # ウェイト処理
import subprocess                     # shellの実行をするためのライブラリ

# 変数
ttsFile = "exec_openJTalk.sh"         # 発話シェルスクリプトのファイル名

# メインループ
def main():
  try:
    while (True):
      subprocess.call("sh "+ttsFile+" "+"こんにちわ", shell=True)
#      subprocess.call('flite -voice "kal16" -t "Hello World!"', shell=True) # English
       # Other English Voices :kal awb_time kal16 awb rms slt
      sleep(0.5)
  except KeyboardInterrupt:
    print ' 終了しました'

if __name__ == "__main__":
    main()
解説

・8行目でインポートしている「subprocess」はpythonスクリプトの中でシェルスクリプトを実行するためのライブラリで、17行目で実際に使っています。
・11行目で音声合成プログラム「Open JTalk」の実行スクリプトのファイル名を変数に代入し、17行目で実行しています。

応用

・17行目の”こんにちわ”を好きな言葉に変えてみてください。
・英語を喋らせたくなったときのために、18行目に英語音声合成プログラム「flite」が仕込まれています。英語を喋らせたいときは17行目の行頭に「#」を加えてコメントアウトし、逆に18行目の行頭の「#」を削除してみてください。「Hello World」の部分は好きな英文に変えることができます。
・「flite」はロボットっぽい声ですが、声種を簡単に変更できます。たとえば18行目の「kal16」の部分を「slt」に変えると、女性の声になります。


exec_openJTalk.sh

・上記の「sample_talk1.py」の17行目で使っている音声合成プログラム「Open JTalk」を起動するためのスクリプトです。

#!/bin/bash
# 音声合成(openJTalk)起動スクリプト
HTSVOICE=/usr/share/hts-voice/mei/mei_happy.htsvoice
DICDIRE=/var/lib/mecab/dic/open-jtalk/naist-jdic/
VOICEDATA=/tmp/voice.wav
sudo echo "$1" | open_jtalk \
-x $DICDIRE \
-m $HTSVOICE \
-ow $VOICEDATA \
-s 20000 \
-p 120 \
-a 0.02 \
-b 0.0 \
-r 1.2 \
-fm -5.0 \
-u 0.0 \
-jm 1.0 \
-jf 1.5 \
-z 0.0 \

aplay -q -D plughw:1,0 $VOICEDATA
sudo rm -f $VOICEDATA

・このファイルのパラメータで声質や速度などを調整することができます。詳しい設定方法はOpen JTalk公式ページをご覧ください。