それ、ラズパイでつくれるよ
それ、ラズパイでつくれるよ——日本語を喋らせる
いまや誰もが知っている小型で安価なボードコンピュータ「Raspberry Pi」。世界累計1100万台を超える販売数(2016年11月時点)を誇り、さまざまなシチュエーションで活用されている。そこで、多岐にわたるラズパイの使い方を調査し、これぞ! という活用例を集めて紹介していく企画がスタートします。題して、「それ、ラズパイでつくれるよ」。
日本語の音声出力、ラズパイで出来ますよ
第1回のテーマは「日本語テキストを音声合成で読み上げる」こと。
まずは音声の出力先を確認
ラズパイの音声出力はHDMIケーブルとステレオジャックの2つ。自動的に判別されるようになっているが、出力先を任意で変更することも可能なのでチェックしておく。
自動判別
$ sudo amixer cset numid=3 0
本体のステレオジャックへ出力
$ sudo amixer cset numid=3 1
HDMI端子へ出力
$ sudo amixer cset numid=3 2
なお、ビデオ出力がDVIモードになっているとHDMIへの音声出力は行われない。ラズパイ本体の起動SDカード内のconfig.txt(/boot/config.txt)を編集することでこの問題は解消できる。
# hdmi_driver=2 の#を外して保存する。
以下のコマンドを利用すれば、設定した出力先からサンプル音声が再生されるはずだ。
$ aplay /usr/share/sounds/alsa/Front_Center.wav
日本語音声合成プログラム「AquesTalk Pi」を準備する
日本語音声を出力するために、今回はアクエストが提供する音声合成プログラム「AquesTalk Pi」を利用する。個人なら非営利目的であれば無償で利用することが可能だ。
$ wget http://www.a-quest.com/download/package/aquestalkpi-20130827.tgz
$ tar xzvf aquestalkpi-20130827.tgz
$ cd aquestalkpi
日本語をしゃべらせてみる
$ ./AquesTalkPi “それ、ラズパイでつくれるよ” | aplay
使い方はカンタン。AquesTalkPiの後にしゃべらせたい日本語文字列を書き込むだけだ。wav形式で書き出された音声が末尾の |aplay によってそのまま音声として出力される。AquesTalkPiの基本的な構造は以下の通り。オプション利用することでより多彩な表現が可能になる。
$ ./AquesTalkPi [オプション] 入力文字列 [ > 出力ファイル ]
オプション(一部)
-f テキストファイル 読み上げさせたいテキストファイルを指定できる
-v f1 / -v f2 声種を変更する
-s 数値 発声速度を変更する(50-300, デフォルトは100)
-g 数値 音量を変更する(0-100, デフォルトは100)
なお、日本語に対応している音声合成プログラムは他にもいくつかある。例えば、名古屋工業大学で開発された「Open JTalk」は声を調整するパラメータの豊富さが特徴。自分好みの声質を追求してみるのも良いだろう。
※このコーナーでは、みなさんの「それ、ラズパイでつくれるよ」をお待ちしてます。問い合わせフォームからドシドシご応募ください。
参考リンク:
http://blog-yama.a-quest.com/?eid=970157
http://s2jp.com/2013/12/raspberry-pi-sound/
http://www.neko.ne.jp/~freewing/raspberry_pi/raspberry_pi_3_aquestalk_pi/