Posted at

Raspberry Pi3にワンライナーで時報ってもらう


■はじめに

ラズパイに時報ってもらいます。シンプルに。


■結論

echo "只今の時刻は、"`date "+%k"`"時 "`date "+%-M"`"分 "`date "+%-S"`"秒です。" | open_jtalk -m /usr/share/hts-voice/mei/mei_normal.htsvoice -x /var/lib/mecab/dic/open-jtalk/naist-jdic/ -ow /tmp/test.wav && aplay /tmp/test.wav

これで、「只今の時刻は、23時 20分 1秒です。」としゃべってくれます。

#cron登録したいときは以下で。

* * * * * export LANG=ja_JP.UTF-8;echo "只今の時刻は、"`date "+\%k"`"時 "`date "+\%-M"`"分 "`date "+\%-S"`"秒です。" | open_jtalk -m /usr/share/hts-voice/mei/mei_normal.htsvoice -x /var/lib/mecab/dic/open-jtalk/naist-jdic/ -ow /tmp/test.wav && aplay /tmp/test.wav


■解説

echo "只今の時刻は、"`date "+%k"`"時 "`date "+%-M"`"分 "

`date "+%-S"`"秒です。"

セリフとして、「只今の時刻は、H時 M分 S秒です。」と作成。

一桁の時間は一桁になる(06秒とならない)ように。

| open_jtalk 

-m /usr/share/hts-voice/mei/mei_normal.htsvoice
-x /var/lib/mecab/dic/open-jtalk/naist-jdic/
-ow /tmp/test.wav

日本語発声の音声ファイル作成パッケージJTalkで、セリフをWAVファイル化。

-m <音響モデル> ※女性音声のMMDAgentを利用。

-x <辞書ディレクトリ>

-ow <出力WAVファイル>

&& aplay /tmp/test.wav

音声ファイルをaplayで音として出力。

※cron用は、日本語設定とecho内の%のエスケープを入れただけ。


■準備

Raspberry Pi3に日本語で喋ってもらうまで

https://qiita.com/Higemal/items/6dde8637a680bfe200ca

RaspberryPi3で初めてcrontabを使う前に

https://qiita.com/Higemal/items/5a579b2701ef7c473062


■出典/参考

Open JTalk

http://open-jtalk.sourceforge.net/

MMDAgent

http://www.mmdagent.jp/

Raspberry Pi3に日本語で喋ってもらうまで

https://qiita.com/Higemal/items/6dde8637a680bfe200ca

Raspberry Piでテキストを音声化する (Open JTalk)

http://www.taneyats.com/entry/raspi-open-jtalk

RaspberryPi3で初めてcrontabを使う前に

https://qiita.com/Higemal/items/5a579b2701ef7c473062

crontabでファイル名に日付が入ったログを吐くときはdateの%をエスケープしないとダメ

https://mochikoastech.hatenablog.com/entry/2018/08/29/221126