7

我正在构建一个语音识别 android 应用程序,它将充当虚拟个人助理,执行以下任务:

预约/提醒

天气信息

对 Wolfram|Alpha / Wikipedia 的一般查询 - (即谁导演了捉鬼敢死队,英镑 - 美元汇率是多少)

我的问题是使用 Pocketsphinx 还是 Google API?

最初我使用“android.speech.RecognitionListener”进行设置,效果很好,但是我想实现关键字识别,这样用户除了说话之外不需要任何交互。

显然 Google API 不支持这一点,所以我研究了为此使用 pocketsphinx,并且仍然在应用程序的其余部分使用谷歌(因为我听说 pocketsphinx 不那么准确?)但是两者并没有像他们那样相处不要同时占用麦克风。

有没有在识别器之间切换的好方法?(甚至不能将两者都导入同一个项目)

我应该只使用pocketshinx并处理较低的准确性吗?

建议会有所帮助

干杯

4

2 回答 2

1

对于任何想要实施类似项目的人,我已经找到了解决方法。它有点hacky,并不完全干净,但它可以工作。

使用 android 语音识别器和网络上的许多示例中的切换开关,当 onResults 返回时,将检查字符串是否存在所述“热词”,如果不存在,则丢弃该字符串,如果是,处理它。处理完查询并且文本到语音的响应后,以编程方式重新单击切换按钮,确保持续收听。

在“onError”上也做同样的事情。我也确实有它 onPartialResults ,但它似乎使线程崩溃,不完全确定为什么,但一旦它被删除,一切似乎都很好。

于 2014-11-24T09:27:48.773 回答
0

由于准确性非常差,您只能使用 pocketsphinx 识别预定义的命令集(您应该准备自己的字典和语言模型)。pocketsphinx 也可以离线使用,这对某些项目来说是一个很大的缺点。

另一方面,谷歌非常准确,但它不是免费的,只能在线工作。

于 2019-02-26T08:11:18.643 回答