从matlab录制的波形音频文件的声音不同

问题描述:

我在录制使用matlab录制的音频文件时出现问题,当我录制我的声音并播放它时听起来不错,但是当我保存它时 - 导出音频 - 作为wav文件并通过播放导出的文件来播放它,或者使用matlab再次读取它,它听起来不同,长度更短,语音更快,听起来很有趣,我该如何解决这个问题?从matlab录制的波形音频文件的声音不同

voice = audiorecorder; 
disp('Start speaking.') 
recordblocking(voice, 5); 
disp('End of Recording.'); 

play(voice); 
y = getaudiodata(voice); 

filename = 'myvoicerecord.wav'; 
audiowrite(filename,y,Fs); 

变量Fs导致此问题。我的意思是当你录制你的声音时,采样频率与Fs的值不同。

使用下面的代码:

Fs  = e4         % // Sampling frequency: 10000 Hz 
bits  = 16;        % // Bits Per Sample: 16 
channel = 1;         % // Number of Channels: Mono 
rec_time = 5;         % // Block of Sample Time: 5 sec 
voice = audiorecorder(Fs, bits, channel); % // Recorder object 
record(voice);        % // Start Recording 
pause(rec_time);        % // Recording 
stop(voice);         % // Stop Recording 
play(voice); 

y  = getaudiodata(voice); 
filename = 'myvoicerecord.wav'; 
wavwrite(y, Fs, bits, filename); 
+0

我了解它的工作的感谢!只是最后一件事情,我可以将e4定义为11025吗? – AMH9 2014-12-04 20:02:47

+0

是的,当然可以。 Fs必须足够大才能防止干扰。如果您使用录音功能,min Fs必须是3-4 kHz,因此11025 Hz足够大。顺便说一句,如果它是有用的,请接受作为答案,声誉会很好((: – mehmet 2014-12-04 20:10:02

+0

当然,你赚了它:) – AMH9 2014-12-04 20:25:18

听起来像是一个与您的采样频率有关的问题。这里'F'是什么?我不熟悉'getaudiodata'例程,但我敢打赌它告诉你或者让你指定采样频率。