【Python + open jtalk】Windowsで実行
メモがてらに
環境
Windows10 64bit
Visual Studio 2022 Community
Visual Studio 2022 Communityのインストール
インストーラーが起動したら、[C++によるデスクトップ開発]にチェックを入れ、インストールする。
ビルド準備
コマンドプロンプトを起動し以下を入力
$ cd C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Auxiliary\Build
$ vcvarsall.bat x64
上記実行後、以下のようになれば、準備完了です。
**********************************************************************
** Visual Studio 2022 Developer Command Prompt v17.1.6
** Copyright (c) 2022 Microsoft Corporation
**********************************************************************
[vcvarsall.bat] Environment initialized for: 'x64'
※このウィンドウは閉じないで下さい。後にこの画面に続いて項目[nmakeでのコンパイル]を行います。
nmakeの設定
コマンド「nmake」を使うには、「nmake.exe」のパスを通す必要がある。
①システムのプロパティ>詳細設定>環境変数
②システム環境変数の[Path]を選択>新規 で以下パスを追加
C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.31.31103\bin\Hostx64\x64
③コマンドプロンプト再起動後、「nmake」入力後に以下が表示されればパスが通っています。
$nmake
Microsoft(R) Program Maintenance Utility Version 14.31.31107.0
Copyright (C) Microsoft Corporation. All rights reserved.
NMAKE : fatal error U1064: MAKEFILE が見つかりません、またターゲットが指定されていません。
Stop.
OpenJTalk、hts_engineAPIのソースコードのDL
OpenJTalkのDL
①公式サイトにアクセスします。以下画像赤枠の[Open JTalk]をクリック
②以下画像赤枠の[Source Code]をクリックすると、sourceforge.netでDLが開始します。
③「open_jtalk-1.11.tar.gz」がDLされればOK。
hts_engineAPIのDL
①公式サイトにアクセスします。以下画像赤枠の[hts_engine API]をクリック
②以下画面赤枠の[Source Code]をクリックすると、sourceforge.netでDLが開始します。
③「hts_engine_API-1.10.tar.gz」がDLされればOK
DLしたファイルの解凍と配置
上記手順で以下ファイルをDLしました。これを解凍して配置していきます。
・open_jtalk-1.11.tar.gz
・hts_engine_API-1.10.tar.gz
解凍方法
以下解凍方法などで解凍して下さい。
・コマンドプロンプトで解凍する場合
$ tar -xzf open_jtalk-1.11.tar.gz
$ tar -xzf hts_engine_API-1.10.tar.gz
・7zipで解凍する場合
説明は省略します。調べて下さい。
解凍すると以下ファイルが出来ると思います。
・open_jtalk-1.11
・hts_engine_API-1.10
配置場所
上記、解凍したファイルを以下のように配置します。
open_jtalk-1.11 → c:\temp\open_jtalk-1.11
hts_engine_API-1.10 → c:\temp\open_jtalk-1.11\hts_engine_API-1.10
※hts_engineAPIは、c:\temp\open_jtalk-1.11\hts_engine_API-1.10に展開しておくとコンパイルの際に問題が少なくなるようです。
nmakeでのコンパイル
コマンドプロンプトにて以下コマンドを実行します。
※必ず項目[ビルド準備]実行後の同コマンドプロンプト内で、以下コマンド実行してください。
$ cd c:\temp\open_jtalk-1.11\hts_engine_API-1.10
$ nmake /f Makefile.mak
$ nmake /f Makefile.mak install
$ cd c:\temp\open_jtalk-1.11
$ nmake /f Makefile.mak
$ nmake /f Makefile.mak install
上記コマンド実行後に「C:\open_jtalk\bin」に「open_jtalk.exe」が作成されていれば完了です。
詰まったところ
■現象
上記コマンド実行すると「stdio.h':No such file or directory」と言われる
■原因
vcvarsall.batを実行した同コマンドプロンプト内でコマンドを実行してなかった為(stdio.hがincludeされてない状態でコンパイルしていた。)
辞書を取得&配置する
①公式サイトにアクセスします。以下画像赤枠の[Open JTalk]をクリック
②以下画像赤枠から該当するモノををクリックすると、sourceforge.netでDLが開始します。
③shift-jisの場合「open_jtalk_dic_shift_jis-1.11.tar.gz」がDLされればOK
※shift-jisじゃないと上手く読み上げできません。(原因は不明)
④「open_jtalk_dic_shift_jis-1.11.tar.gz」を解凍して、ディレクトリ名を「dic」に変更し、「C:\open_jtalk\bin」にディレクトリごとコピー
音声モデルを取得する&配置する。
①サイトmmdagentにアクセスする。
②以下画像赤枠をクリックすると、sourceforge.netでDLが開始します。
③「MMDAgent_Example-1.8.zip」がDLされればOK
④「MMDAgent_Example-1.8.zip」を解凍して、Voice/mei/〇〇〇.htvoice を c:\open_jtalk\bin\ にコピーします。
いよいよ読み上げさせてみる
①読み上げさせるテキストを書いたファイル「input.txt (shift-jis) 」を作成し、「c:\open_jtalk\bin」に保存する。
②コマンドプロンプトにて以下コマンドを実行
$cd c:\open_jtalk\bin
$open_jtalk -m mei_normal.htsvoice -x dic -ow output.wav input.txt
③上記コマンド実行後、「c:\open_jtalk\bin」に「output.wav」というファイルが出来るので、それを開くと読み上げてくれます。