OpenJTalk on Windows10
개시하다
Windows 10으로 OpenJTalk을 시험해 보고 싶지만, 0부터 필요한 환경을 정리하기 위해 누구에게 좋은 점이 있는지 적어 두겠습니다.
제목과 같이 환경 구축부터 파이톤이 일본어를 할 수 있는 곳까지 설명한다.
컨디션
환경 구축 준비
Windows에서 OpenJTalk을 실행하려면 자체적으로 구축해야 하기 때문에 환경을 조정해야 합니다.
Visual Studio 2019 Community 설치
이것은 본제가 아니니, 내가 거두어들일게.
Visual Studio 2019 Community 설치
Visual Studio 2019는 여기. 웹 사이트에서 설치합니다.
설치 프로그램이 시작된 후 C++의 데스크톱 개발을 확인하고 설치를 누르십시오.
설치가 완료되면 를 한 번 시작합니다.
↓ 이 사이트를 참고하도록 허락해 주십시오. 감사합니다.
https://qiita.com/Gaccho/items/f748f59784ff68d7a474
구성 설정
명령 프롬프트를 시작하여 다음 두 명령을 실행합니다.$ cd C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Auxiliary\Build
$ vcvarsall.bat x64
nmake 설정
명령 프롬프트nmake
에서 명령을 실행할 때 실행할 수 없는(명령이 인식되지 않은 오류) 메시지가 나타나면 환경 변수 경로nmake.exe
를 통과해야 합니다.
나는 아래의 경로를 통과했다.C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.24.28314\bin\Hostx64\x64
OpenJTalk 설치
여기서부터 여기. 사이트를 참고하였습니다. 감사합니다.
소스 코드 가져오기OpenJTalk,hts-engineAPI
우선 OpenJTalk1.09를 획득여기.에서 선택하면 아래 링크를 즉시 다운로드할 수 있습니다.
필요한 소리 합성용 프로그램 라이브러리 hts 컴파일여기.에서 enginneAPI를 선택하면 OpenJTalk와 마찬가지로 아래 링크를 통해 바로 다운로드할 수 있습니다.
다운로드 확장 open_jtalk-1.09.tar.gz
c:\temp\open_jtalk-1.09
enginneAPIc:\temp\open_jtalk-1.09\hts_engine_API-1.10
를 확장하면 컴파일할 때 문제가 적습니다.
nmake의 컴파일
방금 명령 알림에서 nmake
을 사용했는데, 지금 컴파일합니다.
hts_engine_API-1.10의 컴파일
일단 hts.engine_API-1.10부터 시작하려면 다음 세 가지 명령을 실행합니다.
완료 후 c:\htsengine_API에 파일을 생성합니다.$ cd c:\temp\open_jtalk-1.09\hts_engine_API-1.10
$ nmake /f Makefile.mak
$ nmake /f Makefile.mak install
open_jtalk-1.09의 번역
다음은 오픈.jtalk-1.09의 컴파일을 진행합니다. 다음 세 가지 명령을 실행하십시오. 완료되면 c:\open파일이 jtalk에 만들어졌습니다.$ cd c:\temp\open_jtalk-1.09
$ nmake /f Makefile.mak
$ nmake /f Makefile.mak install
마지막으로 혼란스러운 문자열이 표시되지만, 잠시 신경 쓸 필요가 없습니다. 자세한 상황 여기.
여기에서 c:\openjtalk\bin\open_jtalk.생성exe.
Voice 데이터 가져오기
MMDAgent
https://sourceforge.net/projects/mmdagent/files/MMDAgent_Example/MMDAgent_Example-1.6/
부터, MMDAgentExample-1.6.zip, Voice/mei/*를 다운로드합니다.c:\open htvoice미리 복사해 두다.
미라는 여자애?네 가지 감정 데이터.
이것으로 끝낼 준비를 하다.
Open JTalk 테스트 수행
일본어 파일을 입력합니다.txt c:\openjtalk\bin에서
다음 명령을 실행하십시오.$ cd c:\open\jtalk\bin
$ open_jtalk -m mei_normal.htsvoice -x ../dic -ow output.wav input.txt
같은 목록에 있습니다.웨이브를 만들면 성공할 수 있습니다. 더블 클릭으로 재생할 수 있는지 확인해 주십시오. 이 때 인코딩의 영향으로 일본어로 하면 순조롭게 진행될 수 없습니다. 사실 저 혼자 잘 할 수 없습니다.
파이썬부터 OpenJTalk 수행
Windows에서 Pytohon에서 OpenJTalk을 실행할 때 winsound 모듈을 사용합니다. 또한, 이번에 Windows에서 생성된 사전은shift-jis이기 때문에pythn의 내부 인코딩을 stdin에 전달할 때 encoding을 변환해야 합니다.
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月%s日、%s時%s分%s秒' % (d.month, d.day, d.hour, d.minute, d.second)
jtalk(text)
if __name__ == '__main__':
say_datetime()
이 설정을 임의의 디렉터리 Python jtalk.py
에서 시작합니다. 시작 방법은 당연히 자유입니다. 만약 컴퓨터가 나에게 날짜와 시간을 알려줄 수 있다면 성공할 것입니다.
Python 모듈로 사용
같은 디렉터리 (여기도 물론 자유롭습니다) 에서 상기 파일 (jtalk.py의 jtalk) 을 호출합니다. 또한, 매개 변수는 말을 하게 하는 문자이기 때문에 그것을 지정합니다. u''
인코딩도 지정됩니다.
test.pyimport jtalk
jtalk.jtalk(u'これでおしまい')
그게 다야.
시간이 길어졌지만 감사합니다!
사이트 축소판 그림
https://qiita.com/Gaccho/items/f748f59784ff68d7a474
https://qiita.com/kkoba84/items/b828229c374a249965a9
Reference
이 문제에 관하여(OpenJTalk on Windows10), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/koichi_baseball/items/09cd984a409b3701b423
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
$ cd C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Auxiliary\Build
$ vcvarsall.bat x64
여기서부터 여기. 사이트를 참고하였습니다. 감사합니다.
소스 코드 가져오기OpenJTalk,hts-engineAPI
우선 OpenJTalk1.09를 획득여기.에서 선택하면 아래 링크를 즉시 다운로드할 수 있습니다.
필요한 소리 합성용 프로그램 라이브러리 hts 컴파일여기.에서 enginneAPI를 선택하면 OpenJTalk와 마찬가지로 아래 링크를 통해 바로 다운로드할 수 있습니다.
다운로드 확장
open_jtalk-1.09.tar.gz
c:\temp\open_jtalk-1.09
enginneAPIc:\temp\open_jtalk-1.09\hts_engine_API-1.10
를 확장하면 컴파일할 때 문제가 적습니다.nmake의 컴파일
방금 명령 알림에서
nmake
을 사용했는데, 지금 컴파일합니다.hts_engine_API-1.10의 컴파일
일단 hts.engine_API-1.10부터 시작하려면 다음 세 가지 명령을 실행합니다.
완료 후 c:\htsengine_API에 파일을 생성합니다.
$ cd c:\temp\open_jtalk-1.09\hts_engine_API-1.10
$ nmake /f Makefile.mak
$ nmake /f Makefile.mak install
open_jtalk-1.09의 번역
다음은 오픈.jtalk-1.09의 컴파일을 진행합니다. 다음 세 가지 명령을 실행하십시오. 완료되면 c:\open파일이 jtalk에 만들어졌습니다.
$ cd c:\temp\open_jtalk-1.09
$ nmake /f Makefile.mak
$ nmake /f Makefile.mak install
마지막으로 혼란스러운 문자열이 표시되지만, 잠시 신경 쓸 필요가 없습니다. 자세한 상황 여기.여기에서 c:\openjtalk\bin\open_jtalk.생성exe.
Voice 데이터 가져오기
MMDAgent
https://sourceforge.net/projects/mmdagent/files/MMDAgent_Example/MMDAgent_Example-1.6/
부터, MMDAgentExample-1.6.zip, Voice/mei/*를 다운로드합니다.c:\open htvoice미리 복사해 두다.
미라는 여자애?네 가지 감정 데이터.
이것으로 끝낼 준비를 하다.
Open JTalk 테스트 수행
일본어 파일을 입력합니다.txt c:\openjtalk\bin에서
다음 명령을 실행하십시오.$ cd c:\open\jtalk\bin
$ open_jtalk -m mei_normal.htsvoice -x ../dic -ow output.wav input.txt
같은 목록에 있습니다.웨이브를 만들면 성공할 수 있습니다. 더블 클릭으로 재생할 수 있는지 확인해 주십시오. 이 때 인코딩의 영향으로 일본어로 하면 순조롭게 진행될 수 없습니다. 사실 저 혼자 잘 할 수 없습니다.
파이썬부터 OpenJTalk 수행
Windows에서 Pytohon에서 OpenJTalk을 실행할 때 winsound 모듈을 사용합니다. 또한, 이번에 Windows에서 생성된 사전은shift-jis이기 때문에pythn의 내부 인코딩을 stdin에 전달할 때 encoding을 변환해야 합니다.
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月%s日、%s時%s分%s秒' % (d.month, d.day, d.hour, d.minute, d.second)
jtalk(text)
if __name__ == '__main__':
say_datetime()
이 설정을 임의의 디렉터리 Python jtalk.py
에서 시작합니다. 시작 방법은 당연히 자유입니다. 만약 컴퓨터가 나에게 날짜와 시간을 알려줄 수 있다면 성공할 것입니다.
Python 모듈로 사용
같은 디렉터리 (여기도 물론 자유롭습니다) 에서 상기 파일 (jtalk.py의 jtalk) 을 호출합니다. 또한, 매개 변수는 말을 하게 하는 문자이기 때문에 그것을 지정합니다. u''
인코딩도 지정됩니다.
test.pyimport jtalk
jtalk.jtalk(u'これでおしまい')
그게 다야.
시간이 길어졌지만 감사합니다!
사이트 축소판 그림
https://qiita.com/Gaccho/items/f748f59784ff68d7a474
https://qiita.com/kkoba84/items/b828229c374a249965a9
Reference
이 문제에 관하여(OpenJTalk on Windows10), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/koichi_baseball/items/09cd984a409b3701b423
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
일본어 파일을 입력합니다.txt c:\openjtalk\bin에서
다음 명령을 실행하십시오.
$ cd c:\open\jtalk\bin
$ open_jtalk -m mei_normal.htsvoice -x ../dic -ow output.wav input.txt
같은 목록에 있습니다.웨이브를 만들면 성공할 수 있습니다. 더블 클릭으로 재생할 수 있는지 확인해 주십시오. 이 때 인코딩의 영향으로 일본어로 하면 순조롭게 진행될 수 없습니다. 사실 저 혼자 잘 할 수 없습니다.파이썬부터 OpenJTalk 수행
Windows에서 Pytohon에서 OpenJTalk을 실행할 때 winsound 모듈을 사용합니다. 또한, 이번에 Windows에서 생성된 사전은shift-jis이기 때문에pythn의 내부 인코딩을 stdin에 전달할 때 encoding을 변환해야 합니다.
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月%s日、%s時%s分%s秒' % (d.month, d.day, d.hour, d.minute, d.second)
jtalk(text)
if __name__ == '__main__':
say_datetime()
이 설정을 임의의 디렉터리 Python jtalk.py
에서 시작합니다. 시작 방법은 당연히 자유입니다. 만약 컴퓨터가 나에게 날짜와 시간을 알려줄 수 있다면 성공할 것입니다.
Python 모듈로 사용
같은 디렉터리 (여기도 물론 자유롭습니다) 에서 상기 파일 (jtalk.py의 jtalk) 을 호출합니다. 또한, 매개 변수는 말을 하게 하는 문자이기 때문에 그것을 지정합니다. u''
인코딩도 지정됩니다.
test.pyimport jtalk
jtalk.jtalk(u'これでおしまい')
그게 다야.
시간이 길어졌지만 감사합니다!
사이트 축소판 그림
https://qiita.com/Gaccho/items/f748f59784ff68d7a474
https://qiita.com/kkoba84/items/b828229c374a249965a9
Reference
이 문제에 관하여(OpenJTalk on Windows10), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/koichi_baseball/items/09cd984a409b3701b423
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
#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月%s日、%s時%s分%s秒' % (d.month, d.day, d.hour, d.minute, d.second)
jtalk(text)
if __name__ == '__main__':
say_datetime()
같은 디렉터리 (여기도 물론 자유롭습니다) 에서 상기 파일 (jtalk.py의 jtalk) 을 호출합니다. 또한, 매개 변수는 말을 하게 하는 문자이기 때문에 그것을 지정합니다.
u''
인코딩도 지정됩니다.test.py
import jtalk
jtalk.jtalk(u'これでおしまい')
그게 다야.시간이 길어졌지만 감사합니다!
사이트 축소판 그림
https://qiita.com/Gaccho/items/f748f59784ff68d7a474
https://qiita.com/kkoba84/items/b828229c374a249965a9
Reference
이 문제에 관하여(OpenJTalk on Windows10), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/koichi_baseball/items/09cd984a409b3701b423
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Reference
이 문제에 관하여(OpenJTalk on Windows10), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/koichi_baseball/items/09cd984a409b3701b423텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)