NijiVoice-MCP

NijiVoice-MCP

⚠️ 注意: このプロジェクトは開発中であり、動作未検証です。本番環境での使用は推奨されません。 ⚠️

NijiVoice-MCPは、にじボイスAPIのModel Context Protocol (MCP)実装です。LLM(大規模言語モデル)からにじボイスAPIへのアクセスを可能にし、テキストから音声生成を簡単に行えるようにします。

機能概要

  • にじボイスAPIを使用した音声合成
  • 利用可能な声優(Voice Actor)の取得
  • クレジット残高の確認
  • MCPインターフェースを通じたLLMとの統合

必要条件

  • Python 3.12以上
  • にじボイスAPIキー
  • インターネット接続

インストール

# リポジトリをクローン git clone https://github.com/YOUR_USERNAME/nijivoice-mcp.git cd nijivoice-mcp # 依存パッケージのインストール pip install -e .

環境設定

  1. .envファイルを作成し、以下の内容を追加します:
NIJIVOICE_API_KEY=あなたのAPIキー DEFAULT_VOICE_ACTOR_ID=デフォルトで使用する声優ID(オプション) LOG_LEVEL=INFO
  1. APIキーはにじボイス公式サイトから取得できます。

使用方法

MCPサーバーの起動

python main.py

これにより、MCPサーバーが起動し、LLMからのリクエストを受け付ける状態になります。

音声合成の例

MCPサーバーを利用するLLMクライアントから以下のようにツールを呼び出します:

# 利用可能な声優の取得 actors = await tools.call("actor/get_voice_actors") # 音声の生成 voice_result = await tools.call("voice/generate_voice", { "script": "こんにちは、にじボイスのテストです。", "voice_actor_id": "90031163-c497-44f3-a8a6-e45e4d0cb8f6", # 声優ID "speed": 1.0, "emotional_level": 0.5, "sound_duration": 0.1, "format": "mp3" }) # クレジット残高の確認 balance = await tools.call("credit/get_credit_balance")

利用可能なMCPツール

声優関連

  • actor/get_voice_actors(): 利用可能な声優の一覧を取得

音声生成

  • voice/generate_voice(script, voice_actor_id, speed, emotional_level, sound_duration, format): 音声ファイルURL生成
  • voice/generate_encoded_voice(script, voice_actor_id, speed, emotional_level, sound_duration, format): Base64エンコードされた音声データ生成

クレジット管理

  • credit/get_credit_balance(): クレジット残高取得

特殊タグのサポート

スクリプト内で以下の特殊タグを使用できます:

  • <sp 1.0>xxx</sp>: タグ内のテキストのスピードを変更
  • <wait 0.3>: 指定した秒数の間を挿入

開発者向け情報

プロジェクト構造

nijivoice-mcp/ ├── config.py # 設定ファイル ├── debug_api.py # APIデバッグ用スクリプト ├── lib/ # ライブラリ ├── logger.py # ロギング設定 ├── main.py # メインエントリーポイント ├── mcp/ # MCP実装 │ ├── __init__.py # MCPサーバー初期化 │ ├── actors.py # 声優関連ツール │ ├── credits.py # クレジット関連ツール │ ├── prompts.py # プロンプト定義 │ └── voice.py # 音声生成ツール ├── nijivoice/ # にじボイスAPIクライアント │ ├── __init__.py │ ├── api.py # APIクライアント実装 │ ├── exceptions.py # 例外定義 │ └── models.py # データモデル ├── pyproject.toml # プロジェクト定義 ├── server.py # サーバー実装 └── utils/ # ユーティリティ ├── __init__.py ├── audio.py # 音声処理ユーティリティ ├── error_handling.py # エラーハンドリング └── retry.py # リトライロジック

テスト

# テストの実行 pytest

制限事項と既知の問題

⚠️ 重要な制限事項:

  1. このプロジェクトは開発中であり、機能や仕様が変更される可能性があります
  2. にじボイスAPIの仕様変更により、動作しなくなる可能性があります
  3. エラーハンドリングが十分でない箇所があります
  4. 長文の音声生成時にタイムアウトが発生する場合があります
  5. 一部のAPIレスポンス構造に対応できない可能性があります

トラブルシューティング

問題が発生した場合:

  1. ログファイルnijivoice_mcp.logを確認してください
  2. APIキーが正しく設定されていることを確認してください
  3. インターネット接続を確認してください
  4. にじボイスAPIの状態を確認してください

ライセンス

このプロジェクトは MIT ライセンス の下で提供されています。

謝辞

このプロジェクトはFastMCPModel Context Protocolを使用しています。にじボイスの音声合成技術を利用しています。


「Voiced by NIJI Voice」

-
security - not tested
-
license - not tested
-
quality - not tested

An MCP server that enables LLMs to access the NijiVoice API for text-to-speech generation, supporting features like fetching available voice actors and checking credit balance.

  1. 機能概要
    1. 必要条件
      1. インストール
        1. 環境設定
          1. 使用方法
            1. MCPサーバーの起動
            2. 音声合成の例
          2. 利用可能なMCPツール
            1. 声優関連
            2. 音声生成
            3. クレジット管理
          3. 特殊タグのサポート
            1. 開発者向け情報
              1. プロジェクト構造
              2. テスト
            2. 制限事項と既知の問題
              1. トラブルシューティング
                1. ライセンス
                  1. 謝辞
                    ID: 71tqx58yoq