J'ai modifié ce programme pour lire un fichier texte à haute voix. Parler en japonais avec OpenJtalk
programme
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("***début***\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("***Fin***\n")
# --------------------------------------------------------------------
Des données d'entrée
in01.txt
Oreiller d'herbe
Natsume Soseki
En montant Yamamichi, j'ai pensé comme ça.
Si vous travaillez plus tard Si vous le laissez bien aller, il sera emporté. C'est une chose têtue. Quoi qu'il en soit, le monde des gens est difficile à vivre.
Quand ça devient difficile de vivre, je veux déménager dans un endroit bon marché. Quand j'ai du mal à vivre partout où je vais, la poésie naît et je peux le faire.
Méthode d'exécution
./kusamakura01.py in01.txt
Si tu fais la même chose avec 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
#
Comment ne pas créer de fichier 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
Recommended Posts