主要内容

实时音频输入MATLAB软件

音频工具箱™ 为实时音频处理而优化。音频设备阅读器,音频设备编写器,音频播放器录制器,dsp.AudioFileReader,和dsp.AudioFileWriter是为流式传输多声道音频而设计的,它们提供了必要的参数,以便您可以在吞吐量和延迟之间进行权衡。

有关实时处理的信息以及如何优化算法的提示,请参阅音频I/O:缓冲、延迟和吞吐量.

本教程介绍如何在MATLAB中实现音频流处理®. 它概述了创建开发测试台的工作流,并为工作流的每个阶段提供了示例。

创建开发测试台

本教程分四步创建开发测试台:

  1. 构建对象以从测试台输入和输出音频。

  2. 创建一个音频流循环,逐帧处理您的音频。

  3. 添加一个范围来可视化音频流循环的输入和输出。

  4. 为音频流循环添加处理算法。

本教程还讨论了用于实时可视化和调整处理算法的工具。

有关处理循环的概述,请考虑下面完成的测试台。您可以通过逐步学习本教程来重新创建此测试台。

完成的试验台代码

1.创建输入/输出系统对象S

您的音频流循环可以读取设备或文件,也可以写入设备或文件。在本例中,将构建一个音频流循环,该循环从文件中逐帧读取音频,并逐帧将音频写入设备。看见快速入门示例用于替代输入/输出配置。

创建dsp.AudioFileReader系统对象™ 并指定一个文件。要减少延迟,请设置样品PerFrame财产dsp.AudioFileReader系统对象到小帧大小。

接下来,创建一个音频设备编写器并将其采样率指定为文件读取器的采样率。

有关如何使用系统对象的详细信息,请参见什么是系统对象?

查看示例代码

2.创建音频流循环

音频流循环以迭代方式处理音频。它通过以下方式实现:

  • 读取音频信号的帧

  • 正在处理那帧音频信号

  • 将音频信号帧写入设备或文件

  • 移动到下一帧

在本教程中,音频流循环的输入是从文件读取的。输出被写入设备。

要逐帧读取音频文件,请调用dsp.AudioFileReader在您的音频流循环中,并且不提供参数。要逐帧写入音频信号,请调用音频设备编写器在音频流循环中使用音频信号作为参数。

查看示例代码

所有系统对象都有一个释放功能。作为一种最佳实践,请在使用后释放系统对象,特别是当这些系统对象与硬件设备(如声卡)通信时。

3.添加作用域

有几个作用域可用。两个常见的作用域是计时器以及频谱分析仪. 本教程使用计时器使音频信号可视化。

这个计时器系统对象在时域中显示音频信号。创建系统对象。若要帮助可视化,请指定时间跨度,缓冲区长度,和叶利mits属性。要逐帧显示音频信号,请调用计时器以音频信号作为参数的音频流循环中的系统对象。

查看示例代码

4.开发处理算法

在大多数应用程序中,您希望在音频流循环中处理音频信号。处理阶段可以是:

  • 音频流循环中的一块MATLAB代码

  • 在音频流循环中调用的单独函数

  • 在音频流循环中调用的系统对象

在本教程中,您将混响器处理音频流循环中的信号。

创建混响器系统对象,并指定取样频率属性作为文件读取器的采样率。要调整混响效果,请指定前期湿干混料属性。要逐帧对音频信号应用混响效果,请调用混响器在音频流循环中使用音频信号作为参数。

查看示例代码

添加可调性

音频工具箱用户有几个选项可以为处理算法添加实时可调性。要为音频流循环添加可调性,可以使用:

  • 这个音频测试台–基于用户界面的练习音频插件类和大多数音频工具箱系统对象。

  • 内置函数–音频工具箱中的函数,用于可视化处理算法的关键方面。

  • 自定义用户界面–请参阅实时参数整定作为教程。

  • MIDI控制器–许多音频工具箱系统对象都包含支持MIDI控件的函数。你可以用万博1manbetx配置MIDI混响器系统对象将系统对象属性与MIDI控件同步。将MIDI控件用于没有配置MIDI函数,请参见MIDI控制界面.

  • 用户数据报协议(UDP)–可以在MATLAB中使用UDP进行无连接传输。您还可以使用UDP在环境之间接收或传输数据报。可能的应用包括在第三方环境中播放和可视化音频时,使用MATLAB工具调整音频处理算法。有关UDP通信的示例应用程序,请参见用UDP实现DAW与MATLAB的通信.

快速入门示例

从设备到设备的音频流

从设备到文件的音频流

从文件到设备的音频流

相关主题