isolated word detection, comparing two audio files
1 次查看(过去 30 天)
显示 更早的评论
i am trying to compare two audio files, one is user input and the second file is the pre-recorded sample (defined). I need to compare both, i have converted both .wav file from time domain to frequency domain. yet i cannot establish a way to compare both the files.
Fs = 10000; % Sampling Frequency (Hz)
Nseconds = 1; % Length of speech signal
fprintf('say a word immediately after hitting enter: ');
input('');
% Get time-domain speech signal from microphone
y = wavrecord(Nseconds*Fs, Fs, 'double');
x = fft(y);
% Get response until Fs/2 (for frequency from Fs/2 to Fs, response is repeated)
x = x(1:floor(Nseconds*Fs/2));
% Plot magnitude vs. frequency
m = abs(x);
f = (0:length(x)-1)*(Fs/2)/length(x);
plot(f,m);
xlabel('Frequency (Hz)');
ylabel('Magnitude');
% Get time-domain speech signal already recorded sample
y2=wavread('sample01_6k.wav','double');
x2 = fft(y2);
% Get response until Fs/2 (for frequency from Fs/2 to Fs, response is repeated)
x2 = x2(1:floor(Nseconds*Fs/2));
% Plot magnitude vs. frequency
m2 = abs(x2);
f2 = (0:length(x2)-1)*(Fs/2)/length(x2);
0 个评论
采纳的回答
Walter Roberson
2015-6-5
fft() is for periodic signals. If the longer signal consisted of nothing other than the same word repeated over and over again exactly the same way then comparing the fft() might be useful.
You will need to use a technique that deals with analysis over short times rather than infinite. One technique is Short Time Fourier Transform. See for example http://www.mathworks.com/help/signal/ug/formant-estimation-with-lpc-coefficients.html
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Audio I/O and Waveform Generation 的更多信息
产品
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!