【发布时间】:2017-06-01 07:31:20
【问题描述】:
我在我的应用程序中使用 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过滤单词。
-
我没有使用任何插件。会检查的,谢谢。
-
试试这个github.com/icaksama/iSphinx。希望能帮到你。
标签: ios swift speech-recognition pocketsphinx openears