kyutai-labs/pocket-tts

A TTS that fits in your CPU (and pocket)

Pocket TTS – 軽量 CPU のみのテキスト読み上げ

概要 – Pocket TTS は、書かれたテキストを音声に変換する Python ライブラリ(および CLI)です。1 億パラメータのニューラル TTS モデルが同梱されており、通常の CPU で効率的に動作するため、GPU やリモート Web API は不要です。このプロジェクトには、トレーニングスクリプト、事前作成された音声のセット、短い音声クリップから任意の音声をクローンする方法も含まれています。

主な機能

  • CPU ファースト: CPU のみの PyTorch ビルドで動作。MacBook Air M4 では、2 コアのみでリアルタイムの約 6 倍の速度で音声を生成できます。
  • 低レイテンシ: 最初のオーディオチャンクが約 200 ミリ秒で表示され、ストリーミング出力が可能です。
  • 多言語: 英語、フランス語、ドイツ語、ポルトガル語、イタリア語、スペイン語、オランダ語(追加可能)。
  • 音声クローン: wav ファイル(または事前計算された safetensors 埋め込み)を提供すると、その話者の音色で音声を合成できます。
  • ストリーミング / 無限長テキスト: モデルは任意の長さの入力に対して音声を生成し続けることができます。
  • CLI と HTTP サーバー: pocket-tts generate は 1 回限りのファイル用、pocket-tts serve は小さな Web UI を備えたローカル REST エンドポイント用です。
  • Python API: TTSModel.load_model()、get_state_for_audio_prompt()、generate_audio() – 1 次元の torch テンソルを返し、scipy.io.wavfile で書き込めます。
  • ブラウザ内の可能性: WebAssembly、ONNX-Runtime-Web、Rust ベースの XN などへのコミュニティ移植。
  • トレーニングコード: training/ フォルダで微調整や新しいモデルのトレーニングが可能。コミュニティトレーニング済みチェックポイントは README にリストされています。

始め方

  1. パッケージをインストールします(CPU のみの PyTorch を推奨):
    pip install pocket-tts                     # または `uv add pocket-tts`
    # Linux では、CUDA ホイールを避ける:
    pip install pocket-tts --extra-index-url https://download.pytorch.org/whl/cpu
    
  2. CLI で wav を生成します:
    pocket-tts generate --text "Hello world" --voice alba
    
    ファイル tts_output.wav が現在のディレクトリに作成され、速度統計が表示されます。
  3. 繰り返し呼び出すためのローカルサーバーを実行します:
    pocket-tts serve   # その後、http://localhost:8000 に POST
    
  4. コードでライブラリを使用します:
    from pocket_tts import TTSModel, export_model_state
    model = TTSModel.load_model()
    voice = model.get_state_for_audio_prompt("alba")
    audio = model.generate_audio(voice, "Hello from Python!")
    
    高速再利用のために音声埋め込みをエクスポートします:
    export_model_state(voice, "alba.safetensors")
    

コミュニティと拡張

  • 複数の代替ランタイム(Apple Silicon 用 MLX、Candle、ONNX、C++、C#、Rust など)により、Pocket TTS を組み込みデバイス、Windows、またはブラウザ内で直接実行できます。
  • コミュニティトレーニング済みの言語モデル(チェコ語、ヒンディー語、韓国語、ペルシャ語、インドネシア語など)のリストが増えており、--config フラグで呼び出せます。
  • このプロジェクトはオープンソースで、貢献を受け付けており、開発者向けに CONTRIBUTING.md を提供しています。

使用するタイミング

  • GPU ドライバーのないラップトップ、サーバー、エッジデバイスで高速なオフライン TTS が必要な場合。
  • TTS を Python アプリ、CLI ツール、または軽量な Web サービスに組み込みたい場合。
  • 大規模でクラウドのみのソリューションよりも、小さなモデルフットプリント(約 1 億パラメータ、数百 MB)を好む場合。

リンク

関連

  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト