OpenJTalk sur Windows10 (parler japonais avec Python depuis la construction de l'environnement)

introduction

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.

environnement

Préparation de l'environnement de construction

Sous Windows, vous devez le créer vous-même pour exécuter OpenJTalk, alors préparez l'environnement.

Installation de la communauté Visual Studio 2019

Ce n'est pas le sujet principal, je vais donc le sauvegarder.

Installation de la communauté Visual Studio 2019 Installez Visual Studio 2019 à partir du site [here](https://docs.microsoft.com/ja-jp/visualstudio/install/install-visual-studio?view=vs-2019). Lorsque le programme d'installation démarre, cochez Développement de bureau avec C ++ et appuyez sur Installer. Veuillez recommencer une fois l'installation terminée. ↓ J'ai fait référence à ce site. Je vous remercie. https://qiita.com/Gaccho/items/f748f59784ff68d7a474

Paramètres de construction

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

nmake paramètres

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

Installez OpenJTalk

De là, j'ai renvoyé au site de ici. Je vous remercie.

Obtention du code source OpenJTalk, hts_engineAPI

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 surc: \ 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.

Compiler avec nmake

Maintenant que vous pouvez utiliser nmake à l'invite de commande, compilez-le.

Compilation de hts_engine_API-1.10.

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

Compilation open_jtalk-1.09

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.

Obtenir des données vocales

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. image.png

Ceci termine la préparation.

Ouvrez le test d'exécution JTalk

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é.

Exécutez OpenJTalk à partir de Python

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.

Utiliser comme module Python

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!

Le site que j'ai utilisé comme référence

https://qiita.com/Gaccho/items/f748f59784ff68d7a474 https://qiita.com/kkoba84/items/b828229c374a249965a9

Recommended Posts

OpenJTalk sur Windows10 (parler japonais avec Python depuis la construction de l'environnement)
Mémo de construction de l'environnement Python sur Windows 10
Construction de l'environnement Anaconda Python sous Windows 10
Parlez du texte japonais avec OpenJTalk + python
Collecter des informations depuis Twitter avec Python (construction de l'environnement)
De la construction d'environnement Python à la construction d'environnement virtuel avec anaconda
Construction de l'environnement Python (Windows10 + Emacs)
Créer un environnement Python sur Windows
Construire un environnement Python avec Windows
Construire un environnement Python sous un environnement Windows 7
[Tensorflow] Construction de l'environnement Tensorflow sous Windows 10
Commencez avec Python! ~ ① Construction de l'environnement ~
installation de python2.7 dans un environnement Windows 32 bits
Mémo de construction de l'environnement Python sur Mac
[Python3] Construction de l'environnement de développement << Édition Windows >>
Construction de l'environnement de développement Python sur macOS
Mémo pour la création d'un environnement Python à l'aide de Docker sur Windows 10 Famille
Construire un environnement pour python3.8 sur Mac
Construction de l'environnement Python3 avec pyenv-virtualenv (CentOS 7.3)
Installer l'environnement de développement Python sur Windows 10
Construction de l'environnement pytorch @ python3.8 avec pipenv
Premiers pas avec Python 3.8 sous Windows
Construction d'environnements OpenCV3 et Python3 sur Ubuntu
Créez un environnement Python 2.7 64 bits avec TDM-GCC et MinGW-w64 sous Windows 7
Énumération de fichiers japonais avec le système Python2 sous Windows (contre-mesure du problème 5C)
Tout, de la création d'un environnement Python à son exécution sous Windows
Construction de l'environnement LaTeX et R (un peu Python) avec SublimeText3 (Windows)
[Ubuntu 18.04] Créer un environnement Python avec pyenv + pipenv
Exécutez le servo avec Python sur ESP32 (Windows)
Environnement de création de module d'extension Python 2.7, 3.4, 3.5 sous Windows
Procédure de construction de l'environnement de projet Python (pour Windows)
Création d'un environnement Python 3.6 avec Windows + PowerShell
Remarques sur la réalisation de l'OCR japonais avec Python
Construction de l'environnement VScode (Windows10, Python, C ++, C, Git)
Créer un environnement Python avec Anaconda sur Mac
[Windows 10] Construction de l'environnement "Deep Learning from scratch"
Entendons-nous bien avec Python # 0 (Construction de l'environnement)
Création d'un environnement de développement Python pour Windows + gVim + Poetry
Python sur Windows
environnement windows python
Construction d'environnement (python)
construction d'environnement python
Python - Construction de l'environnement
Construction de l'environnement Python
Construisez un environnement Python + bouteille + MySQL avec Docker sur RaspberryPi3! [Construction facile]
Procédure de création d'un environnement virtuel Python avec VS Code sous Windows
Intégration de données depuis l'application Python sur Windows vers Amazon Redshift avec ODBC
[Note] Construisez un environnement Python sur le serveur de location "CORESERVER"
Créer un environnement python avec pyenv sur EC2 (ubuntu)
Créez simplement un environnement d'exécution Python 3 sous Windows
Construction d'environnement explosif Python à partir de zéro (Mac)
Construction de l'environnement Python (Anaconda + VSCode) @ Windows10 [version janvier 2020]
Parler à partir du code sur mac (eSpeak, OpenJTalk)
Créez un environnement python avec ansible sur centos6
Environnement virtuel / package Python (Windows10) avec VSCode