音頻系統工具箱™針對實時音頻處理進行了優化。audioDeviceReader, audioDeviceWriter, audioPlayerRecorder, dsp.AudioFileReader和dsp.AudioFileWriter器是為流式傳輸多通道音頻而設計的, 它們提供了必要的參數, ...
音頻系統工具箱™針對實時音頻處理進行了優化。audioDeviceReader
, audioDeviceWriter
, audioPlayerRecorder
, dsp.AudioFileReader
和dsp.AudioFileWriter
器是為流式傳輸多通道音頻而設計的, 它們提供了必要的參數, 以便您可以在吞吐量和延遲之間進行權衡。
有關實時處理的信息以及如何優化演算法的提示, 請參閱音頻 iseo: 緩衝、延遲和吞吐量.
本教程介紹如何在 matlab 中實現音頻流處理®.它概述了創建開發測試台的工作流, 並提供了工作流每個階段的示例。
創建開發試驗台
本教程通過四個步驟創建開發測試台:
-
生成對象以從測試台輸入和輸出音頻。
-
創建一個音頻流迴圈, 逐幀處理音頻幀。
-
添加一個範圍, 以可視化音頻流迴圈的輸入和輸出。
-
為音頻流迴圈添加處理演算法。
本教程還討論了實時可視化和調整處理演算法的工具。
有關處理迴圈的概述, 請考慮下麵完成的測試。您可以通過逐步完成本教程來重新創建此測試台。
1. 創建 input/輸出系統對象 s
音頻流迴圈可以從設備或文件中讀取, 並且可以寫入設備或文件。在本例中, 您將構建一個音頻流迴圈, 該迴圈從文件逐幀讀取音頻幀, 並將音頻幀寫入設備。有關可選的輸入/輸出配置。
創建dsp.AudioFileReader
指定一個文件。若要減少延遲, 請設置 dsp 的SamplesPerFrame
dsp.AudioFileReader
。
接下來, 創建audioDeviceWriter
system 對象, 並將其採樣率指定為輸入系統對象的採樣率。
有關如何使用系統對象的詳細信息, 請參閱什麼是系統對象?(matlab)
2. 創建音頻流迴圈
音頻流迴圈以迭代方式處理音頻。它通過以下方式這樣做:
-
讀取音頻信號的幀
-
處理該幀的音頻信號
-
將音頻信號的幀寫入設備或文件
-
移動到下一幀
在本教程中, 從文件中讀取音頻流迴圈的輸入。輸出將寫入設備。
要逐幀讀取音頻文件, 請調用dsp.AudioFileReader
, 並且不提供任何參數。要逐幀寫入音頻信號, 請在音頻流迴圈中調用音頻audioDeviceWriter
所有系統對象都具有release
功能。作為最佳實踐, 請在使用後釋放系統對象, 尤其是當這些系統對象與硬體設備 (如音效卡) 通信時。
3. 添加範圍
音頻系統工具箱用戶可以使用多個作用域。兩個常見的作用域是 dsp.TimeScope
和 dsp.SpectrumAnalyzer
。本教程使用 dsp.TimeScope
音頻信號的時間範圍系統對象。
dsp.TimeScope
中顯示音頻信號。創建系統對象。若要幫助可視化, 請指定TimeSpan
、 BufferLength
" 和YLimits
" 屬性的值。要逐幀顯示音頻信號, 請調用dsp.TimeScope
流迴圈中的時間範圍系統對象, 其中包含音頻信號作為參數。
4. 開發處理演算法
在大多數應用程式中, 您希望在音頻流迴圈中處理音頻信號。處理階段可以是:
-
音頻流迴圈中的 matlab 代碼塊
-
在音頻流迴圈中調用的單獨函數
-
音頻流迴圈中調用的系統對象
在本教程中, 您將調用reverberator
系統對象來處理音頻流迴圈中的信號。
創建reverberator
系統對象, 並將SampleRate
屬性指定為輸入系統對象的採樣率。若要調整混響效果, 請指定PreDelay
和WetDryMix
屬性的值。若要將混響效果應用於音頻信號幀逐幀, 請在音頻流迴圈中調用reverberator
系統對象, 並將音頻信號作為參數。
添加可調諧性
音頻系統工具箱用戶有多個選項可將實時可調性添加到處理演算法中。要將可調性添加到音頻流迴圈, 可以使用:
-
音頻測試台 –基於
audioPlugin
, 適用於音頻插件類和大多數音頻系統工具箱系統對象。 -
內置功能–音頻系統工具箱中用於可視化處理演算法的關鍵方面的功能。
-
自定義的用戶界面–請參閱教程的實時參數優化。
-
midi 控制器–許多音頻系統工具箱系統對象包括支持 midi 控制項的功能。您可以使用
reverberator
系統對象中的
函數將系統對象屬性同步到 midi 控制項。要將 midi 控制項與沒有configureMIDI
configureMIDI
系統對象一起使用, 請參閱midi 控製表面介面. -
用戶數據報協議 (udp) –您可以在 matlab 中使用 udp 進行無連接傳輸。您還可以使用 udp 在環境之間接收或傳輸數據報。可能的應用包括使用 matlab 工具在第三方環境中播放和可視化音頻時調整音頻處理演算法。有關 udp 通信的應用示例, 請參閱使用 udp 在 daw 和 matlab 之間進行通信.
音頻系統工具箱™針對實時音頻處理進行了優化。audioDeviceReader
, audioDeviceWriter
, audioPlayerRecorder
, dsp.AudioFileReader
和dsp.AudioFileWriter
器是為流式傳輸多通道音頻而設計的, 它們提供了必要的參數, 以便您可以在吞吐量和延遲之間進行權衡。
有關實時處理的信息以及如何優化演算法的提示, 請參閱音頻 iseo: 緩衝、延遲和吞吐量.
本教程介紹如何在 matlab 中實現音頻流處理®.它概述了創建開發測試台的工作流, 並提供了工作流每個階段的示例。
創建開發試驗台
本教程通過四個步驟創建開發測試台:
-
生成對象以從測試台輸入和輸出音頻。
-
創建一個音頻流迴圈, 逐幀處理音頻幀。
-
添加一個範圍, 以可視化音頻流迴圈的輸入和輸出。
-
為音頻流迴圈添加處理演算法。
本教程還討論了實時可視化和調整處理演算法的工具。
有關處理迴圈的概述, 請考慮下麵完成的測試。您可以通過逐步完成本教程來重新創建此測試台。
1. 創建 input/輸出系統對象 s
音頻流迴圈可以從設備或文件中讀取, 並且可以寫入設備或文件。在本例中, 您將構建一個音頻流迴圈, 該迴圈從文件逐幀讀取音頻幀, 並將音頻幀寫入設備。有關可選的輸入/輸出配置, 請參閱快速入門示例。
創建dsp.AudioFileReader
指定一個文件。若要減少延遲, 請設置 dsp 的SamplesPerFrame
dsp.AudioFileReader
。
接下來, 創建audioDeviceWriter
system 對象, 並將其採樣率指定為輸入系統對象的採樣率。
有關如何使用系統對象的詳細信息, 請參閱什麼是系統對象?(matlab)
2. 創建音頻流迴圈
音頻流迴圈以迭代方式處理音頻。它通過以下方式這樣做:
-
讀取音頻信號的幀
-
處理該幀的音頻信號
-
將音頻信號的幀寫入設備或文件
-
移動到下一幀
在本教程中, 從文件中讀取音頻流迴圈的輸入。輸出將寫入設備。
要逐幀讀取音頻文件, 請調用dsp.AudioFileReader
, 並且不提供任何參數。要逐幀寫入音頻信號, 請在音頻流迴圈中調用音頻audioDeviceWriter
所有系統對象都具有release
功能。作為最佳實踐, 請在使用後釋放系統對象, 尤其是當這些系統對象與硬體設備 (如音效卡) 通信時。
3. 添加範圍
音頻系統工具箱用戶可以使用多個作用域。兩個常見的作用域是 dsp.TimeScope
和 dsp.SpectrumAnalyzer
。本教程使用 dsp.TimeScope
音頻信號的時間範圍系統對象。
dsp.TimeScope
中顯示音頻信號。創建系統對象。若要幫助可視化, 請指定TimeSpan
、 BufferLength
" 和YLimits
" 屬性的值。要逐幀顯示音頻信號, 請調用dsp.TimeScope
流迴圈中的時間範圍系統對象, 其中包含音頻信號作為參數。
4. 開發處理演算法
在大多數應用程式中, 您希望在音頻流迴圈中處理音頻信號。處理階段可以是:
-
音頻流迴圈中的 matlab 代碼塊
-
在音頻流迴圈中調用的單獨函數
-
音頻流迴圈中調用的系統對象
在本教程中, 您將調用reverberator
系統對象來處理音頻流迴圈中的信號。
創建reverberator
系統對象, 並將SampleRate
屬性指定為輸入系統對象的採樣率。若要調整混響效果, 請指定PreDelay
和WetDryMix
屬性的值。若要將混響效果應用於音頻信號幀逐幀, 請在音頻流迴圈中調用reverberator
系統對象, 並將音頻信號作為參數。
添加可調諧性
音頻系統工具箱用戶有多個選項可將實時可調性添加到處理演算法中。要將可調性添加到音頻流迴圈, 可以使用:
-
音頻測試台 –基於
audioPlugin
, 適用於音頻插件類和大多數音頻系統工具箱系統對象。 -
內置功能–音頻系統工具箱中用於可視化處理演算法的關鍵方面的功能。
-
自定義的用戶界面–請參閱教程的實時參數優化。
-
midi 控制器–許多音頻系統工具箱系統對象包括支持 midi 控制項的功能。您可以使用
reverberator
系統對象中的
函數將系統對象屬性同步到 midi 控制項。要將 midi 控制項與沒有configureMIDI
configureMIDI
系統對象一起使用, 請參閱midi 控製表面介面. -
用戶數據報協議 (udp) –您可以在 matlab 中使用 udp 進行無連接傳輸。您還可以使用 udp 在環境之間接收或傳輸數據報。可能的應用包括使用 matlab 工具在第三方環境中播放和可視化音頻時調整音頻處理演算法。有關 udp 通信的應用示例, 請參閱使用 udp 在 daw 和 matlab 之間進行通信.
關註公眾號: MATLAB基於模型的設計 (ID:xaxymaker) ,每天推送MATLAB學習最常見的問題,每天進步一點點,業精於勤荒於嬉。
打開微信掃一掃哦!