是否有用于收听音频命令的 Kotlin 或 Java 库? (想在孩子们大喊大叫时触发万圣节表演'TRICK OR TREAT')

Is there a Kotlin or Java lib for listening for audio commands? (Want to trigger a Halloween display when kids yell 'TRICK OR TREAT')

目标:

  1. 在 low-end 设备上(raspberry pi 3)
  2. 收听一组固定的音频短语命令(我的 'Hey Google' 或 'Hey Siri' 版本)
  3. 这可能是一个非常有限的词汇(少于 10 个命令)
  4. 检测到命令时触发 Kotlin 函数。
  5. 无需使用大量 CPU 或大量网络带宽。

AFAIK 现代边缘设备(Echo、智能手机、Google 家庭等)拥有非常精美的硬件+软件解决方案,使它们能够持续侦听关键字而不会吸收大量 CPU ,并且无需将所有音频发送到云服务器。我想要相同的,但不确定是否可能 - 我确定他们训练了他们的最小和高效 'Hey Siri' ML 模型来处理各种口音、音量、节奏、年龄、背景噪音等

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

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

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