Skip to content

Latest commit

 

History

History
259 lines (180 loc) · 8.52 KB

File metadata and controls

259 lines (180 loc) · 8.52 KB

ASR参数评估实验记录

综合评测报告见 docs/TRANSLATION_AND_ASR_EVALUATION.md,本文件保留350视频参数评测的详细数据。

实验时间:2026年2月


1. 背景

现有日语语音数据集(Common Voice、JSUT、ReazonSpeech等)的音频内容多为新闻播报、正式访谈、朗读文本,与VTuber直播的口语风格、游戏实况、BGM环境等差异较大。

之前尝试过J-Speech数据集中标注为"有日语人工字幕"的YouTube视频,但发现很多视频的音频实际是英语(字幕只是翻译给日本观众看的),或者没有有效语音内容。这条路走不通。

因此改为直接从目标领域采集数据:扫描Hololive旗下40多个VTuber频道(共49203个视频),筛选出有YouTube人工标注日语字幕的350个视频,下载音频和字幕作为测试集。


2. 测试内容

2.1 测试的参数

基于Whisper large-v3,测试了以下参数变体(共14种配置):

参数 测试值
initial_prompt 无 / 日语提示 / VTuber专用提示
hallucination_silence_threshold null / 1.0 / 2.0 / 3.0
condition_on_previous_text true / false
repetition_penalty 1.0 / 1.1 / 1.2
no_speech_threshold 0.4 / 0.6 / 0.8

2.2 评估指标

使用字符错误率(CER): $$CER = \frac{插入 + 删除 + 替换}{参考文本长度}$$


3. 结果

3.1 CER分布情况

350个视频用baseline配置测试的CER分布:

  0- 10%:   1 (  0.3%)
 10- 20%:  12 (  3.4%) █
 20- 30%:  23 (  6.6%) ███
 30- 40%:  20 (  5.7%) ██
 40- 50%:  25 (  7.2%) ███
 50- 60%:  30 (  8.6%) ████
 60- 70%:  28 (  8.0%) ████
 70- 80%:  34 (  9.7%) ████
 80-100%: 126 ( 36.1%) ██████████████████
100%以上:  50 ( 14.3%) ███████

平均CER约50-60%,看起来很高,但需要分情况看。

3.2 CER高的原因分析

深入检查发现,CER高主要有以下原因:

(1) 大量歌曲/音乐视频(159个,占45%)

这些视频的ASR输出长度不到GT的30%。Whisper对歌唱内容几乎无法识别,输出很少或为空。

示例:星街すいせい的歌曲MV,GT是完整歌词,ASR几乎没有输出。

(2) GT字幕包含非语音内容

