人机交互过程拆解:是什么?怎么做?( 三 )


其实什么是声学模型呢?简单来讲就是一种刻画(拼音读法)韵母a、o、e , 声母b、p、m这些的模型 , 那这些模型是怎么来的?它是怎么知道这个字怎么读的呢?这个时候我们就需要输入一些音频训练集了 , 例如我们正常说话一段话 , 同时输入刚才说的那一段话的文本 , 机器会自动取出其中不同的因素 , 并且拿去继续训练模型 , 修正误区 。
这样对于机器算法来说 , 有了输入和输出 , 还能不断优化自身模型 。 算法是不是很神奇 。 这些不同因素数据会先进行预处理 , 例如百度就做了一定的加噪处理 , 这样在噪声环境下鲁棒 。
人机交互过程拆解:是什么?怎么做?文章插图
其中语音识别模块除了声学模型之外还有一个同等重要的模块就是语言模块 , 什么叫语言模块呢?就是刻画文本和文本之间概率权重的 。 那么语言模型是怎么来的 , 假如我们要想做医学领域的语言模型 , 那就要让它去学习很多医学术语 , 这个时候就需要我们准备这些术语做成一个词表 , 但是同样需要数据清洗 , 原始数据会有些垃圾 , 在做一些权重的正规化 , 并送到模型中去训练 , 从而得出或者优化原有模型 。 简单说你提前给医学领域的专用术语背下来了 , 下次一听到相关的语音你就能记起来这个专用术语 。
例如【板蓝根】 , 训练之后一听到这个语音就不会识别成【版烂根】
这样我们最终就能得到这个语音识别的模型 , 并且我们可以通过继续迭代来优化这个模型
既然模型有了 , 那怎么看好还是差呢?有几个方面来分辨 。
人机交互过程拆解:是什么?怎么做?文章插图
理想音频就是识别质量较好的情况 , 但是现实生活中语音识别往往回因为各种情况导致识别效果不佳 , 比如丢音 , 比如你按下手机麦克风按钮时 , 还没有启动录音你就开始说话了 , 那没启动时说的语音就被丢弃了 , 这种情况识别就差很多了 , 什么叫截幅呢?就是一般语音识别都是用两个字节来表示一个语音的取值范围 , 当你的增益太大就会被自动截掉 , 识别的效果也较差了 。
回过头来 , 我们刚才所得到的语音训练模型只是一种特定情况下得到的语音模型 , 不具备普适性 。 为何这么说呢?
我们所得到的医学领域模型 , 假设是用手机录音采集的语料 , 那么这个模型就是近场识别模型 , 一旦同样的术语【板蓝根】你用手机询问就能回答正确 , 但是你一旦用音箱远场询问 , 那很可能就得出错误的回答 , 这叫声学一致性 。
人机交互过程拆解:是什么?怎么做?文章插图
同样 , 不同领域也需要文本一致性 , 你希望这个领域能多识别该领域的专业词汇那就需要多训练这个领域的核心词汇 , 否则就会出现【板蓝根】的情况 。
人机交互过程拆解:是什么?怎么做?文章插图
最后 , 通过不断的获取到不同的音频数据、文本数据 , 并继续迭代优化 , 我们会得到更好的模型 , 识别更准的效果 。
这就是识别的细节 , 这也是一种科技的魅力 , 众多步骤完成了我们看似简单的动作 。 与其说机器的紧密不如说人类的身体系统更加复杂与奥妙 。
本文由 @南国书生 原创发布于人人都是产品经理 , 未经作者许可 , 禁止转载 。
题图来自Unsplash , 基于CC0协议 。


推荐阅读