如何触发 iOS 应用开始离线识别语音命令?

Posted

技术标签:

【中文标题】如何触发 iOS 应用开始离线识别语音命令?【英文标题】:How to trigger iOS app to start recognizing the voice command offline? 【发布时间】:2019-08-14 06:36:41 【问题描述】:

ios 应用程序连接到 Intranet 并控制其他硬件。该硬件用于患者的手术。与大多数手术一样,很难通过手指使用 iOS 应用程序,而语音命令看起来是更好的选择。

我已经完成了语音识别器框架,并且可以在没有互联网的情况下检测到单词。

但是,这些服务不能长时间运行。 SpeechRecognizer 框架只允许运行一分钟,因为手术可能会持续一个多小时。 我想创建一种机制,我们可以在其中触发应用程序开始识别语音命令。 (类似于 android 中的 ok google),以便应用程序获得触发器来捕获语音命令。

寻找建议的读数或解决方案。

【问题讨论】:

“Hey Siri”的工作方式与“Ok Google”相同,都只是触发语音助手。为了能够执行自定义任务,您可以创建一个 Siri 扩展,或者可以使用 Siri 快捷方式,但这可能会受到更多限制。您不能直接从语音触发您的应用程序。你需要使用 Siri,因为那是“一直在听” 好的 google 也可以离线运行,但是我无法离线运行 Hey Siri。 是的,这是真的,我不认为 Siri 可以离线工作,但是没有其他选项可以在后台聆听用户以及您的应用程序对其做出反应。 (据我所知)。这将使开发人员能够绕过 Apple 不允许您这样做的 Siri,想象一下 MS 或 Google 在 Apple 设备上安装他们的语音助手。它将直接与苹果自己的竞争。 你错过了我所说的。据我所知你不能那样做。据我所知,没有使用麦克风的背景模式。你需要使用 Siri Siri 离线支持 iOS 13 非常适合它。 【参考方案1】:

“Hey Siri”的工作方式与“Ok Google”相同,都只是触发语音助手。为了能够执行自定义任务,您可以创建一个 Siri 扩展,或者可以使用 Siri 快捷方式,但这可能会受到更多限制。您不能直接从语音触发您的应用程序。您需要使用 Siri,因为它“一直在听”。

有一些较旧的答案建议您是否开始在前台录制,然后切换后台并请求延长时间以完成录制,但即使那样我认为它只会给您很短的时间。在最近的版本中,我认为这已被进一步限制(可能出于隐私原因)

iOS Background audio recording

所以要回答您的问题,我认为您需要创建一个可以在您的应用中触发这些操作的 Siri 扩展。

【讨论】:

iOS 13 自带 Siri 离线功能,非常适合。【参考方案2】:

我想创建一种机制,让我们可以触发应用开始识别语音命令。

最简单的解决方案是使用 语音控制功能 (iOS 13 中的新功能),该功能原生适用于所有 iOS 13 设备,并且可以:(以及许多其他东西)

关闭(go to sleep)并打开(wake up)一旦激活(辅助功能 - 语音控制按钮打开) . 当图标出现在屏幕上时打开特定应用(open yourapp)。 习惯于通过触摸执行所有可能的操作。

在您的设备设置Accessibility - Voice Control 中激活此功能,如下所示:

查看Customize Commands 菜单,深入了解也可以自定义的语音命令。

这项令人惊叹的 iOS 13 新功能使行动不便的人能够自主地浏览他们的 Apple 移动设备和计算机:这绝对是您想要的……即使目标不是这类人。 ;o)

您可以通过语音控制设备的所有功能,就像通过触摸一样。

如果您需要为某些项目显示特定名称,那么作为开发人员唯一要做的就是最终调整 accessibilityUserInputLabels 属性。

【讨论】:

以上是关于如何触发 iOS 应用开始离线识别语音命令?的主要内容,如果未能解决你的问题,请参考以下文章

离线语音识别android采取不需要的声音

在 iOS 中使用语音识别后,文本输入会触发啥事件?

android如何自定义语音识别

语音识别引擎打破命令

Xamarin效果第二十三篇之离线语音识别

我的 Android 应用程序中的离线语音识别