Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/88.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 如何使用Microsoft认知服务-说话人识别API_Jquery_Voice Recognition_Speaker - Fatal编程技术网

Jquery 如何使用Microsoft认知服务-说话人识别API

Jquery 如何使用Microsoft认知服务-说话人识别API,jquery,voice-recognition,speaker,Jquery,Voice Recognition,Speaker,我对微软认知服务是完全陌生的。我想建立一个完全由语音控制的webproject。对于语音控制,我使用的是arytom.js,这是一个非常简单、非常好的API。这对我来说很好,对于TTS和STT。我现在想做的是,我想识别谁在讲话,并将其与数据库进行比较。我刚刚发现了微软开发的说话人识别API。我已经获得了一个API密钥,现在我想创建注册,并将录制的语音样本与存储在MicrosoftSFT服务器上的我的语音进行比较。 官方API的代码示例如下所示: <!DOCTYPE html> &l

我对微软认知服务是完全陌生的。我想建立一个完全由语音控制的webproject。对于语音控制,我使用的是arytom.js,这是一个非常简单、非常好的API。这对我来说很好,对于TTS和STT。我现在想做的是,我想识别谁在讲话,并将其与数据库进行比较。我刚刚发现了微软开发的说话人识别API。我已经获得了一个API密钥,现在我想创建注册,并将录制的语音样本与存储在MicrosoftSFT服务器上的我的语音进行比较。 官方API的代码示例如下所示:

 <!DOCTYPE html>
<html>
<head>
    <title>JSSample</title>
    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.0/jquery.min.js"></script>
</head>
<body>

<script type="text/javascript">
    $(function() {
        var params = {
            // Request parameters
            "shortAudio": "{boolean}",
        };

        $.ajax({
            url: "https://westus.api.cognitive.microsoft.com/spid/v1.0/identify?identificationProfileIds={identificationProfileIds}&" + $.param(params),
            beforeSend: function(xhrObj){
                // Request headers
                xhrObj.setRequestHeader("Content-Type","application/octet-stream");
                xhrObj.setRequestHeader("Ocp-Apim-Subscription-Key","{subscription key}");
            },
            type: "POST",
            // Request body
            data: "{body}",
        })
        .done(function(data) {
            alert("success");
        })
        .fail(function() {
            alert("error");
        });
    });
</script>
</body>
</html>

JSSample
$(函数(){
变量参数={
//请求参数
“shortAudio”:“{boolean}”,
};
$.ajax({
url:“https://westus.api.cognitive.microsoft.com/spid/v1.0/identify?identificationProfileIds={identificationProfileIds}&“+$.param(params),
发送前:函数(xhrObj){
//请求头
setRequestHeader(“内容类型”、“应用程序/八位字节流”);
setRequestHeader(“Ocp Apim订阅密钥”,“{Subscription Key}”);
},
类型:“POST”,
//请求主体
数据:“{body}”,
})
.完成(功能(数据){
警惕(“成功”);
})
.fail(函数(){
警报(“错误”);
});
});
根据MicrosoftSFT“shortAudio”:如果您希望使用任意数量的语音时间开始识别,则应包括“shortAudio”参数。它指示服务放弃执行识别所需的建议30秒音频。执行此操作时,您可以从1秒开始发送音频文件,但不超过5分钟

我有一个“Ocp Apim订阅密钥,我必须把它放在头中,但是我如何才能将.wav文件发送到他们的服务器。 有人知道如何开始使用这个API吗?不幸的是,微软没有真正的文档

更新:现在我知道了,我必须将.wav文件转换成二进制文件。有没有人有示例代码,如何使用这个API进行调用


提前感谢!

二进制数据需要是特定格式的WAV文件:

  • 容器:WAV
  • 编码:PCM
  • 费率:16K
  • 样本格式:16位
  • 频道:单声道
您可以在这里查看一个工作示例网页-我使用了一个经过修改的recorderjs副本(通过反向工程扬声器识别API示例页面进行修改),以获得正确的比特率和采样率WAV:


没有人能解决这个问题吗?你找到答案了吗?我遇到了一个类似的问题:如何设置数据:“{body}”标签在Javascript中,“{body}”是编码的音频对象。如果你使用的是
var request=new XMLHttpRequest();
那么当你调用
request.send(你的编码对象)
时,就会设置主体。