コーディングエージェント
と話す

コーディングエージェントがあなたと話せるようにする、ローカルのMCPサーバーです。Sonic 3.6がエージェントのメッセージを読み上げます。続いてInk 2が聞き取り、話し終わりを判断して、あなたの言葉をエージェントに返します。
Claude Codecartesia-voice
完了
let's talk
converse

テストは通りました。プルリクエストを作成しますか?

はい、ドラフトで作成して。
ドラフトのプルリクエストを作成します。
声に出して答えてください。話すのをやめると、Ink 2があなたのターンを終えます。

実行例. アプリの動作を台本どおりに再現した例です。録画ではありません。

モデル
sonic-3.6, ink-2
言語
英語、スペイン語、フランス語、ヒンディー語、日本語
ライセンス
Apache-2.0
技術スタック
PythonFastMCPsounddeviceuv
Cartesia の製品
Sonic 3.6Ink 2

できること

Claude Code、Cursor、Codexで動きます。話し終わりはInk 2が判断するので、押して話すキーも、調整が必要な無音タイムアウトもありません。コーディングエージェント向けのオープンソース音声サーバーであるmbailey/voicemodeと同じように動くので、一方を使えるエージェントはもう一方も使えます。

自分で動かす

  1. サーバーを入手する

    下のコマンドを実行します。uv、マイク、ヘッドホンが必要です。Linuxでは、先にlibportaudio2をインストールしてください。

    npx degit cartesia-ai/cookbook/examples/coding-voice-mode coding-voice-mode
    cd coding-voice-mode
    export CARTESIA_API_KEY=your-key
    # or cursor, codex, all
    ./setup.sh claude --save-key
    

    環境変数
    CARTESIA_API_KEY
    play.cartesia.ai/keys
    CARTESIA_VOICE_ID
    任意。play.cartesia.ai/voicesの音声。初期設定はDaniel(en-US)
    CARTESIA_TURN_END_TIMEOUT_MS
    任意。640から11200。Ink 2があなたのターンを終えるまでに許す間の長さ
    CARTESIA_KEYTERMS
    任意。書き起こしで優先する名前。カンマ区切り
  2. エージェントにインストールする

    setup.shは、claude、cursor、codex、allのいずれかに対してuv syncとcartesia-voice-mode installを実行します。--dry-runを付けると、何が変わるかを事前に確認できます。

  3. 話し始める

    エージェントを再起動し、「let's talk」か「voice mode」と話すか入力します。何も起きないときは、uv run cartesia-voice-mode doctorでキーを確認できます。

コーディングエージェントで作る

どこから始めて、最初に何を読むべきかをコーディングエージェントに伝えるプロンプトです。

プロンプト

Claude CodeCursorCodex

Set up voice mode for my coding agent with Cartesia. Start from https://github.com/cartesia-ai/cookbook/tree/main/examples/coding-voice-mode and follow its AGENTS.md for the commands, files and rules. It is a local stdio MCP server with a converse tool: Sonic 3.6 (sonic-3.6) speaks the message over /tts/sse, then Ink 2 (ink-2) on /stt/turns/websocket listens until turn.end and returns the transcript as the tool result. Install it with ./setup.sh for my client, and keep the API key out of the client config. If I don't have a Cartesia API key yet, follow https://www.cartesia.ai/agent-quickstart.md to get one.

仕組み

converseエージェントがメッセージを付けてツールを呼ぶ
Sonic 3.6/tts/sseでメッセージをストリーミングして再生する
マイク再生が終わってから開く
Ink 2/stt/turns/websocketでのターン検出
ツールの結果turn.endの書き起こし。あなたの次のメッセージとして読まれる

この設計にした理由

ターン検出があなたのターンを終える

サーバーは、Ink 2が話し終わったと判断したことを示すturn.endイベントを待ちます。文の途中で間を置いても、固定の無音タイムアウトのように途中で切られることはありません。

Codexで長く待つにはタイムアウトを延ばす

Codexは既定で、ツールの呼び出しを60秒で止めます。1回の音声ターンはメッセージを再生してから最大120秒聞き取るので、セットアップスクリプトがCodexのtool_timeout_secを180に上げます。Codexの設定はその場で編集され、コメントは残ります。聞き取りを長くするなら、このタイムアウトも上げてください。

カスタマイズする

音声を変える

CARTESIA_VOICE_IDを設定するか、エージェントにlist_voicesツールを呼んで選ぶよう頼みます。

別の言語で話す

Ink 2は英語、スペイン語、フランス語、ヒンディー語、日本語を自動で判別します。Sonicが同じ言語で答えるよう、CARTESIA_LANGUAGEと、それに合うCARTESIA_VOICE_IDを設定します。

自分の用語を覚えさせる

リポジトリ名やライブラリ名をCARTESIA_KEYTERMSに入れると、Ink 2がコードと同じつづりで書き起こします。

よくある質問

どのコーディングエージェントで使えますか?

Claude Code、Cursor、Codexです。セットアップスクリプトで、どれか1つにも3つすべてにもインストールできます。

CartesiaのAPIキーは安全ですか?

はい。インストーラーがエージェントの設定に書くのは、サーバーを起動するコマンドだけです。キーはシェルに置くか、--save-keyを付ければ自分だけが読めるファイルに保存され、エラーメッセージやログには出ません。

エージェントが話している途中で割り込めますか?

いいえ。マイクはエージェントが話し終えてから開くので、エージェントが自分の声を聞くことはなく、エコーキャンセルもありません。ヘッドホンを使ってください。

どのくらい速いですか?

ネットワークとリージョンによります。サーバーは通話のたびに、Sonicが話し始めるまでの時間を表示するので確認できます。ターンが終わるまでの間の長さを変えるには、CARTESIA_TURN_END_TIMEOUT_MSを設定します。

mbailey/voicemodeとはどう違いますか?

そちらはローカルモデルやほかの音声プロバイダーも使えます。このサーバーはCartesiaだけを使います。

このテンプレートの詳しい手順ガイドはありますか?

はい。レシピでコードを順に解説しています。セットアップ、環境変数、デプロイはREADMEに、Cartesia側の仕様はInk 2のターン検出ドキュメントにまとめています。

今すぐ始める

専門家に相談する。

音声体験の開発にCartesiaをどう活用できるか、私たちのチームにご相談ください。

営業に問い合わせる

開発を始める。

APIでモデルにアクセスし、数分で音声エージェントを本番環境に導入できます。

Cartesiaを試す