【问题标题】:IBM Watson Speech-to-Text speech-javascript-sdk "HTTP Authentication failed; no valid credentials available"IBM Watson Speech-to-Text speech-javascript-sdk“HTTP 身份验证失败;没有可用的有效凭证”
【发布时间】:2020-07-16 06:53:37
【问题描述】:

我正在尝试设置 IBM Watson Speech-to-Text 以在我的 Angular 前端中运行。我正在使用德国 Attanasio 的 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, 的含义。

【问题讨论】:

  • 我也建议在这里提问:wdc-slack-inviter.mybluemix.net
  • 回购有服务器端的例子。您是否使用其中之一来生成令牌?
  • data_henrik,我有一个生成令牌的 Firebase 云函数和一个在浏览器中获取新令牌的侦听器。
  • 我的最新小说,呃,answer to another question也回答了这个问题。

标签: ibm-cloud ibm-watson ibm-cloud-speech


【解决方案1】:

我遇到了同样的问题,我发现解决方案非常有效:

在“选项”常量中,您需要将“token”字段更改为“accessToken”,它应该可以工作。

注意:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-10-20
    • 2017-07-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多