# GPT-SoVITS MCP Server
このプロジェクトは、GPT-SoVITSのAPIサーバーをModel Context Protocol (MCP) ツールとして利用できるようにするMCPサーバーです。FastAPI-MCPを使用してSwagger仕様から自動的にMCPツール定義を生成します。
## 機能
- **Text-to-Speech合成**: テキストから音声を生成
- **音声クローニング**: 参照音声を使用した声質の複製
- **マルチ言語対応**: 中国語、英語、日本語、韓国語、粤語をサポート
- **モデル管理**: GPT/SoVITSモデルの動的切り替え
- **ストリーミング対応**: リアルタイム音声配信
- **MCP統合**: AI エージェントとの統合
## 必要な環境
- Python 3.11以上(Windows/macOS/Linux対応)
- GPT-SoVITS API サーバー(ポート9880で実行中)
## インストール
### Windows
1. **Python のインストール**:
- [Python公式サイト](https://python.org)からPython 3.11以上をダウンロード
- インストール時に「Add Python to PATH」をチェック
2. **依存関係をインストール**:
```cmd
python -m pip install -r requirements.txt
```
3. **GPT-SoVITS API サーバーを起動**:
```cmd
cd GPT-SoVITS
python api.py
```
### macOS/Linux
1. **依存関係をインストール**:
```bash
python3.11 -m pip install -r requirements.txt
# または
pip install -r requirements.txt
```
2. **GPT-SoVITS API サーバーを起動**:
```bash
cd GPT-SoVITS
python3.11 api.py
# または
python api.py
```
## 使用方法
### 簡単起動(推奨)
#### Windows
```cmd
start_server.bat
```
#### macOS/Linux
```bash
./start_server.sh
```
### 手動起動
#### Windows
```cmd
python fastapi_mcp_server.py
```
#### macOS/Linux
```bash
python3.11 fastapi_mcp_server.py
```
### オプション
- `--host`: バインドするホスト (デフォルト: 0.0.0.0)
- `--port`: バインドするポート (デフォルト: 8000)
- `--gpt-sovits-url`: GPT-SoVITS APIのURL (デフォルト: http://localhost:9880)
- `--reload`: 自動リロードを有効化
### 環境変数
- `SOVITS_VOICES_PATH`: 音声ファイルのベースパス
- `HOST`: サーバーのホスト
- `PORT`: サーバーのポート
### エンドポイント
サーバー起動後、以下のエンドポイントが利用可能になります:
- **API ドキュメント**: http://localhost:8000/docs
- **MCP エンドポイント**: http://localhost:8000/mcp
- **ヘルスチェック**: http://localhost:8000/health
### 利用可能なMCPツール
1. **text_to_speech** (`/tts`)
- テキストから音声を合成
- 参照音声による音声クローニング対応
- 複数の音声フォーマット対応 (wav, ogg, aac)
2. **set_model** (`/set_model`)
- GPT/SoVITSモデルの重みを設定
- 動的なモデル切り替え
3. **set_reference** (`/set_reference`)
- デフォルトの参照音声とプロンプトテキストを設定
- 音声クローニングの基準となる声質を設定
4. **control_server** (`/control`)
- サーバーの制御(再起動/シャットダウン)
## API 使用例
### テキストから音声合成
```bash
curl -X POST "http://localhost:8000/tts" \
-H "Content-Type: application/json" \
-d '{
"text": "こんにちは、世界",
"text_lang": "ja",
"refer_wav_path": "path/to/reference.wav",
"prompt_text": "参照音声のテキスト"
}'
```
### モデルの設定
```bash
curl -X POST "http://localhost:8000/set_model" \
-H "Content-Type: application/json" \
-d '{
"gpt_model_path": "path/to/gpt.ckpt",
"sovits_model_path": "path/to/sovits.pth"
}'
```
## MCP統合
このサーバーは Model Context Protocol (MCP) に対応しており、Claude等のAIエージェントから直接音声合成機能を利用できます。
### Claude Desktopでの設定
#### 設定ファイルの場所
- **Windows**: `%APPDATA%\Claude\claude_desktop_config.json`
- **macOS**: `~/Library/Application Support/Claude/claude_desktop_config.json`
#### Windows用設定
```json
{
"mcpServers": {
"gpt-sovits": {
"command": "python",
"args": ["C:\\path\\to\\sovits_mcp\\fastapi_mcp_server.py"],
"env": {
"HOST": "127.0.0.1",
"PORT": "8000",
"SOVITS_VOICES_PATH": "C:\\voices\\characters"
}
}
}
}
```
#### macOS/Linux用設定
```json
{
"mcpServers": {
"gpt-sovits": {
"command": "python3.11",
"args": ["/path/to/sovits_mcp/fastapi_mcp_server.py"],
"env": {
"HOST": "127.0.0.1",
"PORT": "8000",
"SOVITS_VOICES_PATH": "/voices/characters"
}
}
}
}
```
### SSE (Server-Sent Events) を使用する場合
FastAPI-MCPは自動的に `/mcp` エンドポイントでSSE接続を提供します。SSEプロキシを使用する場合:
```json
{
"mcpServers": {
"gpt-sovits-sse": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-fetch", "http://127.0.0.1:8000/mcp"],
"env": {}
}
}
}
```
### 設定ファイルの場所
プロジェクトには複数の設定例が含まれています:
#### Windows用
- `claude_desktop_config_windows.json` - Claude Desktop用の設定
- `mcp_windows.json` - 基本的なMCP設定
- `mcp_sse_windows.json` - SSE プロキシを使用した設定
- `start_server.bat` - Windows用起動スクリプト
#### macOS/Linux用
- `claude_desktop_config.json` - Claude Desktop用の設定
- `mcp.json` - 基本的なMCP設定
- `mcp_sse.json` - SSE プロキシを使用した設定
- `start_server.sh` - macOS/Linux用起動スクリプト
## トラブルシューティング
### Windows固有の問題
#### Python が見つからない
```cmd
python --version
```
- エラーが出る場合は、Python がPATHに追加されていない
- Python インストール時に「Add Python to PATH」をチェックする
- または `py` コマンドを使用する
#### 音声ファイルパスのエラー
- Windowsではバックスラッシュ(`\`)を使用
- または環境変数 `SOVITS_VOICES_PATH` を設定
```cmd
set SOVITS_VOICES_PATH=C:\voices\characters
```
### 共通の問題
#### GPT-SoVITS APIサーバーに接続できない
- GPT-SoVITS APIサーバーが起動していることを確認
- ポート9880が使用可能であることを確認
- ファイアウォールの設定を確認
#### 依存関係のエラー
- Python 3.11以上を使用していることを確認
- `pip install -r requirements.txt` で依存関係をインストール
#### 音声ファイルが見つからない
- `SOVITS_VOICES_PATH` 環境変数を正しく設定
- 音声ファイルが指定されたパスに存在することを確認
- デフォルトでは `voices/characters/` フォルダを使用
## ライセンス
このプロジェクトはMITライセンスの下で公開されています。