想试用 google cloud 的 tts 服务, 跟着文档先把前期设置搞完了, credential 获取了, 安装了 python API (pip install google-cloud-texttospeech
), 直接借用文档的 python 例子(python example.py
)想试试效果, 结果死也出不来结果…
- 想起 iTerm2 不能像 Dropbox 一样可以设置代理, 所以即使用上全局 ss, 也并无卵用.
$ curl ip.cn
当前 IP:113.87.xxx.xx 来自:广东省深圳市 电信
好吧, 自己之前偷懒并没有特意去找如何让 terminal 上也科学上网. 搜了一下怎么在终端上 proxy, 找了一篇使用 proxychains-ng 配置, 然而因为 OSX 的系统升级, 启用了 SIP (System Integrity Protection), 于是这个 proxychains 的设置只有一部分情况适用, 除非直接把 SIP 禁用 (Run
csrutil disable
in Recovery mode), 具体见这里. 赶脚略麻烦, 先放弃之~更简洁的方式直接设置环境变量, 见此处
$ export all_proxy=socks5://127.0.0.1:1087
当然是打开 shadowsocks 的情况下, 再试试
$ curl ip.cn
当前 IP:103.192.xxx.xx 来自:香港特别行政区 xTom
well, 这里终端情况下终于走了代理, 现在估计 brew update
之类的就会比较顺畅了
But, 发现直接跑 python 脚本的话(
python example.py
), 仍然有问题…_(:з」∠)_
换了下搜索关键字 ->google cloud python api via proxy
, 还真的有人讲过, 这位好心人还分别对 python 和 java 两种情况研究了下. 简单来说, 就是 google cloud 的 API 有两种传输方式, HTTP and gRPC, 看具体 product 不同.- HTTP: 使用 HTTP 的 API 的话(authentication 部分就是 HTTP), 设置
https_proxy
- GRPC: 使用 gRPC 的 API 的话(我想用的 text-to-speech 是用的这个), 需要同时设置
http_proxy
和https_proxy
- HTTP: 使用 HTTP 的 API 的话(authentication 部分就是 HTTP), 设置
话说我怎么知道 tts 服务是走的 gRPC 的呢, 是因为出错的 backtrace 里有
.../google/api_core/grpc_helpers.py
继续前面的设置环境变量, 捣鼓半天还是不行, 明明
curl ip.cn
的结果是香港. 最后试了一下把设置的值改了下
# 之前都写成了 socks5://127.0.0.1:1087
export http_proxy=http://127.0.0.1:1087
export https_proxy=http://127.0.0.1:1087
这下终于👌🏻了, python example.py
终于把 output.mp3
吐了出来✨
虽然把能用的方法试出来了, 并不知具体区别在哪里…求赐教😅