昨晚十一点半,我瘫在沙发上,懒得动,对着手机喊了一句“设个闹钟,明天七点”。屏幕亮了:“蛇个闹钟,明天吃面”。
我盯着那行字看了三秒。说实话,那一刻我的心情很复杂——又好气又好笑,还有点想跟它讲道理。但跟一个算法讲道理,这事儿本身就挺荒诞的。
今天就想聊聊语音识别这玩意儿。不是那种教科书式的“定义、原理、应用”三段论,就是咱普通人日常用着,时不时被气到,又偶尔觉得“哎还挺神”的那种体验。
它不是在“听”,更像是在“猜谜”
先打破一个直觉。我们总觉得语音识别是“把声音转成文字”,一个萝卜一个坑。其实完全不是。
它更像什么呢?像你在一个特别吵的菜市场,隔着三个摊位听你妈喊你回家吃饭。你听不清每一个字,但你能“猜”出来她在说什么。语音识别干的就是这事儿——它的核心不是“听清楚”,而是“猜得准”。
具体怎么猜的?大概是这样:你说话的声音先被切成无数个极短的片段,短到什么程度呢——每秒钟切成一百份。然后算法拿这些碎片去跟它“学过”的海量语音做比对,算出哪种文字组合的可能性最大。
问题就出在这了。它不是在听你说话,它是在拿着你发出的声音碎片,去一个巨大的数据库里翻找“最像的那个”。所以你说“空调”,它翻着翻着,翻到了“调情”——因为这两个词的声学特征在某个维度上离得很近。它没有常识,它只有概率。
我有一个做语音算法的朋友,他说他们内部管这个叫“解码”。听着挺高级,其实就是猜。你说话的时候,它已经在脑子里跑了几十种组合,最后挑一个它觉得最顺的扔给你。所以你偶尔看到识别结果突然自己变了,别慌,那是它改主意了。

口音这事儿,真的不能全怪它

我是一个在南京生活了快十年的人。南京话有个特点,n和l不分,“牛奶”说成“流来”。我自认为普通话还行,但每次用语音输入说“那个”,十次里有三次会变成“辣个”。
一开始我也骂它。后来了解了一点背后的逻辑,发现这事还真不能全怪算法。
你想想看,一个语音识别模型是怎么“学会”听人话的?靠海量的语音数据。但这些数据是从哪来的?绝大部分是标准普通话的录音——新闻播报、有声书、播客。模型就像一个小学生,老师天天给他听播音腔,突然有一天来了个南京口音的人跟他说“喝流来”,他当然懵。
但这几年变化挺明显的。我明显感觉到它对南方口音的容忍度高了。以前说“南京”它给我写成“蓝鲸”,现在基本能对了。为什么?因为用来训练的数据里,方言和口音的比例在慢慢增加。
不过话说回来,有些口音它还是搞不定。我有个广东的朋友,每次对着手机说“四”和“十”,那场面简直像在拆盲盒。这不是技术不行,是这两个音的声学特征在粤语里本来就分得很细,而普通话模型里这个区分度没训练够。换句话说,它没学过,你不能怪它不会。
你家客厅,其实就是语音识别的地狱模式
很多人觉得语音识别不准是因为自己说得不好。其实环境才是隐藏的大boss。
你在安静的卧室里对着手机说话,识别率往往还行。但你在客厅开着电视、厨房抽油烟机响着、窗外还有车流声——这时候你对着音箱喊“下一首”,它可能给你放了一首完全不相干的歌。
为什么?因为你说话的声音,在传到麦克风的路上,已经和电视声、油烟机声混在一起了。麦克风不会挑挑拣拣,它把所有声音一股脑儿全收进去。算法拿到的是一锅混在一起的汤,它得从里面把“你的声音”捞出来。这个动作叫“降噪”,但现实中的降噪不像你想的那么干净利落。
我做过一个粗糙的实验:同样一句“播放周杰伦”,在书房说,识别准确率大概有九成。拿到开着电视的客厅说,直接掉到六成左右。更离谱的是有一次电视里正好在放广告,它把广告词和我说的混在了一起,结果给我搜了一首完全不存在的歌名。

所以如果你觉得家里的智能音箱“时灵时不灵”,先别急着退货。换个安静点的地方试试,说不定是环境的问题,不是它的问题。
那些我们习以为常、其实很神奇的时刻

虽然我上面吐槽了这么多,但平心而论,语音识别这几年进步真的很大。
你想想,以前打电话查话费,得按数字键选菜单,“1号键查询余额,2号键办理业务”。现在呢?直接说“查一下我还有多少钱”,它就能听懂。这背后就是语音识别在做的事。
还有字幕。你看视频的时候,自动生成的字幕有时候会出现一些莫名其妙的错别字,但大部分时候是准的。这玩意儿以前得靠人一个字一个字敲,现在机器几秒钟就搞定了。虽然偶尔会闹笑话,比如把“实事求是”识别成“实事球是”,但总体来说,它已经渗透到我们生活的各个角落了。
我有一个特别深的感受。前阵子我外婆用手机,她不识字,以前发微信只能发语音。后来我教她用语音转文字,她对着手机说了一句“今天天气很好”,屏幕上跳出那几个字的时候,她愣了一下,然后笑了。她说:“这手机还能听懂我说话?”
就那一瞬间,我觉得那些识别错误、那些“打开调情”的乌龙,好像也没那么重要了。
技术这东西就是这样。它不完美,甚至经常犯蠢。但它确实在做一些以前做不到的事。语音识别的本质不是“听懂”,而是“靠近”——它一直在努力靠近我们说话的方式,虽然有时候跑偏了,但方向没变。
对了,刚才我又对着手机试了一句:“明天记得买牛奶”。
它显示:“明天记得买流来”。
行吧。它还在学。