[百度搜索引擎优化] AI语音识别声学模型得分计算

来源:未知 浏览 154次 时间 2021-05-24 00:32

总结

言语是人们沟通的最直接最自然的方式。自计算机问世以来人们一直希望通过语音实现人与计算机之间的互动。语音识别技术的目标是通过将人类语音中的词汇内容转换为相应的文本来创建人机交互。桥。对于语音识别系统2018年人们一直希望通过语音实现人与计算机之间的互动。语音识别技术的目标是通过将人类语音中的词汇内容转换为相应的文本来创建人机交互。桥。对于语音识别系统速度和准确度是直接确定系统是否可用的两个核心指标。其中识别速度的提高意味着可以降低成本提供更多的语音服务这一直是语音识别技术研究的重点。在语音识别系统中上海seo优化这一直是语音识别技术研究的重点。在语音识别系统中声学模型得分的计算一般达到整个系统的40%-70%因此它也是识别速度优化的关键模块。本文将讨论如何优化声学模型得分计算。

基本概念介绍

特征向量:语音数据在识别之前首先被分成多帧数据。一般帧长度为25毫秒帧移动到10毫秒。在对每帧语音数据进行特征提取之后生成帧特征其被称为特征向量或特征向量其中n是特征向量的维度。

HMM状态:语音识别中的建模单元称为状态由混合高斯模型(GMM)模型描述。每个混合物服从正态分布其中是平均向量是协方差矩阵即对角矩阵。

似然值:状态上特征向量O的声学模型得分。计算步骤分为两个步骤:

a)计算每种混合物组分上O的似然值计算公式如下:

其中j是状态的第j个混合分量是常量是第j个混合分量的O的似然值。

其中m是状态中混合分量的数量是状态上O的似然值等于日志字段中各种混合的似然值的相加因此该步骤称为logAdd操作。

优化方法

以下描述了三种无损识别准确度的优化方法:

1代码加速:使用SSE指令或intel IPP加速库

该方法利用编程语言指令集的优化通过减少CPU需要操作的指令数来实现加速。 intel IPP加速库直接提供了一组用于计算似然值的函数库加速效果非常明显可以达到40%。

2硬件加速:使用GPU加速

GPU一直以其强大的计算能力而闻名非常适合计算密集型操作如矩阵乘法。为了充分利用GPU的加速效果我们需要稍微重写似然值的计算公式:

转换后每个混合可以用行向量表示。 m个混合物可形成大的矩阵M=(A1A2…Am)T。类似地n帧的特征向量也可以形成矩阵F.=(Z1Z2上海seo优化Z2…Zn)。以这种方式可以通过两个矩阵的乘积来实现多个帧上的多个混合的似然值。每个状态的每个混合组件的logAdd过程彼此独立因此该步骤也可以在GPU上并行计算。一般来说GPU可以实现100倍以上的加速效果这意味着GPU可以将语音识别中最耗时的声学得分计算比例降低到不到1%。由于该方法需要额外的硬件设备GPU这是昂贵的因此不能大规模使用。

3,  CPU缓存加速:一次计算多帧特征的状态可能性

该方法利用了语音识别的特征。一旦在识别过程期间激活状态状态可能在连续帧中保持活动即在处理后续特征时需要计算状态。这种状态的可能性。然后我们可以在第一次激活状态时从当前帧计算连续多帧的状态并且不会导致太多不必要的计算。另一方面您可以使用CPU缓存而不是将状态模型参数从内存加载到CPU中多次从而达到加速的目的。该方法具有约10%的加速效果并且通常与方法1结合使用。

上述三种方法都是声学模型得分的精确计算因此识别准确度没有下降。如果要进一步优化则需要对状态的可能性计算公式进行一些调整。

1.动态高斯选择方法

我们的想法是使用可能性的最大似然成分近似logAdd:

那么你如何选择这个最大值呢?你可能认为这不容易吗?首先计算每个混合的可能性然后选择最大值。然后让我们看看是否有更好的方法?仔细分析混合物可能性的公式:

我们会发现这是一个随着我增加而递减的函数。我们可以先计算。当计算其他时在将n从1增加到i的过程中我们可以判断当前计算的值是否小于。如果它小于那么这个混合物必须不是最大的因为当我增加时这个值将继续减小所以可以直接跳过这个混合从而减少计算量。该方法具有约15%的加速效果但它将导致约0.5点的识别率损失。