今回はこちら。
↑の画像の通りですが30分ごとに時報を喋るBOT(?)を作りました。
デモ
動画をご覧ください。
[video width="1920" height="1080" mp4="https://ykyuki.net/blog/wp-content/uploads/2017/11/1241ceb55e7b511d0ef1b5f275b95225.mp4"][/video]
喋っているのが分かったと思います。
今回はこれを作っていきたいと思います。
システム
- AquesTalkPIで喋る
- 30分ごとにcronで実行する
- ランダムに声の種類を変える
作り方
では、作り方を紹介していきます。
事前準備
まず、RaspberryPiとスピーカーを接続して、音が出るようにしておきます。
覚えておくと便利なコマンド
amixer cset numid=3 1 #音声出力をアナログに設定
alsamixer #音量を設定(↑と↓キーで設定、終了はEscキー)
次に、AquesTalkPIを下記のサイトからダウンロードします。(スクロールバーを最後までスクロールしないとダウンロードボタンが押せません。)
AquesTalk Pi - Raspberry Pi用の音声合成アプリ
そしたら、ラズベリーパイに転送しておきます。
時報を喋るプログラムをダウンロード
プログラムは下の通りです。(Gistにアップロードしてあります)
上のプログラムはgitコマンドかzipファイルでダウンロードできます。
- gitの場合
git clone https://gist.github.com/b181010cac59810753cfb850ce35e2b5.git
- zipでダウンロードする場合
wget https://gist.github.com/ykyuki/b181010cac59810753cfb850ce35e2b5/archive/408c1ee87f921e5ceec97f771a785f0d091fd24d.zip
ランダムにしゃべるようにする
ランダムにしゃべるように乱数を生成して数に応じてスクリプトを実行するようにしたいと思います。
下記のサイトを参考にさせていただきました。
シェルやシェルスクリプトで乱数を使う2つの方法
で、できたコードがこちら
「/path/to」の部分は実行するスクリプトがある場所にしてくださいね。
cronに登録する
あとは、↑のランダムに実行するプログラムをcronに登録するだけです。
cronへの登録方法はわかりやすいサイトがたくさんあるのでぜひ、それを見てみてください。
自分は毎時0分と30分に実行するようにしました。
完成!
cronで設定した時刻が来るまで待つか、手動でスクリプトを実行してみてください。
音が鳴ったら成功です!
音が鳴らなかったら↑の手順をもう一度読み直して分からないところがあったら、コメント欄に書き込んでください(わかる範囲で答えます)
(あと、TwitterでこのブログのURLをつぶやいてもコメント欄に反映されます)
あとがき
どうだったでしょうか。
できましたか?
少しのプログラミングだけで、簡単にラズパイに喋らせることができます。
今後、ニュースや予定を読み上げるようにもしたいと思います。
以上、今日の投稿でした。