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

时间:2017-01-23 16:57:47

标签: jquery voice-recognition speaker

我是Microsoft认知服务的新手。我想建立一个完全语音控制的webproject。对于语音控制,我使用的是arytom.js,这是一个非常简单和出色的API供我使用。对于TTS和STT,它对我来说很好。我现在要做的是,我想知道谁在说话并将其与数据库进行比较。我刚刚发现了由Microsoft开发的Speaker Recognition API。我已经有了一个API密钥,现在我想创建注册并将录制的语音样本与存储在Micrososft服务器上的语音进行比较。 官方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>

根据Micrososft&#34; shortAudio&#34; :如果您希望使用任意数量的语音时间开始识别,您应该包括&#34; shortAudio&#34;参数。它指示服务放弃进行识别所需的建议30秒音频。这样做时,您可以发送1秒长但不超过5分钟的音频文件。

我有一个&#34; Ocp-Apim-Subscription-Key,我必须把它放在Header中,但是如何将.wav文件发送到他们的服务器。 有谁知道,如何开始使用这个API。不幸的是,微软没有关于它的真实文档。

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

提前谢谢!

1 个答案:

答案 0 :(得分:0)

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

  • 容器:WAV
  • 编码:PCM
  • 费率:16K
  • 样本格式:16位
  • 频道:Mono

你可以在这里查看一个工作示例网页 - 我使用了一个改进的recorderjs副本(通过反向工程改进了Speaker Recognition API示例页面)来获得正确的比特率和采样率WAV:

https://rposbo.github.io/speaker-recognition-api/