mcpField
S
speakturbo-tts

speakturbo-tts

github.com/emzodクリエイティブ・メディア201.0k 回インストール36 週間前に更新
リポジトリ

speakturbo-tts について

speakturbo-ttsは、音声出力が必要なエージェント向けのコマンドライン音声合成スキルです。音声をストリーミング再生またはWAVファイルに保存でき、8種類の内蔵ボイスを備えています。

主な機能

  1. 01ストリーミング音声合成と再生
  2. 02音声のWAVファイル保存
  3. 038種類の内蔵ボイス
  4. 04デーモンの自動起動と停止

活用シーン

  1. 01エージェントの応答を音声化
  2. 02生成した音声の即時再生
  3. 03後で再生する音声の保存

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/emzod/speak-turbo --skill speakturbo-tts

インストール後、Claude Code で/speakturbo-ttsを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

LICENSE
package.json
install.sh
README.md
pyproject.toml
.gitignore
AGENTS.md
uv.lock
.github/workflows/
install-test.yml
ci.yml
speakturbo-cli/
Cargo.toml
speakturbo-cli/src/
main.rs
speakturbo/
daemon_streaming.py
__init__.py
cli.py
speakturbo/tests/
test_cli.py
test_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 との比較

機能speakturbospeak
最初の音が出るまでの時間約90ms約4~8秒
音声のクローン作成❌✅
感情タグ❌✅
音声組み込み8種類カスタムWAVファイル
エンジンpocket-ttsChatterbox

コメント