【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されてない状態でコンパイルしていた。)

Visual Studio には、vcvarsall.bat というバッチファイルが含まれており、このバッチファイルを実行することで、INCLUDE などの環境変数が定義された状態のコマンドプロンプトを起動できます。

https://qiita.com/softgate/items/b9e04da8f8fc9f180855

辞書を取得&配置する

公式サイトにアクセスします。以下画像赤枠の[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」というファイルが出来るので、それを開くと読み上げてくれます。

参考にしたサイト



いいなと思ったら応援しよう!