複数のTTSエンジンをサポートする、高度なリアルタイムテキスト読み上げPythonライブラリ。低遅延で高品質な音声出力を実現。

MITPythonRealtimeTTSKoljaB 3.4k Last Updated: July 22, 2025

RealtimeTTS プロジェクト詳細紹介

プロジェクト概要

RealtimeTTS は、低遅延かつ高品質な音声出力を必要とするリアルタイムアプリケーション向けに設計された、高度なリアルタイムテキスト読み上げ (TTS) Python ライブラリです。このライブラリは、テキストストリームを高品質な音声出力に高速に変換でき、遅延が非常に少ないため、音声アシスタント、AI 対話システム、およびアクセシビリティツールを構築するのに理想的です。

プロジェクトアドレス: https://github.com/KoljaB/RealtimeTTS

コア機能

1. 低遅延処理

  • ほぼ瞬時のテキスト読み上げ変換: 最適化された処理フローにより、最小限の遅延を実現
  • LLM 出力との互換性: 大規模言語モデルのストリーミング出力を直接処理可能
  • リアルタイムストリーム処理: 文字レベルおよび文レベルのリアルタイム処理をサポート

2. 高品質音声出力

  • クリアで自然な音声: 人間の自然な音声に近い音声を生成
  • 多様な音声フォーマットのサポート: 複数の音声出力フォーマットをサポート
  • 設定可能な音声パラメータ: サンプリングレート、ビットレートなどのパラメータを調整可能

3. 多様なエンジンサポート

RealtimeTTS は、多様な TTS エンジンをサポートし、豊富な選択肢を提供します。

クラウドエンジン 🌐
  • OpenAIEngine: OpenAI の TTS サービス。6 種類の高品質音声を提供
  • AzureEngine: Microsoft Azure 音声サービス。毎月 50 万文字まで無料
  • ElevenlabsEngine: 高品質な音声。豊富な音声オプションを提供
  • GTTSEngine: 無料の Google 翻訳 TTS。GPU 不要
  • EdgeEngine: Microsoft Edge の無料 TTS サービス
ローカルエンジン 🏠
  • CoquiEngine: 高品質なニューラル TTS。ローカル処理と音声クローンをサポート
  • ParlerEngine: ローカルニューラル TTS。ハイエンド GPU 向け
  • SystemEngine: 内蔵システム TTS。迅速な設定が可能
  • PiperEngine: 非常に高速な TTS システム。Raspberry Pi でも実行可能
  • StyleTTS2Engine: スタイル化された音声合成
  • KokoroEngine: 多言語をサポートする新しいエンジン
  • OrpheusEngine: 最新のエンジンオプション

4. 多言語サポート

  • 多様な言語の音声合成をサポート
  • インテリジェントな文分割と言語検出
  • 設定可能な言語固有のパラメータ

5. 堅牢性と信頼性

  • フェイルオーバーメカニズム: エンジンに問題が発生した場合、自動的にバックアップエンジンに切り替え
  • 継続的な稼働保証: 重要なユースケースやプロフェッショナルなユースケースにおいて、一貫したパフォーマンスと信頼性を確保
  • エラー処理: 充実したエラー処理と復旧メカニズム

インストール方法

推奨インストール(フルバージョン)

pip install -U realtimetts[all]

カスタムインストール

必要に応じて特定のエンジンサポートを選択できます。

# システム TTS のみ
pip install realtimetts[system]

# Azure サポート
pip install realtimetts[azure]

# 複数のエンジンを組み合わせる
pip install realtimetts[azure,elevenlabs,openai]

利用可能なインストールオプション

  • all: フルインストール。すべてのエンジンをサポート
  • system: ローカルシステム TTS (pyttsx3)
  • azure: Azure 音声サービスサポート
  • elevenlabs: ElevenLabs API 統合
  • openai: OpenAI TTS サービス
  • gtts: Google テキスト読み上げ
  • edge: Microsoft Edge TTS
  • coqui: Coqui TTS エンジン
  • minimal: コアパッケージのみ (カスタムエンジン開発用)

