Speech recognition 如何在PocketSphinx Android启动时改进语音识别?

Speech recognition 如何在PocketSphinx Android启动时改进语音识别?,speech-recognition,pocketsphinx-android,Speech Recognition,Pocketsphinx Android,我在Android上使用PocketSphinx。识别器初始化后,我启动一个关键字侦听器。首先,识别器将不匹配任何内容。但是,几秒钟后,识别器开始匹配性能优异的关键词(初始测试中约为3%)。开始匹配所需的时间取决于单词/短语。这似乎还取决于你说这个词的次数。例如,“plus”匹配非常快,通常在第一次或第二次说话时匹配,平均需要2秒钟。另一方面,“请帮个小忙”大约需要10秒钟,或者说大约8-10句话。匹配任何关键字后,Sphinx将为所有关键字进入其高性能模式。因此,一种解决方法(虽然不是很好)是

我在Android上使用PocketSphinx。识别器初始化后,我启动一个关键字侦听器。首先,识别器将不匹配任何内容。但是,几秒钟后,识别器开始匹配性能优异的关键词(初始测试中约为3%)。开始匹配所需的时间取决于单词/短语。这似乎还取决于你说这个词的次数。例如,“plus”匹配非常快,通常在第一次或第二次说话时匹配,平均需要2秒钟。另一方面,“请帮个小忙”大约需要10秒钟,或者说大约8-10句话。匹配任何关键字后,Sphinx将为所有关键字进入其高性能模式。因此,一种解决方法(虽然不是很好)是在初始化完成后立即说“plus”。在没有匹配发生期间,Sphinx会调用OnBeginingOfspeech()和onEndOfSpeech(),对应于关键短语或关键字的语句

关键字文件:

cancel last
a little help please
add new cut/1e-35/
set material
set quantity
plus/5e-2/
minus/5e-2/

我正在使用pocketsphinx-android-5prealpha-nolib.jar,并且(如果有区别的话)在三星Galaxy-S3和摩托罗拉Moto E(第二代)上进行了测试。无论我是否使用耳机,问题都是一样的。

使用PocketSphinx演示版附带的标准型号,
en-us ptm
。它是一个轻量级*模型,在
feat.params
文件中设置了默认的CMN值。由于设置了CMN值,Sphinx无需在启动时花费时间进行设置,这意味着在启动时获得质量识别结果不会延迟。与我测试过的其他模型相比,默认模型的整体识别结果与我的命令和控制语法非常相似


*小于7MB,而像Voxforge这样的一些设备的容量是这一问题的两倍以上

这是CMN问题,您需要设置初始CMN值以匹配您的设备。此处详细描述:。如果在取消对setRawLogDir的注释时提供在设备上收集的原始数据文件,并提供logcat输出,这将非常有用。您可以在model/feat.params.See中编辑默认的CMN,我想,由于您在此处包含此链接,链接中的信息是主题的最新信息,并且没有PocketSphinx更新来解决此问题?从日志中可以看出,您使用的是某种奇怪的声学模型,而不是默认模型。你最好在feat.params中正确设置cmninit值。我用一个经过调整的声学模型替换了voxforge模型作为默认模型,问题就解决了。谢谢你的帮助。