如何解决iOS AudioKit 高通滤波器
我正在尝试使用 AudioKit 从 iOS 麦克风中检测音调,这是代码
init() {
guard let input = engine.input else {
fatalError()
}
mic = input
filter = HighPassFilter(mic,cutoffFrequency: 200,resonance: 40)
silence = Fader(filter,gain: 0)
tracker = PitchTap(silence) { pitch,amp in
DispatchQueue.main.async {
print(pitch[0],amp[0])
self.update(pitch[0],amp[0])
}
}
engine.output = filter
}
func start() {
recordFrequency = []
do {
try engine.start()
tracker.start()
} catch let err {
Log(err)
}
}
因为当我不发出声音时总会有一些检测(频率 20 到 200), 我添加了一个高通滤波器来过滤低于 40 dB 和 200 频率的声音, 但是好像不行,怎么办?
谢谢。
解决方法
您似乎只是遇到了一些连接点问题。在使信号静音之前尝试放置跟踪器:
filter = HighPassFilter(mic,cutoffFrequency: 200,resonance: 40)
tracker = PitchTap(filter) { pitch,amp in
DispatchQueue.main.async {
print(pitch[0],amp[0])
self.update(pitch[0],amp[0])
}
}
silence = Fader(tracker,gain: 0)
engine.output = filter
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。