综合评测报告见
docs/TRANSLATION_AND_ASR_EVALUATION.md,本文件保留350视频参数评测的详细数据。
实验时间:2026年2月
现有日语语音数据集(Common Voice、JSUT、ReazonSpeech等)的音频内容多为新闻播报、正式访谈、朗读文本,与VTuber直播的口语风格、游戏实况、BGM环境等差异较大。
之前尝试过J-Speech数据集中标注为"有日语人工字幕"的YouTube视频,但发现很多视频的音频实际是英语(字幕只是翻译给日本观众看的),或者没有有效语音内容。这条路走不通。
因此改为直接从目标领域采集数据:扫描Hololive旗下40多个VTuber频道(共49203个视频),筛选出有YouTube人工标注日语字幕的350个视频,下载音频和字幕作为测试集。
基于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 |
使用字符错误率(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%,看起来很高,但需要分情况看。
深入检查发现,CER高主要有以下原因:
这些视频的ASR输出长度不到GT的30%。Whisper对歌唱内容几乎无法识别,输出很少或为空。
示例:星街すいせい的歌曲MV,GT是完整歌词,ASR几乎没有输出。
很多歌曲视频的字幕包含:
- 歌曲元信息(歌名、作词作曲)
- CSS样式代码残留(
}等) - 注音标记(
銀(ぎん)河(が))
这些内容ASR不可能识别出来。
部分视频的GT字幕:
- 只标注了部分台词(如只有壁咚场景的台词,没有开场白)
- 是自动生成的错误字幕(乱码)
- 与音频不匹配(可能上传错了)
这类情况下ASR识别是对的,但CER反而很高。
排除上述异常后,长度比例正常(0.3-2.0)且GT>=100字的样本有167个。
这些样本的平均CER:53.2%
进一步检查发现,CER主要来自:
- 汉字vs假名写法差异("私"vs"わたし")
- 标点符号差异
- 语气词的差异
实际对比ASR和GT文本,内容是基本正确的。
| CER | 视频 | GT长度 | 说明 |
|---|---|---|---|
| 8.6% | Regarding Recent Events | 694字 | 正式声明视频,语速清晰 |
| 13.4% | メイク事情を初公開 | 1317字 | 正常闲聊 |
| 15.4% | センター試験の受験生を応援 | 188字 | 短视频,内容简单 |
| 17.5% | 夏ニュースをお届け | 3008字 | 新闻播报风格 |
CER<20%的样本有13个(3.7%),这些都是:
- 语速适中、发音清晰
- 没有BGM或BGM很轻
- 内容是正常对话/独白
在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效果不稳定,在不同样本集上结论不一致
asr:
beam_size: 7
condition_on_previous_text: false
no_speech_threshold: 0.2
initial_prompt: ""
repetition_penalty: 1.2
hallucination_silence_threshold: 3这是之前开发时随便试了几个看起来还行的值。
50%的平均CER看起来很高,但这个数字有误导性:
- 45%的样本是歌曲/音乐视频,ASR本来就无法处理,拉高了平均值
- 部分GT字幕本身有问题(不完整、乱码、不匹配)
- 文本对比上内容基本正确,CER主要来自格式/写法差异
对于正常对话内容,实际识别效果是可用的。
基于测试结果,建议修改:
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降低(在正常样本上)
- 内容类型检测:在ASR前检测是否为歌曲/音乐,跳过或用专门模型处理
- ASR质量自检:检查输出长度比例,异常的标记需人工审核
- 多模型对比:可以试试kotoba-whisper等日语专用模型
这两个参数从直觉上应该有帮助,但测试结果显示在更多情况下会变差。以下是详细分析:
| 内容类型 | 样本数 | 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就有问题。
测试的prompt:
"これは日本語の音声です。""これはVTuberの配信や動画です。日本語で話しています。"
| 内容类型 | prompt更好 | 无prompt更好 | 平均差异 |
|---|---|---|---|
| 歌曲 | 15% | 33% | -5.66% |
| 游戏 | 20% | 50% | -5.47% |
| 其他 | 18% | 40% | -3.43% |
问题原因:prompt会导致模型在歌曲/音乐内容上陷入重复循环,输出prompt内容的无限重复,或完全无输出。
| 策略 | 加权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%,不值得做二次处理
- 激进参数调优:对歌曲/困难样本帮助有限
- repetition_penalty调高:测试证明无效甚至有害
- initial_prompt:当前设计有害,在歌曲/音乐上会导致重复或无输出
- 二次处理取最优:4倍时间换0.27%收益,不划算
- 用YouTube自动字幕做GT:质量不可靠
| 文件 | 说明 |
|---|---|
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