4

根据 Apple 文件,SFSpeechRecognizer可以发送的请求数量是有限制的。

准备好处理由语音识别限制引起的故障。由于语音识别是一项基于网络的服务,因此会强制执行限制,以便该服务可以免费提供给所有应用程序。单个设备每天可以执行的识别数量可能会受到限制,并且每个应用程序可能会根据每天发出的请求数量在全球范围内受到限制。如果识别请求很快失败(在启动后的一两秒内),请检查识别服务是否变得不可用。如果是,您可能需要让用户稍后再试。 https://developer.apple.com/documentation/speech/sfspeechrecognizer

另一份文件说,一台设备每小时可以发送 1000 个请求。

设备可以发出的 SFSpeechRecognitionRequest 调用次数的当前速率限制为每小时 1000 个请求。请注意,此限制是设备可以发出的请求数,与发出请求的应用程序无关。这与与请求相关的音频长度无关。对于给定的 SFSpeechRecognitionRequest,每个请求最多允许您播放一分钟的音频。

现在我正在创建一个SFSpeechRecognizer如下所示的并检查supportsOnDeviceRecognition指示语音识别器是否可以在没有网络访问的情况下运行的属性。它会true在我安装了 iOS 13.2.3 的设备上返回。

let speechRecognizer = SFSpeechRecognizer(locale: Locale(identifier: "en-US"))!
print(speechRecognizer.supportsOnDeviceRecognition) //true

我试图离线运行我的应用程序,它在没有互联网连接的情况下运行良好。但是,如果为真,则没有信息是否仍然存在请求限制supportsOnDeviceRecognition。在这种情况下,SFSpeechRecognizer即使设备已连接到互联网,也可能不会连接到 Apple 服务器,因为这是不必要的。supportsOnDeviceRecognition只有在为真时才限制速率?

4

1 回答 1

6

根据 WWDC2019 上的演示文稿,On-device 没有限制。

https://developer.apple.com/videos/play/wwdc2019/256/

WWDC2019

于 2020-02-15T13:52:27.683 回答