我正在尝试将IBM Watson Speech- to -Text设置为在我的Angular前端运行。我使用的是德国阿塔纳西奥的speech-javascript-sdk库。我希望文本文本转到控制台,所以我使用microphone-streaming-object-to-console.html示例。下面是我的代码:
const options = {
token: $scope.token,
model: 'en-US_BroadbandModel',
word_confidence: true,
object_mode: true
};
var stream = WatsonSpeech.SpeechToText.recognizeMicrophone(options);我得到的错误是
watson-speech.js:10482 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我的猜测是我的令牌格式不正确。IAM承载令牌以JSON对象的形式提供:
{
access_token: "eyJraWQiOiIyMDIwMDIyNTE4MjgiLCJhbGciOiJSUzI1NiJ9.e…",
expiration: 1585264266,
expires_in: 3600,
refresh_token: "OKA5toCaoVmYsPbwpjARE1971xspAe7Xg5nOm9pRrLKjKgaubr…",
scope: "ibm openid",
}我尝试提供裸露的access_token,并尝试提供JSON对象。两者都导致了相同的错误消息。哪种格式是正确的?
我是否正确设置了options对象?是object_mode还是objectMode
我不明白示例代码中的Object.assign(token,是什么意思。
发布于 2020-07-16 06:53:37
我也遇到了同样的问题,我发现解决方案非常有效:
在“options”常量中,您需要将字段“token”更改为“accessToken”,它应该是有效的。
注意:
“选项”中的“model”字段有一个默认值,但如果您想要更改它,则必须将值设置为“model”和“laguage”。
const params = {
accessToken: 'token'
format: true,
extractResults: true,
objectMode: true,
model:'es-MX_BroadbandModel',
laguage: 'es-MX'
};https://stackoverflow.com/questions/60877391
复制相似问题