使用这个声音文件:http ://www.ism.ac.jp/~shiro/research/sounds/RSM/X_rsm2.wav
我正在尝试从 matlab 中的 coursera重新创建 Andrew Ng 的机器学习演示文稿( https://class.coursera.org/ml-005/lecture )
我所做的是读取 .wav 文件(16khz,7 秒,2 个通道)
[x,xfs] = wavread('track.wav')
现在我转置 x
x = x'
现在我继续在鸡尾酒会算法上使用 x
[W,s,v] = svd((repmat(sum(x.*x,1),size(x,1),1).*x)*x')
MATLAB 返回:
W =
-0.9233 -0.3841
-0.3841 0.9233
s =
265.4832 0
0 13.0768
v =
-0.9233 -0.3841
-0.3841 0.9233
分离的音频在哪里?
编辑:通过进一步的研究,我发现 W 只是分解矩阵。这意味着如果我的目标是让两个输出分离的声源,这个算法是不完整的。我该如何处理这个分解矩阵?