openjtalkで現在時刻を喋ってもらう実験
ラズベリーパイ3に入れたメイさんの声で、現在時刻を喋ってもらいたくなった。
自分が長々と書いた文章じゃなくて、現在時刻をさくっと教えてほしいんだよ!
参考サイトはやはりからあげさん。
ミクの声で喋らせるのは、ちょっとこっちに置いといて、ラズベリーパイ3にOpenJTalk入れてメイさんの声では喋るし、メイさんの声で喋ってもらおう。
なので下ごしらえまでは完了しているということで進めていく。
頑張っておしゃべりさせるzo!
こちらの参考サイトも確認する。
参考サイトから類推するに、htsvoiceファイルの場所をちゃんと指定してやったら、その音声データで喋らせることができそう。
私の場合、メイさんの声は/home/pi/Voice_mei/mei_normal.htsvoiceというところにある。
以下のファイルをjtalkmei.pyという名前で作成し、/home/piに保存
++++++++++++++++++++++++++++++++++++++++++++++++++++
# -*- coding: utf-8 -*-
import subprocess
from datetime import datetime
def jtalk(t):
open_jtalk=['open_jtalk']
mech=['-x','/var/lib/mecab/dic/open-jtalk/naist-jdic']
htsvoice=['-m','/home/pi/Voice_mei/mei_normal.htsvoice']
speed=['-r','1.0']
outwav=['-ow','open_jtalk.wav']
cmd=open_jtalk+mech+htsvoice+speed+outwav
c = subprocess.Popen(cmd,stdin=subprocess.PIPE)
c.stdin.write(t)
c.stdin.close()
c.wait()
aplay = ['aplay','-q','open_jtalk.wav']
wr = subprocess.Popen(aplay)
def say_datetime():
d = datetime.now()
text = '%s月%s日、%s時%s分%s秒' % (d.month, d.day, d.hour, d.minute, d.second)
jtalk(text)
if __name__ == '__main__':
say_datetime()
++++++++++++++++++++++++++++++++++++++++++++++++++++
そして下記を実行。
$ python jtalkmei.py
ワンテンポ遅れて、喋ったー!
さて、ここからが実験です。時刻は喋って欲しいけどもう少し、喋る言葉を変えてみよう。下記の内容をテキストでjtalkmeit.pyというファイル作って、/home/piに保存。
++++++++++++++++++++++++++++++++++++++++++++++++++++
# -*- coding: utf-8 -*-
import subprocess
from datetime import datetime
def jtalk(t):
open_jtalk=['open_jtalk']
mech=['-x','/var/lib/mecab/dic/open-jtalk/naist-jdic']
htsvoice=['-m','/home/pi/Voice_mei/mei_normal.htsvoice']
speed=['-r','1.0']
outwav=['-ow','open_jtalk.wav']
cmd=open_jtalk+mech+htsvoice+speed+outwav
c = subprocess.Popen(cmd,stdin=subprocess.PIPE)
c.stdin.write(t)
c.stdin.close()
c.wait()
aplay = ['aplay','-q','open_jtalk.wav']
wr = subprocess.Popen(aplay)
def say_datetime():
d = datetime.now()
text = 'ただいまの時刻は、%s時%s分です。' % (d.hour, d.minute)
jtalk(text)
if __name__ == '__main__':
say_datetime()
++++++++++++++++++++++++++++++++++++++++++++++++++++
どきどきしながら下記実行。
$ python jtalkmeit.py
喋ったー。ただいまのイントネーションがおかしいけど、しゃべった。
メイさんのイントネーションを矯正する方法ってあるんかなぁ。
さーて次は、天気予報も喋ってもらおう。