IBM Watson JavaScript SDK for Speech-To-Text WebSocket 问题

Posted

技术标签:

【中文标题】IBM Watson JavaScript SDK for Speech-To-Text WebSocket 问题【英文标题】:IBM Watson JavaScript SDK for Speech-To-Text WebSocket Issue 【发布时间】:2018-07-20 14:42:58 【问题描述】:

我正在编写一个 Vue.js Web 应用程序并尝试访问 Watson Speech-To-Text API。我在文档中找到了一个使用 javascript SDK (watson-speech) 的非常简单的实现。这是我正在使用的代码:

    execute () 
     var stream;
     fetch('/api/speech-to-text/token').then(function(response) 
       return response.text();
     ).then(function (token) 

       stream = WatsonSpeech.SpeechToText.recognizeFile(
         token: token,
         file: document.querySelector('#audiofile').files[0],
         play: true, // play the audio out loud
         outputElement: '#output', // CSS selector or DOM Element (optional)
         
       );

       stream.on('error', function(err) 
           console.log(err);
       );

     ).catch(function(error) 
         console.log(error);
     );
 

有一个按钮,当点击时(文件上传后)运行这个 execute() 函数。

当我在找到它的链接 (https://watson-speech.mybluemix.net/file-upload.html) 上运行它时,它工作得很好。我已将环境变量配置为使用我的 API 用户名和密码(并通过从另一个 Watson 存储库下载示例 React 项目来确认它们可以正常工作)。但是,当我尝试在自己的项目中执行此操作时,它不起作用。我收到以下错误:

Error during WebSocket handshake: Unexpected response code: 403

我不确定这是否是 CORS 问题,或者这是否不能在所有客户端或什么情况下完成。是否需要安装 WebSocket?我原以为这一切都是由 Watson 函数处理的,所以我很茫然。任何帮助将不胜感激!

【问题讨论】:

【参考方案1】:

发现您无法检索授权令牌客户端。您必须有某种服务器端代码来检索令牌,然后客户端才能使用它。 Watson 也有一个 Node.js SDK,可用于轻松处理身份验证。

【讨论】:

以上是关于IBM Watson JavaScript SDK for Speech-To-Text WebSocket 问题的主要内容,如果未能解决你的问题,请参考以下文章

在 IBM Watson 中使用 SDK 和 cURL 有啥区别?

IBM Watson Speech To Text:无法使用 Swift SDK 转录文本

IBM Watson Unity 3D SDK 保护服务(几乎可以正常工作!)

使用 Java SDK 将音频从麦克风流式传输到 IBM Watson SpeechToText Web 服务

如何检测是不是在语音到文本(Unity IBM Watson sdk)中完成了句子检测?

如何从 javascript 调用 IBM Watson 服务