3 回答

TA貢獻1777條經驗 獲得超10個贊
如果要使用C ++庫,則可以嘗試SWIG,但必須將其從Subversion中刪除。下一個版本(2.0.1)將是第一個支持Go的版本。以我的經驗,Go的支持仍然有些粗糙,但是我嘗試包裝的庫又是一個龐然大物。
或者,您仍然可以使用SWIG所使用的相同方法通過cgo創建自己的綁定,但這將是痛苦而又乏味的?;舅枷胧?,您首先創建一個C包裝器,然后讓cgo在您的C包裝器周圍創建一個Go包裝器。
不過,我對信號處理或libsox一無所知。對不起。

TA貢獻1900條經驗 獲得超5個贊
有一個名為ZikiChombo的相對較新的項目,到目前為止 ,該項目包含一些針對音頻的基本DSP功能,請參見此處
該項目的dsp部分在其路線圖上有過濾器,但尚不存在。另一方面,這里有一些用于實現過濾器的基礎結構,例如實際的fft和塊卷積。這意味著,如果需要FIR,并且可以通過其他某種方式計算系數,則可以通過當前在zc中與聲音實時卷積來運行它們。
基本的濾波設計支持(FIR,Biquad),例如將理想濾波器用作起點,將是zc的下一步。有許多小型的自包含開放源代碼項目,用于基本的和更高級的FIR和IIR濾波器設計,最著名的是愛荷華州Hills,它比大型項目在Go之外計算濾波器系數的訪問性更高。
更高級的濾波(例如Butterworth)以及基于多項式求解和雙線性變換的濾波將花費更多時間用于zc。
還有一些軟件定義的Golang廣播項目,其中包含與過濾有關的一些代碼,抱歉,沒有可用的鏈接,但是對主題的搜索可能會將您引向他們。
最后,還有一個gonum Fourier軟件包,該軟件包也提供了fft。
因此,Go在此領域中正在增長一些有趣且潛在的東西,但是與較舊的項目(這些項目大多是C / C ++,或者例如通過numpy的Python包裝器)相比,還有很多路要走。
- 3 回答
- 0 關注
- 256 瀏覽
添加回答
舉報