1

任何人都获得了 Azure Project Oxford Speech API 的有效 jQuery REST 代码示例。

我已经启动了 Azure 应用服务和密钥。只需要一个简单的原型页面,在加载时播放当前特定文本中的一些文本

甚至可以在客户端只使用 javascript/jQuery 和 REST 而没有服务器端代码来做到这一点?

另外,我安装了服务器端示例,但它只能从 localhost 播放。没有错误,但不会从 azure 网站播放。

更新:仅使用客户端 js 代码。我能够进行身份验证并且我正在获取 RIFF AWAVEfmt >} 数据,但似乎无法弄清楚如何从浏览器播放它。我没有错误。

    $.ajax({
    url: ttsServiceUri,
    beforeSend: function (xhrObj) {
        xhrObj.setRequestHeader("Content-Type", "application/ssml+xml");
        xhrObj.setRequestHeader("X-Microsoft-OutputFormat", "riff-16khz-16bit-mono-pcm");
        xhrObj.setRequestHeader("Authorization", "Bearer " + response.access_token);
        xhrObj.setRequestHeader("User-Agent", "TTSNodeJS");
        xhrObj.setRequestHeader("X-Search-AppId", "xxxxxxxxxxxDAA29772419F436CA");
        xhrObj.setRequestHeader("X-Search-ClientID", "xxxxxxxxxxxx1A480F00935DC390960");

    },
    data: post_data,
    type: "POST"
})

.done(function (response) { 在此处输入图像描述 var audio = new Audio(response); audio.play();

谢谢。

4

1 回答 1

-1

在这里您可以找到 API 文档。
有关工作示例,请查看使用认知服务语音 API 的示例代码http://github.com/Danielius1012/Text-To-Speech
来自上述代码的有用代码片段:

function sendAudioRequest()
{
textToSpeak = $("#my-text")[0].value;
sendString = "<speak version='1.0' xml:lang='"+language+"'><voice xml:lang='"+language+"' xml:gender='Female' name='"+nameLanguage+"'>"+textToSpeak+"</voice></speak>";

console.info($("#text-to-speak"));

var xhttp = new XMLHttpRequest();

xhttp.onreadystatechange = function() 
{
    if (xhttp.readyState == 4 && xhttp.status == 200) 
    {
        context.decodeAudioData(xhttp.response, function(buffer) 
        {
            speechBuffer = buffer;
            console.info(speechBuffer);
            playAudio(speechBuffer);  
        });

    }
}; 

xhttp.open("POST", audioURL, true);
xhttp.setRequestHeader("Content-type", 'application/ssml+xml');
xhttp.setRequestHeader("Authorization", 'Bearer ' + token);
xhttp.setRequestHeader("X-Microsoft-OutputFormat", 'riff-16khz-16bit-mono-pcm');
xhttp.setRequestHeader("X-Search-AppId", '07D3234E49CE426DAA29772419F436CA');
xhttp.setRequestHeader("X-Search-ClientID", '1ECFAE91408841A480F00935DC390960');
xhttp.responseType = 'arraybuffer'

xhttp.send(sendString);
}
于 2016-05-25T13:01:48.303 回答