鸡尾酒会问题 Cocktail Party Problem
2018-01-30 本文已影响319人
谢小帅
1. 问题描述
鸡尾酒会问题是在计算机 语音识别 领域的一个问题。
当前语音识别技术已经可以以较高精度识别一个人所讲的话,但是当说话的人数为两人或者多人时,语音识别率就会极大的降低,这一难题被称为鸡尾酒会问题。
该问题 给定混合信号,分离出鸡尾酒会中 同时说话的每个人的独立信号。
设有N个信号源(N个人说话)
通常假设观察信号也有N个(N个麦克风)
该假设意味着混合矩阵是个方阵(每个麦克风都接收了N个人说话的声音)
即 J = D,其中D是输入数据的维数,J是系统模型的维数。
![](https://img.haomeiwen.com/i1877813/53cdee661d991a0e.png)
要分离出鸡尾酒会中同时说话的每个人的独立信号,常用的方法是盲信号分离算法。
2. 盲信号分离
2.1 简介
盲信号(Blind Source Separation,BSS)分离指的是 从多个观测到的混合信号中分析出没有观测的原始信号。通常观测到的混合信号(麦克风接收到)来自多个传感器(多个人说话)的输出,并且传感器的输出信号独立(线性不相关)。
盲信号的 “盲” 字强调了两点:
- 原始信号并不知道;
- 对于信号混合的方法也不知道。
2.2 原理(简单的数学描述)
我们先看只有 2 个信号源的情况,则观测信号也只有 2 个。
- S1 和 S2 是两个源信号;
- x1 和 x2 是两个观测信号;
- y1 和 y2 是对源信号的估计;
- A 是混合矩阵,将两个信号混合在一起,然后产生输出两个观测信号;
- W 是权重矩阵,用于提取估计出声源信号。
![](https://img.haomeiwen.com/i1877813/b8023fd4d2050854.jpeg)
矩阵表达形式:
![](https://img.haomeiwen.com/i1877813/765d3e0b3e838987.jpeg)
A11:1号麦克风接收到1号人的声音;
A12:1号麦克风接收到2号人的声音;
所以,x1 = A11·S1 + A12·S2,为1号麦克风得到的混合声音。
因为信号混合方法未知,所以 A 矩阵未知。
模型最终目的,y1 = S1,y2 = S2。
理想状态下,W 矩阵 是 A 矩阵 的 逆矩阵。
由于参数空间不是欧几里得度量(两点间直线),在大多的情况下都是黎曼度量(两点间弧线,即空间参数向量不是线性变化的),因此对于W矩阵的求解选用 自然梯度解法。
比较 W(n+1) 与 W(n) 两个矩阵的差异 需要用 黎曼度量(相似性度量)。
2.3 自然梯度法计算 W 矩阵
自然梯度法计算公式:
![](https://img.haomeiwen.com/i1877813/fbe1adf836b3b4ef.png)
- η(n):步长
-
Φ(y):非线性变化
实际计算时,W 为 m*k 矩阵,m(人数,原始信号个数),k(话筒数,采样点数)
计算步骤:
- 初始化 W(0) 为单位矩阵;
- 循环执行 3,4 步骤,直到 W(n+1) 与 W(n) 差异小于规定值 τ ;
- 利用公式:y(n) = W(n) y(n-1),其中 n=0 时, y(-1) = x;
- 利用自然梯度法计算公式