是否有用于侦听音频命令的 Kotlin 或 Java 库?(想在孩子们大喊"不给糖就捣蛋"时触发万圣节显示)



目标:

  1. 在低端设备上(树莓派3(
  2. 收听一组固定的音频短语命令(我的"嘿谷歌"或"嘿Siri"版本(
  3. 这可能是一个非常有限的词汇表(少于10个命令(
  4. 当检测到命令时,触发Kotlin函数
  5. 不需要使用大量的CPU或大量的网络带宽

AFAIK现代边缘设备(Echo、智能手机、谷歌主页等(具有非常奇特的硬件+软件解决方案,使它们能够连续收听关键词,而无需占用大量CPU,也无需将所有音频发送到云服务器。我也想有同样的,但不确定这是否可能——我相信他们训练了最小而高效的"嘿Siri"ML模型,以处理各种口音、音量、节奏、年龄、背景噪音等。

  • Java Speech API(JSAPI(似乎。。。不确定。许多例子都是旧的,要么指向不受支持的libs,要么最终使用了GoogleCloudSpeech
  • 这不需要成为Java/Kotlin库,我还可以包装一个本机命令侦听器进程
  • 我正在研究ML Kit和Firebase ML,但没有看到音频到命令的转换
  • 如果我能调整灵敏度,那就太好了,戴着戏服面具的小孩会大喊"TWIC R TREET"或"TMURMP…"。。。TWEEF或其他什么东西仍然应该这样做
  • 。。。但不是一个纯粹的音量检测器,一辆汽车驶过不应该触发它

有什么建议吗?或者这要求rpi是不合理的吗?

您可以使用像CMU Sphinx这样的库,它可以离线工作,而不需要其他在线服务器。有时识别出的结果相当不准确。为了解决这个问题,我使用了一个比默认提供的字典小得多的字典。我从来没有在树莓派上完全测试过,但我认为它应该有效。

是的,我推荐一个非常有用的库:https://cmusphinx.github.io/

最新更新