从matlab录制的wave音频文件听起来不同

时间:2014-12-04 19:25:34

标签: matlab avaudioplayer

我在导出使用matlab录制的音频文件时出现问题,当我录制我的声音并播放它听起来很好,但是当我保存它时 - 导出音频 - 作为wav文件并通过播放导出它使用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);

2 个答案:

答案 0 :(得分:2)

变量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);

答案 1 :(得分:1)

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