Whisper Web は、Xenova によるオープンソースのブラウザ音声認識アプリケーションです。 Web ワーカーの Transformers.js を介して Whisper ファミリ モデルを実行し、URL、ローカル ファイル、またはマイクから音声を受け取り、TXT または JSON としてエクスポートできるタイムスタンプ付きのテキストを返します。このプロジェクトは、維持されたフル機能の文字起こしサービスとしてではなく、クライアント側の自動音声認識のコンパクトなデモンストレーションとして役立ちます。
メンテナンス状況が重要です。メイン ブランチは 2024 年 6 月 10 日に最後にコミットされ、ピンは @ゼノバ/トランスフォーマー 2.7.0。その README は、別の実験的な WebGPU ブランチを指しています。メイン アプリケーションは主に古い Worker/WASM パスに従います。現在の Transformers.js ドキュメントは v3 世代に移行し、WebGPU をより直接的にサポートしているため、開発者はこのリポジトリを現在のフレームワーク スターターではなく、読み取り可能なリファレンス実装として扱う必要があります。

向いている人・向いていない用途
| 利用者・用途 | 適合度 | 理由 |
|---|---|---|
| フロントエンドまたは ML 開発者がブラウザ ASR を学習する | 高い | React、Worker、Transformers.js のパスは、エンドツーエンドで検査できるほどコンパクトです |
| 個人が短く非機密な録音を文字に起こす | 条件付きで適する | アカウントやサーバー ジョブは必要ありませんが、モデルのダウンロードとブラウザのメモリは依然として重要です |
| レビュー済みの字幕を制作するチーム | 限定的 | トランスクリプトエディタ、SRT/VTT のエクスポート、講演者のラベル付け、共同レビューはありません。 |
| 長文一括文字起こしサービス | 不向き | ブラウザ タブはメモリと実行を所有します。キュー、再試行、永続性、可観測性がありません。 |
| 医療、法律、または規制されたオーディオ | 試作品のみ | ローカル推論はプライバシーに役立ちますが、アクセス制御、保持、監査、人間による検証は実装されていません |
Whisper Web は、教育用およびプロトタイピング用のサーフェスとして最もよく評価されています。音声デコード、モデルの読み込み、チャンク コールバック、タイムスタンプ、エクスポートが文字起こしバックエンドなしでどのように機能するかを示します。そのため、プライベートな実験、会議のデモ、ターゲット ハードウェアでの最初の実現可能性テストに役立ちます。これは、サポートされているトランスクリプション製品のドロップイン代替品ではありません。ユーザー アカウント、ジョブの回復、モデル管理、監査ログ、保持制御、修正インターフェイス、またはサービス レベルの保証はありません。
内部ツールの場合は、ページとモデルの重みを誰がホストするか、どのブラウザがサポートされるか、タブのクラッシュやキャッシュの削除からユーザーがどのように回復するかを決定します。公開製品の場合は、マイクの使用、モデルのダウンロードの期待、エラー報告、および音声とテレメトリの送信先に関する明確な記述に関する同意を追加します。これらの操作の詳細は、デモが 1 つのクリーンなサンプルを転写できるかどうかよりも重要です。
Whisper Webの仕組みと機能
| エリア | 実装 | 実務上の意味 |
|---|---|---|
| 推論 | Transformers.js Web Worker の自動音声認識パイプライン | ブラウザが推論を実行している間、UI は応答し続けます。 |
| 音声の準備 | Web オーディオ API、16 kHz にリサンプリングされ、モノラルにミックス | ブラウザのコーデック サポートにより、どのファイルが正常にデコードされるかが決まります |
| 長い音声 | 5 秒のストライドで 30 秒のチャンク。 Distil-Whisper は 20/3 秒を使用します | オーバーラップは連続性に役立ちますが、フレーズの繰り返しや結合が発生する可能性があります |
| デコード | タイムスタンプと部分的なコールバックを使用した貪欲なデコード | シンプルで検査可能ですが、デコード制御がほとんど公開されていません |
| エクスポート | プレーンテキストまたは JSON タイムスタンプ チャンク | ネイティブの SRT/VTT、話者話者分離、またはトランスクリプト エディタはありません |
ファイルまたはマイクから選択された音声はデコードされ、ブラウザ内のモデルに渡されます。アプリは引き続き初回使用時に Hugging Face からモデルの重みをダウンロードし、URL を入力するとブラウザーがそのリモート オーディオを取得します。したがって、「ローカル推論」とは、音声からテキストへの計算がクライアント側で行われることを意味します。これは、ページがネットワーク リクエストをまったく行わないという意味ではありません。
入力方法・対応モデル・ダウンロード容量
| 現在のUIで選べるモデル | 表示上のダウンロード容量 | 適した用途 |
|---|---|---|
| whisper-tiny(量子化) | 41MB | 最速の初回テストと低メモリのデバイス |
| whisper-base(量子化) | 77MB | 大規模なダウンロードを必要としない適度な精度のステップ |
| whisper-small(量子化) | 249MB | メモリが許せば、より効率的なローカル転写 |
| whisper-medium(量子化) | 776MB | より強力なデスクトップ ハードウェアでのより大容量の実験 |
| Whisper-tiny.en、非量子化 | 152MB | ダウンロード サイズよりも忠実度が重要な英語音声 |
| Whisper-base.en、非量子化 | 291MB | 追加のブラウザ メモリが利用可能な場合は英語のみで動作します |
| Distil-Whisper オプション | 402 または 767 MB | リポジトリの抽出されたチェックポイントを使用した英語のみの実験 |
多言語モードでは、長い言語セレクターが表示され、ユーザーはソース言語での転写か英語への翻訳のいずれかを選択できます。 UI では、自動言語選択、ビーム検索、温度フォールバック、語彙ヒント、日記作成は表示されません。量子化により重みのサイズが削減され、多くの場合実現可能性が向上しますが、精度と安定性は目的のオーディオでテストする必要があります。

