相关疑难解决方法(0)

使用 Avaudioengine iOS 的低通滤波器 + 采样率转换

我们正在开发一个项目,该项目允许我们使用一些低通滤波器和高通滤波器以 5k Hz 采样率从麦克风录制一些声音。

我们正在使用什么

为此,我们使用AvaudioEngine 。

我们使用AVAudioConverter来降低采样率。

我们使用AVAudioUnitEQ作为低通和高通滤波器。

代码

let bus = 0
let inputNode = engine.inputNode

let equalizer = AVAudioUnitEQ(numberOfBands: 2)

equalizer.bands[0].filterType = .lowPass
equalizer.bands[0].frequency = 3000
equalizer.bands[0].bypass = false

equalizer.bands[1].filterType = .highPass
equalizer.bands[1].frequency = 1000
equalizer.bands[1].bypass = false
engine.attach(equalizer) //Attach equalizer

// Connect nodes
engine.connect(inputNode, to: equalizer, format: inputNode.inputFormat(forBus: 0))
engine.connect(equalizer, to: engine.mainMixerNode, format: inputNode.inputFormat(forBus: 0))
engine.connect(engine.mainMixerNode, to: engine.outputNode, format: inputNode.inputFormat(forBus: 0))

let outputFormat = AVAudioFormat(commonFormat: .pcmFormatInt16,
                                            sampleRate: 5000,
                                            channels: 1,
                                            interleaved: …
Run Code Online (Sandbox Code Playgroud)

frequency lowpass-filter swift highpass-filter avaudioengine

10
推荐指数
1
解决办法
837
查看次数