こちらのプログラムを改造して、テキストファイルを読み上げるようにしました。
OpenJtalk で日本語の発話
プログラム
kusamakura01.py
#! /usr/bin/python
#
# kusamakura01.py
#
# Nov/01/2020
#
# --------------------------------------------------------------------
import subprocess
import sys
# --------------------------------------------------------------------
def jtalk_proc(tt):
open_jtalk=['open_jtalk']
mech=['-x','/var/lib/mecab/dic/open-jtalk/naist-jdic']
htsvoice=['-m','/usr/share/hts-voice/mei/mei_normal.htsvoice']
speed=['-r','1.0']
outwav=['-ow','open_jtalk.wav']
cmd=open_jtalk+mech+htsvoice+speed+outwav
subprocess.run(cmd,input=tt.encode())
sys.stderr.write("*** wav is created ***\n")
args = ['aplay','-q','open_jtalk.wav']
print(args)
subprocess.run(args)
#
# --------------------------------------------------------------------
sys.stderr.write("*** 開始 ***\n")
file_in = sys.argv[1]
#
fp_in = open(file_in,encoding='utf-8')
lines = fp_in.readlines()
fp_in.close()
#
count = 0
line_out = ""
for line in lines:
print(count,line)
if 5 < count:
break
line_out += line[:-1]
line_out += " "
line_out += " "
line_out += " "
count += 1
#
print(line_out)
jtalk_proc(line_out)
#
sys.stderr.write("*** 終了 ***\n")
# --------------------------------------------------------------------
入力データ
in01.txt
草枕
夏目漱石
やまみちを登りながら、こう考えた。
ちに働けばかどが立つ。じょうにさおさせば流される。意地をとおせばきゅうくつだ。とかくに人の世は住みにくい。
住みにくさがこうじると、安い所へ引き越したくなる。どこへ越しても住みにくいとさとった時、詩が生れて、えが出来る。
実行方法
./kusamakura01.py in01.txt
bash で同じことを行う場合
#
perl -pe 's/\n/ /g' < in01.txt > tmp01.txt
#
open_jtalk \
-x /var/lib/mecab/dic/open-jtalk/naist-jdic \
-m /usr/share/hts-voice/mei/mei_normal.htsvoice \
-r 1.0 \
-ow ./out01.wav \
tmp01.txt
#
aplay out01.wav
#
wav ファイルを作成しない方法
perl -pe 's/\n/ /g' < in01.txt \
| open_jtalk \
-x /var/lib/mecab/dic/open-jtalk/naist-jdic \
-m /usr/share/hts-voice/mei/mei_normal.htsvoice \
-r 1.0 \
-ow /dev/stdout | aplay --quiet