はじめに
realtime-transcription-fastrtcは、音声をリアルタイムでテキストに変換することに特化したオープンソースプロジェクトです。FastRTC技術を使って低遅延の音声ストリームを処理し、ローカルの ウィスパー モデルを使って効率的な音声認識を実現している。このプロジェクトは開発者のsofi444によって管理され、GitHubでホストされている。 コードは完全にオープンで、ユーザーは自由に変更することができる。ユーザーはブラウザ経由またはローカルでデプロイでき、インターフェースはGradioモードとFastAPIモードをサポートし、操作が簡単です。会議の記録、ライブ字幕、その他のシナリオに適しており、個人や開発者のニーズを満たすことができる。このプロジェクトは、軽量で多言語対応、安定した動作、拡張のしやすさを重視しています。
機能一覧
- リアルタイムの音声書き起こし:マイクを介し、ミリ秒単位の低遅延で音声を即座にテキストに変換。
- 音声アクティビティ検出(VAD):音声の開始と終了を自動的に識別し、書き起こしプロセスを最適化します。
- 多言語サポート:英語、中国語、その他の言語、ウィスパーモデルに基づく。
- デュアルインターフェースオプション:Gradioの直感的なインターフェースとFastAPIのカスタマイズ可能なインターフェース。
- ローカルモデルの実行:Whisperモデルを使用すれば、常時インターネットに接続することなく、オフラインでのトランスクリプションが可能です。
- パラメータ調整:オーディオストリーム、VADスレッショルド、モデルバッチサイズの設定をサポート。
- 柔軟な展開:ローカルで実行することも、Hugging Face Spacesのようなプラットフォームを通じて展開することもできる。
- エラーフィードバック:接続の失敗や設定エラーを明確に表示し、デバッグを容易にします。
ヘルプの使用
設置プロセス
realtime-transcription-fastrtcを使用するには、Python環境と関連する依存関係を準備する必要があります。以下は、ユーザーが問題なくインストールして実行できるようにするための詳細な手順です。
- システム要件の確認
- Pythonバージョン: >= 3.10。
- 取り付け
ffmpeg
オーディオ処理に使用される。 - 推奨ハードウェア:モデル推論を高速化するGPU(MPSやCUDAなど)。
- クローン倉庫
ターミナルで以下のコマンドを実行し、プロジェクトコードを取得する:git clone https://github.com/sofi444/realtime-transcription-fastrtc cd realtime-transcription-fastrtc
- 仮想環境の設定
依存関係の衝突を避けるために、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
- ffmpegをインストールする
オペレーティングシステムに応じたインストールffmpeg
::
マックオス::brew install ffmpeg
Linux (Ubuntu/Debian)::
sudo apt update sudo apt install ffmpeg
ウィンドウズ::
- ダウンロード
ffmpeg
実行可能ファイルhttps://ffmpeg.org/download.html
). - システム環境変数に追加するか、プロジェクトのルート・ディレクトリに置く。
- ダウンロード
- 環境変数の設定
プロジェクトのルート・ディレクトリに.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_ID
Whisperモデルを指定します。openai/whisper-large-v3-turbo
.SERVER_NAME
サーバーアドレス、デフォルトlocalhost
.PORT
ポート番号、デフォルト7860
.
- ランニング・プロジェクト
メインプログラムを実行する: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=deployed
Turn サーバーを設定するには (https://fastrtc.org/deployment/
).コードをアップロードし、プラットフォームの指示に従って実行してください。 - その他のプラットフォームポートが開いていることを確認するために、WebRTCとサーバー環境を手動で設定する必要があります。
エラー処理
- コモンエラー::
- 「接続に失敗しました」:ネットワークまたはWebRTCの設定を確認してください。
- 「モデルが見つかりません」:確認済み
MODEL_ID
モデルがダウンロードされました。 - 「ffmpeg が見つかりません。
ffmpeg
インストールされ、システムパスにある。
- テスト中にコンポーネントを調整するオーディオのサンプルレート、モデルのロード状況などを記録するために、実行時にターミナルのログを表示します。
ほら
- ソフトウェアリアルタイム推論にはGPUを推奨、MPSをサポート
whisper-large-v3-turbo
. - ブラウザWebRTCが正しく機能していることを確認するため、ChromeまたはFirefoxを推奨します。
- 発話精度マイクの音質や環境により異なりますが、静かな環境での使用を推奨します。
アプリケーションシナリオ
- 会議録
リモートまたはオンサイトのミーティングでは、リアルタイムでディスカッションを書き起こし、トランスクリプトを作成します。チームは直接エクスポートして照合できるため、手作業でメモを取る必要がなくなります。 - ライブキャプション
コンテンツのアクセシビリティを向上させるために、ライブ放送にリアルタイムキャプションを追加します。アンカーはGradioのインターフェイスを使って素早く作業でき、視聴者は即座にテキストを見ることができます。 - 語学学習
発音をテキストに書き起こし、外国語の練習時に正確さをチェック。英語、中国語、その他の学習シナリオに適した多言語をサポートします。 - 開発能力
開発者はプロジェクトを他のアプリケーションに統合し、WebRTCやASRの機能をテストすることができます。オープンコードは二次開発をサポートします。
品質保証
- ネットワークは必要か?
ローカルでの操作にはインターネット接続は不要で、モデルをダウンロードしてオフラインで使用することができます。クラウド展開には、WebRTCのネットワークサポートが必要です。 - 対応言語は?
デフォルトで英語がサポートされています。language
パラメータは、ウィスパーのモデルによって、中国語、スペイン語などに対応しています。 - テープ起こしの精度を上げるには?
高品質のマイクを使用し、静かな環境を保ち、大型のモデル(たとえばwhisper-large-v3-turbo
). - インターフェースをカスタマイズできますか?
はい、FastAPIモードで編集可能です!index.html
スタイルを調整したり、機能を追加したり。 - 転写が遅れるのはなぜですか?
ハードウェアの性能不足またはネットワークの問題による可能性があります。GPUの使用を推奨します。