很多歌曲视频的字幕包含:

  • 歌曲元信息(歌名、作词作曲)
  • CSS样式代码残留(}等)
  • 注音标记(銀(ぎん)河(が)

这些内容ASR不可能识别出来。

(3) GT字幕不完整或有问题

部分视频的GT字幕:

  • 只标注了部分台词(如只有壁咚场景的台词,没有开场白)
  • 是自动生成的错误字幕(乱码)
  • 与音频不匹配(可能上传错了)

这类情况下ASR识别是对的,但CER反而很高。

(4) 正常样本的实际情况

排除上述异常后,长度比例正常(0.3-2.0)且GT>=100字的样本有167个。

这些样本的平均CER:53.2%

进一步检查发现,CER主要来自:

  • 汉字vs假名写法差异("私"vs"わたし")
  • 标点符号差异
  • 语气词的差异

实际对比ASR和GT文本,内容是基本正确的。

3.3 低CER样本示例(识别效果好)

CER 视频 GT长度 说明
8.6% Regarding Recent Events 694字 正式声明视频,语速清晰
13.4% メイク事情を初公開 1317字 正常闲聊
15.4% センター試験の受験生を応援 188字 短视频,内容简单
17.5% 夏ニュースをお届け 3008字 新闻播报风格

CER<20%的样本有13个(3.7%),这些都是:

  • 语速适中、发音清晰
  • 没有BGM或BGM很轻
  • 内容是正常对话/独白

3.4 参数效果对比

在167个正常样本上的参数排名:

排名 配置 平均CER 相对baseline
1 optimized_v1 (HST=2+copt=false) 49.9% +1.5%
2 copt_false_hst2 49.2% +2.8%
3 hst_2 49.9% +1.4%
4 hst_1 50.1% +1.1%
5 copt_false 50.5% +0.4%
... ... ... ...
11 baseline 50.7% 0%
12 rp_1.1 50.8% -0.2%
14 rp_1.2 51.3% -1.2%

结论

  • hallucination_silence_threshold 设为1-3有轻微改善
  • condition_on_previous_text=false 有轻微改善
  • 两者组合效果叠加
  • repetition_penalty>1.0 反而有害
  • initial_prompt 效果不稳定,在不同样本集上结论不一致

4. 当前默认参数(修改前)

asr:
  beam_size: 7
  condition_on_previous_text: false
  no_speech_threshold: 0.2
  initial_prompt: ""
  repetition_penalty: 1.2
  hallucination_silence_threshold: 3

这是之前开发时随便试了几个看起来还行的值。


5. 结论与建议

5.1 关于CER指标

50%的平均CER看起来很高,但这个数字有误导性:

  1. 45%的样本是歌曲/音乐视频,ASR本来就无法处理,拉高了平均值
  2. 部分GT字幕本身有问题(不完整、乱码、不匹配)
  3. 文本对比上内容基本正确,CER主要来自格式/写法差异

对于正常对话内容,实际识别效果是可用的。

5.2 建议采用的参数

基于测试结果,建议修改:

asr:
  beam_size: 5                              # 从7改为5,减少计算量
  condition_on_previous_text: false         # 保持,减少幻觉传播
  no_speech_threshold: 0.6                  # 从0.2改为0.6(默认值)
  initial_prompt: ""                        # 保持空,效果不稳定
  repetition_penalty: 1.0                   # 从1.2改为1.0,1.2反而有害
  hallucination_silence_threshold: 2        # 从3改为2

预期改善:约1-3%的CER降低(在正常样本上)

5.3 值得尝试的方向

  1. 内容类型检测:在ASR前检测是否为歌曲/音乐,跳过或用专门模型处理
  2. ASR质量自检:检查输出长度比例,异常的标记需人工审核
  3. 多模型对比:可以试试kotoba-whisper等日语专用模型

5.4 condition_on_previous_text 和 initial_prompt 深入分析

这两个参数从直觉上应该有帮助,但测试结果显示在更多情况下会变差。以下是详细分析:

condition_on_previous_text

内容类型 样本数 false更好 true更好 平均差异
歌曲 81 26% 10% +4.57%
游戏 10 30% 30% +0.94%
闲聊 3 33% 33% -0.07%
其他 251 34% 14% +1.16%

问题原因:copt=true时,如果视频开头是音乐/静默,模型会"传播"无输出状态到后续所有segment。典型案例:

  • 歌曲视频baseline(copt=true)输出0字,copt=false能输出数百字

copt=true更好的少数案例(11个):主要是GT很短(<200字)或英文内容的视频,这些本身baseline就有问题。

initial_prompt

测试的prompt:

  • "これは日本語の音声です。"
  • "これはVTuberの配信や動画です。日本語で話しています。"
内容类型 prompt更好 无prompt更好 平均差异
歌曲 15% 33% -5.66%
游戏 20% 50% -5.47%
其他 18% 40% -3.43%

问题原因:prompt会导致模型在歌曲/音乐内容上陷入重复循环,输出prompt内容的无限重复,或完全无输出。

量化收益分析(按GT长度加权)

策略 加权CER
baseline (copt=true, 无prompt) 94.01%
copt=false 93.64% (+0.37%)
用prompt 94.74% (-0.73%)
4种配置取最优 93.38% (+0.63%)

结论

  • copt=false 是最优单一策略,收益+0.37%
  • prompt无益处,反而有害-0.73%
  • 多配置取最优需要4倍时间,额外收益仅0.27%,不值得做二次处理

5.5 不建议继续投入的方向

  1. 激进参数调优:对歌曲/困难样本帮助有限
  2. repetition_penalty调高:测试证明无效甚至有害
  3. initial_prompt:当前设计有害,在歌曲/音乐上会导致重复或无输出
  4. 二次处理取最优:4倍时间换0.27%收益,不划算
  5. 用YouTube自动字幕做GT:质量不可靠

6. 文件说明

文件 说明
subtitled_videos.json 扫描到的视频字幕信息
downloaded/ 下载的音频和VTT字幕
param_results/results_full_*.json 完整测试原始数据
param_results/gt_quality_check.json GT质量检测结果
scripts/asr_evaluation/check_gt_quality.py GT质量检测脚本

记录时间:2026-02-04