主な成果

  • 計1,680クリップ(JVS + LibriSpeech)の自動評価でASR一致率 平均0.953
  • 詰まり(語中ポーズ)の誤検出率 2.7%
  • 同一文の棒読み/抑揚あり比較で単調さスコア 0.74 vs 0.15 を分離

背景

話し方の独学には「自分の声を客観的に聞けない」「どこが悪いか言語化できない」「どう直せばいいか分からない」という3つの壁があります。動画などで話す人を想定し、5〜10秒の短い発話を「喋る → 自動で区切って再生 → 解析・可視化 → 具体的フィードバック」というループで反復練習できれば独学でも話し方を改善できるはず、という発想から始めたPoCです。

仕組み・構成

ブラウザで無音を検知して発話を自動で区切り、サーバ側でWhisper(whisper-large-v3)による単語タイムスタンプ付き文字起こしと、essentia.jsによるピッチ(F0)・ラウドネス抽出を並行実行。そこから単調さ・話速といった発話全体の指標に加え、強調・ポーズ(語中の詰まりと語間の意図的な間を区別)・フィラーを単語単位で算出します。結果はトランスクリプトへの重畳表示とSVGのピッチ曲線で可視化し、特徴量とトランスクリプトをLlama 3.3 70Bに渡して具体的な改善アドバイスを生成します。日本語はkuromojiで語境界を再構成し、アクセント辞書(kanjium)と照合するピッチアクセント評価も実験的に組み込んでいます。

工夫・検証ポイント

実用上の壁は音声解析の足回りにあります。ピッチ推定のオクターブエラーにはメディアンフィルタ+連続性平滑化+中央値折り畳みのハイブリッド補正を実装。Whisperの単語タイムスタンプには隙間が出ない特性があるため、ポーズ検出はエネルギーベースの無音検出に切り替え、無音区間のハルシネーション(無音から文章を捏造する現象)もガードしています。話速は無音を除いた実発話時間ベースで算出し、発話が短すぎる場合は信頼性ゲートで断定的な判定を抑制します。評価のぶれを防ぐため、これらの指標は多話者コーパスでの自動評価ハーネスにかけて回帰検証しています。

結果

多話者コーパス(日本語JVS 1,200クリップ + 英語LibriSpeech 480クリップ、計1,680クリップ)の自動評価では、ASR一致率は平均0.953、詰まり(語中ポーズ)の誤検出率は2.7%、オクターブエラー疑いは0.2%でした。実機の較正セッションでは、同じ文を棒読みした場合と抑揚をつけた場合とで単調さスコアが0.74対0.15と明確に分離し、狙いどおりの感度を確認しています。

実測データ

多話者コーパス自動評価(JVS 1,200 + LibriSpeech 480 クリップ)
指標全体日本語(JVS)英語(LibriSpeech)
ASR一致率(平均)0.9530.9420.981
詰まり誤検出率2.7%2.8%2.7%
信頼性ゲート通過率98.9%100%96.2%

ASR一致率はコーパスの正解テキストとWhisper出力の一致度。信頼性ゲートは発話が短すぎる場合などに断定的な判定を抑制する仕組み。

デモ・解説

デモ動画・解説記事を準備中です。公開しだい、このページに掲載します。