2

当我尝试执行下面的代码时,出现以下错误:

(节点:3784)UnhandledPromiseRejectionWarning:未处理的承诺拒绝(拒绝ID:1):错误:语音识别失败:套接字挂断

var fs = require('fs');
var bing = require('bingspeech-api-client');

var audioStream = fs.createReadStream('d:\\node.wav'); 
var subscriptionKey = 'xxxxxxxxxxxxxxxxx';

var client = new bing.BingSpeechClient(subscriptionKey);
client.recognizeStream(audioStream)
      .then(response => console.log(response.results[0].name));

请帮我。

4

4 回答 4

1

我尝试在https://github.com/palmerabollo/bingspeech-api-client/tree/master/examples的存储库中使用您的代码片段和示例音频文件。它在我这边工作得很好。

深入研究源代码,我发现错误消息是
throw new Error(`Voice recognition failed miserably: ${err.message}`);
https://github.com/palmerabollo/bingspeech-api-client/blob/master/src/client.ts#L129

通常这是一个网络问题,请仔细检查你的网络,或者你可以尝试 ping urlhttps://api.cognitive.microsoft.com/sts/v1.0/issueToken来检查你是否有连接到 API 的问题。

于 2017-03-06T03:15:59.387 回答
0

在玩服务时遇到了这个问题,这是由于第 110 行的 bingspeech-api-client 中硬编码的超时设置:

open_timeout: 5000,

完整代码在这里。

您可能想尝试根据您的 Internet 连接设置更高的值。

于 2017-05-03T16:18:59.997 回答
0

下面的代码对我有用

const { BingSpeechClient, VoiceRecognitionResponse } = require('bingspeech-api-client');
const fs = require('fs');
let audioStream = fs.createReadStream("audiowav.wav"); 

// Bing Speech Key (https://www.microsoft.com/cognitive-services/en-us/subscriptions)
let subscriptionKey = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxx';         
let client = new BingSpeechClient(subscriptionKey);

          client.recognizeStream(audioStream).then(function(response)
          {
            console.log("response is ",response);
            console.log("-------------------------------------------------");
            console.log("response is ",response.results[0]);
          }).catch(function(error)
          {
            console.log("error occured is ",error);
          });

我认为您需要从 bingspeech-api-client导入BingSpeechClient、 VoiceRecognitionResponse。这里是参考bingspeech-api-client

于 2018-07-24T09:12:40.653 回答
0

如果您在代理服务器后面,请尝试使用在node_modules\bingspeech-api-client\lib\client.js文件中设置代理

https-代理代理

在所有 http 请求的选项中,包括问题令牌。

于 2017-07-12T11:20:03.717 回答