草庐IT

swift - AudioKit 4.2.3 碰撞麦克风频率分析 Swift 4.1

coder 2023-09-07 原文

我刚刚更新到最新的 AudioKit 版本 4.2.3 和 Swift 4.1 我在 audiokit.start() 遇到崩溃,我无法破译。如果您需要更多错误代码,请 lmk。

AURemoteIO::IOThread (21): EXC_BAD_ACCESS (code=1, address=0x100900000)

仅供引用,我还使用 AVAudioRecorder 将麦克风输入记录到文件中,稍后在 ViewController 中使用 AVKit AVAudioPlayer 播放它。但是,由于我在更新之前没有遇到此崩溃,我不认为这些因素是负责任的 - 但与跟踪器输入有关。

import UIKit
import Speech
import AudioKit

class RecordVoiceViewController: UIViewController {

    var tracker: AKFrequencyTracker!
    var silence: AKBooster!
    var mic: AKMicrophone!

    let noteFrequencies = [16.35, 17.32, 18.35, 19.45, 20.6, 21.83, 23.12, 24.5, 25.96, 27.5, 29.14, 30.87]
    let noteNamesWithSharps = ["C", "C♯","D","D♯","E","F","F♯","G","G♯","A","A♯","B"]
    let noteNamesWithFlats = ["C", "D♭","D","E♭","E","F","G♭","G","A♭","A","B♭","B"]

    override func viewWillAppear(_ animated: Bool) {
        super.viewWillAppear(animated)

        AKSettings.audioInputEnabled = true
        mic = AKMicrophone()
        tracker = AKFrequencyTracker.init(mic, hopSize: 200, peakCount: 2000)
        silence = AKBooster(tracker, gain: 0)
    }

    func startAudioKit(){
        AudioKit.output = self.silence
        do {
            try AudioKit.start()
        } catch {
            AKLog("Something went wrong.")
        }
    }
}

有趣的是,当我在没有 hopSize 和 peakCount 的情况下初始化跟踪器时,例如:

  tracker = AKFrequencyTracker.init(mic)

它不会崩溃,但也不会返回正确的频率。我非常感谢任何帮助。谢谢!!!

最佳答案

我遇到过完全相同的问题,但最终找到了临时解决方案。 您需要做的就是在 AKMicrophone AKFrequencyTracker 之间添加一个附加层,在我的例子中是AKHighPassFilter.

这是正常工作的代码:

let microphone = AKMicrophone()
let filter = AKHighPassFilter(microphone, cutoffFrequency: 200, resonance: 0)
let tracker = AKFrequencyTracker(filter)
let silence = AKBooster(tracker, gain: 0)

AKSettings.audioInputEnabled = true
AudioKit.output = silence
try! AudioKit.start()

希望这对您有所帮助,祝您好运!

关于swift - AudioKit 4.2.3 碰撞麦克风频率分析 Swift 4.1,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49845472/

有关swift - AudioKit 4.2.3 碰撞麦克风频率分析 Swift 4.1的更多相关文章

  1. ruby-on-rails - 从 Rails 2.3 升级到 Rails 4.0 - 2

    我们有一个目前在Rails2.3.12版和Ruby1.8.7版上运行的应用程序。我们想将我们的应用程序更新到Rails4.0和Ruby2.1.0。我们有大约200个模型和150个Controller。我想知道升级过程需要多大的努力。您还可以提供升级可以遵循的步骤。我们应该先升级Ruby然后再升级Rails还是相反? 最佳答案 您想要实现的目标将是史诗般的努力。我无法为您提供分步说明,因为不可能在一个答案中涵盖所有情况。我建议不要同时升级Ruby和Rails,而是分步升级。升级本身的复杂性是巨大的,但只要您的应用程序具有合理的测试覆盖

  2. ruby-on-rails - Nokogiri 要求 Ruby 版本 < 2.3 - 2

    我正在尝试让Rails在Windows10上运行。我正在使用Ruby2.3.0和Rails4.2.6,并且暂时使用Nokogiri1.6.3。当我尝试运行railsnewdemo时,它返回错误:Anerroroccurredwhileinstallingnokogiri(1.6.7.2),andBundlercannotcontinue.Makesurethat`geminstallnokogiri-v'1.6.7.2'`succeedsbeforebundling.当我运行geminstallnokogiri-v'1.6.7.2时,我得到:ERROR:Errorinstallingn

  3. ruby-on-rails - 模型范围正在破坏 rake db :migrate - rails 3. 2.3 postgres 9.1.3 - 2

    我在新的Rails应用程序(3.2.3)中运行迁移时遇到了问题。我们正在使用postrgres9.1.3和-pg(0.13.2)-当我运行rakedb:create,然后运行​​rakedb:migrate,我得到->1.9.3-p194(master)rakedb:migrate--trace**Invokedb:migrate(first_time)**Invokeenvironment(first_time)**Executeenvironmentrakeaborted!PG::Error:ERROR:relation"roles"doesnotexistLINE4:WHEREa

  4. ruby - 在保留所有 gem 的同时通过 rvm 升级到 Ruby 2.3 的最佳方法? - 2

    通过rvm升级到Ruby2.3的最佳方法是什么,同时保持所有gem安装在以前的版本上(例如json、nokogiri、等等)? 最佳答案 编辑这个问题在这里有答案:RVM:Howtousegemsfromadifferentruby?$rvmgemsetcopy$oldversion2.3.0##Assignorreplace$oldversionwitholdversionname原创在安装Ruby2.3之前,使用gemlist获取已安装的gem及其版本的列表。然后,在安装Ruby2.3之后,使用rvm将2.3设置为新的默认值:$

  5. ruby-on-rails - Ruby 2.3 safe navigation operator '&. and the ' 之间有什么区别试试!来自 ActiveSupport 的方法? - 2

    Ruby2.3的安全运算符&.和ActiveSupport的try!方法可以互换吗?如果不是,它们之间有什么区别? 最佳答案 一个关键的区别是try!是一个额外的方法调用,而&.不是。我能想到这造成的一个(公认的人为的)差异"1234"&.gsub(/\d/,"a")$&#=>"1234"这并不奇怪-我进行了正则表达式匹配,因此设置了正则表达式全局变量($&是匹配的字符串)。但是如果(在新的irbsession中——这很重要)我这样做"1234".try!(:gsub,/\d+/,"a")$&#=>nil然后正则表达式相关的全局变量

  6. ruby-on-rails - Ruby 1.9.1-p234、Passenger 2.2.5、Rails 2.3-stable 在 POST 请求时关闭流 - 2

    我已经在Ubuntu服务器上安装了Ruby1.9.1(p234)。我正在尝试在Apache2.2/Passenger2.2.5上部署一个供应商Rails2.3-stable的Rails应用程序。GET请求工作正常,POST请求立即中断并显示以下日志条目:ProcessingUsersController#new(for80.203.77.44at2009-10-2420:54:55)[GET]Parameters:{"controller"=>"users","action"=>"new"}Renderingtemplatewithinlayouts/applicationRender

  7. 解决台式机麦克风不可用问题,只有音频输出,无音频输入 - 2

    解决台式机麦克风不可用问题戴尔灵越3880最近因为需要开线上会议,发现戴尔台式机音频只有输出没有输入,也就是只能听见声音,无法输入声音。先后尝试了各种驱动安装更新之类的调试,无果。之后通过戴尔支持解决~这里多说一句,专业的就是专业,问题描述过去,直接给了解决方案,可能是他们遇到的相似问题比较多了,但也告诉我们,有些时候是可以通过这些官方服务解决问题的,比起自己折腾效率要高很多。那就记录一下吧~问题描述:电脑只能输出声音,不能输入声音。1、前提需要准备一只带麦克风的耳机,将耳机插入面板。2、先确定是否可以听到声音,可以通过播放歌曲或者视频。3、然后确认麦克风是否可用,可以通过调用win自带麦克风

  8. ruby-on-rails - 如何在 OS X 上使用 ruby​​ 2.3 为 mysql2 gem 解析 "incompatible library version"? - 2

    我使用的是ruby​​2.3,在gemfile中,我列出了mysql2gem。但是当我尝试运行rakedb:migrate时,我得到以下信息:/Users/me/.gem/ruby/2.3.0/gems/mysql2-0.4.2/lib/mysql2.rb:31:in`require':incompatiblelibraryversion-/Users/me/.gem/ruby/2.3.0/gems/mysql2-0.4.2/lib/mysql2/mysql2.bundle(fatal)我似乎无法绕过这个。我用Homebrew安装了Mysql5.7,尝试更新包,卸载并重新安装mysql

  9. arrays - 如何使用 Ruby 2.3 中引入的 Array#dig 和 Hash#dig? - 2

    Ruby2.3在Array和Hash上引入了一种新方法,称为dig。我在有关新版本的博客文章中看到的示例是做作和令人费解的:#Hash#diguser={user:{address:{street1:'123Mainstreet'}}}user.dig(:user,:address,:street1)#=>'123Mainstreet'#Array#digresults=[[[1,2,3]]]results.dig(0,0,0)#=>1我没有使用三层嵌套平面数组。什么是这将如何有用的现实示例?更新事实证明,这些方法解决了最常见的Ruby问题之一。下面的问题大约有20个重复项,所有这些问

  10. 【unity学习笔记-如何给动态的人物添加碰撞体】 - 2

    如何给动态的人物添加碰撞体前景提要解决方法步骤步骤1步骤2步骤3步骤4步骤5顺便奉上检测3d物体的方法前景提要如题,项目中想实现和人物进行简单的互动,比如点击他的手臂的时候他会播放手臂的动作,点击脚的时候播放预设的和脚有关的动画之前我的实现方式是十分暴力的在人物模型中对应的部位添加一个子物体,给子物体添加正方体/圆体这种规则的碰撞体,然后因为他是在骨骼下的,所以人物在动的时候这个碰撞体也会跟着一起动,比绑在静态的mesh上灵活很多,不至于点击不相关的部位的时候也被静态的mesh检测到然后播放不相符的动画但是这么有很大的局限性,第一就是不精准,因为是规则的碰撞体,所以检测的范围就大了很多,第二就

随机推荐