speakturbo-tts について
speakturbo-ttsは、音声出力が必要なエージェント向けのコマンドライン音声合成スキルです。音声をストリーミング再生またはWAVファイルに保存でき、8種類の内蔵ボイスを備えています。
主な機能
- 01ストリーミング音声合成と再生
- 02音声のWAVファイル保存
- 038種類の内蔵ボイス
- 04デーモンの自動起動と停止
活用シーン
- 01エージェントの応答を音声化
- 02生成した音声の即時再生
- 03後で再生する音声の保存
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ emzod/ speak-turbo --skill speakturbo-ttsインストール後、Claude Code で/speakturbo-ttsを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
LICENSEpackage.jsoninstall.shREADME.mdpyproject.toml.gitignoreAGENTS.mduv.lock.github/workflows/install-test.ymlci.ymlspeakturbo-cli/Cargo.tomlspeakturbo-cli/src/main.rsspeakturbo/daemon_streaming.py__init__.pycli.pyspeakturbo/tests/test_cli.pytest_daemon.py__init__.py詳細
speakturbo - Claude に話しかけましょう!
エージェントがリアルタイムで話しかけられるようにします。約90msのレイテンシーと8種類の組み込み音声による超高速のテキスト読み上げです。
クイックスタート
# Play immediately - you should hear "Hello world" through your speakers
speakturbo "Hello world"
# Output: ⚡ 92ms → ▶ 93ms → ✓ 1245ms
# Verify it's working by saving to file
speakturbo "Hello world" -o test.wav
ls -lh test.wav # Should show ~50-100KB file
出力の説明: ⚡ = 最初の音声を受信、▶ = 再生開始、✓ = 完了
初回実行
デーモンの起動とモデルのメモリへの読み込みに初回実行時は2~5秒かかります。2回目以降の呼び出しでは、最初の音が出るまで約90msです。
# First run (slow - daemon starting)
speakturbo "Starting up" # ~2-5 seconds
# Second run (fast - daemon already running)
speakturbo "Now I'm fast" # ~90ms
使い方
# Basic - plays immediately (default voice: alba)
speakturbo "Hello world"
# Save to file (no audio playback)
speakturbo "Hello" -o output.wav
# Save to specific file
speakturbo "Goodbye" -o goodbye.wav
# Quiet mode (suppress status messages, still plays audio)
speakturbo "Hello" -q
# List available voices
speakturbo --list-voices
利用可能な音声
| 音声 | 種類 |
|---|---|
alba | 女性(デフォルト) |
marius | 男性 |
javert | 男性 |
jean | 男性 |
fantine | 女性 |
cosette | 女性 |
eponine | 女性 |
azelma | 女性 |
パフォーマンス
| 指標 | 値 |
|---|---|
| 最初の音が出るまでの時間 | 約90ms(デーモン起動済み) |
| 初回実行 | 2~5秒(デーモンの起動) |
| リアルタイム係数 | 約4倍高速 |
| サンプルレート | 24kHz モノラル |
アーキテクチャ
speakturbo (Rust CLI, 2.2MB)
│
│ HTTP streaming (port 7125)
▼
speakturbo-daemon (Python + pocket-tts)
│
│ Model in memory, auto-shutdown after 1hr idle
▼
Audio playback (rodio)
テキスト入力
- エンコーディング: UTF-8
- テキスト内の引用符: エスケープしてください:
speakturbo "She said \"hello\"" - 長いテキスト: 対応しています。生成しながらストリーミング再生します
出力先のセキュリティ
-o フラグで書き込めるのは、許可リストに登録されているディレクトリのみです。デフォルトでは次のディレクトリが登録されています。
/tmpとシステムの一時ディレクトリ- 現在の作業ディレクトリ
~/.speakturbo/
別の場所に書き込むには、--allow-dir を使用してください。
speakturbo "Hello" -o /custom/path/audio.wav --allow-dir /custom/path
ディレクトリを永続的に許可するには、~/.speakturbo/config に追加してください。
mkdir -p ~/.speakturbo && echo "/custom/path" >> ~/.speakturbo/config
設定ファイルには、1行につき1つのディレクトリを記述します。# で始まる行はコメントです。
終了コード
| コード | 意味 |
|---|---|
| 0 | 成功(音声を再生/保存しました) |
| 1 | エラー(デーモンへの接続失敗、無効な引数) |
使用する場面
次のような場合は speakturbo を使用してください。
- 音声をすぐに確認したい(約90ms)
- 音声の種類より速度を重視する
- 組み込み音声で十分である
次のような場合は speak を使用してください。
- カスタム音声のクローンを作成したい(Morgan Freeman など)
→
speak "text" --voice ~/.chatter/voices/morgan_freeman.wav [laugh]や[sigh]のような感情タグが必要である- 速度より品質や多様性を重視する
詳しい使い方については、speak スキルのドキュメントを参照してください。
トラブルシューティング
音声が再生されない場合:
# Check daemon is running
curl http://127.0.0.1:7125/health
# Expected: {"status":"ready","voices":["alba","marius",...]}
# Verify by saving to file and playing manually
speakturbo "test" -o /tmp/test.wav
afplay /tmp/test.wav # macOS
aplay /tmp/test.wav # Linux
デーモンが起動しない場合:
# Check port availability
lsof -i :7125
# Manually kill and restart
pkill -f "daemon_streaming"
speakturbo "test" # Auto-restarts daemon
初回実行が遅い場合: これは想定どおりです。デーモンは約100MBのモデルをメモリに読み込む必要があります。2回目以降の呼び出しは高速になります(約90ms)。
デーモンの管理
デーモンは初回使用時に自動起動し、1時間アイドル状態が続くと自動的に終了します。
# Check status
curl http://127.0.0.1:7125/health
# Manual stop
pkill -f "daemon_streaming"
# View logs
cat /tmp/speakturbo.log
speak との比較
| 機能 | speakturbo | speak |
|---|---|---|
| 最初の音が出るまでの時間 | 約90ms | 約4~8秒 |
| 音声のクローン作成 | ❌ | ✅ |
| 感情タグ | ❌ | ✅ |
| 音声 | 組み込み8種類 | カスタムWAVファイル |
| エンジン | pocket-tts | Chatterbox |