手机里住了个“速记员”和“语文老师”,专门处理你的声音

AI提示词18分钟前更新 jinlian
0 0

你早上跟手机说句话,它就能听懂。这背后其实挺多事的。第一步,就是要把你的声音,变成一串数字。

这是它的工作原理。

你说话的时候,声音是一种波,在空气里传。手机的麦克风抓到这个波,把它变成一股电流。但是这个电流是连续的,电脑处理不了。电脑只认识0和1,不认识这种连续变化的东西。

所以,系统要做的第一件事,就是“切”。它把你说话的这股电流,切成好多好多微小的小段。每一段只有大概20到30毫秒,非常短。你眨一下眼的时间,里面就包含了很多段了。这些小段,我们叫它“帧”。

手机里住了个“速记员”和“语文老师”,专门处理你的声音

切完之后,就要分析每一帧。系统用一些数学工具,把每一帧声音拆开,看看它是由哪些频率组成的。就好比你尝了一口菜,然后分析出里面有盐、有糖、有酱油。分析完,每一帧声音都会得到一张图,叫“频谱图”。

这张图就是这20毫秒声音的“指纹”。它独一无二,记录了这小段声音的所有细节。但是这张图的信息太多了,有点啰嗦。

接下来,系统会模仿我们人耳朵的工作方式。人耳对某些频率的声音特别敏感,对另一些就不太敏感。系统也学着这样,把频谱图里那些不重要的信息过滤掉,再压缩一下。最后,就得到了一组最关键的数字。

这一串操作下来,你刚才说的话,就从空气里的声波,变成了一长串机器能读懂的数字了。整个过程的核心,就是让机器先“听清楚”你发出的每一个最基本的声音。它还不知道这些声音是什么意思,但它已经用数字把这些声音精确地记录下来了。

从“音”到“字”:声学模型的魔法

好了,现在手机把你的声音变成了一堆数字。下一步,它就要猜这些数字到底对应的是哪些汉字。这个任务,就交给“声学模型”了。

你可以把声学模型想象成一个字典。但这本字典不是用笔画查字,而是用“声音指纹”来查。你给它一组代表声音的数字,它就去字典里找,看哪个汉字的发音最像这组数字。

以前的声学模型比较死板。它一次只能看一小“帧”声音,然后猜一个音节。这样做很容易出错。因为我们说话是连贯的,很多音会连在一起,或者说得很快。

但是,现在的声学模型聪明多了。它会“联系上下文”来听。它不只看当前这一帧的声音,还会看看前面几帧是什么,后面几帧又是什么。

举个例子,当你发出“jīn tiān”这个音。如果只听“jīn”,它可能会猜是“金”、“今”、“斤”等等。但是,它听到了后面的“tiān”,系统就会想,“jīn”后面跟着“tiān”,那组合成“今天”的可能性就很大了。它就这样,通过前后声音的关系,来提高识别的准确率。

而且,我们说话的速度总是不一样。同一个词“不知道”,你可能说得很快,听起来像“बु dao”。也可能说得很慢,每个字都拖长音。

现代的语音识别技术,有一种很关键的方法,叫“连接时序分类”。名字听着复杂,但它的作用很直接。它就是专门解决说话快慢不一的问题的。它能自动把长短不一的声音,和固定长度的文字对齐。不管你说得快还是慢,它都能灵活处理,准确地把声音片段匹配到正确的文字上。

所以,现在的声学模型,已经不是简单地“听音识字”了。它更像一个能理解声音流的速记员,能又快又准地把你说的话,转化成一串候选的文字。

从“字”到“意”:语言模型来纠错

只靠声学模型,识别结果还是会出错。最常见的问题,就是同音字。中文里的同音字实在太多了。

比如,你想说“今天我休息”。声学模型听完声音,可能会给出好几个答案,比如:

  • 今天我休息
  • 今天我修习
  • 今天我休戚

这几个选项,读音上几乎一模一样。声学模型自己也分不清哪个对。这时候,就需要另一个帮手出场了。它的名字叫“语言模型”。

语言模型不听声音,它只管一件事:判断一句话说得通不通顺,像不像人话。

它的脑子里,装了海量的文字资料。比如各种书籍、新闻、网页、聊天记录等等。通过阅读这些东西,它学会了我们人类说话的习惯和规律。它知道哪些词喜欢和哪些词搭配在一起。

当声学模型把上面那三个选项交给它时,语言模型就会开始打分。

它会分析:

  1. “今天”、“我”、“休息”。这三个词经常一起出现,很正常。得分高。
  2. “今天”、“我”、“修习”。“修习”这个词一般用在学习某种技能的语境里,前面有“我”还算正常,但和“今天”直接搭配有点怪。得分中等。
  3. “今天”、“我”、“休戚”。“休戚”通常和“与共”连用,组成“休戚与共”,意思是利害相关。单独说“我休戚”,完全不符合中文语法。得分极低。

语言模型就这样,像个经验丰富的语文老师,给每个候选句子都评了分。它会告诉系统,“今天我休息”这句话最符合日常说话的逻辑,概率最高。

这样一来,那些因为同音字而产生的离谱错误,就基本被干掉了。比如,它能轻松分清“晚饭”和“完饭”、“开会”和“开烩”、“机率”和“纪律”。

现在的语言模型,用的是神经网络技术,能理解更长的句子。它不只看相邻的两个词,而是能综合一整句话,甚至前后几句话的意思来做判断。所以,你现在用语音输入法打一长段话,它也能处理得很好,很少出现让人看不懂的错误。

最终决策:解码器做出“最优选择”

现在,我们有两个专家了。声学模型是“听力专家”,负责听声音。语言模型是“语法专家”,负责判断句子通不通顺。

但有时候,这两个专家会吵架。

比如你说话时有点含糊,把“今天天气不错”说得有点像“今天田七不错”。

这时候,声学模型可能会觉得,“田七不错”这个发音,和你的实际声音匹配度更高。它会给“今天田-七不错”打一个很高的声音分,比如96分。而“今天天-气不错”因为有点不像,声音分可能只有95分。

但是,语言模型一看到这两个句子,态度就完全反过来了。它认为“今天天气不错”是正常人说的话,语法分可以给99分。而“今天田七不错”这句话莫名其妙,根本不通顺,语法分只能给30分。

一个声音分高,一个语法分高,听谁的?

这时候,就需要一个“总指挥”来做最后的决定。这个总指挥,就是“解码器”。

解码器的工作,就是综合考虑两位专家的意见,然后选出最靠谱的那个答案。它会用一个公式,把声音分和语法分加起来,算一个总分。

我们来算一下:

  • “今天天气不错”:声音分95 + 语法分99 = 总分194
  • “今天田七不错”:声音分96 + 语法分30 = 总分126

(这里的加法只是一个简单的例子,实际算法要复杂得多,会给不同的分数加上不同的权重。)

结果很明显。“今天天气不错”的总分遥遥领先。

所以,解码器就会拍板,最终的答案就是“今天天气不错”。然后,这几个字就会显示在你的手机屏幕上。

从你开口说话,到手机显示出文字,这中间所有的步骤——声音变信号、信号变数字、数字变文字、文字再经过纠错和最终选择——全都在一秒钟之内完成。你感觉不到这个过程,但手机内部,已经进行了一场非常快速和精确的计算。

© 版权声明

相关文章

暂无评论

暂无评论...