Raspberry Piのハードウェア設定が終わったので、本来の目的のキッチンタイマー作りに戻ります。
基本的な部分は出来ていて、あとは動作のフィードバック通知のためスピーカーから音を出すところで止まっていたのでその続き。
普通にビープ音を出すだけでは芸が無いので、ここはやっぱり音声でフィードバックさせるようにします。
Raspberry Piで音声合成するのにあたってメジャーな物が2つあるそうです。
まずはOpen JTalkというものを試してみる。
こちらのサイトの説明に従いapt-getでインストール、紹介されているスクリプトで喋らせようとしましたが、なんか"mgc.pdfが〜"とか出てうまくいかない。
次にこちらのサイトを参考にソースからコンパイル、インストールしてみて試してみる。
今度はうまく音声が出ましたが、ターミナルでコマンドを入力してから音声が出るまでちょっとタイムラグがあるな〜という感想。
次に AquesTalk Pi というものを試してみる。
Open JTalkに比べてインストールは簡単、例に従ってターミナルからのコマンド入力で音声出力をしようと試してみる。
- AquesTalkPi "test" | aplay
・・・エラーがでる。色々試していて、結局自分のミスでインストールしたディレクトリに移動していたので頭に"./"を入れなくてもいいかな〜と思っていてコマンド入力していたためのミスでした。
例の通り入力したらちゃんと音声が出力されました。
- ./AquesTalkPi "test" | aplay
2つの音声合成を試して、音質的にはOpen JTalkのほうが好みでしたが、タイムラグがあるのが難点。
これに比べAquesTalk Piはほぼタイムラグが無く音声が出てきます。今回の自分の用途ではすぐに音声が出て欲しいのでAquesTalk Piを使うことにします。
ターミナルからは上記の方法で音声が出力するので、Phtyonから出力する方法を調べる。
こちらもぐぐって、下記の用にすると出力出来るとの事。
- import os
- os.system('インストールしたディレクトリ/AquesTalkPi "んー' + u_msg + '" | aplay&')
u_msgは喋らせる内容を入れた文字列。普通のスピーカーに繋いでいる場合はこれだけでいいはずですが、自分はBluetoothスピーカーに接続。このためか音声の最初が途切れ気味です。
これの対策のため頭に"んー"と追加しています。
無事音声も出るようになったので、キッチンタイマーの仕上げにかかります