音频工具箱™ 为实时音频处理而优化。音频设备阅读器
,音频设备编写器
,音频播放器录制器
,dsp.AudioFileReader
,和dsp.AudioFileWriter
是为流式传输多声道音频而设计的,它们提供了必要的参数,以便您可以在吞吐量和延迟之间进行权衡。
有关实时处理的信息以及如何优化算法的提示,请参阅音频I/O:缓冲、延迟和吞吐量.
本教程介绍如何在MATLAB中实现音频流处理®. 它概述了创建开发测试台的工作流,并为工作流的每个阶段提供了示例。
本教程分四步创建开发测试台:
构建对象以从测试台输入和输出音频。
创建一个音频流循环,逐帧处理您的音频。
添加一个范围来可视化音频流循环的输入和输出。
为音频流循环添加处理算法。
本教程还讨论了用于实时可视化和调整处理算法的工具。
有关处理循环的概述,请考虑下面完成的测试台。您可以通过逐步学习本教程来重新创建此测试台。
您的音频流循环可以读取设备或文件,也可以写入设备或文件。在本例中,将构建一个音频流循环,该循环从文件中逐帧读取音频,并逐帧将音频写入设备。看见快速入门示例用于替代输入/输出配置。
创建dsp.AudioFileReader
系统对象™ 并指定一个文件。要减少延迟,请设置样品PerFrame
财产dsp.AudioFileReader
系统对象到小帧大小。
接下来,创建一个音频设备编写器
并将其采样率指定为文件读取器的采样率。
有关如何使用系统对象的详细信息,请参见什么是系统对象?
音频流循环以迭代方式处理音频。它通过以下方式实现:
读取音频信号的帧
正在处理那帧音频信号
将音频信号帧写入设备或文件
移动到下一帧
在本教程中,音频流循环的输入是从文件读取的。输出被写入设备。
要逐帧读取音频文件,请调用dsp.AudioFileReader
在您的音频流循环中,并且不提供参数。要逐帧写入音频信号,请调用音频设备编写器
在音频流循环中使用音频信号作为参数。
所有系统对象都有一个释放
功能。作为一种最佳实践,请在使用后释放系统对象,特别是当这些系统对象与硬件设备(如声卡)通信时。
有几个作用域可用。两个常见的作用域是计时器
以及频谱分析仪
. 本教程使用计时器
使音频信号可视化。
这个计时器
系统对象在时域中显示音频信号。创建系统对象。若要帮助可视化,请指定时间跨度
,缓冲区长度
,和叶利mits
属性。要逐帧显示音频信号,请调用计时器
以音频信号作为参数的音频流循环中的系统对象。
在大多数应用程序中,您希望在音频流循环中处理音频信号。处理阶段可以是:
音频流循环中的一块MATLAB代码
在音频流循环中调用的单独函数
在音频流循环中调用的系统对象
在本教程中,您将混响器
处理音频流循环中的信号。
创建混响器
系统对象,并指定取样频率
属性作为文件读取器的采样率。要调整混响效果,请指定前期
和湿干混料
属性。要逐帧对音频信号应用混响效果,请调用混响器
在音频流循环中使用音频信号作为参数。
音频工具箱用户有几个选项可以为处理算法添加实时可调性。要为音频流循环添加可调性,可以使用:
这个音频测试台–基于用户界面的练习音频插件
类和大多数音频工具箱系统对象。
内置函数–音频工具箱中的函数,用于可视化处理算法的关键方面。
自定义用户界面–请参阅实时参数整定作为教程。
MIDI控制器–许多音频工具箱系统对象都包含支持MIDI控件的函数。你可以用万博1manbetx
在配置MIDI
混响器
系统对象将系统对象属性与MIDI控件同步。将MIDI控件用于没有配置MIDI
函数,请参见MIDI控制界面.
用户数据报协议(UDP)–可以在MATLAB中使用UDP进行无连接传输。您还可以使用UDP在环境之间接收或传输数据报。可能的应用包括在第三方环境中播放和可视化音频时,使用MATLAB工具调整音频处理算法。有关UDP通信的示例应用程序,请参见用UDP实现DAW与MATLAB的通信.