[PYTHON] Parler en japonais avec OpenJtalk (lire un fichier texte)

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

Parler en japonais avec OpenJtalk (lire un fichier texte)
Parler en japonais avec gTTS (lire un fichier texte)
Parler en japonais avec OpenJtalk
Parlez du texte japonais avec OpenJTalk + python
Créer un gros fichier texte avec shellscript
Convertir un fichier texte avec des valeurs hexadécimales en fichier binaire
Exporter un fichier texte compressé gzip
Créer un fichier deb avec Docker
Créer un téléchargeur de fichiers avec Django
Extraire les lignes qui correspondent aux conditions d'un fichier texte avec python
Extraire du texte japonais d'un PDF avec PDFMiner
Créer une machine virtuelle avec un fichier YAML (KVM)
Lire le fichier de données de caractères avec numpy
Créer une matrice avec PythonGUI (zone de texte)
J'ai créé un fichier de configuration avec Python
Je souhaite afficher uniquement différentes lignes du fichier texte avec diff
Remplacez la représentation unique du fichier texte lu par une étiquette (en utilisant GiNZA)
Comment lire un fichier CSV avec Python 2/3
Créer un fichier exécutable GUI créé avec tkinter
Créer un fichier PDF avec une taille de page aléatoire
Rappels du plug-in Sublime Text "Inline" dans le générateur
Créer un environnement de construction python3 avec Sublime Text3
J'ai essayé de lire un fichier CSV en utilisant Python
Enregistrer l'objet dans un fichier avec pickle
Extraire le zip avec Python (prend en charge les noms de fichiers japonais)
Créer un fichier au format Photoshop (.psd) avec python
Lire ligne par ligne à partir d'un fichier avec Python
Je veux écrire dans un fichier avec Python
Ouvrir la boîte de dialogue de fichier avec l'interface graphique Python (tkinter.filedialog)
Créer un cylindre avec une sortie de fichier open3d + STL
Lors de la lecture d'un fichier csv avec read_csv de pandas, la première colonne devient index
Japonais avec matplotlib
[Blender] Complétez l'API Python de Blender avec un éditeur de texte
Créer une fonction pour décrire les polices japonaises avec OpenCV
Tapez après avoir lu un fichier Excel avec pandas read_excel
J'ai essayé de lire les données d'un fichier en utilisant Node.js.
Exécuter un fichier Python avec une importation relative dans PyCharm
[Python] Créez un fichier de distribution pour le programme Tkinter avec cx_Freeze
Créer un environnement OCR japonais avec Anaconda (tesseract + pyocr)
Configurer un environnement de développement Python avec Sublime Text 2
Créer un fichier CAO 2D ".dxf" avec python [ezdxf]
Lors de la lecture d'une image avec SimpleITK, il y a un problème s'il y a du japonais dans le chemin