如何在线录制matlab音频?

时间:2014-01-20 21:34:25

标签: matlab

我想在MATLAB中录制麦克风的声音。但我不想决定何时提前停止录音,所以我想在录音时停下来。

我尝试过以下代码:

clc
clear
close all

r = audiorecorder(44100, 16, 1);
record(r);     % speak into microphone...
pause(r);
p = play(r);   % listen
resume(r);     % speak again
stop(r);
p = play(r);   % listen to complete recording
mySpeech = getaudiodata(r, 'int16'); % get data as int16 array

但是我遇到了一些错误:

??? Error using ==> audioplayer.audioplayer at 68
Recorder is empty.

Error in ==> audiorecorder.play at 28
player = audioplayer(obj);

Error in ==> record2 at 10
p = play(r);   % listen

如果有人能帮助我并向我解释为什么它不起作用,我将非常感激:)

2 个答案:

答案 0 :(得分:1)

您可以假设recordpause之间没有时间过去,没有记录任何内容。使用recordrecordblocking并设置持续时间参数。

答案 1 :(得分:0)

如果您不想有恒定的录制时间,请考虑手动调用这些函数(我假设您有audiorecorder对象'r'):

record(r); 

开始录制

stop(r);

停止录制(随时)

play(r);

播放录制的声音

所有命令都必须手动调用(来自Matlab命令窗口),因为在一个脚本中,开始和暂停录制之间的时间非常短,并且没有记录任何内容。
还有一件事 - 你的代码在我的环境中运行良好 - 完全没有错误