なにこれ
ubuntuサーバーでvoicevox_coreを動かそうとしたらいくつか穴にはまったので個人的に最適な方法をメモ。
1. ダウンロードスクリプトを取得
githubのリリース上 からdownload.shファイルのダウンロードurlをコピーする。(macなら右クリック→「リンクのアドレスをコピー」)
ubuntu上でwgetしてダウンロードスクリプトをダウンロード。
wget https://github.com/VOICEVOX/voicevox_core/releases/download/0.15.4/download.sh
はまった穴
リリースのリンクに download-linux-x64
のスクリプトもあり、公式ではこちらを推薦しているが、自分の環境ではダウンロードが途中で止まってしまうことが多く、download.sh
の方が安定していた。
2. ダウンロードスクリプトを実行
実行できるようパーミッションを変更
chmod +x download.sh
ダウンロードスクリプトを実行する。(cudaが使えるかどうかによりオプションを調整)
./download.sh --device cuda # cuda GPUが使える場合
./download.sh # CPU上で実行する場合
はまった穴
公式チュートリアルだと --devices cuda
と書いてあるけど多分間違い。
3. pythonライブラリのインストール
githubのリリース上 からwhl
ファイルのダウンロードurlを同様にコピーする。
cpuで実行するかcudaで実行するか、osのアーキテクチャによって適切なwhlを選ぶ。
pipを用いてコピーしたアドレスからパッケージをインストール
pip install https://github.com/VOICEVOX/voicevox_core/releases/download/0.15.4/voicevox_core-0.15.4+cpu-cp38-abi3-linux_aarch64.whl
ryeを使う場合以下のようにインストールする
# ライブラリをダウンロード
wget https://github.com/VOICEVOX/voicevox_core/releases/download/0.15.4/voicevox_core-0.15.4+cpu-cp38-abi3-linux_aarch64.whl
# ライブラリをローカルパッケージからインストール
rye add voicevox_core --path voicevox_core-0.15.4+cpu-cp38-abi3-linux_aarch64.whl
4. voicevox_coreを用いた音声合成を実行
先のdownload.shスクリプト実行後voicevox_coreディレクトリが作成されているはずなのでそこに移動する。
cd voicevox_core
音声合成をするスクリプトを作成する。
vi main.py
中身は以下のようにする。
from pathlib import Path
from voicevox_core import VoicevoxCore
core = VoicevoxCore(open_jtalk_dict_dir=Path("open_jtalk_dic_utf_8-1.11"))
speaker_id = 1 #ずんだもん
text = "こんにちは、これはテストなのだ。"
core.load_model(speaker_id) # 指定したidのモデルを読み込む
wave_bytes = core.tts(text, speaker_id) # 音声合成を行う
with open("test_zundamon.wav", "wb") as f:
f.write(wave_bytes) # ファイルに書き出す
スクリプトを実行
python main.py
問題なければ test_zundamon.wav が作成される。
はまった穴
公式ではvoicevox_core.blockingを用いたpythonスクリプトが挙げられているが、それは動作しなかった。(多分voicevox_coreの修正がチュートリアルコードに反映されてない。)