Skip to main content
Glama
README.md
# 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ライセンスの下で公開されています。