実測比較:速度と文字起こしの安定性
2026 年 8 月 20 日に、バンドルされた公式の 60 秒英語サンプルを Chromium ベースのデスクトップ ブラウザーで実行しました。これは単一の環境チェックであり、標準化されたモデル ベンチマークではありません。ネットワーク キャッシュ、CPU、ブラウザ、熱状態、モデルのダウンロードによってタイミングが変更される可能性があります。
| 構成 | 実測した完了時間 | 実測結果 |
|---|---|---|
量子化された多言語 Xenova/whisper-tiny (41MB) | 約27秒 | 速いですが、後半ではフレーズの繰り返しが目立ち、分割ミスがいくつかありました |
量子化されていない英語 Xenova/whisper-tiny.en (152MB) | 約36秒 | 個々の認識エラーは依然として含まれていましたが、実質的により一貫性があり、より適切にセグメント化されました。 |
有用な結論は、1 つのタイミングがどこでも再現されるということではありません。それは、量子化された最小の多言語設定をプレビュー構成として扱う必要があるということです。英語の資料の場合、英語のみのチェックポイントは、大規模なダウンロードの価値がある可能性があります。多言語、ノイズの多い、またはドメイン固有の録音の場合は、デフォルトを選択する前に、代表的なクリップで少なくとも tiny、base、small を比較してください。

