🗨️
AivisSpeech-Engine を使って音声合成してみた
しゃべらせるまでの作業ログ
AivisSpeech-Engine とは
AivisSpeech Engine は、VOICEVOX ENGINE をベースにした、日本語音声合成エンジンです。
(README.md より)
プロジェクトリポジトリはこちら
ダウンロードして起動
プロジェクトリポジトリの releases から PC のアーキテクチャに合ったものをダウンロードして解凍して起動
PS> .\run.exe --host=0.0.0.0 --use_gpu
このあたりは VOICEVOX と同じなので、非常に簡単
起動するとデフォルトの音声モデルが含まれていないので自動ダウンロードされる(約 1.3GB)
[2024/11/21 08:26:12] INFO: Started server process [34364]
[2024/11/21 08:26:12] INFO: Waiting for application startup.
[2024/11/21 08:26:12] INFO: Application startup complete.
[2024/11/21 08:26:12] INFO: Uvicorn running on http://0.0.0.0:10101 (Press CTRL+C to quit)
uvicorn の listen 開始メッセージがログに出れば起動完了
承前
すでに VOICEVOX API でしゃべらせる部分を実装していたので
これをそのまま利用
呼び出しサンプル
sample.py
# -*- coding: utf-8 -*-
import sys
import io
from vvox import vvox
if __name__ == '__main__':
sys.stdin = io.TextIOWrapper(sys.stdin.buffer, encoding='utf-8')
if not sys.stdin.isatty():
text = sys.stdin.read().strip()
else:
text = '\n'.join(sys.argv[1:])
vvox(text)
しゃべらせる前に話者 ID を確認
VOICEVOX API と同様に確認できる
PS> curl -s localhost:10101/speakers | jq .
[
{
"name": "Anneli",
"speaker_uuid": "e756b8e4-b606-4e15-99b1-3f9c6a1b2317",
"styles": [
{
"name": "ノーマル",
"id": 888753760,
"type": "talk"
},
{
"name": "通常",
"id": 888753761,
"type": "talk"
},
{
"name": "テンション高め",
"id": 888753762,
"type": "talk"
},
{
"name": "落ち着き",
"id": 888753763,
"type": "talk"
},
{
"name": "上機嫌",
"id": 888753764,
"type": "talk"
},
{
"name": "怒り・悲しみ",
"id": 888753765,
"type": "talk"
}
],
"version": "1.0.0",
"supported_features": {
"permitted_synthesis_morphing": "NOTHING"
}
}
]
サンプルコードにポートと話者IDを指定して実行
- vvox(text)
+ vvox(text, port=10101, speaker=888753761)
PS> echo おはようなのだ | python sample.py
と、しゃべらせるだけなら非常に簡単 👍
Enjoy!!
Discussion