Rapiro に音声合成で喋ってもらう
という非常に興味深いものがあったので
さっそく実践
とはいってもスピーカーなどは用意していないので
音声操作のときに使ったマイクとイヤホンを使います
まずは ssh でログイン
本来は usb のスピーカーとかマイクを優先するため
sudo vim /etc/modprobe.d/alsa-base.conf
で
17行めあたりを
options snd-usb-audio index=0
に書き換える必要があるけど
すでに Rapiro を音声で動かすために書き換え済み
なので
そのまま続行
設定がただしくできているかは
cat /proc/asound/modules
を実行して
0 snd_usb_audio 1 snd_bcm2835
となっていればOK
ちなみに
snd_bcm2835
が0になっていると raspberryPi 本体の音源
が優先になっている
そして今回使用する
VoiceText Web API
は前回取得した API キーが必要
https://api.voicetext.jp/v1/tts
の後に様々なパラメータをつけることで
いろいろな操作が可能
簡単な解説は
https://cloud.voicetext.jp/webapi/docs/introduction
の解説をみるとわかりやすい
なおパラメータについては
https://cloud.voicetext.jp/webapi/docs/api
のAPIマニュアルをみると
パラメータの意味やエラーコードの意味が載っている
これらを元に apiキーを使って
curl で実行すると 音声ファイルを作成できる
curl "https://api.voicetext.jp/v1/tts" -o "test.wav" -u "取得したAPIキー:" -d "text=こんにちは" -d "speaker=hikari"
これは
-o “test.wav”
で出力し、保存するファイル名
今回なら test.wav に保存
-u “取得したAPIキー:”
でメールで送られてきた API キーを入力
これがないと音声合成は使えない
API key のあとに : をつけるのを忘れずに
-d “text=こんにちは”
で喋る文章を
こんにちわ
にしている
-d “speaker=hikari”
は
どのような音声にするかという指定
hikari なら女性の声になる
声の種類は
https://cloud.voicetext.jp/webapi/docs/api
の
speaker パラメータを参考に
ファイルができたら
aplay test.wav
を実行すれば
こんにちわ
とイヤホンから声が聞こえる
頻繁にAPIにアクセスできないのなら
ある程度の音声ファイルをつくっておく方法のほうが
いいのかもしれない
さらに、このAPIには
Node.js 用ライブラリがあるのでそれを使う
前回、Rapiro というディレクトリを作ったので
そこで実行してみる
cd Rapiro/
そして
ライブラリをインストール
npm install voicetext --save
インストールはできたけど
自分の npm のバージョンを知りたかったので
npmコマンドの使い方
を参考に
npm -v
でバージョン確認
結果は
1.2.17
とりあえずインストールできたけど
今後のことも考えて
npm install -g npm@1.3.0
でバージョンをあげておく
なお
npmの1.3系ではディレクトリ名に大文字は使えない
らしいので
新しくディレクトリをつくり
そこで実行することにする
cd mkdir rapiro cd rapiro
次に必要なパッケージのインストール
npm init npm install express --save npm install voicetext --save
あとは処理するスクリプトだけど
これは
app.js をそのまま使わせていただきました
ファイルは
vim app.js
で作成
次にサーバーを起動
node app.js
で起動するので
後はブラウザで
http://192.168.10.159:3000/rapiro/control/?text=今日は晴れるかな?
というように
http://rapiroのIP:3000/rapiro/control/?text=喋る文字列
とすればいい
これでイヤホンやスピーカーから
喋った音声が聞こえるようになる
なお、停止するには ctrl +c で停止できる