Talkies について
Talkiesは、文字起こしや音声合成を必要とするアプリケーションやエージェント向けのセルフホスト型音声サービスです。HTTP、WebSocketによるライブ処理、ファイルのステージング、モデル管理を1つのDockerイメージにまとめています。
主な機能
- 01ファイルの文字起こしと字幕
- 02WebSocketによるライブASR
- 03複数形式の音声合成
- 04サーバー側でのファイルステージング
- 05モデルの確認とアンロード
活用シーン
- 01録音の文字起こしと字幕作成
- 02ライブ音声ストリームの処理
- 03テキストの音声化
- 04音声ワークフロー用ファイルのステージング
MCP 対応
Talkiesは`/v1/mcp`にStreamable HTTPのMCPエンドポイントを提供し、MCPクライアントにASRとファイル操作のツールを公開します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
talkies
1つの Docker イメージで利用できるセルフホスト可能な音声サービスです。OpenAI 互換のファイル文字起こしとテキスト読み上げ、WebSocket 経由の Talkies ライブ ASR、ファイルのステージング、モデルのライフサイクル管理、ASR ワークフロー向け MCP エンドポイントを提供します。
目次
まずはこちら
初回起動時は、必要なモデルだけに制限してください。そうしない場合、エントリーポイントがバンドルされたレジストリ内のすべてのモデルをダウンロードします。
docker run --rm -it --name talkies \
-p 127.0.0.1:8000:8000 \
-v "$PWD/talkies-data:/data" \
-e TALKIES_ENABLED_MODELS=whisper-large-v3-turbo,kokoro-82m \
psyb0t/talkies:latest
curl -s http://127.0.0.1:8000/healthz
curl -s http://127.0.0.1:8000/v1/audio/transcriptions \
-F "file=@/path/to/clip.wav" \
-F "model=whisper-large-v3-turbo"
CUDA 専用モデル(Parakeet-TDT、より大きな Canary モデル、Qwen3 TTS、Chatterbox Turbo)には、--gpus all を指定して psyb0t/talkies:latest-cuda を使用してください。ループバックポートのマッピングにより、サービスはローカルでのみ利用できます。初回起動と認証については、はじめにをご覧ください。
提供機能
| インターフェース | 目的 | 参照 |
|---|---|---|
POST /v1/audio/transcriptions | ファイルの文字起こしと字幕生成 | HTTP API |
WS /v1/audio/transcriptions/stream | ライブ 16 kHz PCM ASR | ストリーミング |
POST /v1/audio/speech | 6種類の形式で音声を合成 | HTTP API |
GET /v1/models | 有効なスラッグとそのモダリティ | HTTP API |
GET /v1/audio/voices | 音源タグ付きのモデル別音声カタログ | モデル |
GET/PUT/DELETE /v1/files/* | サーバー側でのファイルのステージング | HTTP API |
/api/ps、/unload | モデルの状態確認とアンロード | 運用 |
/v1/mcp | ASR/ファイル用ツールを備えたストリーミング可能な HTTP MCP | HTTP API |
GET /healthz | ライブネスプローブ。認証不要の唯一のルート | 運用 |
HTTP の文字起こしおよび音声ルートは、契約が重なる範囲で、それぞれに対応する OpenAI のワイヤー形式を使用します。ストリーミング ASR、ファイル、ライフサイクル管理、MCP は Talkies の拡張機能です。
モデルの概要
- CPU:Whisper モデル 2 種類、Canary-180M-Flash、parakeet.cpp 経由の Nemotron ASR、英語 Sherpa-ONNX Zipformer の 4 種類、Vosk の小型英語モデル、音素認識モデル 2 種類、Kokoro TTS バックエンド 2 種類です。
- CUDA:CPU のモデル一式に加え、Parakeet-TDT、Canary 1B/Qwen ASR、Qwen3 TTS の 5 種類、Chatterbox Turbo を利用できます。
- ライブ ASR:バンドルされている Nemotron、Sherpa-ONNX、Vosk はネイティブ対応です。バンドルされている Whisper は、範囲を制限したローリングデコーダーです。Sherpa と Vosk は、OpenAI 互換のファイル文字起こしエンドポイント経由でも利用できます。
- 音素認識:
wav2vec2-xlsr-53-espeakとzipa-ipaは、発話された単語ではなく IPA 音素を返します。言語モデルによる、最も近い辞書項目への修正は行いません。他の ASR モデルと同じ文字起こしエンドポイントおよびタイムスタンプオプションを使用します。詳しくは音素認識をご覧ください。 - モデルごとの同時実行数上限は、WebSocket、HTTP、MCP、ASR、TTS に適用されます。バンドルされている Nemotron の CPU および CUDA モデルは、2 件のリクエストを受け付けます。
- ストリーミング TTS:Qwen3 は
response_format="pcm"に対して、未加工の PCM を逐次返します。他の TTS 形式と Kokoro はバッファー処理されます。 - 感情表現に対応した TTS:Chatterbox Turbo(英語)は、
[sigh]、[whispering]、[laugh]など、19 種類のインラインタグを入力テキストに直接指定できます。出力にはデフォルトでニューラルウォーターマークが付与されます。ウォーターマークなしの音声を出力するには、TALKIES_CHATTERBOX_WATERMARKを false に設定してください。 - 音声クローニング:
.wavファイルを/data/custom-voicesに置くと、GET /v1/audio/voicesに表示されます。Qwen3 では同じ場所にある任意の.txt文字起こしファイルを組み合わせられます。Chatterbox では 5 秒を超える音声クリップのみが必要です。
正確なスラッグ、実行方式、タグ一覧、レジストリ形式については、モデルとレジストリをご覧ください。
音素の読み方
wav2vec2-xlsr-53-espeak と zipa-ipa は、他のすべての ASR スラッグと同じ文字起こし呼び出しを使用します。異なるのはモデルだけです。text は単語ではなく、スペース区切りの IPA 音素ストリームとして返されます。言語モデルによる、発音の誤りから実際の単語への修正は行われません。
curl -s http://127.0.0.1:8000/v1/audio/transcriptions \
-F "file=@/path/to/clip.wav" \
-F "model=zipa-ipa"
# {"text": "a ɪ m k ə n f j u z ...", ...}
各音素を秒単位の start と end を持つ words エントリーとして取得するには、-F "response_format=verbose_json"(または timestamp_granularities[]=word)を追加してください。
感情を指定した Chatterbox のプロンプト
タグは input 内に角括弧で囲んで小文字で指定します。タグはモデルのトークナイザーに実在するトークンであるため、機能するのはこの 19 種類のみです。それ以外の角括弧付きの単語は、文字どおりに読み上げられます。
[angry] [fear] [surprised] [whispering] [advertisement] [dramatic] [narration]
[crying] [happy] [sarcastic] [clear throat] [sigh] [shush] [cough] [groan]
[sniff] [gasp] [chuckle] [laugh]
curl -s http://127.0.0.1:8000/v1/audio/speech \
-H 'Content-Type: application/json' \
-d '{
"model": "chatterbox-turbo",
"voice": "builtin",
"input": "Oh, that is hilarious. [chuckle] Anyway [sigh] back to work.",
"response_format": "mp3"
}' --output out.mp3
"voice" を、/data/custom-voices に追加した任意の .wav ファイル名(拡張子なし)に置き換えると、同じ文をクローンした音声で読み上げます。
ドキュメント
| ガイド | 内容 |
|---|---|
| はじめに | CPU/CUDA の実行、データの永続化、認証、動作確認 |
| モデルとレジストリ | バンドルされたスラッグ、イメージの利用可否、カスタムレジストリ |
| アーキテクチャ | リクエストの流れ、バックエンドの選択、ディスク上の構成 |
| HTTP API | リクエスト、レスポンス、ファイル、ライフサイクル、MCP |
| ストリーミング | ライブ ASR プロトコル、ストリーミングバックエンド、PCM TTS |
| 設定 | サポート対象の環境変数と上限 |
| 運用とセキュリティ | 公開範囲、モデルのメモリ使用量、データ保持、ログ |
| 開発 | Make ターゲット、テストスイート、イメージのビルド |
エージェントとの連携
Talkies スキルを使うと、エージェントが HTTP、WebSocket、MCP の各インターフェースを利用できます。共有の psyb0t マーケットプレイスからインストールするか、このチェックアウトから Codex に直接検出させてください。
Claude Code
claude plugin marketplace add psyb0t/agents
claude plugin install talkies@psyb0t
Claude Code は Talkies の URL と、有効な場合はベアラートークンを尋ねます。機密性の高いトークンは、クライアントの保護された設定を通じて保存されます。
Codex
codex plugin marketplace add psyb0t/agents
codex plugin add talkies@psyb0t
マーケットプレイスからインストールすると、このスキルは $talkies:talkies として呼び出されます。Codex はこのリポジトリ内の .agents/skills/talkies も直接検出します。この場合、インストールせずに $talkies として呼び出せます。
OpenClaw
スキルと MCP ブリッジは ClawHub を通じて公開されています:
openclaw skills install @psyb0t/talkies
openclaw plugins install clawhub:@psyb0t/talkies
このブリッジは、ローカルの stdio MCP クライアントを、稼働中の Talkies /v1/mcp
エンドポイントに接続します。TALKIES_URL を設定し、認証が有効な場合は
TALKIES_AUTH_TOKEN も設定してください。
1 分でわかるセキュリティ
TALKIES_AUTH_TOKEN を設定すると、/healthz を除くすべての HTTP および WebSocket
ルートで共有ベアラートークンが有効になります。デフォルトでは未設定です。ポートを
ループバックのみに限定するか、Talkies を TLS、認証、レート制限の背後に配置してください。信頼できない呼び出し元が
リモートの file_path URL を指定できる場合は、TALKIES_BLOCK_PRIVATE_DOWNLOADS=true を設定してください。
完全なセキュリティ対策については、運用とセキュリティをご覧ください。
開発
make check # lint + unit tests in the dev image
make lint # flake8 + mypy only
make test-unit # fast offline unit tests
make run # run the CPU image locally
make test-streaming # real CPU native WebSocket ASR test
make test-streaming-custom # real CPU Sherpa/Vosk WebSocket + HTTP tests
make test-streaming-custom-cuda # real CUDA Sherpa WebSocket + HTTP test
make compile-heavy # regenerate the hash-locked ML requirements
make build-all # CPU and CUDA production images
make help ですべてのターゲットを確認できます。
Talkies は WTFPL のもとでリリースされています。モデルの重みは実行時にダウンロードされ、 それぞれ独自の規約が適用されます。画像コンポーネントの通知は THIRD_PARTY.mdに記載されています。リリースノートはCHANGELOG.mdにあります。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。