正しく評価するための指標
| メトリック | 測定方法 | なぜそれが重要なのか |
|---|---|---|
| 単語または文字のエラー率 | 人間が検証した正解文字起こしと比較する | 全体的な精度。単語間の空白のない言語の文字エラー率を使用する |
| 固有名詞と数字 | 名前、製品、日付、価格、単位を個別にスコア付けします | 小さな間違いにより、会議、法的、または研究メモが無効になる可能性があります |
| 幻覚率 | 沈黙、音楽、拍手、発話が弱い区間を含める | Whisper モデルは、音声が弱い場合でももっともらしいテキストを出力できます |
| タイムスタンプのドリフト | 開始、中間、終了の境界を確認してください | 字幕とシーク可能なトランスクリプトに重要 |
| リアルタイム係数 | 処理秒数を音声秒数で割った値 | モデルの速度と主観的な待ち時間を分離します。 |
| コールド スタートとウォーム スタート | モデルのダウンロード/ロードを推論とは別に記録する | 繰り返しのユーザーはまったく異なるエクスペリエンスを体験する可能性があります |
| メモリと故障率 | ターゲットブラウザと長いファイルをテストする | クラッシュしたモデルは、使用可能な精度アップグレードにはなりません |
評価に使う音声セット
クリーンな単一スピーカー ── 名前 + 番号 騒がしい部屋 ────── 重なり合う声 電話音声 ──── 圧縮 + 帯域幅 音楽/拍手 ────── 沈黙 幻覚チェック 長時間の録音 ─────── チャンクの結合 + タイムスタンプのドリフト 多言語クリップ ──── 言語/タスクの正確さ
- 実際の使用例に一致する 20 ~ 30 個の短いクリップについて、人間が検証したリファレンスを作成します。
- tiny、base、small を同じブラウザ、ウォーム/コールド状態、量子化設定で実行します。
- 精度、初回実行時間、ウォーム推論時間、ピークメモリの症状と障害を記録します。
- 平均エラー率とは別に、固有名詞、数字、繰り返し、無音部分を確認します。
- TXT および JSON エクスポートをテストし、ダウンストリームの字幕変換が許容されるかどうかを判断します。
ブラウザ、プライバシー、運用上の制約
| 制約 | 導入前に確認すべきこと |
|---|---|
| ブラウザの互換性 | README には Firefox Worker フラグが必要です。アプリのエラー ハンドラーは M1/M2 の Safari について警告し、Chrome、Firefox または Edge を推奨します |
| クロスオリジンオーディオ | リモート URL の読み込みは、ブラウザー要求を許可するソース サーバーに依存します。通常の Web ページの URL が、必ずしも使用可能なオーディオ URL であるとは限りません |
| モデルのキャッシュ | ストレージ クォータ、キャッシュの削除、管理対象またはプライベート ブラウジング デバイスでの繰り返しダウンロードを確認します。 |
| 繊細なオーディオ | 推論コードだけでなく、ページ ホスティング、モデル配信、テレメトリ、ブラウザ拡張機能を確認します。 |
| セルフホスティング | 依存関係をピン留めし、モデル資産を意図的に提供し、セキュリティヘッダーを追加し、オフライン動作をテストします |
| ライセンス | アプリケーション コードは MIT ライセンスを取得しています。モデルのチェックポイントと提出されたオーディオには独自の条件と権利がまだあります |
リポジトリセット env.allowLocalModels = falseそのため、そのストックビルドでは、バンドルされたウェイトではなく、リモートモデルの配信が期待されます。プライベートまたはオフラインの展開には、コードとホスティングの変更が必要です。単に UI を複製するだけでエアギャップ文字起こしシステムが作成されるなどとは決して主張しないでください。
Whisper Webと類似オープンソースツールの比較
| 選択肢 | 向いている場面 | 主なトレードオフ |
|---|---|---|
| Whisper Web by Xenova | URL、ファイル、マイク、タイムスタンプのエクスポートを使用した小規模な React/Transformers.js デモが必要な場合 | メインブランチは古く、コントロールが限られており、ネイティブの字幕や話者分離のワークフローがありません |
| whisper.cpp WebAssembly デモ | C/C++ ベースのブラウザ パス、明示的なローカル モデルの読み込み、ファイル/マイクのサポートが必要な場合 | 文書化された WASM サンプルは CPU 指向であり、120 秒の小規模および上限オーディオを介したモデルに限定されています。 |
| Whisper-WebUI | より豊富な自己ホスト型字幕インターフェイス、faster-whisper、より大きなモデル、バックエンド/API オプションが必要です | Python/サーバーのセットアップが必要ですが、純粋にクライアント側のブラウザ推論ではありません |
| 現在の Transformers.js カスタム アプリ | 新しいブラウザ製品を構築していて、最新の WebGPU、ONNX、およびフレームワーク統合パターンが必要である | あなたは完全な UI、オーディオ パイプライン、モデルのライフサイクル、QA、互換性マトリックスを所有します |
| ネイティブ whisper.cpp または faster-whisper | 長いファイル、バッチ処理、自動化、または制御されたデスクトップ/サーバーのパフォーマンスが重要です | インストールと展開は Web ページを開くよりも重い |
Whisper Web は、ソースがコンパクトで検査しやすいため、依然として価値があります。これは、ターンキー製品の選択よりも優れた学習成果物です。新しいアプリケーションの場合は、ライブ デモに対してプロトタイプを作成し、同じプライベート評価セットを使用して現在の Transformers.js 実装をネイティブまたはサーバー側のエンジンと比較します。
本番導入チェックリスト
代表的な音声 + 参考テキスト
↓
ブラウザ/モデル/量子化行列
↓
正確さ・幻覚・時間・記憶
↓
ローカルブラウザ ── または ── ネイティブ/サーバー エンジン
↓
保持、同意、エクスポート、人間によるレビュー
- 目的がデモ、プライベート ローカル ツール、またはサポートされている製品であるかどうかを確認します。
- リポジトリのコミット、Transformers.js バージョン、および正確なモデル リビジョンを固定します。
- ターゲット言語、アクセント、ノイズ、無音、ファイルの長さをベンチマークします。
- コールド ダウンロード時間をウォーム転写速度から切り離します。
- クリアな進行状況、キャンセル、メモリ エラー、およびサポートされていないブラウザの処理を追加します。
- TXT/JSON で十分であるか、または SRT/VTT を追加して編集し、日記を作成するかを決定します。
- 音声の保存、モデルのホスティング、同意、削除を文書化します。
- 名前、番号、法的または医学的意味が重要な場合は、人間によるレビューが必要です。
よくある質問
Whisper Web は文字起こし用に音声をアップロードしますか?
推論パイプラインはブラウザーのワーカーで実行されます。ただし、ページではモデル ファイルがダウンロードされ、URL 入力ではリモート オーディオがブラウザにダウンロードされます。完全オフラインと説明する前に、展開されたサイトのホスティングとネットワークの動作を確認してください。
マイク音声をリアルタイムで文字起こしできますか?
マイクから録音し、完成した録音を文字に起こすことができます。標準インターフェイスは、継続的な低遅延ストリーミング キャプション システムではありません。
どのモデルから始めるべきですか?
量子化された tiny は、実現可能性を簡単にチェックする場合にのみ使用してください。代表的なオーディオで tiny、base、small を比較します。英語のみのチェックポイントは英語での音声の場合により安定しますが、他の言語や英語の翻訳には多言語チェックポイントが必要です。
字幕をエクスポートできますか?
直接ではありません。現在の UI は、TXT とタイムスタンプ付きの JSON をエクスポートします。 SRT または VTT では、変換ステップとタイムスタンプのレビューが必要です。
WebGPU バージョンがデフォルトですか?
いいえ。リポジトリの README は、WebGPU を実験的なブランチとしてリンクしています。現在の Transformers.js ドキュメントは WebGPU をサポートしていますが、このメイン ブランチは古い 2.7 依存関係のままです。
現在も活発にメンテナンスされていますか?
メイン ブランチの最新のコミットは、2026 年 8 月 20 日にレビューされたとき、2024 年 6 月 10 日でした。デモはまだ実行されていますが、メンテナンスのギャップは技術的な採用の決定に含める必要があります。
参照した資料
- Whisper Web GitHub リポジトリ
- Whisper Web README および WebGPU ブランチ ノート
- オーディオ入力、モデル、サイズ、言語、およびタスク
- ワーカー推論、チャンキング、デコードの実装
- タイムスタンプの表示と TXT/JSON のエクスポート
- 公式ライブ Hugging Face スペース
- 現在の Transformers.js WebGPU ガイド
- whisper.cpp WebAssembly の例
- Whisper-WebUI リポジトリ
独立したレビューと実践テスト: 2026 年 8 月 20 日。リポジトリの状態、ブラウザのサポート、モデル ファイル、およびデモの利用可能性は変更される可能性があります。導入前に現在のソース デバイスとターゲット デバイスを確認してください。



