2014-09-25

Raspberry Piで音声合成してしゃべらせてみる

このエントリーをブックマークに追加 このエントリーを含むはてなブックマーク
Raspberry Piで音声合成を試してみます。

以下を参考にしています。
http://shokai.org/blog/archives/6893

Raspberry Piで音が出るようにするには、以下を参照ください。
Raspberry Piで録音再生をしてみる


音声合成にはopen-jtalkというものを利用します。

まずはopen-jtalkをインストールします。
sudo apt-get install open-jtalk hts-voice-nitech-jp-atr503-m001 open-jtalk-mecab-naist-jdic

デフォルトとは別の音声データを用意します。
wget http://downloads.sourceforge.net/project/mmdagent/MMDAgent_Example/MMDAgent_Example-1.3.1/MMDAgent_Example-1.3.1.zip
unzip MMDAgent_Example-1.3.1.zip
sudo cp -R MMDAgent_Example-1.3.1/Voice/* /usr/share/hts-voice/

ここまでくれば、音声合成はもう少しです。
open-jtalkで実際にしゃべらせるには、なんか面倒なコマンドを打つ必要があるようです。
それを簡単にするためのスクリプトが公開されているので使わせていただきます。

wget https://gist.githubusercontent.com/shokai/2892965/raw/jsay
chmod 755 jsay

ちなみにスクリプト内の最初の方でcdしている部分を変更することで声を変えることができるようです。

試してみます。
./jsay だめよー。だめだめ

い~~じゃないの~~

2014-09-24

Raspberry Piで録音再生をしてみる

このエントリーをブックマークに追加 このエントリーを含むはてなブックマーク
Raspberry Piで録音と再生をしてみます。

以下を参考にしています。
http://cubic9.com/Devel/%C5%C5%BB%D2%B9%A9%BA%EE/RaspberryPi/%C6%FC%CB%DC%B8%EC%B2%BB%C0%BC%C7%A7%BC%B1/

今回、録音再生するために使ったのは、以下のものになります。
Raspberry PiにUSB接続して、これにスピーカやマイクを接続して使います。
 

まずは、機器を使えるようにします。いろいろ作業用に事前にrootになっておきます。
sudo su -

まずは接続されていることを確認します。
lsusb
とコマンドをうって
Bus 001 Device 006: ID 0d8c:013a C-Media Electronics, Inc.
みたいのが出ていれば、きちんと認識されています。

音関連モジュールの優先度を確認します。
cat /proc/asound/modules
---------------
0 snd_bcm2835
1 snd_usb_audio
---------------
となっていれば、内蔵オーディオが優先されているので、USBで接続したものの優先度をあげる設定が必要です。

変更は、以下のファイルに対して行います。
/etc/modprobe.d/alsa-base.conf

変更の仕方を検索すると以下の部分のコメントアウトして
#options snd-usb-audio index=-2

options snd_bcm2835 index=-2
を追加してsnd_bcm2835の優先度を下げる方法と

options snd-usb-audio index=0
を追加してsnd-usb-audioの優先度をあげる方法の2通りがある感じです。

今回はsnd-usb-audio優先度をあげてみます。
vi /etc/modprobe.d/alsa-base.conf
---------------
# options snd-usb-audio index=-2
options snd-usb-audio index=0
---------------

設定を変更したら再起動します。
reboot

再起動したら、またrootになっておきます。
sudo su -

cat /proc/asound/modules
としてUSBオーディオが優先されていることを確認します。
---------------
 0 snd_usb_audio
 1 snd_bcm2835
---------------

とりあえず音が出るかを確認してみます。mplayerというを使ってみます。
apt-get install mplayer

とりあえず最初から入っているmp3ファイルを探してみます。
find / -name *.mp3

見つけたファイルを再生して音が出ることを確認してみます。
mplayer /usr/share/scratch/Media/Sounds/Vocals/Sing-me-a-song.mp3

ちなみに音がなっている間に*を押すと音量が上がり、/を押すと下がるようです。


いよいよ録音を試して見ます。

まず、マイクの感度を最大にしておきます。
amixer sset Mic 16

録音は以下のような感じです。
arecord -r 16000 -f S16_LE test.wav

マイクでしゃべり終わったらcrtl+Cを押すと録音が完了します。

録音したものの再生は以下の感じです。
aplay test.wav