Ios OpenEars语音识别将其他单词检测为正确单词

Ios OpenEars语音识别将其他单词检测为正确单词,ios,swift,speech-recognition,pocketsphinx,openears,Ios,Swift,Speech Recognition,Pocketsphinx,Openears,我在我的应用程序中使用OpenEars框架来检测语音识别。 这个想法是听几句话,然后根据所说的话执行一些动作。嗯,识别是有效的,可以检测到单词,但问题是,对于单词“SNAPPIE”,我遇到了一些问题-其他听起来不太像的单词也会被识别为“SNAPPIE”,有时即使我咳嗽。下面是我用来设置侦听器的一段代码: private func setupOpenEars() { _openEarsEventsObserver = OEEventsObserver() _openEarsEve

我在我的应用程序中使用OpenEars框架来检测语音识别。 这个想法是听几句话,然后根据所说的话执行一些动作。嗯,识别是有效的,可以检测到单词,但问题是,对于单词“SNAPPIE”,我遇到了一些问题-其他听起来不太像的单词也会被识别为“SNAPPIE”,有时即使我咳嗽。下面是我用来设置侦听器的一段代码:

private func setupOpenEars() {

    _openEarsEventsObserver = OEEventsObserver()
    _openEarsEventsObserver.delegate = self

    OEPocketsphinxController.sharedInstance().disablePreferredBufferSize = true

    do {
      try OEPocketsphinxController.sharedInstance().setActive(true)
    } catch let error {
      print("There was an error setting Pocketsphinx as active: \(error.localizedDescription)")
    }

    let grammarDictionary = ["ThisCanBeSaidOnce": [ "SNAPPIE", "TAKE SNAPSHOT" ]]
    let languageModelGenerator = OELanguageModelGenerator()
    let fileName = "FirstOpenEarsDynamicLanguageModel"
    let error = languageModelGenerator.generateGrammar(from: grammarDictionary, withFilesNamed: fileName, forAcousticModelAtPath: OEAcousticModel.path(toModel: "AcousticModelEnglish"))

    if let languageError = error {
      print("Dynamic language generator reported error: \(languageError.localizedDescription)")
    } else {
      _pathToGeneratedLanguageModel = languageModelGenerator.pathToSuccessfullyGeneratedLanguageModel(withRequestedName: fileName)
      _pathToGeneratedDictionary = languageModelGenerator.pathToSuccessfullyGeneratedDictionary(withRequestedName: fileName)
    }

    _correctPathToMyLanguageModelFile = "\(NSSearchPathForDirectoriesInDomains(FileManager.SearchPathDirectory.cachesDirectory, FileManager.SearchPathDomainMask.userDomainMask, true)[0])/\(fileName).gram"
    OEPocketsphinxController.sharedInstance().vadThreshold = 3.5
  }

是否可能是因为“SNAPPIE”实际上不是一个“有效”单词而造成问题?

您可以使用任何在线随机单词生成器工具创建一个随机单词列表,然后将您想要识别的特定关键字附加到词汇表中。这将提高对特定关键字的识别。你仍然需要将假设文本与你的关键词列表进行比较,但是大多数情况下,解决方案已经足够好了

你在使用Rejecto插件吗?它应该只使用rejecto过滤单词。我没有使用任何插件。我会查出来的,谢谢。试试这个。我希望能帮助你。