随时收听关键字,例如4.4 上的“Ok google”

我检查了新的Kitkat库,以确保我没有遗漏任何东西。 我希望我的应用程序在执行操作之前始终听取关键字,就像Google Now总是在主屏幕上监听关键字“Ok google”一样。

谷歌是如何做到这一点的?

您需要的是关键字定位 。 除了在线语音API,Android还有离线识别器,它有点复杂。 官方文档中没有提到它,但您可以在此处查看源代码。 我不确定你会在那里find关键字定位,但至少你可以访问低级识别器接口。

UPD:关键字定位和语音活动检测现在在pocketsphinx和pocketsphinx-android中实现 。 请参阅官方演示 ,了解它们的实际应用。

服务可以在后台运行! 他们可能通过设置广播接收器来接收启动完成的广播并调用设置为侦听该短语的服务来调用它。