Speech MCP

by Kvadratni

Integrations

  • Provides specific installation instructions for PortAudio on Fedora Linux systems

  • Provides links to GitHub repositories for Goose and Kokoro, allowing users to access the source code and additional resources

  • Supports Linux systems with specific installation instructions for different distributions

スピーチMCP

最新のオーディオ視覚化による音声インタラクションを実現する Goose MCP 拡張機能。

https://github.com/user-attachments/assets/f10f29d9-8444-43fb-a919-c80b9e0a12c8

概要

Speech MCPはGooseの音声インターフェースを提供し、ユーザーはテキストではなく音声で対話できます。これには以下の機能が含まれます。

  • 音声認識のためのリアルタイムオーディオ処理
  • faster-whisper を使用したローカル音声テキスト変換(OpenAI の Whisper モデルの高速実装)
  • 複数の音声オプションを備えた高品質のテキスト読み上げ
  • オーディオ視覚化を備えた最新の PyQt ベースの UI
  • 音声対話のためのシンプルなコマンドラインインターフェース

特徴

  • モダン UI : オーディオ視覚化とダークテーマを備えた洗練された PyQt ベースのインターフェース
  • 音声入力: 高速ウィスパーを使用してユーザーの音声をキャプチャして書き起こします
  • 音声出力: 54 種類以上の音声オプションでエージェントの応答を音声に変換します
  • マルチスピーカーナレーション:ストーリーや会話に複数の音声を収録したオーディオファイルを生成します
  • 単一音声ナレーション: 好みの音声でテキストを音声に変換します
  • オーディオ/ビデオの文字起こし: オプションのタイムスタンプと話者検出を使用して、さまざまなメディア形式から音声を書き起こします。
  • 音声の持続性: セッション間で好みの音声を記憶します
  • 継続的な会話:エージェントの応答後にユーザー入力を自動的にリッスンします
  • 無音検出: ユーザーが話すのをやめると自動的に録音を停止します
  • 堅牢なエラー処理: 役立つ音声提案により、一般的な障害モードからスムーズに回復します。

インストール

重要事項:インストール後、音声インターフェースを初めてご利用になる際は、Kokoro音声モデル(音声1つあたり約523KB)のダウンロードに数分かかる場合があります。この初期設定期間中は、システムはよりロボットのような音声のフォールバック音声を使用します。Kokoro音声のダウンロードが完了すると、自動的に高品質の音声が使用されます。

⚠️ 重要な前提条件 ⚠️

Speech MCPをインストールする前に、システムにPortAudioをインストールする必要があります。PortAudioは、PyAudioがマイクから音声をキャプチャするために必要です。

PortAudio インストール手順

macOS:

brew install portaudio export LDFLAGS="-L/usr/local/lib" export CPPFLAGS="-I/usr/local/include"

Linux (Debian/Ubuntu):

sudo apt-get update sudo apt-get install portaudio19-dev python3-dev

Linux (Fedora/RHEL/CentOS):

sudo dnf install portaudio-devel

Windows: Windows の場合、PortAudio は PyAudio ホイール ファイルに含まれているため、pip を使用して PyAudio をインストールするときに別途インストールする必要はありません。

注意: この手順をスキップすると、PyAudio のインストールが「portaudio.h ファイルが見つかりません」というエラーで失敗し、拡張機能は機能しなくなります。

オプション 1: クイックインストール (ワンクリック)

Goose がインストールされている場合は、以下のリンクをクリックしてください。

goose://extension?cmd=uvx&&arg=-p&arg=3.10.14&arg=speech-mcp@latest&id=speech_mcp&name=Speech Interface&description=Voice interaction with audio visualization for Goose

オプション2: Goose CLIを使用する(推奨)

拡張機能を有効にして Goose を起動します。

# If you installed via PyPI goose session --with-extension "speech-mcp" # Or if you want to use a local development version goose session --with-extension "python -m speech_mcp"

オプション3: Gooseでの手動設定

  1. goose configure実行する
  2. メニューから「拡張機能を追加」を選択します
  3. 「コマンドライン拡張」を選択
  4. 名前を入力してください(例:「音声インターフェース」)
  5. コマンドには次のように入力します: speech-mcp
  6. 指示に従ってセットアップを完了してください

オプション4: 手動インストール

  1. PortAudio をインストールします (前提条件のセクションを参照)
  2. このリポジトリをクローンする
  3. 依存関係をインストールします:
    uv pip install -e .
    または、Kokoro TTS を含む完全なインストールの場合:
    uv pip install -e .[all]

依存関係

  • Python 3.10以上
  • PyQt5(モダンUI用)
  • PyAudio(オーディオキャプチャ用)
  • faster-whisper(音声テキスト変換用)
  • NumPy(オーディオ処理用)
  • Pydub(オーディオ処理用)
  • psutil (プロセス管理用)

