VOICEVOX (音声合成エンジン)

https://voicevox.hiroshiba.jp/

GUIの使い方は見ればわかると思うので、ここでは REST API を利用する方法を記載します。

インストール&起動 (CPU)

インストール&起動 (Docker + GPU)

※コンテナで GPU を使う方法は、Windows/wsl/gpu を参照ください。

使い方

使い方 (Python で実現)

すべて開くすべて閉じる
  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
-
!
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
-
!
 
 
 
-
|
!
 
 
-
!
 
 
 
 
-
|
!
 
 
-
!
 
 
 
 
 
 
 
 
 
 
#!/usr/bin/env python
 
import requests
import sys
 
BASE_URL = "http://127.0.0.1:50021"
 
def main():
    args = sys.argv
    args_len = len(args)
 
    if args_len < 2:
        print("Usage: ./synthesis.py message [speaker id] [output filename]")
        return
 
    text = args[1]
    speaker = int(args[2]) if args_len >= 3 else 1
    filename = args[3] if args_len >= 4 else "output.wav"
 
    synthesis(text, speaker, filename, BASE_URL)
 
 
def synthesis(text: str, speaker: int, filename: str, baseurl: str):
    # 1. クエリ作成 [audio_query]
    query = { 'text': text, 'speaker': speaker, }
    response = requests.post(f"{baseurl}/audio_query", params=query)
 
    if response.status_code != 200:
        # クエリ作成失敗
        # エラー処理...
        print(f"Error: audio_query: {response.text}")
        return False
 
    # 2. 音声合成 [synthesis]
    query = { 'speaker': speaker, }
    json_data = response.json()
    response = requests.post(f"{baseurl}/synthesis", params=query, json=json_data)
 
    if response.status_code != 200:
        # 音声合成失敗
        # エラー処理...
        print(f"Error: synthesis: {response.text}")
        return False
 
    # 3. WAV ファイル生成
    with open(filename, "wb") as f:
        f.write(response.content)
    print(f"output: {filename}")
    return True
 
 
 
if __name__ == '__main__':
    main()
 
 

API 詳細

https://voicevox.github.io/voicevox_engine/api/ または、起動後 http://127.0.0.1:50021/docs にアクセスすることで API が確認できます。

トップ   差分 バックアップ リロード   一覧 検索 最終更新   ヘルプ   最終更新のRSS