whisper-tinyの全文文字起こしはNO-GO
指差呼称の記録用途を想定した実測記録です。静音・雑音下でrecallが基準に届かず、SNR5dBでは暴走生成によるUIフリーズも確認しました。
① 検証課題
whisper-tiny(オープン語彙の全文ASR)をブラウザ内で動かし、指差呼称の音声をそのまま文字起こしする方式が、記録・判定用途に使える精度か。
② 環境
- モデル: whisper-tiny(transformers.js経由でブラウザ内推論。ONNX Runtime Web 1.27.0)
- 実行方式: Chromium(Playwright 1.61.1バンドル版、headless制御)上での実推論。サーバ側処理ではありません。
- 実行日: 2026-07-17
- CPU・GPU・OS: 実行環境のCPU型番・GPUモデル・OSはハーネスのログに記録なしです(本カルテはCPU/WASM実行のためGPU性能はレイテンシに寄与しません)。
- 音声条件: 静音(quiet)/SNR10dB/SNR5dBの3条件
- 試験セット: 呼称フレーズ10種+雑談(誤受理チェック用)10種を、edge-tts合成音声2話者(ja-JP-KeitaNeural/ja-JP-NanamiNeural)で読み上げ。各条件20発話(呼称10種+雑談10種を話者2種に配分)、3条件合計60発話(話者数を掛けて120にはならない)
- 照合方法: ASR出力と正解フレーズをかな読みに変換し、類似度スコア(rapidfuzzの正規化indel比)で照合。類似度60以上を「一致」と判定(50・70でも感度確認)
③ 判定基準(事前に置いた基準)
このスパイク検証で事前に定義した基準です(測定スクリプトのdocstringに明記)。
| 指標 | 基準 |
|---|---|
| recall(静音) | 90%以上 |
| recall(雑音下: SNR10dB・SNR5dB) | 80%以上 |
| 誤受理率(雑談を呼称と誤判定) | 5%以下 |
| p95レイテンシ(発話終了→判定) | 2500ms以下 |
④ 結果(実測値)
ミリ秒の実測値は小数点以下を四捨五入して表記します(本ページ・関連カルテ共通の丸め規則)。
| 条件 | recall(基準90%/80%) | 誤受理率(基準5%以下) | p95レイテンシ(基準2500ms以下) |
|---|---|---|---|
| 静音(quiet) | 80%(未達) | 0% | 1539ms |
| SNR10dB | 50%(未達) | 0% | 1537ms |
| SNR5dB | 0%(未達) | 0% | 22981ms(未達) |
| 雑音下 合算(snr10+snr5・しきい値60) | 25%(基準80%に対し未達) | — | — |
しきい値を動かしても解決しない(トレードオフの実測)
| 類似度しきい値 | 雑音下recall(snr10+snr5) | 誤受理率(全条件) |
|---|---|---|
| 50 | 45% | 6.7%(基準5%超過) |
| 60(採用値) | 25% | 0% |
| 70 | 25% | 0% |
しきい値を50まで下げると雑音下recallは45%まで改善しますが、誤受理率が6.7%まで悪化し基準(5%以下)を超えるため採用できません。70まで上げても雑音下recallは25%のままです。recallと誤受理率はトレードオフの関係にあり、しきい値調整だけではどちらの基準も同時に満たせません。
意味が反転する誤認識例
静音条件でも、聞き取り自体はできていても意味が反転する誤りが発生しました。
(同じ発話のSNR10dB条件では「電源を強し」、SNR5dBでは暴走生成により無関係な文字列を出力)
暴走生成によるUIフリーズ(SNR5dB・呼称10件中2件)
SNR5dB条件の呼称フレーズ10件中2件(call_02・call_05)で、デコーダが同じ音を繰り返し生成し続ける暴走が発生し、1件あたり約23秒(22979〜23021ms)処理が返りませんでした。通常時(1.3〜1.5秒)の約15倍です。
generateOptionsで暴走は解消できるが、recallは変わらない
max_new_tokens=16 に制限すると暴走は解消しました(SNR5dBのmax latencyが23021ms→1792msに短縮、外れ値0件)。しかも各条件のrecallは変化しませんでした(しきい値60で静音80%・SNR10dB 50%・SNR5dB 0%のまま)。
これは生成トークン数の制御では直らない、モデルサイズ自体の認識精度の限界を示しています。
⑤ この実測から言えないこと
⑥ 再現方法
同じ方式のブラウザ内ASRは音声文字起こしデモで試せます(モデルサイズはデモ側の既定値を使用)。指差呼称の記録用途としての実装は指差呼称チェッカーで確認できます。
この検証で使った測定ハーネス(音声条件生成・バッチ実行・採点スクリプト一式)と生の実測データは、社内の検証用リポジトリに保存済みです(本サイトの公開リポジトリには含まれません)。数値の再検証をご希望の場合はお問い合わせください。
出典(内部データファイル名・参考情報): recall/誤受理率/p95はasr/score_summary.json(採用しきい値60時点)とasr/arm1_score_summary.json(max_new_tokens=16版)。誤認識例・暴走件数の個票はasr/batch_results.json。
関連する業務ページ
この実測が、自社の記録用途にそのまま使えるかを先に整理する
この仕組みが自分の現場に要るか、先に整理する
いくつかの質問に答えると、次に試すデモ・追加で確かめること・PoC受入基準のひな型が表示されます。登録は不要で、結果はその場で全部見られます。
意思決定室で整理する(登録不要・約3分)