1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

AWSでVOICEVOXを用いた読み上げサーバを構築してみた

Last updated at Posted at 2025-12-29

こんにちは!社会人一年目?のタレカツです!

今回はAWS上に音声の読み上げソフトであるVOICEVOXを使ったサーバを構築しました。音声出力ができるサービスとしては、Pollyや最近話題のNova2 sonicがありますが、出力される声の種類の選択肢が日本語では、まだ少ないです。そこで今回VOICEVOXを用いた音声出力を試してみました。使用した音声としては以下の音声になります。

● VOICEVOX(ずんだもん)
● VOICEVOX(麒ヶ島宗麟)

※ VOICEVOXの音声はキャラクターごとに利用規約があります。
商用利用や再配布を行う場合は、必ず公式サイトの規約を確認してください。

インスタンスの起動

今回はUbuntuの24.04を使用して、インスタンスタイプはt3.micro(どのくらいがベストなのかは未検証)、ストレージは20GBにしています。

image.png

VOICEVOX導入後のディスク使用量
image.png

VOICEVOXの構築

1. voicevoxのソフトウェアのインストールを行います。

root@ip-172-31-59-171:/voicevox# wget https://github.com/VOICEVOX/voicevox/releases/download/0.25.0/
voicevox-linux-cpu-x64-0.25.0.tar.gz
--2025-12-29 04:42:23--  https://github.com/VOICEVOX/voicevox/releases/download/0.25.0/voicevox-linux-cpu-x64-0.25.0.tar.gz
Resolving github.com (github.com)... 140.82.116.4
Connecting to github.com (github.com)|140.82.116.4|:443... connected.
HTTP request sent, awaiting response... 302 Found
Location: https://release-assets.githubusercontent

省略

今回はwgetコマンドを使っていますが、webページからでもインストールできます。インストーラは試していないですが、シェルスクリプトを実行してインストールする形でした。

スクリーンショット 2025-12-29 134127.png

2. tarコマンドで展開します。これでVOICEVOX自体の準備は完了です。

root@ip-172-31-59-171:/voicevox# tar -zxvf voicevox-linux-cpu-x64-0.25.0.tar.gz
VOICEVOX/
VOICEVOX/locales/
VOICEVOX/locales/en-US.pak
VOICEVOX/locales/ja.pak
VOICEVOX/chrome_100_percent.pak
VOICEVOX/vk_swiftshader_icd.json
VOICEVOX/chrome_crashpad_handler
VOICEVOX/libvk_swiftshader.so
VOICEVOX/libffmpeg.so
VOICEVOX/libGLESv2.so

省略

VOICEVOXの実行

gui環境で動かすためには/VOICEVOXの下のvoicevoxという実行ファイルを動かすと思うのですが、今回は必要ないので/VOICEVOX/vv-engineの下のrunという実行ファイルを動かします。

root@ip-172-31-59-171:/voicevox/VOICEVOX/vv-engine# pwd
/voicevox/VOICEVOX/vv-engine
root@ip-172-31-59-171:/voicevox/VOICEVOX/vv-engine# ls -l
total 30892
drwxr-xr-x 17 1001 1001     4096 Oct 28 16:58 engine_internal
-rw-r--r--  1 1001 1001     2346 Oct 28 15:57 engine_manifest.json
-rw-r--r--  1 1001 1001  4650600 Oct 27 18:09 libvoicevox_core.so
-rw-r--r--  1 1001 1001 18219584 Oct 27 18:09 libvoicevox_onnxruntime.so
drwxr-xr-x  2 1001 1001     4096 Oct 27 18:09 model
drwxr-xr-x  4 1001 1001     4096 Oct 28 15:57 resources
-rwxr-xr-x  1 1001 1001  8740616 Oct 28 15:57 run

runを実行すると以下のようになります。今回はEC2以外からAPIで呼び出したいため、--host 0.0.0.0実行の際につけています。

実行すると以下のように待ち状態になります。セキュリティグループには50021(おそらくデフォルト)のインバウンドルールを加える必要があります。

root@ip-172-31-59-171:/voicevox/VOICEVOX/vv-engine# ./run --host 0.0.0.0
voicevox_engine/core/core_initializer.py:99: UserWarning: cpu_num_threads is set to 0. Setting it to an appropriate value.
2025-12-29T04:51:22.306236+00:00  INFO voicevox_core::synthesizer: CPUを利用します
reading /root/.local/share/voicevox-engine/user.dict_csv-a0846c14-383f-48d5-a577-fa47eca748cb.tmp ... 89
emitting double-array: 100% |###########################################|

done!
INFO:     Started server process [1324]
INFO:     Waiting for application startup.
INFO:     Application startup complete.
INFO:     Uvicorn running on http://0.0.0.0:50021 (Press CTRL+C to quit)

外部から呼び出してみた

今回は自身のローカルのMacから呼び出してみました。

Mac側

Mac側では以下のように実行しました。少しわかりにくいのですが、最初の呼び出しで音声合成用のクエリ作成をjson形式で行い、得られたものから音声合成を行なっています。「speaker=1」のところで使用する音声の種類を選択、「text=」の部分で読み上げる文章を書いています。

curl -s -X POST -G \
  --data-urlencode "text=こんにちは、私がタレカツです" \
  --data-urlencode "speaker=1" \
  http://IPアドレス:50021/audio_query \
| curl -s -X POST \
  -H "Content-Type: application/json" \
  -d @- \
  "http://IPアドレス:50021/synthesis?speaker=1" \
  > out_1.wav

サーバ側

サーバ側では以下のように呼出されたことが分かれば大丈夫です。

root@ip-172-31-59-171:/voicevox/VOICEVOX/vv-engine# ./run --host 0.0.0.0
voicevox_engine/core/core_initializer.py:99: UserWarning: cpu_num_threads is set to 0. Setting it to an appropriate value.
2025-12-29T06:00:10.310266+00:00  INFO voicevox_core::synthesizer: CPUを利用します
reading /root/.local/share/voicevox-engine/user.dict_csv-3b193ad6-52d8-4340-9454-7c3ecc4de68a.tmp ... 89
emitting double-array: 100% |###########################################|

done!
INFO:     Started server process [1620]
INFO:     Waiting for application startup.
INFO:     Application startup complete.
INFO:     Uvicorn running on http://0.0.0.0:50021 (Press CTRL+C to quit)
INFO:     IPアドレス:57790 - "POST /audio_query?text=%e3%81%93%e3%82%93%e3%81%ab%e3%81%a1%e3%81%af%e3%80%81%e7%a7%81%e3%81%8c%e3%82%bf%e3%83%ac%e3%82%ab%e3%83%84%e3%81%a7%e3%81%99&speaker=2 HTTP/1.1" 200 OK
INFO:     IPアドレス:57792 - "POST /synthesis?speaker=2 HTTP/1.1" 200 OK

出力結果

実行すると以下のファイルが作られました。

おわりに

はじめに述べたように読み上げの選択肢は多くありますが、VOICEVOXは声の種類が豊富なので、利用場面は限られるかもしれないですが、選択肢の一つとしてはいいのではないでしょうか。

参考

1
0
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
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?