我想在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
如果有人能帮助我并向我解释为什么它不起作用,我将非常感激:)
答案 0 :(得分:1)
您可以假设record
和pause
之间没有时间过去,没有记录任何内容。使用record
或recordblocking
并设置持续时间参数。
答案 1 :(得分:0)
如果您不想有恒定的录制时间,请考虑手动调用这些函数(我假设您有audiorecorder对象'r'):
record(r);
开始录制
stop(r);
停止录制(随时)
play(r);
播放录制的声音
所有命令都必须手动调用(来自Matlab命令窗口),因为在一个脚本中,开始和暂停录制之间的时间非常短,并且没有记录任何内容。
还有一件事 - 你的代码在我的环境中运行良好 - 完全没有错误