2016年8月22日月曜日

天気予報の読み上げ

目覚まし(前回の記事を参照)の追加機能として、
天気予報を読み上げるスクリプトを書いたんだけど、
結局、使わずに放置してて、危うくなくすとこだった。
せっかくだから、ここにメモしておこ。手順は次の通り。

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 件のコメント:

コメントを投稿