はじめに
自分のPCにインストールしてあるVOICEROID2の音声データ(wav)をVOICEROIDエディタを使わずにHTTP経由で取得できるようにしたいと思います。
HTTP経由で取得できるようにすることで、VOICEROID2の音声を他のプログラムから容易に呼び出すことが可能になります。
必要なもの
- 音声データを作成したいVOICEROID2キャラクターの正規ライセンス (公式サイトにてライセンスをご購入ください)
- +ExはVOICEROID2へのインポートプログラムをインストールすることで使えるようになります。
- Ebyroid
VOICEROID2のインストール
通常の手順に従ってVOICEROID2をインストールしてください。エディタで読み上げてくれることが確認できればOKです。
※なお、これ以降の作業においてエディタを起動させておく必要はありません。
Ebyroidのインストール
Releaseページにパッケージ化されたzipファイルがおいてあるので、解凍します。
解凍したフォルダをPowerShellで開き、自分の環境にあわせて適宜設定をします。
PS C:\ebyroid-v0.2.0\ebyroid-v0.2.0> .\ebyroid.exe configure
? Which version of VOICEROID do you use? VOICEROID2
? Is your VOICEROID installed in "C:\Program Files (x86)\AHS\VOICEROID2"? Yes
? Which voice library do you like to use? tsuina_44
? Give an unique name to this voiceroid settings! tsuina
? Add one more settings for another voiceroid? No
? Which one of the voiceroids should be used as default? tsuina
Writing to "./ebyroid.conf.json"...
完了すると、同じフォルダにebyroid.conf.json
というファイルが生成されます。
Ebyroid起動
以下コマンドでEbyroidを起動させます。
PS C:\ebyroid-v0.2.0\ebyroid-v0.2.0> .\ebyroid.exe start
Loading config from JSON file...
Loaded 1 voiceroid(s): tsuina
Use "tsuina" as default...
Starting up the server, with port 4090...
Server started! - http://localhost:4090/
音声データの取得
ブラウザを開いて、http://localhost:4090/api/v1/audiofile?text=こんにちは とアクセスすると、設定したキャラクターの音声で「こんにちは」としゃべってくれると思います。
もし何もしゃべらない場合、ebyroid.exe
が停止している可能性があるので、プロンプトを確認してください。落ちていたら再度コマンド実行で起動すると思います。
Ebyroidの改造
これでHTTP経由でデータの取得が可能となりますが、このままだとlocalhostでしかアクセスできなかったり、音声のスピードや抑揚を変更したりできません。
そこで、Ebyroidを改造して、localhost以外からのアクセスだったり、音声を変更したりできるようにしました。
ビルドしてパッケージ化したものは、こちらに置いてあります。
こちらのビルドを用いれば、以下のような形で音声のチューニングが可能になります。
http://localhost:4090/api/v1/audiofile?text=こんにちは&speed=1.2&pitch=0.5&range=0.8
(この修正はとても雑なので出来れば本家で対応して欲しいなぁ
Ebyroidのサービス化
毎回Ebyroidをコマンドで立ち上げるのは大変なので、Windowsのサービス化をしましょう。
Windowsのサービス化にはNSSMを使えばOKです。
以下のように設定すればWindowsのサービスとして登録することができます。
(参考) Voiceroid Daemon
HTTP経由で音声データを取得できるようにするツールとして、voiceroid_daemonというものがありますが、私の環境ではうまく動作しませんでした。
動作させることができるなら、こちらでも問題ないと思います。
まとめ
Ebyroidを利用してVOICEROID2の音声データをHTTP経由で取得できるようにしました。
VOICEROID2はDLL(aitalked.dll)をたたくことで操作できるため、基本的にはDLLが読み込める言語であればどの言語からでも操作可能です。ただし、それぞれの言語でAPIのラッパーを作成していくのは大変なので、このようにHTTPアクセス可能にしておくことでどんな言語からでも比較的簡単に操作できるようになります。
注意事項
- 生成した音声データを配布したり、HTTPサーバーを外部公開することはライセンス違反となる可能性がありますので、利用規約をよく読み遵守するようにしてください。
- 規約違反かどうか判断ができない場合は公式に問い合わせてください。