简介:语音输入正从“听懂普通话”迈向“听懂方言与中英混说”。本文从大模型语音识别的技术原理出发,系统解析方言覆盖、句内中英混说、延迟与准确率权衡等核心问题,并给出可落地的评测方法与工程实践清单,帮助开发者看清语音输入体验差异背后的技术根源。
移动端的文字输入长期受限于虚拟键盘的击键效率,长文本场景下尤其明显。语音输入一直被视为突破口,但传统方案只有在“安静环境+标准普通话”时才勉强好用,一旦遇到方言口音、中英夹杂、背景噪声,错字率就会显著上升,用户宁可手动打字也不愿反复纠正。
近期行业出现了一个明确趋势:主流输入法陆续引入大模型语音能力,普遍宣称“更准更快、支持中英文与多种方言、不限时长、可配置待机策略”。抛开各家宣传口径的差异,真正值得开发者关注的是:这轮体验跃升背后的技术范式切换,以及它仍未解决的老大难问题。
从工程视角看,范式切换体现在三个层面:
经典的自动语音识别(ASR)系统是一条多模块流水线:
音频 → VAD 端点检测切分 → 声学特征提取(如 FBank/MFCC)→ 声学模型(输出音素或字的后验概率)→ 发音词典 + 解码图约束→ 语言模型重打分 → 最终文本
这种架构的问题在于:其一,误差沿流水线逐级传递、逐级放大,前端切分出错,后面无法挽回;其二,每种方言都需要单独的声学模型和词典,覆盖成本随语种数量线性增长;其三,同音字消歧依赖 N-gram 之类统计语言模型,缺乏真正的语义理解能力,“不能自已”识别成“不能自己”这类错误屡见不鲜。
CTC、注意力编解码器、Transducer(RNN-T)等端到端架构,直接学习从音频帧序列到文字序列的映射,砍掉了发音词典这个中间环节。而大模型化之后,又带来了两点更关键的质变:
在此之上,再叠加一层大语言模型后处理,负责标点恢复、大小写规范、数字归一化(把“三点”规范为“3 点”)、口语顺滑(删除“嗯”“那个”等填充词)以及基于上下文的二次纠错。所以用户感知到的“准确率”,实际上是“声学识别 + 语义纠错”两级能力共同作用的结果——这解释了为什么同一个底层模型,配上不同质量的后处理层,体验会有天壤之别。
针对上述难点,业界通行做法是组合拳:一是多方言联合训练,配合变速、加噪、音色变换等数据增强手段扩充方言样本;二是在流式解码中集成语种识别(LID)能力,逐段判断当前语种,实现无需手动切换的“自由输入”;三是文本侧适配,例如粤语识别通常输出繁体,需要配套简繁转换;四是利用大模型做语义兜底——即便声学层把某个方言词听偏了,语义层仍有机会依据上下文把它纠正回来。
落到体验层面,行业现状可以概括为:主流方案对粤语、四川话、上海话、河南话等使用人口较多的方言,已能做到日常聊天级别的可用识别,覆盖了大多数地区用户的基本需求。
一个非常有代表性的实测现象:一句以普通话为主、句中夹一个英文单词”Delay”的话,被识别成了中文谐音“低类”。这个错误值得深入剖析,因为它集中暴露了混说识别的全部难点。
工程上的改进路径也很清晰:构造贴近真实的混说语料(会议、课堂、技术分享的转写数据中天然大量存在中英夹杂);让解码词表同时覆盖中文字符与英文子词(BPE 切分),使英文词不必“绕道”中文音素;在语义层引入二次候选机制——当输出中出现疑似英文谐音的中文串时,结合上下文生成英文候选并重打分。
现实结论是:纯普通话、纯方言、纯英文场景的准确率目前已经相当高,而句内无预警的语言切换仍是各家方案的公共短板,也是用户最容易感知到差距的地方。它有明确的进步空间,但受制于语料与解码机制,短期内难以完全消除。
体感上的“快不快、准不准”,必须落到可度量的指标上,否则无法做回归测试,也无法横向比较不同方案。
CER 的计算可以简单实现如下(编辑距离的动态规划):
def levenshtein(ref: str, hyp: str) -> int:m, n = len(ref), len(hyp)dp = list(range(n + 1))for i in range(1, m + 1):prev, dp[0] = dp[0], ifor j in range(1, n + 1):cur = dp[j]dp[j] = min(dp[j] + 1, # 删除dp[j - 1] + 1, # 插入prev + (ref[i - 1] != hyp[j - 1])) # 替换/保持prev = curreturn dp[n]def cer(ref: str, hyp: str) -> float:return levenshtein(ref, hyp) / max(len(ref), 1)
只测单一场景会严重高估能力。一个最小可用的评测集应覆盖:
cases = [("mandarin_daily.wav", "今天下午三点开评审会,记得带上方案"),("cantonese_daily.wav", "今日下昼三點開會,記得帶方案"),("code_switch.wav", "这个需求要 delay 到下个迭代"),("long_speech.wav", "(超过十分钟的连续口述文本)"),]
除场景覆盖外,还要保证样本量:每个场景至少上百条,用统计结果说话而不是看个案;再叠加语速变化、背景噪声等扰动维度,观察指标的方差而非只看均值。
如果要在自己的产品中集成或自研语音输入能力,建议按以下顺序推进:
输入法厂商之间在语音能力上的正面竞争,客观上快速抬升了整个行业的能力下限:多方言覆盖、不限时长、语义纠错正在从“卖点”变成“标配”。但对开发者而言,与其围观“谁更快”的宣传话术,不如把方言覆盖、混说准确率、长语音稳定性纳入自己的量化评测体系。纯语言场景的战场大局已定,句内混说与极端口音才是下一阶段的分水岭——谁先把”Delay”从“低类”里解救出来,谁就真正掌握了语音输入的下一个身位。