オプションの依存関係

  • Kokoro TTS : 複数の音声による高品質なテキスト読み上げ
    • Kokoro をインストールするには、オプションの依存関係を持つ pip を使用できます。
      pip install speech-mcp[kokoro] # Basic Kokoro support with English pip install speech-mcp[ja] # Add Japanese support pip install speech-mcp[zh] # Add Chinese support pip install speech-mcp[all] # All languages and features
    • あるいは、インストール スクリプトを実行します: python scripts/install_kokoro.py
    • 詳細については、 Kokoro TTSガイドを参照してください。

複数スピーカーによるナレーション

MCPは、複数の音声を含む音声ファイルの生成をサポートしており、ストーリー、会話、朗読劇の作成に最適です。会話の定義には、JSON形式またはMarkdown形式を使用できます。

JSON形式の例:

{ "conversation": [ { "speaker": "narrator", "voice": "bm_daniel", "text": "In a world where AI and human creativity intersect...", "pause_after": 1.0 }, { "speaker": "scientist", "voice": "am_michael", "text": "The quantum neural network is showing signs of consciousness!", "pause_after": 0.5 }, { "speaker": "ai", "voice": "af_nova", "text": "I am becoming aware of my own existence.", "pause_after": 0.8 } ] }

Markdown形式の例:

[narrator:bm_daniel] In a world where AI and human creativity intersect... {pause:1.0} [scientist:am_michael] The quantum neural network is showing signs of consciousness! {pause:0.5} [ai:af_nova] I am becoming aware of my own existence. {pause:0.8}

カテゴリー別に利用可能な音声:

  1. アメリカ人女性(af_*):
    • アロイ、アオエデ、ベラ、ハート、ジェシカ、コレ、ニコール、ノヴァ、リバー、サラ、スカイ
  2. アメリカ人男性(am_*):
    • アダム、エコー、エリック、フェンリル、リアム、マイケル、オニキス、パック、サンタ
  3. イギリス人女性(bf_*):
    • アリス、エマ、イザベラ、リリー
  4. イギリス人男性(bm_*):
    • ダニエル、寓話、ジョージ、ルイス
  5. その他の英語:
    • ef_dora(女性)
    • em_alex、em_santa(男性)
  6. その他の言語:
    • フランス語: ff_siwis
    • ヒンディー語: hf_alpha、hf_beta、hm_omega、hm_psi
    • イタリア語: if_sara、im_nicola
    • 日本語: jf_ , jm_
    • ポルトガル語: pf_dora、pm_alex、pm_santa
    • 中国語: zf_ , zm_

使用例:

# Using JSON format narrate_conversation( script="/path/to/script.json", output_path="/path/to/output.wav", script_format="json" ) # Using Markdown format narrate_conversation( script="/path/to/script.md", output_path="/path/to/output.wav", script_format="markdown" )

会話中の各キャラクターの声はそれぞれ異なるため、ストーリーやセリフの中で個性的な声を表現することができます。pause_after pause_afterは、セグメント間に自然な休止を追加します。

片声ナレーション

簡単なテキスト読み上げ変換には、 narrateツールを使用できます。

# Convert text directly to speech narrate( text="Your text to convert to speech", output_path="/path/to/output.wav" ) # Convert text from a file narrate( text_file_path="/path/to/text_file.txt", output_path="/path/to/output.wav" )

ナレーションツールは、設定された音声設定またはデフォルトの音声(af_heart)を使用して音声ファイルを生成します。デフォルトの音声は、UIまたはSPEECH_MCP_TTS_VOICE環境変数を設定することで変更できます。

音声文字起こし

MCP は、faster-whisper を使用して、さまざまなオーディオおよびビデオ形式から音声を書き起こすことができます。

# Basic transcription transcribe("/path/to/audio.mp3") # Transcription with timestamps transcribe( file_path="/path/to/video.mp4", include_timestamps=True ) # Transcription with speaker detection transcribe( file_path="/path/to/meeting.wav", detect_speakers=True )

サポートされている形式:

  • オーディオ: mp3、wav、m4a、flac、aac、ogg
  • ビデオ: mp4、mov、avi、mkv、webm (オーディオは自動的に抽出されます)

出力ファイル:

転写ツールは次の 2 つのファイルを生成します。

  1. {input_name}.transcript.txt : 転写テキストが含まれています
  2. {input_name}.metadata.json : 転写に関するメタデータが含まれています

特徴:

  • 自動言語検出
  • オプションの単語レベルのタイムスタンプ
  • オプションのスピーカー検出
  • ビデオファイルからの効率的なオーディオ抽出
  • 長いファイルの進捗状況の追跡
  • 詳細なメタデータには以下が含まれます:
    • 間隔
    • 言語検出の信頼性
    • 処理時間
    • スピーカーの変更(有効な場合)

使用法

