【发布时间】:2019-11-30 14:57:11
【问题描述】:
根据 Apple 文档,SFSpeechRecognizer 可以发送的请求数量是有限制的。
准备好处理由语音识别限制引起的故障。由于语音识别是一项基于网络的服务,因此会强制执行限制,以便该服务可以免费提供给所有应用程序。单个设备每天可以执行的识别数量可能会受到限制,并且每个应用程序可能会根据每天发出的请求数量在全球范围内受到限制。如果识别请求很快失败(在启动后的一两秒内),请检查识别服务是否不可用。如果是,您可能需要让用户稍后再试。 https://developer.apple.com/documentation/speech/sfspeechrecognizer
另一份文件说,一台设备每小时可以发送 1000 个请求。
当前速率限制 SFSpeechRecognitionRequest 的数量 设备可以发出的呼叫是每小时 1000 个请求。请注意这一点 限制是设备可以发出的请求数量,而不是 与制作它的应用程序相关联。这与长度无关 与请求关联的音频。对于给定的 SFSpeechRecognitionRequest,您最多可以听到一分钟的音频 每个请求。
现在我正在创建一个SFSpeechRecognizer,如下所示,并检查指示语音识别器是否可以在没有网络访问的情况下运行的supportsOnDeviceRecognition 属性。它在我安装了 iOS 13.2.3 的设备上返回 true。
let speechRecognizer = SFSpeechRecognizer(locale: Locale(identifier: "en-US"))!
print(speechRecognizer.supportsOnDeviceRecognition) //true
我尝试离线运行我的应用程序,它在没有互联网连接的情况下运行良好。但是如果supportsOnDeviceRecognition 为真,则没有任何信息是否仍然存在请求限制。在这种情况下,即使设备连接到互联网,SFSpeechRecognizer 也可能不会连接到 Apple 服务器,因为这是不必要的。只有supportsOnDeviceRecognition为真时才限速吗?
【问题讨论】:
标签: ios ios13 sirikit sfspeechrecognizer