Style-Bert-VITS2 API Serverのpython client
AI Tuberを作りたいと思い、Style-Bert-VITS2を触りはじめてみました。
Style-Bert-VITS2のAPI Serverの使い方理解のために、RESTAPIをたたくPythonのコードを試しに作ってみたのでメモがてらnoteに残します。
Style-Bert-VITS2
Style-Bert-VITS2は日本語特化型のText-to-Speechモデルです。
歌を歌わせている人がいたり、かなり自然な日本語の音声データが合成することができます。
概要引用
API Server
APIサーバーの使い方はREADMEに記載されています。
https://github.com/litagin02/Style-Bert-VITS2?tab=readme-ov-file#api-server
ローカルPC上で環境構築ができている前提で進めます。
API serverを起動します。
$ python server_fastapi.py
--略--
05-02 21:37:14 | INFO | server_fastapi.py:305 | server listen: http://127.0.0.1:5000
05-02 21:37:14 | INFO | server_fastapi.py:306 | API docs: http://127.0.0.1:5000/docs
ブラウザでhttp://127.0.0.1:5000/docsにアクセスすると、FAST APIのpageが開かれます。
このpage上でお試しでAPIコールすることができます。
音声合成のテスト
GET /models/info
GET /models/infoでmodel_assetsディレクトリに配置したmodelの一覧が取得できます。
それで取得できたmodel idなどを/voiceのパラメータに設定します
GET /voice
GET /voiceで合成したwavファイルが取得できます
Pythonでclient作成します。
params = {
"text": text
"encoding": "utf-8",
"model_id": model_id,
"speaker_id": speaker_id,
"sdp_ratio": 0.2,
"noise": 0.6,
"noisew": 0.8,
"length": 1,
"language": "JP",
"auto_split": "true",
"split_interval": 0.5,
#"assist_text": None,
"assist_text_weight": 1,
"style": "Neutral",
"style_weight": 10
}
text:喋らせたい文言
model_id : models/infoで取得した再生させたいmodelのid
speaker_id : models/infoで取得した再生させたいspeakerのid
このようにAPI callするとwavのデータがresponseで返ってきます。
base_url = "http://127.0.0.1:5000"
# パラメータをURLエンコードして、URLに追加
url = base_url + "/voice" + "?" + urlencode(params)
# GETリクエストを作成
req = Request(url, headers=headers, method="GET")
実際のコードはGitHubに上げています。
text部分と設定パラメータは別ファイルから読み込むようにしています。
これで指定したテキストで音声再生できました。
speechのテキストだけ書けば連続でAPI呼んで音声再生し続けることができました。これをベースにAI Tuber開発進めます。
この記事が気に入ったらサポートをしてみませんか?