AIパーソナル・ラーニング
と実践的なガイダンス
サイバーナイフ用ドローイングミラー

リアルタイム音声テキスト化のためのオープンソースツール

はじめに

realtime-transcription-fastrtcは、音声をリアルタイムでテキストに変換することに特化したオープンソースプロジェクトです。FastRTC技術を使って低遅延の音声ストリームを処理し、ローカルの ウィスパー モデルを使って効率的な音声認識を実現している。このプロジェクトは開発者のsofi444によって管理され、GitHubでホストされている。 コードは完全にオープンで、ユーザーは自由に変更することができる。ユーザーはブラウザ経由またはローカルでデプロイでき、インターフェースはGradioモードとFastAPIモードをサポートし、操作が簡単です。会議の記録、ライブ字幕、その他のシナリオに適しており、個人や開発者のニーズを満たすことができる。このプロジェクトは、軽量で多言語対応、安定した動作、拡張のしやすさを重視しています。

リアルタイム音声テキスト化のためのオープンソースツール-1


 

機能一覧

  • リアルタイムの音声書き起こし:マイクを介し、ミリ秒単位の低遅延で音声を即座にテキストに変換。
  • 音声アクティビティ検出(VAD):音声の開始と終了を自動的に識別し、書き起こしプロセスを最適化します。
  • 多言語サポート:英語、中国語、その他の言語、ウィスパーモデルに基づく。
  • デュアルインターフェースオプション:Gradioの直感的なインターフェースとFastAPIのカスタマイズ可能なインターフェース。
  • ローカルモデルの実行:Whisperモデルを使用すれば、常時インターネットに接続することなく、オフラインでのトランスクリプションが可能です。
  • パラメータ調整:オーディオストリーム、VADスレッショルド、モデルバッチサイズの設定をサポート。
  • 柔軟な展開:ローカルで実行することも、Hugging Face Spacesのようなプラットフォームを通じて展開することもできる。
  • エラーフィードバック:接続の失敗や設定エラーを明確に表示し、デバッグを容易にします。

 

ヘルプの使用

設置プロセス

realtime-transcription-fastrtcを使用するには、Python環境と関連する依存関係を準備する必要があります。以下は、ユーザーが問題なくインストールして実行できるようにするための詳細な手順です。

  1. システム要件の確認
    • Pythonバージョン: >= 3.10。
    • 取り付け ffmpegオーディオ処理に使用される。
    • 推奨ハードウェア:モデル推論を高速化するGPU(MPSやCUDAなど)。
  2. クローン倉庫
    ターミナルで以下のコマンドを実行し、プロジェクトコードを取得する:

    git clone https://github.com/sofi444/realtime-transcription-fastrtc
    cd realtime-transcription-fastrtc
    
  3. 仮想環境の設定
    依存関係の衝突を避けるために、Pythonの仮想環境を作成する。これには公式に推奨されている2つの方法があります:
    モード1:紫外線の使用(推奨)
    まず uv(参照)。 https://docs.astral.sh/uv/)を実行する:

    uv venv --python 3.11
    source .venv/bin/activate  # Windows 用户运行 .venv\Scripts\activate
    uv pip install -r requirements.txt
    

    方法2:pipを使う

    python -m venv .venv
    source .venv/bin/activate  # Windows 用户运行 .venv\Scripts\activate
    pip install --upgrade pip
    pip install -r requirements.txt
    
  4. ffmpegをインストールする
    オペレーティングシステムに応じたインストール ffmpeg::
    マックオス::

    brew install ffmpeg
    

    Linux (Ubuntu/Debian)::

    sudo apt update
    sudo apt install ffmpeg
    

    ウィンドウズ::

    • ダウンロード ffmpeg 実行可能ファイル https://ffmpeg.org/download.html).
    • システム環境変数に追加するか、プロジェクトのルート・ディレクトリに置く。
  5. 環境変数の設定
    プロジェクトのルート・ディレクトリに .env ファイルに以下を追加する:

    UI_MODE=fastapi
    APP_MODE=local
    SERVER_NAME=localhost
    PORT=7860
    MODEL_ID=openai/whisper-large-v3-turbo
    
    • UI_MODEに設定する。 gradio グラディオのインターフェイスを使って fastapi カスタムHTMLインターフェースを使用する(デフォルト)。
    • APP_MODEローカルランは localクラウドの展開は deployed.
    • MODEL_IDWhisperモデルを指定します。 openai/whisper-large-v3-turbo.
    • SERVER_NAMEサーバーアドレス、デフォルト localhost.
    • PORTポート番号、デフォルト 7860.
  6. ランニング・プロジェクト
    メインプログラムを実行する:

    python main.py
    

    端末はURLを表示する。 http://localhost:7860グラディオ・モードではポートが異なる場合があるので、ターミナルのプロンプトに注意してください。

主な機能

リアルタイム音声トランスクリプション

  • テープ起こし開始インターフェイスを開き、"Start Recording "ボタンをクリックして、ブラウザがマイクにアクセスすることを許可します。システムは自動的に音声を検出し、テキストを表示します。
  • 結果を見る書き起こされたテキストは、インターフェイスのテキストボックスにリアルタイムで表示され、自動的に最新の内容にスクロールされます。
  • トランスクリプションの停止音声入力を一時停止する場合は、"Stop "ボタンをクリックします。
  • 銘記する低遅延を保証するため、プロジェクトのデフォルトのバッチサイズは1になっています。

