22
17

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

VOICEVOXのサーバー(エンジン)をWindowsで立てる

Posted at

経緯

Raspberry PiでVOICEVOXの音声を扱いたく、インストールしたが、"テスト"の3文字の音声合成に、1分程度かかってしまったため、ほかのPCに処理してもらう。

したかったこと

Windows 10 にてVOICEVOXのサーバー(エンジン)を起動し、同一のローカルネットワークに存在するコンピュータ(Raspberry Piなど)から音声合成のコマンドを実行し、再生する。

サーバーのPCがハイスペックであれば、Raspberry Piなどから音声合成のリクエストを行うことで、低スペックコンピュータでも高速に音声ファイルを用意することができる。

名称未設定ファイル.drawio (2).png

手順

事前準備

  • サーバーのIPアドレスの固定

本編手順

  • VOICEVOXのインストール
  • VOICEVOXのエンジンの起動
  • ブラウザからVOICEVOX エンジンが起動していることを確認
  • 外部機器からの音声合成確認
  • VOICEVOXのエンジンの自動起動の登録

手順詳細

サーバーのIPアドレスの固定

必要であれば、IPアドレスを固定しておく。(クライアントから、VOICEVOXのサーバーへアクセスする際、サーバーの再起動ごとにIPアドレスが毎回変わると困るため)

VOICEVOXのインストール

Windowsにて、VOICEVOXをホームページからインストーラーでインストールする。

VOICEVOXのエンジンを起動する。

VOICEVOXは「エディター」「エンジン」「コア」の3段になっているが、ここではエンジンを起動する。

VOICEVOXの全体構成

最終的には、PCとともに自動起動を設定したいが、確認のためターミナル(コマンドプロンプト)から起動する。

VOICEVOXは以下のようなディレクトリに保存されているはず
C:\Users\ユーザー名\AppData\Local\Programs\VOICEVOX

ここで、--hostオプションにて、VOICEVOX を起動するPCのIPアドレスを指定する。
PCのIPアドレスはipconfigで確認しておく。

例:起動するPCのIPアドレスが192.168.0.2の場合

 ~\AppData\Local\programs\VOICEVOX\run.exe --host 192.168.0.2

実行結果:
image.png
ちなみに↑のコマンドはユーザーフォルダにインストールされている前提であるため、管理者権限のコマンドプロンプトなどでは起動できない。

ここで、Windows Defender ファイアウォールの許可が求められると思うので、許可する。
image.png

標準ではTCPの50021ポートを利用します。変更したい場合は--portオプションにて変更できます。(普通は標準のポートでいいと思うけど)

例:起動するPCのIPアドレスが192.168.0.2でポートが50001の場合

 ~\AppData\Local\programs\VOICEVOX\run.exe --host 192.168.0.2 --port 50001

ブラウザからVOICEVOX エンジンが起動していることを確認

VOICEVOX エンジンはHTTPのサーバーとして起動しているので、ブラウザからアクセスできます。
IPアドレスとポートを指定してブラウザに入力します。

例:起動するPCのIPアドレスが192.168.0.2でポートが50021の場合

image.png
image.png

この時点でアクセスできない場合、

VOICEVOX エンジンを起動した実行結果として、サーバーのIPアドレスとポートが表示されるはずなので、表示されているか、またブラウザに入力している価が正しいか確認する。
image.png

ほかの機器からアクセス可能であることを確認する。

同一のローカルネットワークに存在するほかの機器からブラウザにてアクセスできることを確認する。

例:起動するPCのIPアドレスが192.168.0.2でポートが50021の場合

外部機器からの音声合成確認

クライアントがLinuxの場合 (外部機器からの音声合成確認)

curlコマンドにて、リクエストを送信することで、wavファイルが返却される。

例:
IPアドレス 192.168.0.2
ポート 50021
発話内容 "test"
話者 3番
保存ファイル名 audio.wav

以下のコマンドは応答をファイルに保存して次の処理を行うため、1行づつ実行する必要がある。

echo test > text.txt
curl -X 'POST' '192.168.0.2:50021/audio_query?speaker=3' --get --data-urlencode text@text.txt > query.json
curl -X 'POST' -H "Content-Type: application/json" '192.168.0.2:50021/synthesis?speaker=3' -d @query.json > audio.wav

または、パイプ処理を利用する。

 echo test | curl -X 'POST' '192.168.0.2:50021/audio_query?speaker=3' --get --data-urlencode text@- | curl -X  'POST'  -H "Content-Type: application/json" '192.168.0.2:50021/synthesis?speaker=3' -d @- > audio.wav

作成されたaudio.wavは合成音声により、”テスト”と発音された音声となっていることが確認できる。

詳細は以下の公式サイトに手順が記載されている。

Windowsの場合 (外部機器からの音声合成確認)

コマンドプロンプトからcurlコマンドにて、リクエストを送る場合、jsonファイルを送信する手順が難しいので省きます。

wsl2のubuntuからcurlコマンドにて確認可能です。

VOICEVOXのエンジンの自動起動の登録

C:\Users\ユーザー名\AppData\Local\Programs\VOICEVOX\run.exeのショートカットを作成する。
image.png

作成したショートカットファイルのプロパティから、リンク先に--hostオプションを追記する。
image.png

WindowsのスタートアップフォルダC:\Users\ユーザー名\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startupなどにショートカットファイルを移動する。

再起動すると自動でVOICEVOXのエンジンが起動する。
image.png

難しかったところ

Windows の curlコマンドでの jsonをpostすることが難しく、あきらめた。(@でファイルを指定できなかった)

VOICEVOXのエンジンの--hostオプションを指定しないと、外部からアクセスできなかった。(ファイヤーウォールのポート開放設定を正しく行っていなかったからかもしれない)

22
17
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
22
17

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?