Как работать с Microsoft Cognitive Services - API распознавания речи

Я совершенно новичок в Microsoft Cognitive Services. Я хочу создать веб-проект, который полностью контролируется речью. Для управления речью я использую arytom.js, который является очень простым и отличным API для моего использования. У меня отлично работает, для TTS и STT. Теперь я хочу узнать, кто говорит, и сравнить это с базой данных. Я только что обнаружил API распознавания динамиков, разработанный Microsoft. У меня уже есть ключ 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 "shortAudio": в случае, если вы хотите начать идентификацию, используя любое количество речи, вы должны включить параметр "shortAudio". Он дает указание службе отказаться от рекомендованных 30 секунд звука, необходимого для идентификации. При этом вы можете отправлять аудиофайлы продолжительностью от 1 секунды, но не более 5 минут.

У меня есть "Ocp-Apim-Subscription-Key", который я должен вставить в заголовок, но как я могу отправить файл.wav на их сервер. Кто-нибудь знает, как начать работу с этим API. К сожалению, у Microsoft нет настоящий документ об этом.

Обновление: теперь я знаю, что мне нужно конвертировать.wav файл в бинарный файл. У кого-нибудь есть пример кода, как использовать этот API для совершения звонков?

Заранее спасибо!

1 ответ

Двоичные данные должны быть WAV-файлом определенного формата:

  • Контейнер: WAV
  • Кодировка: PCM
  • Оценить: 16K
  • Образец формата: 16 бит
  • Каналы: Моно

Вы можете проверить работающий пример веб-страницы здесь - я использовал измененную копию Recorderjs (измененную путем реинжиниринга страницы примеров API Speaker Recognition), чтобы получить правильную битовую скорость и частоту дискретизации WAV:

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

Другие вопросы по тегам