- OpenAIのTTS APIと同じフォーマットでリクエストを受け付け
- VOICEVOXエンジンを使用した高品質な日本語音声合成
- AivisSpeechエンジンにも対応
- Dockerで簡単にデプロイ可能
# VOICEVOX(CPU)
docker-compose up -d
# VOICEVOX(GPU)
docker compose -f docker-compose.gpu.yml up -d
# AivisSpeech(Docker実行)
docker compose -f docker-compose.aivis-speech.yml up -d
# AivisSpeech(ローカル実行中のAPIに接続)
docker compose -f docker-compose.aivis-speech-api-only.yml up -dPOST http://localhost:8000/audio/speech{
"model": "voicevox-v1",
"input": "こんにちは、音声合成のテストです。",
"voice": "1",
"response_format": "mp3",
"speed": 1.0
}model: 使用するモデル(現在は"voicevox-v1"のみ)input: 読み上げるテキストvoice: VOICEVOXのスピーカーIDresponse_format: 出力フォーマット(現在は"mp3"のみ)speed: 読み上げ速度(デフォルト: 1.0)
- Content-Type:
audio/mpeg - Body: MP3形式の音声データ(バイナリ)
from openai import OpenAI
# カスタムベースURLを持つOpenAIクライアントを作成
client = OpenAI(base_url="http://localhost:8000", api_key="sk-1234")
# 音声を生成
response = client.audio.speech.create(
model="voicevox-v1",
voice="1",
input="こんにちは、音声合成のテストです。",
speed=1.0
)
# 音声ファイルを保存(ストリーミングレスポンスを使用)
with response.with_streaming_response.stream_to_file("output.mp3"):
pass.
├── docker-compose.yml # VOICEVOX CPU版
├── docker-compose.gpu.yml # VOICEVOX GPU版
├── docker-compose.aivis-speech.yml # AivisSpeech Docker版
├── docker-compose.aivis-speech-api-only.yml # AivisSpeech(ローカル実行)用APIブリッジ
├── Dockerfile # APIサーバーのビルド設定
├── voice_mappings/ # 各エンジン用の話者IDマッピング
│ ├── voicevox.json
│ └── aivis-speech.json
├── voicevox_tts_api/ # OpenAI互換APIの実装
│ ├── tts_api.py # メインAPIコード
│ └── requirements.txt # Python依存パッケージ
└── example/ # 使用例とテストスクリプト
├── tts_example.py # サンプルスクリプト
└── README.md # サンプルの説明
- Docker
- Docker Compose
exampleディレクトリに、APIの使用例とテストスクリプトが用意されています。
詳しい使い方はexample/README.mdを参照してください。
┌─────────────┐
HTTP Request (OpenAI Format) ──▶ │ TTS API │
│ (FastAPI) │
└──────┬──────┘
│
▼
┌─────────────┐
│ VOICEVOX / │
│ AivisSpeech │
│ Engine │
└─────────────┘
MITライセンス
