评测时间:2026年2月 评测目标:评估国产模型替代Gemini做VTuber字幕翻译的可行性,以及ASR质量改进方向
当前pipeline使用Google Gemini-3-flash做日语→中文字幕翻译,质量好但成本高。评测了以下替代方案:
| 方案 | 来源 | 月成本 | 独有模型 |
|---|---|---|---|
| 火山引擎方舟 | 火山引擎(字节) | 按量付费 | deepseek-v3.2, doubao系列 |
| DashScope | 阿里云 | 按量付费 | qwen3-max, qwen3.5-plus, glm-5, MiniMax-M2.5 |
| gpt-5-nano | videocaptioner中转站 | 按量付费 | gpt-5-nano |
| Gemini-3-flash | Google API | ~¥150/20k次 | Gemini-3-flash |
火山引擎与 DashScope 共有模型:kimi-k2.5, glm-4.7。跨厂商验证确认同模型质量完全一致。
- 独立评测脚本
scripts/translation_benchmark.py,不走生产pipeline - 逐条定性阅读评估(非机械指标),对照原文日语+Gemini翻译+测试模型翻译
- 中文版提示词和few-shot示例存放在
scripts/translation_benchmark_prompts/
| 视频ID | 内容类型 | 字幕条数 | 采样 |
|---|---|---|---|
| _QOMPli80JA | 双人联动对话 | 155 | 全量 |
| czIBPN1eCbU | 美食实况 | 448 | 全量 |
| k8CCqKYx2Pk | 马里奥卡丁车(ASR差) | 234 | 全量 |
| i-EreP4zejg | 混合(歌词+叙事) | 892 | 100 |
| enAZ8wvvgl4 | 直播开箱 | 242 | 100 |
| oE8HLVwpimA | 多人正式公告 | 103 | 全量 |
| q2B_u_wZWAQ | 恐怖游戏直播 | 511 | 80 |
| X53mU_mxCDQ | 杂谈直播 | 406 | 80 |
| CMvE8F9INDM | 赛车30分挑战 | 84 | 80 |
| DoDiPWf0Rg4 | 恐怖游戏杂谈 | 401 | 80 |
| IEYQQQFmxak | 马里奥卡丁车REVENGE | 212 | 100 |
| ajda3lbz6Mk | 风来のシレン | 237 | 100 |
在 _QOMPli80JA 50条样本上系统测试了22+组配置:
| 因素 | 测试范围 | 结论 |
|---|---|---|
| 提示词语言 | 英文/中文 | 中文推荐(更好),英文也可接受 |
| Few-shot示例数 | 0/6/12/25+条 | 12条最优:6→12提升显著,25+反而下降 |
| 翻译模式 | reflect/standard | reflect更好(更生动、语义错误更少) |
| Batch size | 10/30/50/100 | 质量无差异,BS越大越好(减少API调用次数) |
| Temperature | 0.3/0.7/1.0 | 差异不大,默认1.0即可 |
| Optimize | 有/跳过 | 跳过影响微小,但保留为好 |
| Thinking模式 | enabled/disabled | 应关闭(对ASR纠错无帮助,慢50-100倍) |
| 混合方案 | Gemini opt+kimi trans | 无额外收益(Gemini纠错在translate阶段) |
| ASR-aware prompt | 告知模型输入是ASR | 无效(模型能力硬限制) |
关于Batch size:逐条阅读BS=30/50/100三组翻译,差异仅为随机措辞变化(如"诶"vs"咦"),无质量退化。BS越大API调用次数越少,推荐BS=100。
关于Thinking模式:用7个ASR乱码案例做AB对比,thinking=enabled对ASR纠错完全无帮助,且单条延迟从0.4-4.5s增至16-270s。ASR纠错是模型知识层面的差距,不是推理深度问题。
关于reflect vs standard的修正:初始实验用"Gemini完全一致率"得出standard>reflect的错误结论。逐条定性阅读后确认reflect更好——standard在美食实况视频中将拉面品牌"スミレ"翻译成"紫罗兰"(连续8条错误),reflect正确保留了品牌名。
| 排名 | 模型 | 来源 | 翻译风格 | 速度(155条) | 推荐度 |
|---|---|---|---|---|---|
| 1 | kimi-k2.5 | 火山引擎方舟 | 最活泼可爱,VTuber味浓 | 176s | ⭐⭐⭐⭐½ |
| 2 | deepseek-v3.2 | 火山引擎方舟 | 语义准确,风格偏正经 | 145s | ⭐⭐⭐⭐ |
| 3 | qwen3-max | DashScope | 自然流畅,偶尔更准确 | ~180s | ⭐⭐⭐⭐ |
| 4 | qwen3.5-plus | DashScope | 偏正式/平淡 | 慢 | ⭐⭐⭐ |
| 5 | doubao-seed-code | 火山引擎方舟 | 中规中矩 | 93s(50条) | ⭐⭐⭐ |
| 6 | gpt-5-nano | 中转站 | 平淡,招牌语丢失 | 快 | ⭐⭐⭐ |
| 7 | glm-5 | DashScope | 可用但无特色 | 很慢 | ⭐⭐½ |
| 8 | doubao-seed-2.0-code | 火山引擎方舟 | 最快但有错译风险 | 59s(50条) | ⭐⭐½ |
| 9 | MiniMax-M2.5 | DashScope | optimize无效,翻译勉强 | 快 | ⭐⭐ |
| - | glm-4.7 | 火山引擎方舟/DashScope | 可用但太慢(668s/50条) | - | ⭐ |
| - | kimi-k2-thinking | 火山引擎方舟 | 翻译任务失败 | - | ❌ |
| - | auto | 火山引擎方舟 | 不支持指定模型 | - | ❌ |
两者都是火山引擎方舟的可用模型,风格取向不同:
| 案例 | DeepSeek | Kimi | 判定 |
|---|---|---|---|
| #72 ツンデレセリフ(傲娇台词) | "来段傲娇台词!" ✅ | "来段傲娇自拍吧~" ❌(误解为selfie) | DeepSeek |
| #148 ガチャ(开门声) | "咔嚓(开门声)啊" ✅ | "是抽卡呀——" ❌(误解为gacha) | DeepSeek |
| #3 招牌语 | "空空狐狸~" ✅ | "狐狐——狐狸——" △ | DeepSeek |
| #123 モコ(气鼓鼓) | "已经是Moko了" △(直译) | "气鼓鼓了哟~" ✅(生动) | Kimi |
| 傲娇台词整体风格 | 自然流畅,偏正经 | 更活泼可爱,VTuber味浓 | 看需求 |
| 维度 | DeepSeek-v3.2 | kimi-k2.5 |
|---|---|---|
| 语义准确性 | ⭐⭐⭐⭐ | ⭐⭐⭐½ |
| VTuber风格/活泼度 | ⭐⭐⭐½ | ⭐⭐⭐⭐½ |
| 速度 | ⭐⭐⭐⭐½ | ⭐⭐⭐⭐ |
| ASR纠错 | ⭐⭐ | ⭐⭐ |
选择建议:追求VTuber风格→kimi-k2.5;追求语义准确/速度→deepseek-v3.2。
| 维度 | gpt-5-nano | kimi-k2.5 | Gemini(参考) |
|---|---|---|---|
| VTuber风格/活泼度 | ⭐⭐⭐ | ⭐⭐⭐⭐½ | ⭐⭐⭐⭐⭐ |
| 忠实度/准确性 | ⭐⭐⭐ | ⭐⭐⭐⭐ | ⭐⭐⭐⭐⭐ |
| 术语/招牌语处理 | ⭐⭐ | ⭐⭐⭐½ | ⭐⭐⭐⭐⭐ |
| 语气还原 | ⭐⭐½ | ⭐⭐⭐⭐ | ⭐⭐⭐⭐⭐ |
nano核心问题:VTuber招牌语丢失(こんこんきーつね → "嗨,大家好~"❌),语义错误频率高。
对3个视频的全量翻译,逐条对照原文日语、Gemini翻译、Volc kimi-k2.5翻译,基于语义准确性、VTuber风格、专有名词处理做人工定性评估。
| 视频 | 条数 | 持平 | Gemini更好 | Volc更好 | 两者都差 |
|---|---|---|---|---|---|
| _QOMPli80JA (对话) | 155 | ~120(77%) | ~15(10%) | ~8(5%) | ~12(8%) |
| czIBPN1eCbU (美食) | 448 | ~380(85%) | ~35(8%) | ~15(3%) | ~18(4%) |
| k8CCqKYx2Pk (ASR差) | 234 | ~180(77%) | ~35(15%) | ~8(3%) | ~11(5%) |
| 总计 | 837 | ~680(81%) | ~85(10%) | ~31(4%) | ~41(5%) |
1. ASR乱码纠错(占差距的~60%)
Gemini能"看穿"ASR乱码推断正确含义,kimi/deepseek直译乱码:
k8CCqKYx2Pk #14: "アバフライサー"
Gemini: 马力欧卡丁车! ← 看穿乱码
Kimi: ABoFlieser! ← 直译乱码
czIBPN1eCbU #5: "えーしょうゆです"(实际是自我介绍)
Gemini: 我是白上吹雪。 ← 识别ASR错误
Kimi: 诶——是酱油哟~ ← 直译"しょうゆ=酱油"
2. VTuber专有知识(占差距的~25%)
k8CCqKYx2Pk #2: "snacksどもねーす"
Gemini: すこん部各位好呀—— ← 识别粉丝团名
Kimi: snacks的大家好呀—— ← 直译
k8CCqKYx2Pk #101: "ボギーゾーだ"
Gemini: 是耀西耶! ← 识别马里奥角色名
Kimi: 是博基哦~ ← 音译
3. 品牌名/文化引用(占差距的~15%)
czIBPN1eCbU #62-71: "スミレ"(拉面品牌名)
Gemini: Sumire ← 全程正确保留品牌名
Kimi: 紫罗兰 ← 连续10条错译(后半段#330+自行修正)
1. VTuber风格更活泼
_QOMPli80JA #38: "痛い"
Gemini: 好疼。 ← 平实
Kimi: 痛痛~ ← 更可爱
_QOMPli80JA #123: "もうモコだよモコですよ"
Gemini: 就是说呀,真是的。 ← 丢失拟声意象
Kimi: 已经气鼓鼓了哟~气鼓鼓的! ← 生动保留
2. 数字/事实更忠实
czIBPN1eCbU #197: "10分で来た来た来た来た!"
Gemini: 15分啦! ← 错误修改原文数字
Kimi: 10分钟到啦到啦! ← 保留原文
从Hololive旗下49203个视频中筛选350个有YouTube人工标注日语字幕的视频,用CER(字符错误率)评估。
CER分布:
- 平均CER约50-60%,但有误导性——45%样本是歌曲/音乐视频(ASR无法处理)
- 剩余正常样本CER主要来自汉字vs假名写法差异、标点差异
- 实际对比ASR和GT文本,内容基本正确
参数效果排名(167个正常样本):
| 排名 | 参数 | 平均CER | 相对baseline |
|---|---|---|---|
| 1 | copt=false + HST=2 | 49.2% | +2.8% |
| 2 | HST=2 | 49.9% | +1.4% |
| 3 | copt=false | 50.5% | +0.4% |
| 11 | baseline | 50.7% | 0% |
| 14 | repetition_penalty=1.2 | 51.3% | -1.2% |
关键结论:condition_on_previous_text=false和hallucination_silence_threshold=2轻微改善;repetition_penalty>1.0反而有害;initial_prompt无益处。参数调优总收益有限(~1-3% CER)。
| 指标 | large-v3 beam7 | turbo beam5 |
|---|---|---|
| 速度 | 基准 | 快3-4倍 |
| 质量 | 基准 | 基本相当 |
| 核心乱码 | 无改善 | 无改善 |
| 断句 | 正常 | 更碎(笑声/语气词独立成段) |
beam=5是性价比最优(与beam=7差异微小,速度提升约10%)。
asr:
model: "large-v3"
beam_size: 7 # 建议改为5
condition_on_previous_text: false
temperature: [0.0, 0.2, 0.4, 0.6, 0.8, 1.0]
no_speech_threshold: 0.6
initial_prompt: ""
repetition_penalty: 1.0
hallucination_silence_threshold: 2- temperature=0.0 + condition_on_previous_text=false:会产生重复字符幻觉,需用温度回退列表
- ASR乱码根因:Whisper对快语速日语口语(尤其有BGM时)的架构层面限制,换模型/调参数无法突破
整个pipeline的最大瓶颈是ASR质量,不是翻译模型。
基于837条全量定性评估的量化数据:
- 81%的翻译持平——绝大多数观众不会感知 kimi 与 Gemini 的差异
- Gemini更好的10%中,60%源于ASR纠错——这是模型知识层面的差距,thinking模式也无法弥补
- 对于ASR质量正常的视频(约80-90%),Volc翻译效果完全可用于生产
- ASR质量差的视频是真正的瓶颈,改善方向应聚焦于ASR后处理
| 环节 | 推荐模型 | 来源 | 理由 |
|---|---|---|---|
| 翻译(translate) | gemini-3-flash | Google API | 质量最优,ASR纠错能力强 |
| 优化(optimize) | kimi-k2.5 | 火山引擎方舟 | 已集成。同语言optimize阶段有良好ASR纠错能力 |
| 断句(split) | gpt-4o-mini | 中转站 | 测试国产模型效果不佳(过度断句),保持不变 |
| 场景识别 | gpt-4o-mini | 中转站 | 对模型要求低 |
关于translate是否替换为国产模型:从837条定性评估看,81%持平、10%Gemini更好(主要是ASR纠错)。如果视频ASR质量普遍正常,可以考虑替换以节省成本。需进一步全流程测试确认。
用 _QOMPli80JA 的 raw ASR 文本,对比 gpt-4o-mini / volc-kimi-k2.5 / volc-deepseek-v3.2 的断句效果:
| 模型 | 断句数(前100段raw) | 问题 |
|---|---|---|
| gpt-4o-mini (生产) | 72句 | 语义完整,断句合理 |
| deepseek-v3.2 | 79句(+10%) | 过度断句:在条件句中间(~ば后)、宾格助词(を后)错误断开 |
| kimi-k2.5 | 35句/50段(更碎) | 更严重的过度断句,且速度慢(48s) |
#1 "今回何回私たちが起こせば気が済むんですか?"(完整条件句)
gpt-4o-mini: 保持完整 ✅
deepseek: 拆成 "起こせば" / "気が済むんですか?" ❌ (条件句中间断开)
#7 "もうでは早速ロボ子先輩をびっくりさせちゃいましょーう"
gpt-4o-mini: 保持完整 ✅
deepseek: 拆成 "ロボ子先輩を" / "びっくりさせ..." ❌ (宾语を后断开)
结论:国产模型对日语语法结构(条件句、助词)的断句判断不准确,split 继续使用 gpt-4o-mini。
kimi-k2.5 在同语言 optimize 阶段展现了良好的 ASR 纠错能力:
#4: "ちらかみむむきでーす" → "白上フブキです" ← 识别出自我介绍!
#28: "キュウリさん来ましたよ" → "フブキさん来ましたよ" ← 修正人名ASR错误
#27: "ロコ先輩きたー!" → "ロボ先輩きたー!" ← 修正人名
#3: "こんこんきーっすねー" → "こんこんきーつねー" ← 修正招牌语发音
这是一个重要发现:虽然kimi在translate阶段(跨语言)无法纠正ASR乱码,但在optimize阶段(同语言日语→日语)可以修正许多ASR错误。 optimize用国产模型既节省Gemini额度,又能在翻译前先修正一部分ASR问题。
已集成到 config/default.yaml:optimize 使用 volc-kimi-k2.5,BS=100,thread=3。
初始观察到"optimize纠正ASR后translate反而翻错"的现象,经控制实验排查,确认为误判:
- 根因:diskcache使旧版翻译结果来自缓存;新版optimize改变输入→cache miss→temperature=1.0下产生不同随机结果
- 控制实验:对问题条目禁用缓存、固定输入做3轮batch翻译
白上フブキですー(#4):3轮全部正确 "我是白上吹雪~" ✅フブキさん来ましたよ(#28):3轮全部正确 "吹雪来啦~" ✅(且比Gemini翻的"突然冒出来了"更准确)こんこんきーつねー(#3):3轮3种不同结果——但单独测5次也产生5种结果,这是招牌语翻译的固有不稳定性,与optimize无关
结论:optimize没有负面影响。kimi-k2.5在optimize阶段的ASR纠错对后续翻译是正面贡献。
基于30条控制实验(kimi optimize后,Gemini translate vs kimi translate):
| 分类 | 比例 | 说明 |
|---|---|---|
| 完全一致 | 30% | 翻译完全相同 |
| 持平(仅措辞差异) | 47% | "诶"vs"咦"、"~"vs"——"级别 |
| Gemini略好 | 20% | 语境补充更完整(如"好像不在家呀"vs"不在呢") |
| Kimi更好 | 3% | optimize纠正ASR后kimi翻译更准确 |
成本差异:当前配置下Gemini translate月消耗仅~160次调用(BS=100,20个视频)≈ ¥1.2/月。切换到kimi translate只能再省¥1.2/月。
结论:保持 kimi optimize + Gemini translate 的混合配置。 理由:
- Gemini translate成本已极低(optimize已省了一半调用量)
- Gemini在复杂ASR乱码上的纠错能力无可替代(如"アバフライサー"→马里奥卡丁车)
- 切换到全国产translate质量降幅小但收益也小,不值得trade
切换到全国产的适用场景:Gemini API额度不够 / 需要完全脱离Google依赖。此时大部分观众感知不到差异(只有ASR差的视频会退化)。
# translate: Gemini(质量最优,保持不变)
translator.llm.model: gemini-3-flash-preview
translator.llm.enable_reflect: true
translator.llm.batch_size: 100
translator.llm.thread_num: 10
# optimize: 火山引擎 kimi-k2.5(已替换,节省Gemini额度)
translator.llm.optimize.model: kimi-k2.5
translator.llm.optimize.base_url: ark.cn-beijing.volces.com/api/v3
translator.llm.optimize.batch_size: 100
translator.llm.optimize.thread_num: 3
# split: gpt-4o-mini(不变)
asr.split.model: gpt-4o-mini
asr.split.base_url: api.videocaptioner.cn技术细节:call_llm 中已内置火山引擎 thinking=disabled 自动注入,无需额外配置。
Few-shot prompt文件:scripts/translation_benchmark_prompts/custom_translate_fubuki_zh_fewshot_plus.md
| 方案 | 月费 | 翻译质量 | 备注 |
|---|---|---|---|
| Gemini-3-flash | ~¥150/20k次 | ⭐⭐⭐⭐⭐ | 取决于额度 |
| 火山引擎 kimi-k2.5 | 按量付费 | ⭐⭐⭐⭐ | 推荐 optimize 用 |
| DashScope kimi-k2.5 | 按量付费 | ⭐⭐⭐⭐ | 备用 |
| 中转站 nano | 按量付费 | ⭐⭐⭐ | 取决于余额 |
用kimi处理大部分内容、Gemini只处理ASR乱码段落,可将Gemini调用量降至~10%同时维持接近全Gemini的效果。
检测"ASR乱码段落"的可能方案:
- 基于Whisper输出的置信度(avg_logprob)标记低置信度段
- 基于文本特征(拉丁字符、重复字符、罕见假名组合)
- 翻译后检测(输出中的音译乱码、长度异常)
当前判断:可行但需单独开发。短期内直接用volc-kimi-k2.5全量翻译最简单。
| 方向 | 优先级 | 状态 | 说明 |
|---|---|---|---|
| optimize集成 | 高 | ✅ 已完成 | volc-kimi-k2.5 已集成到 config,call_llm 已内置thinking自动关闭 |
| translate替换测试 | 高 | 已测 | kimi opt+kimi trans 全流程已测,与纯Gemini对比见下方。当前保持Gemini translate |
| ASR后处理改进 | 高 | 进行中 | 由另一人同步探究 |
| 翻译后异常检测 | 中 | 待做 | 自动检测乱码/幻觉/长度异常 |
| 混合方案原型 | 中 | 待做 | ASR低置信度段落检测 + kimi+Gemini混合调用 |
| 并发控制测试 | 低 | 待做 | thread_num=5稳定性(当前thread=3无问题) |
| 服务 | 提供商 | Base URL | 主要用途 |
|---|---|---|---|
| 火山引擎方舟 | 火山引擎 | https://ark.cn-beijing.volces.com/api/v3 |
optimize 主力 |
| DashScope | 阿里云 | https://dashscope.aliyuncs.com/compatible-mode/v1 |
备用 |
| videocaptioner中转站 | 第三方 | https://api.videocaptioner.cn |
split/scene_identify |
注意:
- 火山引擎 thinking 自动关闭已内置到
call_llm(vat/llm/client.py),无需手动配置 - 环境变量
VAT_VOLC_APIKEY需要设置火山引擎 API Key - 所有 API 密钥通过环境变量管理,不写入代码/配置的明文中
# 运行单个模型测试
python scripts/translation_benchmark.py --video-id _QOMPli80JA --model volc-kimi-k2.5 \
--sample 0 --prompt-lang zh --batch-size 100 \
--custom-translate-prompt scripts/translation_benchmark_prompts/custom_translate_fubuki_zh_fewshot_plus.md
# 生成对比表
python scripts/translation_benchmark.py --video-id _QOMPli80JA --compare
# 可用模型
python scripts/translation_benchmark.py --list-models支持的参数:--no-reflect(standard模式)、--temperature、--skip-optimize、--tag(区分实验)
python scripts/asr_evaluation/run_param_experiment.py --phase full --gpus 4
python scripts/asr_evaluation/evaluate_params.pyscripts/
├── translation_benchmark.py # 翻译评测脚本
├── translation_benchmark_prompts/
│ ├── optimize_system_zh.md # 中文optimize系统提示词
│ ├── translate_reflect_zh.md # 中文translate系统提示词
│ ├── custom_translate_fubuki_zh_fewshot_plus.md # 12条few-shot(最优)
│ └── ...
├── translation_benchmark_results/ # 所有翻译实验的原始数据
│ ├── _QOMPli80JA/ # 主测试视频(22+组配置)
│ ├── k8CCqKYx2Pk/ # ASR差案例
│ ├── czIBPN1eCbU/ # 美食实况
│ └── ...(共12个视频目录)
└── asr_evaluation/ # ASR参数评测脚本
docs/
├── TRANSLATION_AND_ASR_EVALUATION.md # 本文档
└── ASR_EVALUATION_REPORT.md # ASR 350视频参数评测详细数据
最后更新: 2026-03-02