录制语音时在Matlab中的wav回放

录制语音时在Matlab中的wav回放,matlab,audio,wav,recording,Matlab,Audio,Wav,Recording,我在录音5秒钟时遇到了问题。我已经使用play()函数成功地回放了,但是一旦我播放了保存在桌面上的wav文件,它就变成了沉默。 这是密码 clc,clear; % Record your voice for 5 seconds. %recObj = audiorecorder; recObj = audiorecorder(96000, 16, 1); disp('Start speaking.') recordblocking(recObj,5); disp('End of Recordin

我在录音5秒钟时遇到了问题。我已经使用play()函数成功地回放了,但是一旦我播放了保存在桌面上的wav文件,它就变成了沉默。 这是密码

clc,clear;
% Record your voice for 5 seconds.
%recObj = audiorecorder;
recObj = audiorecorder(96000, 16, 1);
disp('Start speaking.')
recordblocking(recObj,5);

disp('End of Recording.');`enter code here`
% Play back the recording.
play(recObj);
myspeech = getaudiodata(recObj,'double');
wavwrite(double(myspeech),'C://Users//naveen//Desktop//unprocessed')

% Store data in double-precision array.
myRecording = getaudiodata(recObj);

% Plot the samples.
figure,plot(myRecording),title('Original Sound');

调用wavwrite时未指定采样率,默认值为8000Hz

但是,在您呼叫录音机时,录音设置为96000Hz

audiorecorder(96000, 16, 1);
将这两个更改为匹配应该可以解决问题,因此可以将其中一个调用更改为以下调用之一

recObj = audiorecorder(8000, 16, 1)
wavwrite(double(myspeech),96000,'C:/...snip... 
作为补充说明,我认为
myspeech
已经加倍了(如
getaudiodata
中所述)
所以wavwrite(myspeech,96000,'C:/…snip…应该也能正常工作!

我认为wavwrite的默认采样率是8000Hz,您的录音设置为96000Hz,试试wavwrite(double(myspeech),96000,'C:/…snip…或
recObj=audiorecorder(8000,16,1)
;非常感谢..我试过wavwrite(double(myspeech),96000,'C:/…剪断…它成功了。现在我能清晰地听到录制的声音。谢谢。我会加上作为回答!