Windows10 c'était pour essayer le OpenJTalk dedans, mais l'environnement nécessaire pour être pour n'importe qui parce qu'il a été rogné à partir de zéro Prenez note. Comme le titre l'indique, j'expliquerai de la construction de l'environnement à faire parler le japonais en Python.
Sous Windows, vous devez le créer vous-même pour exécuter OpenJTalk, alors préparez l'environnement.
Ce n'est pas le sujet principal, je vais donc le sauvegarder.
Démarrez l'invite de commande et exécutez les deux commandes suivantes.
cd C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Auxiliary\Build
vcvarsall.bat x64
Si vous essayez d'exécuter la commande nmake
à l'invite de commande et que vous obtenez une erreur indiquant que la commande ne peut pas être exécutée (une erreur indiquant que la commande n'est pas reconnue), vous devez mettre le chemin de nmake.exe
dans la variable d'environnement. (Je devais le passer)
J'ai pu franchir la passe suivante.
C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.24.28314\bin\Hostx64\x64
De là, j'ai renvoyé au site de ici. Je vous remercie.
Tout d'abord, récupérez OpenJTalk 1.09. Sélectionnez ici, mais il sera téléchargé immédiatement avec le lien ci-dessous.
http://downloads.sourceforge.net/open-jtalk/open_jtalk-1.09.tar.gz
Sélectionnez l'API hts_engine pour la synthèse vocale requise pour la compilation depuis ici, mais comme OpenJTalk, elle sera téléchargée immédiatement avec le lien suivant.
http://downloads.sourceforge.net/hts-engine/hts_engine_API-1.10.tar.gz
Décompressez le fichier téléchargé ʻopen_jtalk-1.09.tar.gz Réglez-le sur
c: \ temp \ open_jtalk-1.09. De plus, si vous développez hts_engineAPI en
c: \ temp \ open_jtalk-1.09 \ hts_engine_API-1.10`, vous pouvez réduire les problèmes lors de la compilation.
Maintenant que vous pouvez utiliser nmake
à l'invite de commande, compilez-le.
Commencez par hts_engine_API-1.10, exécutez donc les trois commandes suivantes. Une fois terminé, un fichier sera créé dans c: \ hts_engine_API.
cd c:\temp\open_jtalk-1.09\hts_engine_API-1.10
nmake /f Makefile.mak
nmake /f Makefile.mak install
Ensuite, compilez open_jtalk-1.09. Exécutez les trois commandes suivantes. Une fois terminé, un fichier sera créé dans c: \ open_jtalk.
cd c:\temp\open_jtalk-1.09
nmake /f Makefile.mak
nmake /f Makefile.mak install
Une chaîne de caractères déformée s'affiche vers la fin, mais il semble que vous n'ayez pas à vous en soucier pour le moment. Cliquez ici pour plus de détails (https://qiita.com/kkoba84/items/b828229c374a249965a9)
Cela générera c: \ open_jtalk \ bin \ open_jtalk.exe.
Chez MMDAgent https://sourceforge.net/projects/mmdagent/files/MMDAgent_Example/MMDAgent_Example-1.6/ Téléchargez MMDAgent_Example-1.6.zip depuis et copiez Voice / mei / *. Htvoice dans c: \ open_jtalk \ bin . Ce sont les données de quatre émotions d'une fille nommée mei.
Ceci termine la préparation.
En supposant qu'un fichier avec une entrée japonaise a été créé en tant que input.txt dans c: \ open_jtalk \ bin , Exécutez la commande suivante.
cd c:\open\jtalk\bin
open_jtalk -m mei_normal.htsvoice -x ../dic -ow output.wav input.txt
Si output.wav est créé dans le même répertoire, il réussit. Essayez de double-cliquer dessus pour voir s'il joue. À ce stade, cela peut ne pas fonctionner en japonais en raison de l'influence de l'encodage. En fait, je n'ai pas travaillé.
Utilisez le module winsound pour exécuter OpenJTalk à partir de Python sous Windows. De plus, comme le dictionnaire a été généré en compilant sur Windows cette fois, il s'agissait de shift-jis, il est donc nécessaire de convertir l'encodage lors du passage de l'encodage interne de python à stdin.
jtalk.py
#coding: utf-8
import subprocess
from datetime import datetime
import winsound
def jtalk(t):
# depend on your install folder
OPENJTALK_BINPATH = 'c:/open_jtalk/bin'
OPENJTALK_DICPATH = 'c:/open_jtalk/dic'
# VOICEPATH -> can change mei voice
OPENJTALK_VOICEPATH = 'c:/open_jtalk/bin/mei_normal.htsvoice'
open_jtalk=[OPENJTALK_BINPATH + '/open_jtalk.exe']
mech=['-x',OPENJTALK_DICPATH]
htsvoice=['-m',OPENJTALK_VOICEPATH]
speed=['-r','1.0']
outwav=['-ow','open_jtalk.wav']
cmd=open_jtalk+mech+htsvoice+speed+outwav
c = subprocess.Popen(cmd,stdin=subprocess.PIPE)
# convert text encoding from utf-8 to shitf-jis
c.stdin.write(t.encode('shift-jis'))
c.stdin.close()
c.wait()
# play wav audio file with winsound module
winsound.PlaySound('open_jtalk.wav', winsound.SND_FILENAME)
def say_datetime():
# get datetime and call jtalk
d = datetime.now()
text = '%s mois%jour de s,%temps de s%s minutes%s secondes' % (d.month, d.day, d.hour, d.minute, d.second)
jtalk(text)
if __name__ == '__main__':
say_datetime()
Placez-le dans n'importe quel répertoire et démarrez-le avec Python jtalk.py
. Bien entendu, la méthode de démarrage est gratuite. C'est un succès si l'ordinateur dit la date et l'heure.
Appelez le fichier ci-dessus (jtalk dans jtalk.py) depuis le même répertoire (également gratuit ici). De plus, puisque l'argument est le caractère que vous souhaitez prononcer, spécifiez-le. ʻU''` spécifie également le codage.
test.py
import jtalk
jtalk.jtalk(u'C'est tout')
c'est tout. Cela fait longtemps, mais merci!
https://qiita.com/Gaccho/items/f748f59784ff68d7a474 https://qiita.com/kkoba84/items/b828229c374a249965a9