はじめに
Amazon Linux 2023にVOICEVOXをインストールしたときのメモ
VOICEVOXのダウンロード
公式サイトからLinux版、対応モードCPU、Zip版を選択してダウンロード
落としたときのファイル名称は voicevox-linux-cpu-0.18.1.tar.gz
ファイル名称は18世代って意味だっけ
解凍
どこでもいいと思うけど /root直下に格納してtarで解凍する
実行
Windows版もrun.exeだったし、これでしょと思って実行してみる。
普通に動いた。最高かよ
サービスに登録する
毎回手動実行するわけにもいかないので、サービスに登録しておく。
rootで以下コマンド実行
vi /etc/systemd/system/voicevox.service
中身は以下
[Unit]
Description=Voicevox Service
After=network.target
[Service]
User=root
Group=root
WorkingDirectory=/root/VOICEVOX/vv-engine
ExecStart=/root/VOICEVOX/vv-engine/run
Restart=always
[Install]
WantedBy=multi-user.target
vi 閉じたらサービス登録と起動
sudo systemctl enable voicevox.service
sudo systemctl start voicevox.service
Pythonからwaveファイルを作る
いきなりコード
voicevox.py
import requests
import json
# 指定文字を音声ファイルに保存する
# ・デフォルトはなみだめずんだもん(76)
def put_wave(text, file_path, speaker_id=76, speaking_rate=1.0):
# 音声設定
response = requests.post(
'http://127.0.0.1:50021/audio_query',
params = { 'text' : text, 'speaker' : speaker_id },
timeout = (3, 10)) # 接続タイムアウト、全体タイムアウト?
if response.status_code != 200 :
return False
# 速度変更
speed = response.json()
speed["speedScale"] = speaking_rate
query = json.dumps(speed)
# 音声データ要求
response = requests.post(
'http://127.0.0.1:50021/synthesis',
params = { 'speaker' : speaker_id },
data = query,
timeout = (3, 10))
if response.status_code != 200 :
return False
# 音声データ保存
with open(file_path, 'wb') as fp :
fp.write(response.content)
return True
if __name__ == "__main__":
put_wave("こんにちは!ずんだもんです!", 'output.wav', 1, 1.0 )
話す速度は変更できるようにした。タイムアウトはよく分かってない。
話し手IDのありか
以下jsonファイルに登録されているので、知りたいときは参照する。
VOICEVOX/vv-engine/model/metas.json
おわりに
1年間無料の t2.micro だからなのかけっこう動作不安定になるなぁ
スペック足りなめなのかな。
なみだめずんだもん最高におもろい!