背景知识
-
KinectAudioSource:KinectAudioSource类的主要作用是从麦克风阵列中提取原始的或者经过处理的音频流。音频流可能会经过一系列的算法来处理以提高音频质量,这些处理包括:降噪、自动增益控制和回声消除。KinectAudioSource能够进行一些配置使得Kinect麦克风阵列可以以不同的模式进行工作。也能够用来探测从那个方向来的哪种音频信息最先达到麦克风以及用来强制麦克风阵列接受指定方向的音频信息。
-
一些语音处理的概念:
-
回声消除(acoustic echo cancellation, AEC) 当用户的声音从麦克风返回时,就会产生回声。最简单的例子就是用户在打电话时能够听到自己的声音,这些声音有一些延迟,会在对方那里重复一段时间。回声消除通过提取发声者的声音模式,然后根据这一模式从麦克风接收到的音频中挑选出特定的音频来消除回声。
-
回声抑制(acoustic echo suppression, AES) 它是指通过一系列的算法来进一步消除AEC处理后所遗留的回声。
-
自动增益控制(acoustic gain control, AGS) 它涉及到一些算法用来使用户的声音的振幅与时间保持一致。例如当用户靠近或者或远离麦克风时,声音会出现变得响亮或更柔和,AGC通过算法使得这一过程变得更加明显。
-
波束成形(beamforming) 指的是模拟定向麦克风的算法技术。和只有一个麦克风不同,波速成形技术用于麦克风阵列中 (如Kinect 传感器上的麦克风阵列)使得麦克风阵列产生和使用多个固定麦克风的效果相同。
-
中心削波(center clipping) 用来移除在单向传输中经AEC处理后残留的小的回声。
-
帧尺寸(Frame Size) AEC算法处理PCM音频样本是是一帧一帧处理的。帧尺寸是样本中音频帧的大小。
-
获取增益边界(Gain Bounding) 该技术确保麦克风有正确的增益级别。如果增益过高,获取到的信号可能过于饱和,会被剪切掉。这种剪切有非线性的效果,会使得AEC算法失败。如果增益过低,信噪比会比较低,也会使得AEC算法失败或者执行的不好。
-
噪声填充(Noise Filling) 向中心削波移除了残留的回波信号后的部分信号中添加少量的噪音。和留下空白的沉默信号相比,这能够获得更好的用户体验。
-
噪声抑制 (NS) 用于从麦克风接收到的音频信号中剔除非言语声音。通过删除背景噪音,实际讲话者的声音能够被麦克风更清楚更明确的捕获到。
-
Optibeam Kinect传感器从四个麦克风中能够获得11个波束。 这11个波束是逻辑结构,而四个通道是物理结构。Optibeam是一种系统模式用来进行波束成形。
-
信噪比(Signal-to-Noise Ratio,SNR) 信号噪声比用来度量语音信号和总体背景噪声的比例,信噪比越高越好。
-
单通道(Single Channel) Kinect传感器有四个麦克风,因此支持4个通道,单通道是一种系统模式用来关闭波束成形。
<