1

我能够从 Bing Voice Recognition 的 REST API 获得简短的听写答案。我的目标是获得超过 15-30 秒(又名长听写模式)的音频文件的响应。因此,我为获得简短答案所做的工作如下(我正在开发一个 HTML uwp 应用程序):

  1. ArrayBuffer从音频文件(wav)生成
  2. 通过访问令牌进行身份验证
  3. 使用以下设置将音频数据发送到 REST API:
var accessToken = [[accessTocken]];
var url = 'https://speech.platform.bing.com/recognize?'; 
var params = {
    'version': '3.0',
    'format': 'json',
    'locale': 'en-US',
    'device.os': 'Windows OS',
    'scenarios': 'smd',
    'appid': 'D4D52672-91D7-4C74-8AD8-42B1D98141A5',
    'requestid': guid(),
    'instanceid': guid()
};
var options = {
    url: url + $.param(params),
    type: "POST",
    headers: {
        'Authorization': 'Bearer ' + accessToken,
        'Content-Type': 'audio/wav; samplerate=16000'
    },
    data: data
};
return WinJS.xhr(options);

所以这行得通!但是对于长时间的听写场景,我该如何做到这一点?

请不要参考https://github.com/microsoft/Cognitive-Speech-STT-Javascript上的 JavaScript GitHub 存储库。这仅适用于简短的听写并且在 Edge 浏览器中不起作用。

4

1 回答 1

1

来自 API 文档:

您的应用程序必须终止音频以确定语音的开始和结束,而服务又使用它来确定请求的开始和结束。您在任何一个请求中上传的音频不得超过 10 秒,并且总请求时长不得超过 14 秒。

参考: https ://www.microsoft.com/cognitive-services/en-us/Speech-api/documentation/API-Reference-REST/BingVoiceRecognition

也许您需要实现客户端库以使用不同的模式。

ShortPhrase 模式:最长 15 秒的话语。当数据被发送到服务器时,客户端将收到多个部分结果和一个最终的多个 N 最佳选择结果。

LongDictation 模式:长达 2 分钟的话语。当数据发送到服务器时,客户端将根据服务器指示句子停顿的位置接收多个部分结果和多个最终结果。

意图检测:服务器返回有关语音输入的附加结构化信息。要使用 Intent,您需要先训练一个模型。在此处查看详细信息。

参考: https ://www.microsoft.com/cognitive-services/en-us/Speech-api/documentation/GetStarted/GetStartedCSharpDesktop

于 2016-09-19T17:08:16.130 回答