Rapiro に音声合成で喋ってもらう

Rapiro に音声合成で喋ってもらう

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 で停止できる

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です