Main Content

audiorecorder

用于录制音频的对象

说明

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

创建对象

描述

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

  • SampleRate: 8000

  • BitsPerSample: 8

  • NumChannels: 1

recorder = audiorecorder(Fs,nBits,nChannels) 将采样率设置为 Fs,采样位数设置为 nBits,通道数设置为 nChannels

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

示例

输入参量

全部展开

采样率(以赫兹为单位),指定为正标量。

采样率的有效值取决于系统的音频硬件。大多数设置支持的典型采样率为 8000、11,025、22,050、44,100、48,000、96,000 和 192,000 Hz。

此参量设置 SampleRate 属性。

数据类型: single | double

采样位数,指定为 81624。仅当信号包含浮点值时,才指定 nBits

nBits 的有效值取决于系统的音频硬件。

此参量设置 BitsPerSample 属性。

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

此参量设置 NumChannels 属性。

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

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

此参量设置 DeviceID 属性。

属性

全部展开

此 属性 为只读。

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

要设置 SampleRate 属性,请在创建 audiorecorder 对象时使用 Fs 输入参量。

此 属性 为只读。

采样位数,返回为 81624

要设置 BitsPerSample 属性,请在创建 audiorecorder 对象时使用 nBits 输入参量。

此 属性 为只读。

音频通道的数量,返回为 1(单声道)或 2(立体声)。

要设置 NumChannels 属性,请在创建 audiorecorder 对象时使用 nChannels 输入参量。

此 属性 为只读。

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

要设置 DeviceID 属性,请在创建 audiorecorder 对象时使用 ID 输入参量。

此 属性 为只读。

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

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

此 属性 为只读。

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

此 属性 为只读。

录音机状态,返回 'off''on'

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

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

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

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

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

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

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

TimerPeriodTimerFcn 回调的间隔时间(以秒为单位)。

标签,指定为字符串标量或字符向量。

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

此 属性 为只读。

对象类名,返回为 'audiorecorder'

对象函数

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

用麦克风录制一段时长 5 秒的声音样本。

disp("Begin speaking.")
Begin speaking.
recDuration = 5; % record for 5 seconds
recordblocking(recObj,recDuration);
disp("End of recording.")
End of recording.

播放该录音。

play(recObj);

局限性

  • MATLAB Online™MATLAB Web App Server™ 中使用 audiorecorder 时,存在以下限制:

    • 您无法从 audiorecorder 对象创建 audioplayer 对象。

    • audiorecorder 会忽略 nBits。在这种情况下,它使用输入音频设备的默认采样位数来录制音频数据。

    • 采样率 Fs 的有效值可能与在 MATLAB 桌面中的值不同。

提示

  • audiorecorder 函数支持所有 Windows® 和大多数 UNIX® 平台上的声音设备。

  • Google Chrome® 支持在 MATLAB OnlineMATLAB Web App Server 中使用 audiorecorder

  • 注意

    使用 MATLAB OnlineMATLAB Web App Server 时的安全注意事项:MATLAB OnlineMATLAB Web App Server 中使用 audiorecorder 时,某些功能和设置有助于您保护您的隐私。

    要减少不必要的应用程序使用麦克风的可能性,请关闭对音频设备的自动访问权限。您可以随时更改这些设置。对某网站授予一次权限后,您的浏览器可能会在将来访问该网站时自动访问您的麦克风。在最初允许访问后,可使用 Google Chrome 的浏览器设置撤消对特定网站的访问权限。

    您还可以使用 Google Chrome 中的私密浏览模式访问 MATLAB Online 网站或 MATLAB Web App Server。当您这样做时,Chrome® 会在您每次尝试访问麦克风时自动询问是否允许访问麦克风,而不管您的浏览器设置如何。

版本历史记录

在 R2006a 之前推出