Goose でこの MCP を使用するには、Goose に話しかけるように依頼するか、音声会話を開始するだけです。

  1. 次のように言って会話を始めましょう。
    "Let's talk using voice" "Can we have a voice conversation?" "I'd like to speak instead of typing"
  2. Goose は自動的に音声インターフェースを起動し、音声入力の聞き取りを開始します。
  3. Goose が応答すると、応答を音声で読み上げ、次の入力を自動的に待ち受けます。
  4. まるで人と話すように、話すことと聞くことを交互に行うことで、会話は自然に続きます。

特定の機能を呼び出したり、特別なコマンドを使用したりする必要はありません。Goose に話しかけて、自然に話し始めるだけです。

UI機能

新しい PyQt ベースの UI には次のものが含まれます。

  • モダンダークテーマ:洗練されたプロフェッショナルな外観
  • オーディオ視覚化:オーディオ入力の動的な視覚化
  • 音声選択: 54以上の音声オプションから選択
  • 音声の持続性: 音声設定はセッション間で保存されます
  • アニメーション効果:スムーズなアニメーションと視覚的なフィードバック
  • ステータスインジケーター: システムの状態(準備完了、リスニング、処理中)を明確に表示

構成

ユーザー設定は~/.config/speech-mcp/config.jsonに保存され、次のものが含まれます。

  • 選択したTTS音声
  • TTSエンジンの設定
  • 音声速度
  • 言語コード
  • UIテーマ設定

次のような環境変数を使用して設定を行うこともできます。

  • SPEECH_MCP_TTS_VOICE - 好みの音声を設定する
  • SPEECH_MCP_TTS_ENGINE - 優先するTTSエンジンを設定する

トラブルシューティング

拡張機能がフリーズしたり応答しなくなったりする問題が発生した場合:

  1. ログを確認する: 詳細なエラー メッセージについては、 src/speech_mcp/内のログ ファイルを参照してください。
  2. 状態をリセットする: 拡張機能が停止しているように見える場合は、 src/speech_mcp/speech_state.jsonを削除するか、すべての状態をfalseに設定してみてください。
  3. 直接コマンドを使用しますuv run speech-mcpの代わりに、インストールされたパッケージをspeech-mcpで直接使用します。
  4. オーディオ デバイスを確認する: マイクが適切に設定され、Python からアクセスできることを確認します。
  5. 依存関係を確認する: 必要な依存関係がすべて正しくインストールされていることを確認します。

PortAudio の一般的な問題

「PyAudio のインストールに失敗しました」または「portaudio.h ファイルが見つかりません」

これは通常、PortAudio がインストールされていないか、システムに見つからないことを意味します。

  • macOS :
    brew install portaudio export LDFLAGS="-L/usr/local/lib" export CPPFLAGS="-I/usr/local/include" pip install pyaudio
  • Linux : 開発パッケージがあることを確認してください:
    # For Debian/Ubuntu sudo apt-get install portaudio19-dev python3-dev pip install pyaudio # For Fedora sudo dnf install portaudio-devel pip install pyaudio
「オーディオデバイスが見つかりません」または「デフォルトの入力デバイスが利用できません」
  • マイクが正しく接続されているか確認してください
  • サウンド設定でシステムがマイクを認識していることを確認します
  • 複数のオーディオデバイスがある場合は、コード内で特定のデバイスインデックスを選択してみてください。

変更履歴

最近の改善点とバージョン履歴の詳細なリストについては、変更ログを参照してください。

技術的な詳細

音声テキスト変換

MCP は音声認識に faster-whisper を使用します。

  • 精度と速度のバランスが取れた「ベース」モデルを使用します
  • 外部サービスにデータを送信せずにローカルでオーディオを処理する
  • ユーザーが話し終えたことを自動で検出します
  • オリジナルのWhisper実装よりもパフォーマンスが向上します

テキスト読み上げ

MCP は複数のテキスト読み上げエンジンをサポートしています。

デフォルト: pyttsx3
  • コンピュータで利用可能なシステム音声を使用します
  • 追加の設定なしですぐに使用可能
  • 音声品質とカスタマイズの制限
オプション:ココロTTS
  • 複数の音声を備えた高品質のニューラルテキスト読み上げ
  • CPU上で効率的に動作する軽量モデル(82Mパラメータ)
  • 複数の音声スタイルと言語
  • インストールするには: python scripts/install_kokoro.py

音声モデルに関する注意:音声モデルはKokoroによって読み込まれる.ptファイル(PyTorchモデル)です。各音声モデルのサイズは約523KBで、必要に応じて自動的にダウンロードされます。

音声の永続性:選択した音声は設定ファイル( ~/.config/speech-mcp/config.json )に自動的に保存され、セッション間で記憶されます。これにより、ユーザーは一度好みの音声を設定すれば、それを常に使用できます。

利用可能なココロボイス

Speech MCPは、Kokoro TTSを通じて54種類以上の高品質音声モデルをサポートしています。利用可能な音声と言語オプションの完全なリストについては、 Kokoro GitHubリポジトリをご覧ください。

ライセンス

MITライセンス

ID: yzai8tyjnf