コアコンポーネント

1. テキストストリーム処理

  • 文境界検出: NLTK および Stanza トークナイザーをサポート
  • インテリジェントな分割: 句読点と言語ルールに基づいてテキストを分割
  • ストリーミング処理: 文字イテレータとジェネレータをサポート

2. 音声ストリーム管理

  • 非同期再生: play_async() メソッドは非ブロッキング再生をサポート
  • 同期再生: play() メソッドはブロッキング再生に使用
  • ストリーム制御: 一時停止、再開、停止操作をサポート

3. コールバックシステム

監視と制御のための豊富なコールバック関数を提供します。

  • on_text_stream_start(): テキストストリーム開始時にトリガー
  • on_text_stream_stop(): テキストストリーム終了時にトリガー
  • on_audio_stream_start(): 音声再生開始時にトリガー
  • on_audio_stream_stop(): 音声再生終了時にトリガー
  • on_character(): 各文字処理時にトリガー
  • on_word(): 単語レベルの時間同期 (Azure および Kokoro エンジンをサポート)

基本的な使用例

簡単な使用例

from RealtimeTTS import TextToAudioStream, SystemEngine

# エンジンとストリームを作成
engine = SystemEngine()
stream = TextToAudioStream(engine)

# テキストを入力して再生
stream.feed("Hello world! How are you today?")
stream.play_async()

ストリーミングテキスト処理

# 文字列を処理
stream.feed("Hello, this is a sentence.")

# ジェネレータを処理 (LLM 出力に適しています)
def write(prompt: str):
    for chunk in openai.ChatCompletion.create(
        model="gpt-3.5-turbo",
        messages=[{"role": "user", "content": prompt}],
        stream=True
    ):
        if (text_chunk := chunk["choices"][0]["delta"].get("content")) is not None:
            yield text_chunk

text_stream = write("A three-sentence relaxing speech.")
stream.feed(text_stream)

# 文字イテレータを処理
char_iterator = iter("Streaming this character by character.")
stream.feed(char_iterator)

再生制御

# 非同期再生
stream.play_async()
while stream.is_playing():
    time.sleep(0.1)

# 同期再生
stream.play()

# 制御操作
stream.pause()   # 一時停止
stream.resume()  # 再開
stream.stop()    # 停止

高度な設定

TextToAudioStream パラメータ

stream = TextToAudioStream(
    engine=engine,                    # TTS エンジン
    on_text_stream_start=callback,    # テキストストリーム開始コールバック
    on_audio_stream_start=callback,   # 音声ストリーム開始コールバック
    output_device_index=None,         # 音声出力デバイス
    tokenizer="nltk",                # トークナイザーの選択
    language="en",                   # 言語コード
    muted=False,                     # ミュートするかどうか
    level=logging.WARNING            # ログレベル
)

再生パラメータ

stream.play(
    fast_sentence_fragment=True,      # 高速な文フラグメント処理
    buffer_threshold_seconds=0.0,     # バッファ閾値
    minimum_sentence_length=10,       # 最小文長
    log_synthesized_text=False,       # 合成されたテキストを記録
    reset_generated_text=True,        # 生成されたテキストをリセット
    output_wavfile=None,             # WAV ファイルに保存
    on_sentence_synthesized=callback, # 文の合成完了コールバック
    before_sentence_synthesized=callback, # 文の合成前コールバック
    on_audio_chunk=callback          # 音声チャンク準備完了コールバック
)

エンジン固有の設定

OpenAI エンジン

from RealtimeTTS import OpenAIEngine

engine = OpenAIEngine(
    api_key="your-api-key",  # または環境変数 OPENAI_API_KEY を設定
    voice="alloy",           # オプション: alloy, echo, fable, onyx, nova, shimmer
    model="tts-1"           # または tts-1-hd
)

Azure エンジン

from RealtimeTTS import AzureEngine

engine = AzureEngine(
    speech_key="your-speech-key",    # または環境変数 AZURE_SPEECH_KEY を設定
    service_region="your-region",    # 例: "eastus"
    voice_name="en-US-AriaNeural"   # Azure 音声名
)

Coqui エンジン (音声クローン)

from RealtimeTTS import CoquiEngine

engine = CoquiEngine(
    voice="path/to/voice/sample.wav",  # 音声クローンソースファイル
    language="en"                      # 言語コード
)

テストファイル

プロジェクトは豊富なテスト例を提供します。

  • simple_test.py: 基本的な "Hello World" デモ
  • complex_test.py: フル機能デモ
  • coqui_test.py: ローカル Coqui TTS エンジンテスト
  • translator.py: リアルタイム多言語翻訳 (インストールが必要 openai realtimestt)
  • openai_voice_interface.py: 音声起動 OpenAI API インターフェース
  • advanced_talk.py: 高度な対話システム
  • minimalistic_talkbot.py: 20 行のコードによるシンプルなチャットボット
  • test_callbacks.py: コールバック機能と遅延テスト

CUDA サポート

特にローカルニューラルエンジンを使用する場合、より良いパフォーマンスを得るためには、CUDA サポートのインストールをお勧めします。

インストール手順

  1. NVIDIA CUDA Toolkit (バージョン 11.8 または 12.X) をインストール
  2. NVIDIA cuDNN をインストール
  3. ffmpeg をインストール
  4. CUDA をサポートする PyTorch をインストール:
# CUDA 11.8
pip install torch==2.5.1+cu118 torchaudio==2.5.1 --index-url https://download.pytorch.org/whl/cu118

# CUDA 12.X
pip install torch==2.5.1+cu121 torchaudio==2.5.1 --index-url https://download.pytorch.org/whl/cu121

アプリケーションシナリオ

1. AI アシスタントとチャットボット

  • ユーザーのクエリにリアルタイムで応答
  • 自然な対話体験
  • 多言語サポート

2. アクセシビリティツール

  • スクリーンリーダー
  • 視覚障害者支援
  • 学習支援ツール

3. コンテンツ作成

  • ポッドキャスト制作
  • オーディオブック
  • 教育コンテンツ

4. カスタマーサービス

  • 自動カスタマーサービスシステム
  • 電話ロボット
  • リアルタイム翻訳サービス

5. ゲームとエンターテイメント

  • ゲーム内音声
  • 仮想キャラクターの吹き替え
  • インタラクティブエンターテイメントアプリケーション

プロジェクトエコシステム

RealtimeTTS は、より大きなエコシステムの一部です。

  • RealtimeSTT: 付属の音声テキスト変換ライブラリ。これらを組み合わせることで、完全なリアルタイム音声処理システムを作成できます。
  • Linguflex: 元のプロジェクト。強力なオープンソース AI アシスタント
  • LocalAIVoiceChat: Zephyr 7B モデルに基づくローカル AI 音声対話システム

ライセンス情報

プロジェクト自体はオープンソースですが、各エンジンのライセンス制限に注意する必要があります。

  • オープンソースエンジン: SystemEngine、GTTSEngine (MIT ライセンス)
  • 商業制限エンジン: CoquiEngine、ElevenlabsEngine、AzureEngine (非商業利用は無料)
  • 有料サービス: OpenAI は API キーと有料プランが必要です

システム要件

  • Python バージョン: >= 3.9, < 3.13
  • オペレーティングシステム: Windows、macOS、Linux
  • 依存関係: PyAudio、pyttsx3、pydub など
  • GPU サポート: ローカルニューラルエンジンには NVIDIA グラフィックスカードを推奨

まとめ

RealtimeTTS は、高品質で低遅延の音声合成を必要とする最新のアプリケーションに適した、強力で洗練されたリアルタイムテキスト読み上げライブラリです。その多様なエンジンサポート、堅牢なエラー処理メカニズム、および豊富な構成オプションにより、プロフェッショナルレベルの音声アプリケーションを構築するための理想的な選択肢となっています。個人的なプロジェクトであろうと企業レベルのアプリケーションであろうと、RealtimeTTS は信頼性が高く効率的なソリューションを提供できます。

Star History Chart