📢

Claude Codeの応答をリアルタイム音声化 - Aivis Cloud APIで作る低遅延TTSツール

に公開

Claude Codeでコーディングしながら、応答を自動的に音声で聞けたら便利だと思いませんか?

この記事では、Aivis Cloud APIの低遅延音声合成を活用して、Claude Codeの応答をリアルタイムで音声化するツールを紹介します。ファイル監視によってClaude Codeの新しい応答を自動検出し、即座に自然な日本語音声で読み上げることで、Claude Codeとのよりインタラクティブな開発体験を実現できます。

Aivis Cloud APIとは

Aivis Cloud APIは、日本語に特化した高品質な音声合成APIサービスです。β版は無料で利用可能で、
低遅延なストリーミング再生が特徴です。

主な特徴

  • 低遅延: 300ms以下の高速レスポンス
  • 高品質: 自然で聞き取りやすい日本語音声
  • ストリーミング対応: リアルタイム再生で待機時間を最小化
  • 多様なモデル: Aivis Hubで豊富な音声モデルから選択可能
  • β版無料: 開発・検証段階では無料で利用可能

aivis-cloud-tools

APIを使ったツールセットです。Claude CodeによるPython実装です。
コードはGitHubで公開しています。

以下のツールが含まれます。

  • Claude Codeの応答をリアルタイム音声化
  • 発話MCP
  • CLI TextToSpeech

動作環境: macOSでのみ動作確認しています。(LinuxやWindowsはファイル監視や音声再生などが動かないかも)

ツールの説明

プロジェクトは以下の構成になっています:

aibis-cloud-tools/
├── aibis_cloud_tools/   # 共通実装
│   ├── tts.py           # AivisCloudTTSクラス
│   └── utils.py         # ユーティリティ関数
├── scripts/             # 実行可能スクリプト
│   ├── say.py           # 音声合成CLI
│   ├── claude_code_speaker.py # Claude応答監視
│   └── mcp_server.py    # MCPサーバー
└── tests/               # テストスイート

主要機能:

  1. say.py: シンプルなCLI音声合成ツール

    # 基本的な使用
    uv run scripts/say.py "こんにちは、世界!"
    
    # ファイル読み込み
    uv run scripts/say.py -f document.txt
    
    # モデル選択・パラメータ調整
    uv run scripts/say.py "感情豊かに" --model mai --intensity 1.5
    
  2. claude_code_speaker.py: Claude Code応答の自動音声化

    • Claude Codeが記録するJSONLファイルをリアルタイム監視
    • Claude Codeから新しい応答を検出すると自動読み上げ
    • ESCキーでキャンセル対応
  3. mcp_server.py: MCPプロトコル対応サーバー

Claude Code Speaker の仕組み

Claude Code Speakerは以下の仕組みで動作します:

  1. ファイル監視: watchdogライブラリでClaude Codeの応答ファイル(.jsonl)をリアルタイム監視
  2. 応答検出: 新しいassistantタイプの応答を検出
  3. テキスト抽出: JSON構造から音声化対象テキストを抽出
  4. Markdown記号除去: 行先頭の"##"などを読み上げないよう除去
  5. 音声合成と再生: Aivis Cloud APIで高速音声生成してストリーミング再生

実際の使用例:

# Claude Code応答監視を開始
uv run scripts/claude_code_speaker.py

# 出力例
👁️  Claude応答監視を開始します...
📂 監視ディレクトリ: ~/.claude/projects
⌨️  ESCキーで音声をキャンセルできます

🤖 Claude応答検出!
📅 時刻: 2024-07-30T22:04:00Z
💬 内容: Pythonでファイル処理を行う場合、以下のような方法があります...

🔊 [1/2] チャンク読み上げ中... (2984文字)
 音声再生が完了しました
⏸️  0.5秒間一時停止...
🔊 [2/2] チャンク読み上げ中... (1203文字)
 音声再生が完了しました

設定例

環境変数もしくは.envファイルで設定:

# Aivis Cloud API設定
AIVIS_API_KEY=your_api_key_here
AIVIS_DEFAULT_MODEL_UUID=a59cb814-0083-4369-8542-f51a29e72af7

# 監視するClaude Codeログディレクトリ (デフォルト: ~/.claude/projects)
CLAUDE_WATCH_DIR=~/.claude/projects

まとめ

Aivis Cloud APIの低遅延という特徴を活かして、Claude Codeとの対話をよりインタラクティブにできました。
Claude Codeが生成するJSONL形式のログをリアルタイム監視し、新しい応答を検出すると即座に音声化するため、Claude Codeの応答がシームレスに音声で聞けるようになりました。

Aivis Cloud APIを活用して、音声インターフェースの可能性を探ってみてはいかがでしょうか。

関連リンク:

Discussion