语音转文本 bing 语音 API Azure

Posted

技术标签:

【中文标题】语音转文本 bing 语音 API Azure【英文标题】:Speech to text bing speech API Azure 【发布时间】:2017-03-03 04:36:24 【问题描述】:

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

(node:3784) UnhandledPromiseRejectionWarning: UnhandledPromiseRejectionWarning: Unhandled Promise Rejection (rejection id: 1): Error: 语音识别惨遭失败: socket hang up

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));

请帮帮我。

【问题讨论】:

嗨 Adhit,你有任何更新吗? 我用 ibm watson 完成了这个模块。今天我要调查这些事情,我会让你尽快知道。 还是一样的错误加里 【参考方案1】:

我尝试使用您的代码 sn-p 和位于 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 url https://api.cognitive.microsoft.com/sts/v1.0/issueToken 来检查你是否有连接到 API 的问题。

【讨论】:

【参考方案2】:

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

open_timeout: 5000,

Full code 在这里。

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

【讨论】:

我尝试了 10000 到 50000 的多个值,仍然无法正常工作,wav 文件的比特率重要吗?【参考方案3】:

如果您使用代理服务器,请尝试使用

node_modules\bingspeech-api-client\lib\client.js 文件中设置代理

https-proxy-agent

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

【讨论】:

【参考方案4】:

下面的代码对我有用

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

【讨论】:

以上是关于语音转文本 bing 语音 API Azure的主要内容,如果未能解决你的问题,请参考以下文章

Bing Text-to-Speech 可以采用 javascript 变量值并将其转换为语音吗?

用Azure认知服务开发一个语音翻译机,学英文很爽快

Google语音转文字Speech to Text 超级好用的语音转文本API

要发送到 Bing Speech to Text API 的最大音频文件长度(持续时间)应该是多少?

Azure Cognitive Services- Speech To Text

文本转音频(百度语音合成api)(python)