音声を使ったカウントダウンタイマーを作ってみました

Raspberry Piで日本語のメッセージを再生できるようにしたので、指定した秒数でカウントダウンできるようにしてみました。

シェルスクリプト(sh)なので馴染みのない人には呪文のように見えますが、これでちゃんと動いてます。

#!/bin/sh

sayMinute() {
num=`expr $1 / 60`
if [ $num -ne 0 ]; then
echo -n "$num分"
fi
}

saySeconds() {
num=`expr $1 % 60`
if [ $num -ne 0 ]; then
echo -n "$num秒"
fi
}

say() {
sayMinute $1
saySeconds $1
}

loop() {
timer=$1
interval=$2
while [ $timer -ge $interval ]; do
#echo $timer
if [ `expr $timer % $interval` -eq 0 ]; then
say $timer
echo ""
jtalk2 `say $timer`&
fi
timer=`expr $timer - 1`
sleep 1
done
return $timer
}


timer=`expr $1 + 0`

# define for notify intervals
#set 3600 900 300 60 30 10 5 1
#set 300 60 30 10 5 1
set 60 30 10 5 1

playChime
jtalk2 `say $timer` のカウントダウンを開始します。

while [ $# -gt 0 ]
do
#echo $# $1
loop $timer $1
timer=$?
shift
done

jtalk2 時間です!&


playChimeはチャイムを鳴らす別スクリプト、jtalk2は Google翻訳の音声合成を利用した音声データ生成スクリプトです。

また、カウントダウンを言う間隔を調整できるようにしてあります。

この記事へのコメント

この記事へのトラックバック

  • スパルタ? いえいえこれも愛なのです。

    Excerpt: 子供の基礎学力向上のために計算ドリルを大量に自動生成できたのはいいんですが、さてこれをどうやって子供たちにやらせようか。 Weblog: バッキーの日々是爆食 racked: 2019-06-08 09:09