簡體   English   中英

通過Coder將Matlab音頻讀取/音頻播放轉換為C / C ++

[英]Matlab audioread/audioplay into C/C++ through Coder

我正在做一個matlab項目,向音頻文件(mp3,wav)添加效果。 因此,我使用matlab函數audioread(..)將文件加載到數組中。

現在,我想將此導出到Android。 我讀到最好的方法是使用Matlab Coder將Matlab代碼導出到C / C ++(或Java),然后將其導出到android(或多或少)。

但是,不支持函數調用audioplayer(和播放)(這就是代碼生成准備問題所說明的內容)。

我能做什么 ? 一種想法是直接使用c ++代碼播放聲音(因此在代碼生成之后)。 但是如何使用c ++播放數組中的聲音?

或者,如果你們有其他想法而無需接觸c ++代碼(因此直接在matlab中解決問題),我將很高興聽到它!

謝謝,祝你有美好的一天!

通常,在這種情況下,我建議將代碼分為兩部分:

  1. 進行音頻文件I / O和音頻播放的部分(即特定於OS的部分)
  2. 您將使用MATLAB Coder為其生成代碼的計算內核。 這部分通常將代表圖像或音頻數據的數字數組作為參數。

我使用這種方法來利用MATLAB Coder生成的代碼在Android上進行圖像過濾。

正如Navan所說,要執行第(1)部分,您需要使用Android API讀取音頻文件,將數據寫回到文件中,然后根據需要播放它們。 請注意,我尚未進行廣泛的Android開發,因此執行這些任務可能需要進行一些研究或非常困難。

一旦具有適合(2)中函數的格式的數據(可能是數字數組),則可以使用JNI調用生成的代碼以添加所需的效果。 生成的代碼會將數據返回到Java代碼,然后您可以使用Android API對其進行編碼,播放或按照自己的意願進行操作。

播放音頻通常使用依賴於平台的庫。 在DSP System工具箱中,有一個名為dsp.AudioPlayer的音頻播放器對象,它支持C代碼生成。 但是我相信這會在生成的代碼中使用依賴於平台的庫,並且使其直接在Android中運行也不是一件容易的事。 您最好找到適用於Android的音頻播放器庫,並在生成代碼后手動將其掛接。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM