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 关注
- 224 浏览
添加回答
举报