気の向くままに辿るIT/ICT/IoT
IoT・電子工作

自作ラズパイスマートスピーカーで日付時刻を読み上げ

ホーム前へ次へ
Raspberry Piって?

自作ラズパイスマートスピーカーで日付時刻を読み上げ

自作ラズパイスマートスピーカーで日付時刻を読み上げ

2019/02/06

 以前、作ったRaspberry Pi 3 Model B+とJulius、Open JTalkベースのスマートスピーカーを自作した時点で搭載済みの機能ですが、改めてページとして起こしておくことに。

 主な機能は、

 尚、ラズパイ用ACアダプタを挿したスイッチ付きコンセントでのON/OFFとは別にラズパイ用boot/reboot/shutdown物理ボタン付き。

 音声認識にJuliusを使った自作スマートスピーカーに伝言とメモの機能を実装するにあたり、マイクとスピーカーを専有してしまうOSSやALSAからPulseAudioに移行しました。

 ちなみに便利なのでラズパイだけでなく、PC/Debianにも自作スマートスピーカー機能を搭載しています。

 自ずとモニタ付きとなるPC版スマートスピーカーには、PC及びラズパイ双方のスマートスピーカー機能のデスクトップアプリとしてPyQt5/Qt Designerによる操作パネルも作成しました。

日付時刻読み上げスクリプト

$ cat ~/script/res_date.sh
#!/bin/sh
nowdate=`date | awk '{print $1 $2 $3}' | sed -e "s/$/です/"`
/home/xxx/sound/jsay $nowdate
$ cat ~/script/res_day.sh
#!/bin/sh
nowday=`date | awk '{print $4}' | sed -e "s/$/です/"`
/home/xxx/sound/jsay $nowday
$ cat ~/script/res_time.sh
#!/bin/sh
nowtime=`date | awk '{print $5}' | sed -e "s/:/時/" | sed -e "s/:/分/" | sed -e "s/$/秒です/"`
/home/xxx/sound/jsay $nowtime
$ chmod +x ~/script/res_date.sh
$ chmod +x ~/script/res_day.sh
$ chmod +x ~/script/res_time.sh

 当初、音声操作応答スクリプトでlocaltimeを使って実装していましたが、更新されないという基本的なポカに気づき、dateコマンドの結果を加工する方法で別途shellスクリプトを作成することにしました。

 引数を取る恰好にして1つでも良いですが、深く考えることもなく、スクリプトは、日付、曜日、時刻と3つに分けました。

 尚、このままだとゼロは読み飛ばしてしまうので気になる場合は、要対処。

 jsayスクリプトは、Open JTalkから成るスクリプト、詳細は、冒頭リンク「スマートスピーカーを自作」参照。

ラズパイスマートスピーカーへの反映

 ラズパイスマートスピーカーへの反映についても詳細は、「スマートスピーカーを自作」他、リンク先参照。

ホーム前へ次へ