天気予報を読み上げるスクリプトを書いたんだけど、
結局、使わずに放置してて、危うくなくすとこだった。
せっかくだから、ここにメモしておこ。手順は次の通り。
1.MOCをインストール
2.Open JTalkをインストール
"文章校正のためにOpen JTalkを使って日本語テキストを読み上げる"
に書いてある通りにしたら大丈夫だった。
ただ、間延びパッチを当てようとしたら、そんなファイルは無い、というメッセージ。
もう必要ないのかな?
3.下記のファイルread_out.shを準備し、ホームディレクトリに置く
4.実行
~$ ./read_out.sh
以上。
read_out.sh ---------------------------------------------------
#!/bin/bash
#古い音声ファイルを削除
rm -f ~/output.wav
#天気情報サイトからXMLファイルを取得し、読み上げ用の文字列を抽出・生成
ALLDESC=`wget -q -O - http://weather.livedoor.com/forecast/rss/area/130010.xml | grep "<description.*>\(.*\)<\/description>" | tr -d ' '`
ARR=(`echo $ALLDESC | tr -s '<\/description>' ' '`)
DESC=(`echo ${ARR[0]/'℃'/'度'}`)
DESC=(`echo ${DESC/')'/'曜日')}`)
#文字列の確認-例:"22日(月曜日)の天気は雨、最高気温は29度でしょう。"
#echo $DESC
#文字列から音声ファイルを生成
echo $DESC | open_jtalk -m /usr/local/share/open_jtalk/hts_voice_nitech_jp_atr503_m001-1.05/nitech_jp_atr503_m001.htsvoice -ow ~/output.wav -x /usr/local/share/open_jtalk/open_jtalk_dic_utf_8-1.09/
sleep 3
#音声ファイルを再生
mocp -S
sleep 3
if [ -f ~/output.wav ]; then
mocp -v +30 -l ~/output.wav
sleep 10
fi
mocp -s -x
sleep 3
-------------------------------------------------------------
参考にしたページ:
"文章校正のためにOpen JTalkを使って日本語テキストを読み上げる"
"shとbashでの変数内の文字列置換など"
0 件のコメント:
コメントを投稿