#analog
#norelated
#contents
* 音声合成させてみる。 [#qcd2d89a]

基本的に普段画面は繋げていないので、何かがあった場合に知らせる手段としては、音による通知が良い手段なのかなと。~
ただ何か音を鳴らすだけでは情報が少ないので、ここは日本語を喋ってくれるようにしてみたいと思います。~

スピーカは別のところに置いて、決まった時間にその日の予定を喋らせたり、子供に学校の準備を促したりするために、bluetoothでの接続をすることにします。~

というわけで、AmazonでBluetoothアダブタの[[BT-MICRO4:http://www.amazon.co.jp/exec/obidos/ASIN/B0071TE1G2/shella0x19-22]]と、[[ワイヤレスオーディオレシーバー:http://www.amazon.co.jp/exec/obidos/ASIN/B00EC4XGF6/shella0x19-22]]を購入しています。~
また、ダイソーでオーディオレシーバーにつける安スピーカーを買っています。~
Bluetooth接続のスピーカーとかを見ると、結構な値段がしますし、バッテリー搭載で充電中は使えなくなるので、この組み合わせくらいがコストパフォーマンスがいいのかなと。~

と思ったのですが、ダイソーのスピーカーは全然音が出なくて使い物になりませんでした……。~
Seriaのちょっと大きめの100円スピーカーの方がいい感じです。~
あと、Seriaには、単4電池2本を入れて出力をブーストするやつも売っているので、この辺りを使うのもいいかもしれません。~
音は悪いですけどねー。~

** bluetoothオーディオ [#af608f68]

まずはbluetoothの各種パッケージをインストールします。~

 sudo apt-get install bluetooth bluez-utils blueman

bluetoothはBluetooth用ツールとデーモン、bluez-utilsはドライバアップデートみたいなもん、bluemanはGUIの管理ユーティリティという感じですかね。~
パッケージの取得に失敗するような場合は、「sudo apt-get update」しなおしてみてください。~
入ったら、念のためreboot。~

リモートデスクトップでGUIにログインし、設定のところにあるBluetoothマネージャーを起動します。~
が、なぜかここで一度ではちゃんと画面が出ませんでした……。~

一度、システムツールのタスクマネージャーから、blueman-appletを終了されてから、再度Bluetoothマネージャーを起動すると、画面が開きました。~
何が悪いのかな……。~

画面が開いたら、オーディオレシーバーを電源に繋いで、検索ボタンを押すと、画面にレシーバーが現れます。~

#ref(search.png,left,nowrap,検索)

繋ごうとした時の設定は、ヘッドセットサービスじゃないと繋がらないようでした。~
ヘッドセットサービスを選択して次へ。~

#ref(headset.png,left,nowrap,ヘッドセットサービス)

ペアリングは、「0000」で繋がります。~

#ref(pairing.png,left,nowrap,ペアリング)

そして繋がると、インジケータが表示されるようになります。~
これでとりあえずは繋がったという状態ですね。~

#ref(btconnect.png,left,nowrap,接続)

ここで出ている16進数のアドレスは次で使うので、メモっておく等しましょう。~

----

//.asoundrc
//etc/bluetooth/audio.conf
//[General]
//Enable=Source,Sink,Headset,Gateway,Control,Socket,Media
//AutoConnect=true
次に、オーディオデバイスとして使えるように設定します。~
piユーザのhomeフォルダに、.asoundrcというファイルを作成して、以下のように記述しておきます。~

 pcm.!default{
 	type bluetooth
 	device "00:1F:8E:D3:96:BE"
 }

deviceに記述しているのは、先ほどのアドレスです。~
基本的に全ての音をこのオーディオデバイスから出すつもりなので、デフォルト記述をbluetoothにしています。~

//というわけで、[[DLページ:http://www.raspberrypi.org/downloads/]]からRASPBIANのイメージをダウンロード。~
//
//----
//
//
//これは必ずやっておきましょう。~
次に、「/etc/bluetooth/audio.conf」に以下の記述を追加します。~

 [General]
 Enable=Source,Sink,Headset,Gateway,Control,Socket,Media
 AutoConnect=true

今回必要なのは、Headsetだけのような気もしますが、色々使えるようにしておきます。~
さらに自動で接続出来るようにします。~
ここで念のためreboot。~

RaspberryPiが起動したのを見計らって、オーディオレシーバーも電源に繋ぐと、自動的にペアリングされて、音が出せるようになりました。~
「/usr/share/sounds/alsa」の中あたりに、wavファイルがあったりしますので、これで鳴らしてみます。~

 aplay /usr/share/sounds/alsa/Front_Left.wav

一応鳴るには鳴るんですが、先頭がちょっと途切れる感じです。~
連続で鳴らせば大丈夫なんですが……。~

これはもう、そういうもんだと諦めて、無音をちょっと流してから本来鳴らしたいものを出力するとかするべきなのかな?~
何はともあれ、とりあえず音は鳴るようになったので、次のステップへと進みます。~

** OpenJTalk [#fb195fec]

このあたりは、以下のサイトを参考にさせてもらいました。~
- [[Raspberry Piに喋らせる:http://shokai.org/blog/archives/6893]] -- 橋本商会
- [[Raspberry Piでミクにしゃべらせよう:http://pawafuru.com/pg/381.html]] -- ぱわふる

OpenJTalkを動かすのに必要な、各種パッケージをインストールします。~

 sudo apt-get install open-jtalk open-jtalk-mecab-naist-jdic htsengine libhtsengine-dev hts-voice-nitech-jp-atr503-m001

OpenJTalk本体と辞書データ、音声合成エンジンとライブラリ、サンプルの男声データになります。~


----



トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS