android - Android TTS 为离线语音返回“超出配额”
问题描述
我在我的应用程序中使用 Google TextToSpeech 很长时间了,我的许多用户都在使用离线语音,所以我对使用的资源数量没有任何问题。但是在收到 GoogleTTS 的最新更新后,我的所有用户都收到以下错误
03-13 14:42:29.298 29525-29571/? E/TTS.NetworkSynthesizer: ExecutionException during NetworkFetchTask
java.util.concurrent.ExecutionException: clx: RESOURCE_EXHAUSTED: Quota exceeded for quota metric 's3-sessions' and limit 's3-session-limit' of service 'speechs3proto2-pa.googleapis.com' for consumer 'project_number:...'.
google 是否一直在为离线 tts 添加新的限制,或者是某些更改使我的应用程序使用了 google tts 的在线版本?无论如何,如果有人能指导我解决这个问题,我将不胜感激。
解决方案
好吧,我想出了问题所在,它与安卓的最新更新无关,但主要与美国对伊朗制裁的最新更新有关。如果您尝试使用来自伊朗的 Google TTS,您应该知道您无法再从伊朗 IP 地址下载语音。
以下方法可以解决问题:
- 指导用户安装工作代理(困难但更安全)
- 使用像 shecan.ir 这样的政府解决方案来绕过制裁(更容易但不那么安全)
推荐阅读
- sas - SAS - 从单独的服务器访问 SAS 数据集
- substrate - 如何将数据存储在一个块中?
- python - Python3:为什么 3 个进程完成的速度不比 1 个快?
- php - PHP DomDocument - 调用 loadHTML() 时添加了新行符号
- c# - 协变表达式
> - c# - 操作现有的 CSV 文件,同时保持列的顺序。(CsvReader/CsvWriter)
- javascript - 如何将“2019 年 11 月 26 日星期二 16:00:00 GMT-0800”转换为 .net json 日期格式“\/Date(1574812800000)\/”格式?
- c - 如何递归地打印结构数组?
- sql - 当字符串以sql中的数字结尾时,删除单词之间的空格
- postgresql - 如何使 Buffalo 事务中间件提交?