gpt4 book ai didi

ios - Audio Kit iOS 检测短麦克风输入的音高/频率,例如水龙头

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:29:31 26 4
gpt4 key购买 nike

我正在尝试创建一个应用程序,用户可以在其中录制一个小的音频剪辑 - 或来自麦克风的实时音频并发出短暂的声音,例如敲击声。然后,该应用程序会分析其频率或音调,以便日后记住。

我遇到了一个名为 Audio kit 的很棒的框架,它似乎有一个非常好的示例应用程序,至少可以让我入门。 http://audiokit.io/examples/MicrophoneAnalysis/

但是,如果运行它不会为我提供短音频的可用结果,例如敲击桌面与拍手。

我很欣赏这个例子更多的是用于人声或音乐音高检测 -

func setupPlot() {
let plot = AKNodeOutputPlot(mic, frame: audioInputPlot.bounds)
plot.plotType = .rolling
plot.shouldFill = true
plot.shouldMirror = true
plot.color = UIColor.blue
audioInputPlot.addSubview(plot)
}

override func viewDidLoad() {
super.viewDidLoad()

AKSettings.audioInputEnabled = true
mic = AKMicrophone()
tracker = AKFrequencyTracker(mic)
silence = AKBooster(tracker, gain: 0)
}
@objc func updateUI() {
if tracker.amplitude > 0.1 {
frequencyLabel.text = String(format: "%0.1f", tracker.frequency)

var frequency = Float(tracker.frequency)
while frequency > Float(noteFrequencies[noteFrequencies.count - 1]) {
frequency /= 2.0
}
while frequency < Float(noteFrequencies[0]) {
frequency *= 2.0
}

var minDistance: Float = 10_000.0
var index = 0

for i in 0..<noteFrequencies.count {
let distance = fabsf(Float(noteFrequencies[i]) - frequency)
if distance < minDistance {
index = i
minDistance = distance
}
}
let octave = Int(log2f(Float(tracker.frequency) / frequency))
noteNameWithSharpsLabel.text = "\(noteNamesWithSharps[index])\(octave)"
noteNameWithFlatsLabel.text = "\(noteNamesWithFlats[index])\(octave)"
}
amplitudeLabel.text = String(format: "%0.2f", tracker.amplitude)
}

我查看了音频工具包网站,它建议在此处使用适当的标签发布问题

所以我的问题是 - 是否可以使用框架来做到这一点 - 理想情况下检测一小段音频的频率足够可靠以区分两次大声敲击(例如有人拍打他们的胸部然后他们的大腿)

或者是否有我应该查看的替代框架(我是 iOS 开发人员)

最佳答案

首先要做的是确定两种类型的敲击声之间是否存在统计学上的显着差异。

您可能会为每个音频录制一堆样本,然后使用音频分析工具(例如使用 Audacity 或 MatLab 的频谱图)检查它们。然后,如果可能的话,您也许可以寻找一些能够可靠地检测到您发现的任何差异的特定框架。或者,如果您可以收集数千个带标签的声音样本,则可以将它们提供给某种深度学习工具,然后将结果与 iOS MLKit 一起用于推理。

关于ios - Audio Kit iOS 检测短麦克风输入的音高/频率,例如水龙头,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50526640/

26 4 0
文章推荐: Android 如何在线性布局中将 AdView 居中对齐
文章推荐: javascript - 没想到服务器 HTML 在
中包含一个
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com