Для распознавания речи существует уже множество готовых решений, однако я в этой статье намереваюсь рассмотреть именно wit.ai
Его движок мощный, используется во множестве решений и очень прост в использовании.
В качестве тестовой задачи я рассмотрю запись и пометку на удаление документов Реализации с определенным номером.
Для начала нужно залогиниться с помощью github и создать свое первое приложение. Далее определим что же приложение сможет распознать. Для этого определим новый intent соответствующий слову "записать".
Но этого немножко маловато - нам нужно знать еще и номер документа. Для этого добавляем поле wit/number, с его помощью возможно распознавание чисел.
Добавим еще intent на слово "удалить" и "удаление". Всё, после этого наше приложение готово к работе.
Для работы будем использовать http API, token для которого можно взять на странице settings вашего приложения. Сам код работы с API очень простой:
заголовки = новый Соответствие;
заголовки.Вставить("Authorization","Bearer "+Объект.token);
стрДаты = Формат(ТекущаяДата(),"ДФ=yyyy.MM.dd");
запрос = новый HTTPЗапрос("message?v="+стрДаты+"&q="+объект.ТекстЗапроса,заголовки);
СоединениеWeb = Новый HTTPСоединение
("api.wit.ai", 443,, ,,Истина);
ОтветWeb = СоединениеWeb.Получить(запрос);
//ОтветJSON = Новый ЧтениеJSON;
СтрокаJSON = ОтветWeb.ПолучитьТелоКакСтроку("UTF-8");
Ответ JSON
А разбор ответа и извлечение из него смысла (номера документа и намерения-intenta пользователя) предлагаю вам посмотреть в коде приложенной к статье обработки!
Также в API есть распознавание речи. Я отправлял файл записанный в формате mp3, а для записи звука с микрофона я воспользовался этой публикацией.
Получившийся mp3 файл нужно передать в параметре audio/mpeg3 для метода API POST/speech как описано в документации. Получившийся ответ JSON будет полностью аналогичен вышерассмотренному.
В приложенной обработке демонстрируются оба способа работы с API - через текст и через распознавание речи. С помощью объекта ЧтениеJSON разбирается json-ответ и из него извлекается intent и номер документа.