简体   繁体   English

在iOS上使用OpenEars会由于背景噪音而导致识别不佳

[英]Poor recognition due to background noise using OpenEars on iOS

I'm using OpenEars in my app for performing the recognition of some words and sentences. 我在应用程序中使用OpenEars执行某些单词和句子的识别。 I have followed the basic tutorial for the offline speech recognition and executed a porting in Swift. 我遵循了离线语音识别的基本教程,并在Swift中进行了移植。 This is the setup procedure 这是设置步骤

self.openEarsEventsObserver = OEEventsObserver()
self.openEarsEventsObserver.delegate = self
let lmGenerator: OELanguageModelGenerator = OELanguageModelGenerator()
addWords()
let name = "LanguageModelFileStarSaver"
lmGenerator.generateLanguageModelFromArray(words, withFilesNamed: name, forAcousticModelAtPath: OEAcousticModel.pathToModel("AcousticModelEnglish"))
lmPath = lmGenerator.pathToSuccessfullyGeneratedLanguageModelWithRequestedName(name)
dicPath = lmGenerator.pathToSuccessfullyGeneratedDictionaryWithRequestedName(name)

The recognition works well in a quiet room for both single words and whole sentences ( I would say it has a 90% hit rate). 在单个单词和整个句子的安静房间中,识别效果都很好(我想说它的命中率是90%)。 However, when I tried in quiet pub with a light background noise the app had serious difficulties in recognising even just word. 但是,当我在安静的酒吧中尝试使用浅背景噪音时,该应用甚至在识别单词时都遇到了严重困难。 Is there any way to improve the speech recognition when there is background noise? 有背景噪音时,有什么方法可以改善语音识别能力?

如果背景噪声或多或少是均匀的(即具有规则的模式),则可以尝试修改声学模型 ,否则这是一个开放性问题,有时称为鸡尾酒会效果可以使用DNN 来部分解决

Try this setting, works well for me. 尝试此设置,对我来说效果很好。

try? OEPocketsphinxController.sharedInstance().setActive(true)
OEPocketsphinxController.sharedInstance().secondsOfSilenceToDetect = 2
OEPocketsphinxController.sharedInstance().setSecondsOfSilence()
OEPocketsphinxController.sharedInstance().vadThreshold = 3.5
OEPocketsphinxController.sharedInstance().removingNoise = true

Or You can try iSphinx library. 或者,您可以尝试使用iSphinx库。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM