Yandex Cloud
Поиск
Связаться с намиПодключиться
  • Документация
  • Блог
  • Все сервисы
  • Статус работы сервисов
    • Популярные
    • Инфраструктура и сеть
    • Платформа данных
    • Контейнеры
    • Инструменты разработчика
    • Бессерверные вычисления
    • Безопасность
    • Мониторинг и управление ресурсами
    • Машинное обучение
    • Бизнес-инструменты
  • Все решения
    • По отраслям
    • По типу задач
    • Экономика платформы
    • Безопасность
    • Техническая поддержка
    • Каталог партнёров
    • Обучение и сертификация
    • Облако для стартапов
    • Облако для крупного бизнеса
    • Центр технологий для общества
    • Облако для интеграторов
    • Поддержка IT-бизнеса
    • Облако для фрилансеров
    • Обучение и сертификация
    • Блог
    • Документация
    • Контент-программа
    • Мероприятия и вебинары
    • Контакты, чаты и сообщества
    • Идеи
    • Истории успеха
    • Тарифы Yandex Cloud
    • Промоакции и free tier
    • Правила тарификации
  • Документация
  • Блог
Проект Яндекса
© 2025 ООО «Яндекс.Облако»
Yandex SpeechKit
  • Обзор технологий SpeechKit
    • О технологии
    • Поддерживаемые языки
    • Потоковое распознавание
    • Нормализация результатов распознавания
    • Анализ результатов распознавания
    • Определение дикторов
    • Расширение модели распознавания речи
    • Загрузка данных для дообучения модели распознавания речи
    • Определение конца фразы
  • Поддерживаемые форматы аудио
  • Интеграция телефонии
  • Квоты и лимиты
  • Управление доступом
  • Правила тарификации

В этой статье:

  • Ограничения потокового распознавания
  • Использование сервиса
  • Код интерфейса клиентского приложения
  • Аутентификация в сервисе
  • Запрос распознавания
  • Результат распознавания
  • Примеры использования
  1. Распознавание речи
  2. Потоковое распознавание

Потоковый режим распознавания речи

Статья создана
Yandex Cloud
Улучшена
Обновлена 28 апреля 2025 г.
  • Ограничения потокового распознавания
  • Использование сервиса
    • Код интерфейса клиентского приложения
    • Аутентификация в сервисе
    • Запрос распознавания
    • Результат распознавания
  • Примеры использования

Потоковый режим позволяет одновременно отправлять аудио на распознавание и получать результаты распознавания в рамках одного соединения. Кроме того, в потоковом режиме вы можете получать промежуточные результаты распознавания, когда говорящий еще не закончил фразу. После паузы SpeechKit вернет финальные результаты и начнет распознавание новой фразы.

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

Важно

Потоковый режим предназначен для распознавания аудио в режиме реального времени. Для распознавания уже записанного аудиофайла используйте синхронный или асинхронный режим распознавания аудиозаписей.

Ограничения потокового распознаванияОграничения потокового распознавания

Потоковое распознавание SpeechKit имеет ряд ограничений, которые нужно учитывать при создании приложения. Полный список действующих в SpeechKit ограничений см. в разделе Квоты и лимиты в SpeechKit.

Потоковое распознавание
Сценарии использования Телефонные ассистенты и роботы
Виртуальные ассистенты
Входные данные Голос в режиме реального времени
Принцип работы Обмен сообщениями с сервером в рамках одного соединения
Поддерживаемые API gRPC v2
gRPC v3
Максимальная длительность аудиоданных 5 минут
Максимальный объем переданных данных 10 МБ
Количество распознаваемых каналов 1

Использование сервисаИспользование сервиса

Чтобы использовать сервис, создайте приложение, которое будет отправлять фрагменты аудио и обрабатывать ответ с результатами распознавания.

Код интерфейса клиентского приложенияКод интерфейса клиентского приложения

SpeechKit имеет две версии API потокового распознавания: API v3 и API v2. Для новых проектов мы рекомендуем использовать API v3.

Чтобы приложение могло обращаться к сервису, склонируйте репозиторий Yandex Cloud API и сгенерируйте код интерфейса клиента для используемого языка программирования из файла спецификации API v2 или API v3.

Примеры клиентского приложения:

  • Потоковое распознавание аудиофайла с помощью API v3.
  • Потоковое распознавание речи с микрофона с помощью API v3.
  • Пример использования API v2 потокового распознавания.

Помимо этого в документации gRPC вы можете найти подробные инструкции по генерации интерфейсов и реализации клиентских приложений для различных языков программирования.

Важно

При запросе результатов операции gRPC-клиенты по умолчанию ограничивают максимальный размер сообщения, который они могут принять в качестве ответа, — не более 4 МБ. Если ответ с результатами распознавания будет больше этого размера, то вы получите ошибку.

Чтобы получить ответ целиком, повысьте ограничение на максимальный размер сообщения:

  • для Go используйте функцию MaxCallRecvMsgSize;
  • для C++ в методе call задайте значение max_receive_message_size.

Аутентификация в сервисеАутентификация в сервисе

В каждом запросе приложение должно передавать IAM-токен или API-ключ для аутентификации в сервисе, а также идентификатор каталога, на который у аккаунта есть роль ai.speechkit-stt.user или выше. Подробнее о необходимых разрешениях см. в разделе Управление доступом.

Для аутентификации приложения удобнее всего использовать сервисный аккаунт. При аутентификации с сервисным аккаунтом не передавайте идентификатор каталога в запросах — SpeechKit использует каталог, в котором был создан сервисный аккаунт.

Подробнее об аутентификации в SpeechKit.

Запрос распознаванияЗапрос распознавания

Для распознавания речи приложение сначала должно отправить сообщение с настройками распознавания:

  • для API v3 — сообщение RecognizeStreaming с типом session_options.
  • для API v2 — сообщение StreamingRecognitionRequest с типом RecognitionConfig.

После настройки сессии сервер будет ожидать сообщений с аудиофрагментами (chunks) — отправляйте сообщение RecognizeStreaming с типом session_options или сообщение StreamingRecognitionRequest с типом audio_content в API v2. При отправке сообщений учитывайте следующие рекомендации:

  • Не отправляйте аудиофрагменты слишком часто или редко. Время между отправкой сообщений в сервис должно примерно совпадать с длительностью отправляемых аудиофрагментов, но не должно превышать 5 секунд. Например, каждые 400 мс отправляйте на распознавание 400 мс аудио.
  • Максимальная длительность переданного аудио за всю сессию — 5 минут.
  • Максимальный размер переданных аудиоданных — 10 МБ.

Если в течение 5 секунд в сервис не отправлялись сообщения или достигнут лимит по длительности или размеру данных, сессия обрывается. Чтобы продолжить распознавание речи, надо заново установить соединение и отправить новое сообщение с настройками распознавания.

Не дожидаясь окончания потока сообщений с аудиофрагментами, SpeechKit будет возвращать промежуточные результаты распознавания.

Результат распознаванияРезультат распознавания

В каждом сообщении с результатами распознавания (StreamingResponse или StreamingRecognitionResponse) сервер SpeechKit возвращает один или несколько фрагментов речи, которые он успел распознать за этот промежуток (chunks). Для каждого фрагмента речи указывается список вариантов распознанного текста (alternatives).

Сервер SpeechKit возвращает результаты распознавания с указанием их типа:

  • partial — для промежуточных результатов;

  • final — для окончательных результатов;

  • final_refinement — для нормализованных окончательных результатов.

    При включенной нормализации приходят результаты final и final_refinement.

В API v2, если распознавание еще не завершилось, результаты содержат параметр final со значением False.

Распознавание речи завершается, и приходят окончательные результаты, когда наступает EOU (End-of-Utterance). Он является признаком конца фразы. EOU происходит в следующих случаях:

  • Завершилась gRPC-сессия.

  • Была распознана тишина в последнем фрагменте речи. Тишину можно передать с помощью одного из двух параметров:

    • chunk — звук, который распознается как тишина.
    • silence_chunk — длительность тишины в миллисекундах. Параметр позволяет уменьшить размер пакета с аудио и не передавать в нем тишину, которую не нужно распознавать.

Примеры использованияПримеры использования

  • Потоковое распознавание аудиофайла с помощью API v3
  • Потоковое распознавание речи с микрофона с помощью API v3
  • Потоковое распознавание речи с автоматическим определением языка в API v3
  • Пример использования API v2 потокового распознавания

См. такжеСм. также

  • Поддерживаемые форматы аудио
  • Поддерживаемые языки и модели распознавания
  • Аутентификация в API SpeechKit
  • API v2 для потокового распознавания
  • Справочник API v3

Была ли статья полезна?

Предыдущая
Поддерживаемые языки
Следующая
Синхронное распознавание
Проект Яндекса
© 2025 ООО «Яндекс.Облако»