Main Content

audiorecorder

用于录制音频的对象

说明

使用 audiorecorder 对象录制来自输入设备(如麦克风)的音频数据,以便在 MATLAB® 中进行处理。audiorecorder 对象包含在录制过程中提供额外灵活性的属性。例如,您可以使用 audiorecorder 对象函数暂停、继续或定义回调。

创建对象

说明

示例

recorder = audiorecorder 创建并返回具有以下属性的 audiorecorder 对象:

  • 采样频率 Fs = 8000 赫兹

  • 采样位数 nBits = 8

  • 通道数 nChannels = 1

示例

recorder = audiorecorder(Fs,nBits,NumChannels) 设置采样率 Fs(以赫兹为单位)、采样位数 nBits 和通道数 nChannels

示例

recorder = audiorecorder(Fs,nBits,NumChannels,ID) 将音频输入设备设置为 ID 指定的设备。

输入参数

全部展开

采样频率,单位为赫兹 (Hz),指定为数值标量。

采样率的有效值取决于 MATLAB 允许的采样率以及系统上的具体音频硬件。MATLAB 的硬性限制为 1000 Hz <= Fs <= 384000 Hz,但还存在其他基于硬件的限制。大多数声卡支持的典型值有 8000、11025、22050、44100、48000 和 96000 Hertz。

数据类型: single | double

采样位数,指定为 81624

仅当信号 Y 包含浮点值时,才指定 nBitsnBits 的有效值取决于音频硬件。例如,根据您的音频硬件,nBits 可以是下列值之一:81624

通道数,指定为 1(单声道)或 2(立体声)。

设备标识符,指定为整数。

要获取设备 ID,请使用 audiodevinfo 函数。

属性

全部展开

此属性为只读

采样位数,以正整数形式返回。

此属性为只读

音频输入设备上当前录制的样本,以正整数形式返回。

如果设备未在进行录制,则 CurrentSample 是使用 recordresume 方法进行录制的下一个样本。

此属性为只读

音频设备标识符,以整数形式返回。

此属性为只读

录音机状态,返回 onoff

以赫兹 (Hz) 为单位的采样频率,以数值标量形式返回。

要设置 SampleRate,请在构造 audiorecorder 对象时使用 Fs 输入参数。

此属性为只读

样本中音频数据的总长度,以整数形式返回。

标签,指定为字符向量。

此属性为只读

对象类名,返回为 'audiorecorder'

用户定义的数据,指定为任意数据类型的值。使用此属性将任何附加数据与对象一起存储。

在录制开始时要执行的函数,指定为包含函数名称的字符向量或字符串标量,或者指定为函数句柄。

回调函数的前两个输入必须是 audiorecorder 对象和 event 结构体。有关详细信息,请参阅回调函数

在录制结束时要执行的函数,指定为包含函数名称的字符向量或字符串标量,或指定为函数句柄。

回调函数的前两个输入必须是 audiorecorder 对象和 event 结构体。有关详细信息,请参阅回调函数

在录制期间重复执行的函数,指定为包含函数名称的字符向量或字符串标量,或指定为函数句柄。要指定重复时间间隔,请使用 TimerPeriod 属性。

回调函数的前两个输入必须是 audiorecorder 对象和 event 结构体。有关详细信息,请参阅回调函数

计时器周期,指定为数值标量。

计时器周期是 TimerFcn 回调的间隔时间(以秒为单位)。

对象函数

get查询 audiorecorder 对象的属性值
getaudiodata将录制的音频信号存储在数值数组中
getplayer创建关联的 audioplayer 对象
isrecording确定录制是否正在进行
pause暂停播放或录制
playaudiorecorder 对象播放音频
record将音频录制到 audiorecorder 对象中
recordblocking将音频录制到 audiorecorder 对象中,在录制完成前保持控制权
resume 从暂停状态继续播放或录制
set设置 audiorecorder 对象的属性值
stop停止播放或录制

示例

全部折叠

从麦克风录制音频数据,然后播放录制的音频。

使用默认属性值创建 audiorecorder 对象。

recObj = audiorecorder;

或者,创建具有所需属性的 audiorecorder 对象。对于立体声中的 CD 质量音频,需要定义以下属性:采样频率 (Fs)、采样位数 (nBits)、通道数 (nChannels) 以及输入设备标识符 (ID)。

Fs = 44100 ; 
nBits = 16 ; 
nChannels = 2 ; 
ID = -1; % default audio input device 
recObj = audiorecorder(Fs,nBits,nChannels,ID);

用麦克风采集一个时长为五秒钟的演讲样本。

disp('Start speaking.')
Start speaking.
recordblocking(recObj,5);
disp('End of Recording.');
End of Recording.

播放该录音。

play(recObj);

版本历史记录

在 R2006a 之前推出