現在の状態
① 起動
JS 起動中...
0s 経過

PoC #3 — Whisper + forced alignment v2.1

音声WAV → Whisper transcribe → 原文との forced alignment → タイムスタンプ付き字幕 (LRC) 生成。Whisper の誤認識・幻覚を吸収して原文ベースの正しい字幕を作る。
v2.1 (2026-05-23): オーナー指示で 1センテンス = 1 LRC 行に統一 (カンマ副分割を廃止)。

🟡 v1 → v2 の進化: v1 では Whisper 出力をそのまま LRC 化 → 「I knew up around 7」のような誤認識・幻覚が字幕に混入。 v2 では 既知の原文 (Piper TTS の入力) と Whisper 出力を Needleman-Wunsch DP でアラインし、 原文の各文に Whisper の時刻を付与する。シャドーイング教材として正確な字幕を目標。

✅ アルゴリズム単体検証: 376字 5文 / 1119字 13文 で DP < 400ms・マッチ率 99% / 幻覚 3 つを gap で吸収 (PC Node 実測)
✅ v2.1 単体検証: EN-XXL-A 1119字 → 13セグメント / 各セグ信頼度 95-99% / 1文 = 1 LRC 行 (PC Node 実測)
環境別の所要時間目安 (1分音声 × tiny モデル) 🟡 実測前の予想:
PC デスクトップ5〜20秒
Android Chrome (WASM)20〜90秒
iOS Safari (WASM)30〜120秒
📚 出典: ebook-audio・Piper PoC#2 実測との比較推定。Whisper モバイル実速は 本PoCで実測する。
1. Whisper モデル
2. 入力 WAV
3. 字幕モード選択
0 字
4. transcribe + LRC生成
🟡 推論はキャンセル中断不可 (transformers.js の AbortSignal 限定対応・要ソース確認)。 キャンセル=ページリロード。OPFS キャッシュは消えません。
ログ (実機テストで秘書へ送付するための診断情報)
F1〜F9 遵守状況 (v2 セルフチェック)
v2 で新たに気にしている限界 (🟡):
  • 🟡 Whisper の幻覚率が原文の 30% を超える場合 (極端な誤認識) は DP のマッチ率が低下 → 信頼度低い行が増える可能性
  • 🟡 仏語 transcription の品質が低いと alignment 信頼度も連動して低下する
  • 🟡 文字レベル DP は語順入れ替えに弱い (Whisper が文を順序入れ替えで認識した場合)
  • 🟡 1500字超では DP メモリ ~10MB+ で iOS Safari の WASM-不要メモリ枠でもマージン要確認