6. 语音识别内幕

6.1. 识别器如何工作

识别系统可以分为两种主要类型。模式识别系统将模式与已知/训练模式进行比较以确定匹配项。声学语音系统利用人体知识(语音产生和听觉)来比较语音特征(如元音的声音)。大多数现代系统侧重于模式识别方法,因为它与当前的计算技术结合得很好,并且往往具有更高的准确性。

大多数识别器可以分为以下步骤

  1. 音频录制和语音检测

  2. 预滤波(预加重,归一化,分频带等)

  3. 分帧和加窗(将数据切分成可用格式)

  4. 滤波(进一步滤波每个窗口/帧/频带)

  5. 比较和匹配(识别语音)

  6. 操作(执行与识别模式相关联的功能)

虽然每个步骤看起来都很简单,但每一步都可能涉及多种不同(有时完全相反)的技术。

(1)音频/语音录制:可以通过多种方式完成。起点可以通过比较环境音频级别(在某些情况下为声能)与刚录制的样本来找到。端点检测更难,因为说话者倾向于留下“伪影”,包括呼吸/叹气,牙齿打颤和回声。

(2)预滤波:以多种方式完成,具体取决于识别系统的其他特性。最常见的方法是“滤波器组”方法,该方法利用一系列音频滤波器来准备样本,以及线性预测编码方法,该方法使用预测函数来计算差异(误差)。也使用不同形式的频谱分析。

(3)分帧/加窗涉及将样本数据分成特定大小。这通常与步骤2或步骤4合并。此步骤还涉及准备用于分析的样本边界(消除边缘咔嗒声等)。

(4)附加滤波并非总是存在。它是比较和匹配之前每个窗口的最终准备。通常,这包括时间对齐和归一化。

对于(5)比较和匹配,有大量的可用技术。大多数涉及将当前窗口与已知样本进行比较。有些方法使用隐马尔可夫模型(HMM)、频率分析、差分分析、线性代数技术/快捷方式、频谱失真和时间失真方法。所有这些方法都用于生成概率和准确性匹配。

(6)操作可以是开发者想要的任何东西。*GRIN*

6.2. 数字音频基础

音频本质上是一种模拟现象。记录数字样本是通过将来自麦克风的模拟信号通过声卡中的模数转换器转换为数字信号来完成的。当麦克风工作时,声波振动麦克风中的磁性元件,导致电流流向声卡(可以想象扬声器反向工作)。基本上,模数转换器以特定的时间间隔记录电压值。

在此过程中有两个重要因素。首先是“采样率”,即记录电压值的频率。其次是“每样本位数”,即记录值的准确程度。第三项是通道数(单声道或立体声),但对于大多数ASR应用来说,单声道就足够了。大多数应用程序对这些参数使用预设值,除非文档建议,否则用户不应更改它们。开发者应该尝试不同的值,以确定哪种值最适合他们的算法。

那么,什么是ASR的良好采样率?由于语音的带宽相对较低(主要在100Hz-8kHz之间),因此对于大多数基本ASR来说,8000个样本/秒(8kHz)就足够了。但是,有些人更喜欢16000个样本/秒(16kHz),因为它提供了更准确的高频信息。如果您有处理能力,请使用16kHz。对于大多数ASR应用来说,高于约22kHz的采样率是一种浪费。

那么“每样本位数”的良好值是多少?每样本8位将记录0到255之间的值,这意味着麦克风元件的位置在256个位置之一。每样本16位将元件位置划分为65536个可能的值。与采样率类似,如果您有足够的处理能力和内存,请使用每样本16位。为了比较,音频光盘以每样本16位和约44kHz进行编码。

应使用的编码格式应简单 - 线性有符号或无符号。使用U-Law/A-Law算法或某些其他压缩方案通常不值得,因为它会花费您的计算能力,并且不会为您带来太多收益。