在采访中我记录了两个不同麦克风的2个波形文件 .

我需要分离声音,找到两个原始声源:一个文件只有女人的声音,另一个文件只有男人的声音 . (我想在此处提供相同的结果:http://research.ics.aalto.fi/ica/cocktail/cocktail_en.cgi) .

我在同一个网站上下载了Matlab的 FastICA 包:research.ics.aalto.fi/ica/fastica/code/dlcode.shtml

这是我的代码 separate the two voices ,最后得到 two wave files .

% Extract wave files
[Y, FS, BPS] = wavread('input_A.wav');
[Z, FS, BPS] = wavread('input_B.wav');

Y = Y';
Z = Z';

% Create the matrix with the two different channels
X = [Y; Z];

% Display the two input signals
figure('Name', 'Input Y Z');
subplot(2, 1, 1); plot(X(1, :));
subplot(2, 1, 2); plot(X(2, :));

% Run the algorithm
[S, A, W] = fastica(X);

% Display the two output signals
figure('Name', 'Sources');
subplot(2, 1, 1); plot(S(1, :));
subplot(2, 1, 2); plot(S(2, :));

% Extract the two sources
Y = S(1, :);
Z = S(2, :);

% Write wave files
wavwrite(Y, FS, BPS, 'output_1.wav');
wavwrite(Z, FS, BPS, 'output_2.wav');

以下是算法的输出:

> Number of signals: 2.
> Number of samples: 480000.
> Calculating covariance...
> Dimension not reduced.
> Selected [ 2 ] dimensions.
> Smallest remaining (non-zero) eigenvalue [ 0.000693973 ].
> Largest remaining (non-zero) eigenvalue [ 0.00107027 ].
> Sum of removed eigenvalues [ 0 ].
> [ 100 ] % of (non-zero) eigenvalues retained.
> Whitening...
> Check: covariance differs from identity by [ 8.88178e-16 ].
> Used approach [ defl ].
> Used nonlinearity [ pow3 ].
> Warning: Data vectors are very long. Plotting may take long time.
> Starting ICA calculation...
> IC 1 .....computed ( 5 steps ).
> IC 2 ..computed ( 2 steps ).
> Done.
> Adding the mean back to the data.

Here是显示的信号:

我真的不明白为什么输出信号几乎与这些数字上的输入信号相同? Why the voices are not separated ?

提前感谢阅读此帖并尝试回答的任何人!