音声アクティビティ検出(VAD)

  • VAD は音声と無音部分を自動的に区別し、トランスクリプション効率を向上させます。調整可能なパラメータ (FastRTC のマニュアルを参照) https://fastrtc.org):
    • audio_chunk_durationデフォルトは0.6秒。
    • started_talking_thresholdデフォルトは0.2秒。
    • speech_pad_msデフォルトは400ミリ秒。
  • 変更:編集 main.py または環境変数経由でパラメータを渡す。

インターフェース切り替え

  • グラディオ・インターフェイス記録ボタンとテキスト表示エリアがあり、迅速なテストに最適です。設定方法 UI_MODE=gradio その後、ターミナルからプロンプトされたアドレスにアクセスするために実行する。
  • FastAPI インターフェースカスタマイズをサポートし、開発者に適しています。モディファイ index.html スタイルや機能を調整することができます。設定方法 UI_MODE=fastapi 走った後は http://localhost:8000.

注目の機能操作

ローカル・ウィスパー・モデル

  • デフォルトモデル:openai/whisper-large-v3-turbo軽量、多言語、優れたパフォーマンス。
  • モデルの変更:設定 MODEL_ID例 openai/whisper-small(薄型デバイス用)。他のハギング・フェイスASRモデル (https://huggingface.co/models?pipeline_tag=automatic-speech-recognition).
  • 言語設定:デフォルトの翻訳は英語ですが、他の言語を転写する必要がある場合は、コードで設定してください。 language パラメーター(例 language=zh (中略)。
  • 最適化の実行:最初の実行では、レイテンシを減らすためにモデルをウォームアップします。GPUアクセラレーションを推奨。

多言語サポート

  • モデルにより、英語、中国語、スペイン語、その他の言語をサポート。
  • コンフィギュレーション main.py セットアップ transcribe タスクでターゲット言語を指定する。
  • 例:中国語スピーチの書き起こし、設定 language=zhマイク入力がクリアであることを確認してください。

クラウド展開

  • ハギング・フェイス・スペース設定 APP_MODE=deployedTurn サーバーを設定するには ( https://fastrtc.org/deployment/).コードをアップロードし、プラットフォームの指示に従って実行してください。
  • その他のプラットフォームポートが開いていることを確認するために、WebRTCとサーバー環境を手動で設定する必要があります。

エラー処理

  • コモンエラー::
    • 「接続に失敗しました」:ネットワークまたはWebRTCの設定を確認してください。
    • 「モデルが見つかりません」:確認済み MODEL_ID モデルがダウンロードされました。
    • 「ffmpeg が見つかりません。 ffmpeg インストールされ、システムパスにある。
  • テスト中にコンポーネントを調整するオーディオのサンプルレート、モデルのロード状況などを記録するために、実行時にターミナルのログを表示します。

ほら

  • ソフトウェアリアルタイム推論にはGPUを推奨、MPSをサポート whisper-large-v3-turbo.
  • ブラウザWebRTCが正しく機能していることを確認するため、ChromeまたはFirefoxを推奨します。
  • 発話精度マイクの音質や環境により異なりますが、静かな環境での使用を推奨します。

 

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

  1. 会議録
    リモートまたはオンサイトのミーティングでは、リアルタイムでディスカッションを書き起こし、トランスクリプトを作成します。チームは直接エクスポートして照合できるため、手作業でメモを取る必要がなくなります。
  2. ライブキャプション
    コンテンツのアクセシビリティを向上させるために、ライブ放送にリアルタイムキャプションを追加します。アンカーはGradioのインターフェイスを使って素早く作業でき、視聴者は即座にテキストを見ることができます。
  3. 語学学習
    発音をテキストに書き起こし、外国語の練習時に正確さをチェック。英語、中国語、その他の学習シナリオに適した多言語をサポートします。
  4. 開発能力
    開発者はプロジェクトを他のアプリケーションに統合し、WebRTCやASRの機能をテストすることができます。オープンコードは二次開発をサポートします。

 

品質保証

  1. ネットワークは必要か?
    ローカルでの操作にはインターネット接続は不要で、モデルをダウンロードしてオフラインで使用することができます。クラウド展開には、WebRTCのネットワークサポートが必要です。
  2. 対応言語は?
    デフォルトで英語がサポートされています。 language パラメータは、ウィスパーのモデルによって、中国語、スペイン語などに対応しています。
  3. テープ起こしの精度を上げるには?
    高品質のマイクを使用し、静かな環境を保ち、大型のモデル(たとえば whisper-large-v3-turbo).
  4. インターフェースをカスタマイズできますか?
    はい、FastAPIモードで編集可能です! index.htmlスタイルを調整したり、機能を追加したり。
  5. 転写が遅れるのはなぜですか?
    ハードウェアの性能不足またはネットワークの問題による可能性があります。GPUの使用を推奨します。
無断転載を禁じます:チーフAIシェアリングサークル " リアルタイム音声テキスト化のためのオープンソースツール
ja日本語