我按照这个页面:
https://cloud.google.com/text-to-speech/docs/quickstart-protocol
我生成了一个访问令牌:
gcloud auth application-default print-access-token
进入这个:
curl -H "Authorization: Bearer "$(my_token_is_in_here) \
-H "Content-Type: application/json; charset=utf-8" \
--data "{
'input':{
'text':'Android is a mobile operating system developed by Google,
based on the Linux kernel and designed primarily for
touchscreen mobile devices such as smartphones and tablets.'
},
'voice':{
'languageCode':'en-gb',
'name':'en-GB-Standard-A',
'ssmlGender':'FEMALE'
},
'audioConfig':{
'audioEncoding':'MP3'
}
}" "https://texttospeech.googleapis.com/v1/text:synthesize" > synthesize-text.txt
我懂了:
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 605 0 297 100 308 297 308 0:00:01 --:--:-- 0:00:01 3517
但是我打开了synthesize-text.txt并找到了
{
"error": {
"code": 401,
"message": "Request had invalid authentication credentials. Expected OAuth 2 access token, login cookie or other valid authentication credential. See https://developers.google.com/identity/sign-in/web/devconsole-project.",
"status": "UNAUTHENTICATED"
}
}
很明显,gcloud给了我一个令牌,为什么没有文字到语音识别它?
[解决了]
1)我去了'汉堡包'下载的API和服务
2)我在左栏中找到了“凭证”子菜单
3)我做了'创建凭据'并选择了API密钥然后在我的请求中我制定了
卷曲-H“X-Goog-Api-Key:我新创建的API-key”-H“Content-Type:application / json; charset = utf-8”--data“{'input':{' text':'Android是由Google开发的基于Linux内核的移动操作系统,主要用于智能手机和平板电脑等触摸屏移动设备。'},'voice':{'languageCode':'en-gb', 'name':'en-GB-Standard-A','ssmlGender':'FEMALE'},'audioConfig':{'audioEncoding':'MP3'}}“”https://texttospeech.googleapis.com/v1beta1/text:synthesize“> synthesize-text.txt
现在它有效。
因此,似乎使用服务帐户密钥的“授权承载”不起作用。我使用的是Windows 10。
就像弗雷德里克在评论中所说的那样,谷歌的文档中有一个错误,它应该是:-H "Authorization: Bearer $(my_token_is_in_here)"
(“最后,而不是在Bearer
之后)