Audio Toolbox为实时音频处理进行了优化。audioDeviceReader
,audioDeviceWriter
,audioPlayerRecorder
,dsp.AudioFileReader
和dsp.AudioFileWriter
是专为流媒体多声道音频,以及它们提供必要的参数,这样就可以吞吐量和延迟之间进行权衡。
有关实时处理的信息和如何优化算法的提示,请参见音频I / O:缓冲,延迟时间和吞吐量。
本教程介绍如何在MATLAB实现音频流处理®。它概述了工作流创建开发测试台并提供了示例工作流的每个阶段。
本教程将创建四个步骤的开发测试平台:
建立从您的测试平台反对输入和输出音频。
创建一个音频流循环,处理音频帧一帧。
添加一个范围来可视化音频流循环的输入和输出。
添加处理算法,音频流循环。
本教程还讨论了可视化和实时调整你的处理算法工具。
对于处理循环的概述,请考虑以下完成的试验台。您可以通过本教程走一步一步重建这个试验台。
您的音频流回路可以从设备或文件读取,并且可以写入设备或文件。在这个例子中,将构建的音频流循环,从文件中读取音频帧接一帧和一个装置将音频帧接一帧。看到快速入门实例可供选择的输入/输出配置。
创建一个dsp.AudioFileReader
系统对象™和指定文件。为了减少等待时间,设置SamplesPerFrame
财产的dsp.AudioFileReader
系统对象的小帧的大小。
接下来,创建一个audioDeviceWriter
系统对象,并指定其采样率的文件阅读器的采样率。
有关如何使用系统对象的详细信息,请参阅什么是系统对象?(MATLAB)
音频流循环迭代地处理音频。它通过:
读取音频信号的帧
处理音频信号的帧
写音频信号的该帧的装置或文件
移动到下一帧
在本文中,将输入到音频流环被从文件中读取。输出被写入到设备。
要读取的音频文件帧一帧,请致电dsp.AudioFileReader
您的音频流循环中,并没有提供参数。要写入的音频信号帧一帧,请致电audioDeviceWriter
与音频信号的参数音频流循环中。
所有系统对象有释放
函数。作为一种最佳实践,在使用后释放系统对象,特别是当这些系统对象与硬件设备(如声卡)通信时。
有几个可用的范围。两种常见的范围是dsp.TimeScope
和dsp.SpectrumAnalyzer
。本教程使用dsp.TimeScope
以可视化的音频信号。
该dsp.TimeScope
系统对象显示在时域中的音频信号。创建系统对象。为了帮助可视化,指定值时间间隔
,BufferLength
和YLimits
属性。为了显现的音频信号一帧一帧,调用dsp.TimeScope
与音频信号的参数音频流循环中系统对象。
在大多数应用中,你想你的音频流循环中处理音频信号。处理阶段可以是:
的MATLAB代码的音频流环内的块
叫你的音频流循环中有一个单独的函数
叫你的音频流回路内的系统对象
在本教程中,调用混响
处理您的音频流回路内的信号。
创建一个混响
系统对象,并指定采样率
财产的文件阅读器的采样率。要调整混响效果,指定值预延迟
和WetDryMix
属性。以应用混响效果应用到音频信号一帧一帧,调用混响
与音频信号的参数音频流循环中。
音频工具箱用户有多种选择,以实时可调性添加到处理算法。要添加可调性,以您的音频流循环,你可以使用:
该音频测试平台- 基于UI演习audioPlugin
类和大多数音频工具箱系统对象。
内置功能 - 在音频工具箱功能的可视化你的处理算法的主要方面。
一个定制的用户界面 - 请参阅实时参数调整一个教程。
MIDI控制器 - 许多音频Toolbox系统对象包括函数,支持MIDI控制。万博1manbetx您可以使用
在功能configureMIDI
混响
系统对象的系统对象属性同步到MIDI控制。要使用MIDI控制与系统对象没有configureMIDI
功能,参见MIDI控制界面接口。
用户数据报协议(UDP)——可以在MATLAB中使用UDP进行无连接传输。您还可以使用UDP在环境之间接收或传输数据报。可能的应用程序包括在第三方环境中播放和可视化音频时使用MATLAB工具来优化音频处理算法。有关UDP通信的示例应用程序,请参见通信的DAW和MATLAB使用UDP之间。