我目前正在使用NodeJS客户端库使用名为API语音转文本的GCP服务。
为此,我遵循了快速入门文档,尝试首先识别一个简短的本地音频文件(非常简单)。但是,当我运行node test_sample.js
时,总是出现此错误:
ERROR: { Error: Quota exceeded for quota metric 'speech.googleapis.com/default_requests' and limit 'DefaultRequestsPerMinutePerProject' of service 'speech.googleapis.com' for consumer 'project_number:764086051850'.
at Http2CallStream.call.on (/Users/macOSuser/Projects/nodejs-speech/samples/node_modules/@grpc/grpc-js/build/src/client.js:102:45)
at Http2CallStream.emit (events.js:198:15)
at Http2CallStream.endCall (/Users/macOSuser/Projects/nodejs-speech/samples/node_modules/@grpc/grpc-js/build/src/call-stream.js:74:18)
at /Users/macOSuser/Projects/nodejs-speech/samples/node_modules/@grpc/grpc-js/build/src/call-stream.js:163:18
at processTicksAndRejections (internal/process/task_queues.js:86:5)
注意:提到的project_number与我的不是相同
我已经尝试更改默认的gcloud项目/帐户,以及创建一个全新的项目并再次激活API。 我还在GCP控制台上检查了我的请求图,结果是空的
快速入门的示例代码可以找到here
谢谢您的帮助
编辑已解决:这是一个身份验证问题,我使用服务帐户的JSON密钥并通过运行export GOOGLE_APPLICATION_CREDENTIALS="/PATH-TO-FILE/key.json"
进行引用来解决。
谢谢@JJ Geewax
答案 0 :(得分:1)
您注意到项目编号与看到错误结果的编号不同,因此这似乎是更大的问题... Google Cloud客户端库从以下位置获取项目信息和凭据:几个不同的位置(每个位置都有不同的优先级),因此您可能会意外地从应用程序默认值中获取凭据和身份(可能是gcloud
命令行工具)。您可以使用正在运行的代码更新该问题来获取此错误吗?
有几种方法可以解决这样的问题,但是最简单的方法可能只是在命令行(documentation)中运行gcloud application-default login
。
遵循身份验证流程后,您应该获得预期项目的凭据。
您可能还想看看Node.js中GCP的Getting Started with Authentication指南,该指南讨论如何创建服务帐户并使用环境变量设置这些凭据。