gpt4 book ai didi

ios - Swift AVAudioEngine AVAudioPCMBuffer 到 PowerLevel

转载 作者:行者123 更新时间:2023-11-30 12:02:19 59 4
gpt4 key购买 nike

我一直在致力于一个项目,以创建一个显示麦克风功率级别的应用程序。我知道 AVAudioRecorder 类提供平均/峰值功率,但我希望只能记录某些频段的功率级别。我使用 AudioUnitEQ 类来设置频段,并将其附加到 AVAudioEngine 并开始录制。目前,我一直在使用 installTap 方法来获取 AVAudioPCMBuffer,这就是我陷入困境的地方。有没有办法将其转换为功率级别?另外,我的做法可能完全错误吗?

最佳答案

您可以像此代码一样获取 avg/peek。

engine.installTap(......) { buffer in 
guard let data = buffer.floatChannelData?[0] else {
return
}
var dbData = [Float](repeating: 0.0, count: data.count)
var one: Float = 0.0
vDSP_vdbcon(&data, 1, &one, &dbData, 1, data.count, 1)

var avgLevel: Float = 0.0
var peakLevel: Float = 0.0
vDSP_rmsqv(dbData, 1, &avgLevel, vDSP_Length(buffer.frameLength))
vDSP_maxmgv(dbData, 1, &peakLevel, vDSP_Length(buffer.frameLength))
}

关于ios - Swift AVAudioEngine AVAudioPCMBuffer 到 PowerLevel,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47055372/

59 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com