日本語音声で時報

SnowLeopard(Mac OS X 10.6.x)に say コマンドという音声合成コマンドを発見。

ターミナル(Terminal.app)などで次の様に実行するとスピーカーから音声が出力される。

say "Hello, world."

またhttp://www.a-quest.com/quickware/saykana/をインストールすると日本語で音声合成できた。


2010-04-23に年月日・曜日を音声合成するスクリプトを見つけた。
上の「ohayo.cron」は固定で「おはようございます。〜」となっているので、
これをもとに自作してみた。

kanadate.sh

#!/bin/sh
D=""
case `date +%w` in
  0) D="にち" ;;
  1) D="げつ" ;;
  2) D="" ;; 
  3) D="すい" ;; 
  4) D="もく" ;; 
  5) D="きん" ;; 
  6) D="" ;;
esac

yy="<NUMK VAL=`date +%Y` COUNTER=ねん>"
mm="<NUMK VAL=`date +%m` COUNTER=がつ>"
dd="<NUMK VAL=`date +%d` COUNTER=にち>"
ww="${D}よ'うび"

hh=`date +%k`
gg="こんばん_わ!。"

if [ 10 -le $hh -a $hh -lt 18 ]; then
  # 10 <= hh && hh < 18

  gg="こんにち_わ!。"
elif [ 4 -le $hh -a $hh -lt 10 ]; then
  # 4 <= hh && hh < 10

  gg="おはようございま_ス!。"
fi

say="${gg}。きょ'うわ、${yy},,,${mm},${dd}${ww}です。"
/usr/local/bin/saykana "$say" &

kanatime.sh

#!/bin/sh
gg="ゴ'ゴ"
if [ `date +%p` = "AM" ]; then
  gg="ゴ'ゼン"
fi

hh="<NUMK VAL=`date +%l | sed -e 's/^[0 ]//'` COUNTER=じ>"
mm="<NUMK VAL=`date +%M | sed -e 's/^[0 ]//'` COUNTER=ふん>"

say="${gg},${hh},${mm}で_ス。!"

/usr/local/bin/saykana "$say" &

毎正時に実行

crontab -e

をターミナルなどから実行して以下を書き込むと、毎正時に日本語で時刻を教えてくれる。

0 * * * * /Users/ttmmrr/bin/kanatime.sh

追記(音声のサンプルMP3)

Download「午前9時0分です。」