我正在学习使用Watson Speech JS SDK。我特别喜欢从 Microphone 转录,带有 Alternatives。我正在使用 Firebase Cloud Function 生成我的令牌。我使用的是 AngularJS,而不是 JQuery。我遇到的第一个问题是
var stream = WatsonSpeech.SpeechToText.recognizeMicrophone(Object.assign(token, {
objectMode: true,
format: false,
wordConfidence: true
}));
我收到此错误消息:
WatsonSpeechToText: missing required parameter: opts.token
(使用$scope.token
或token
没有区别。)
在文档中查找此错误:
module.exports = function recognizeMicrophone(options) {
if (!options || !options.token) {
throw new Error('WatsonSpeechToText: missing required parameter: opts.token');
}
好的,它正在寻找一个options
对象。我用这段代码修复了错误:
const options = {
token: $scope.token,
objectMode: true,
format: false,
wordConfidence: true
};
console.log(options);
var stream = WatsonSpeech.SpeechToText.recognizeMicrophone(options);
现在我得到这个错误:
WebSocket connection to 'wss://stream.watsonplatform.net/speech-to-text/api/v1/recognize?model=en-US_BroadbandModel&watson-token=[object%20Object]' failed: HTTP Authentication failed; no valid credentials available
该options
对象记录以下内容:
token:
access_token: "eyJraWQiOiIyMDIwMDIyNTE4MjgiLCJhbGciOiJSUzI1NiJ9.eyJpYW1faWQiOiJp0tU2..."
expiration: 1585332575
expires_in: 3600
refresh_token: "OKC8z8ebLMzZcrAt6YgInnJJn0UIx1P3NTeDvdEC3kJqIQ7Yn9J9iu6-DF..."
scope: "ibm openid"
token_type: "Bearer"
objectMode: true
format: false
wordConfidence: true
smart_formatting: false
令牌是一个 JSON 对象,其中包括access_token
. 这是SDK想要的吗?RecognizeStream 文档没有说明它是否需要 JSON 令牌或只是裸access_token
.
添加000
到该expiration
字段表明我还剩 53 分钟使用此令牌。
我正在使用特定于我的 Speech-to-Text 服务的 API 密钥。
还有其他建议吗?