繁体   English   中英

IBM Watson Speech-to-Text Speech-javascript-sdk“HTTP 身份验证失败;没有可用的有效凭据”

[英]IBM Watson Speech-to-Text speech-javascript-sdk "HTTP Authentication failed; no valid credentials available"

我正在尝试设置 IBM Watson Speech-to-Text 以在我的 Angular 前端运行。 我正在使用德语 Attanasio 的 Speech-javascript-sdk库。 我希望转录文本进入控制台,因此我使用了麦克风流对象到控制台.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,在示例代码中是什么意思。

我遇到了同样的问题,我发现解决方案工作得很好:

在“选项”常量中,您需要通过“ accessToken ”更改字段“令牌”,它应该可以工作。

笔记:

'options' 中的字段 'model' 有一个默认值,但如果你想改变它,你必须将值设置为 'model' 和 'laguage',

const params = {
        accessToken: 'token'
        format: true,           
        extractResults: true,
        objectMode: true,
        model:'es-MX_BroadbandModel',
        laguage: 'es-MX'
      };

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM