Перейти к основному содержимому

Распознавание голосовых сообщений

On-premise

В некоторых каналах, например в Telegram, клиенты могут отправлять не только текстовые, но и голосовые сообщения. По умолчанию голосовые сообщения не распознаются и доступны в сценарии как файлы.

Если платформа JAICP установлена к вам в контур, вы можете распознавать голосовые сообщения. Если распознавание включено:

  1. Платформа автоматически преобразует голосовое сообщение в текст.

  2. Сообщение обрабатывается в сценарии так же, как и текстовый запрос клиента. Например, на текст сообщения может сработать паттерн или интент.

    # Бот перейдет в стейт, если голосовое сообщение содержит слово «привет».
    state: Hello
    q!: * привет *
    a: Привет!

Каналы

Распознавание поддерживается в каналах:

Провайдеры

Вы можете распознавать голосовые сообщения, если используете провайдеров ASR:

  • 3iTech
  • АСМ Решения
  • SaluteSpeech
  • Tinkoff VoiceKit
  • Yandex SpeechKit v2
  • Yandex SpeechKit v3

Распознавание доступно на всех языках, которые поддерживает провайдер.

Настройка языка распознавания

Используйте методы:

Данные о сообщении

Данные о голосовом сообщении добавляются в $request. Если сообщение было распознано успешно, поле $request.data.customData содержит следующие данные:

{
"url": "https://example.com/file.oga",
"type": "audio",
"mimeType": "audio/ogg",
"recognitionText": "Привет"
}

Здесь:

  • url — ссылка на аудиофайл с голосовым сообщением.
  • type — тип файла.
  • mimeType — медиатип файла.
  • recognitionText — распознанный текст сообщения.

Ошибки распознавания

Если в голосовом сообщении не удалось найти речь или при распознавании произошла ошибка, то сообщение будет доступно в сценарии как файл.

Поле $request.data.customData также будет содержать данные о сообщении.

Речь не обнаружена

{
"url": "https://example.com/file.oga",
"type": "audio",
"mimeType": "audio/ogg"
}

Произошла ошибка

{
"url": "https://example.com/file.oga",
"type": "audio",
"mimeType": "audio/ogg",
"recognitionError":"Example error message"
}

Поле recognitionError содержит описание ошибки.