从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);
答
听起来像是一个与您的采样频率有关的问题。这里'F'是什么?我不熟悉'getaudiodata'例程,但我敢打赌它告诉你或者让你指定采样频率。
我了解它的工作的感谢!只是最后一件事情,我可以将e4定义为11025吗? – AMH9 2014-12-04 20:02:47
是的,当然可以。 Fs必须足够大才能防止干扰。如果您使用录音功能,min Fs必须是3-4 kHz,因此11025 Hz足够大。顺便说一句,如果它是有用的,请接受作为答案,声誉会很好((: – mehmet 2014-12-04 20:10:02
当然,你赚了它:) – AMH9 2014-12-04 20:25:18