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

Как использовать плагин

Плагин Runtime Speech Recognizer предназначен для распознавания слов из входящих аудиоданных. Он использует слегка модифицированную версию whisper.cpp для работы с движком. Чтобы использовать плагин, выполните следующие шаги:

Сторона редактора

  1. Выберите подходящие языковые модели для вашего проекта, как описано здесь.

Сторона выполнения

  1. Создайте Speech Recognizer и установите необходимые параметры (CreateSpeechRecognizer, список параметров здесь).
  2. Привяжите нужные делегаты (OnRecognitionFinished, OnRecognizedTextSegment и OnRecognitionError).
  3. Запустите распознавание речи (StartSpeechRecognition).
  4. Обработайте аудиоданные и дождитесь результатов от делегатов (ProcessAudioData).
  5. Остановите Speech Recognizer, когда это потребуется (например, после события OnRecognitionFinished).

Плагин поддерживает входящие аудиоданные в формате floating point 32-bit interleaved PCM. Он хорошо работает с Runtime Audio Importer, но не зависит от него напрямую.

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

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

Улучшение производительности

Обратитесь к разделу Как улучшить производительность для получения рекомендаций по оптимизации работы плагина.

Обнаружение голосовой активности (VAD)

При обработке аудио, особенно в потоковых сценариях, рекомендуется использовать Voice Activity Detection (VAD), чтобы фильтровать пустые или шумовые сегменты прежде, чем они попадут в распознаватель. Это фильтрование можно включить на стороне capturable sound wave, используя плагин Runtime Audio Importer, который предотвращает "галлюцинации" языковых моделей — попытки найти смысл в шуме и генерацию неверных транскрипций. Подробные инструкции по настройке VAD можно найти здесь.

В демонстрационном проекте, включённом в плагин, VAD включён по умолчанию. Дополнительную информацию о реализации демо-проекта можно найти здесь.

Примеры

В плагине есть хороший демонстрационный проект в папке Content -> Demo, который можно использовать в качестве примера реализации.

Эти примеры показывают, как использовать Runtime Speech Recognizer с потоковым и непотоковым вводом, применяя Runtime Audio Importer для получения данных в качестве источника аудио. Обратите внимание, что для использования этих возможностей потребуется скачать Runtime Audio Importer отдельно (например, для capturable sound wave и ImportAudioFromFile). Данные примеры предназначены исключительно для демонстрации основной концепции и не содержат обработки ошибок.

Примеры потокового аудиоввода

Примечание: В UE 5.3 и других версиях могут отсутствовать некоторые ноды после копирования Blueprints. Это может происходить из-за различий в сериализации нод между версиями движка. Всегда проверяйте, что все ноды корректно подключены в вашей реализации.

1. Базовое потоковое распознавание

Этот пример демонстрирует базовую настройку для захвата аудиоданных с микрофона в виде потока, используя Capturable sound wave, и передачи его распознавателю речи. Он записывает речь в течение 5 секунд и затем обрабатывает распознавание, что делает его подходящим для быстрых тестов и простых реализаций. Копируемые ноды.

Ключевые особенности данного кейса:

  • Фиксированная длительность записи в 5 секунд
  • Одноразовое распознавание
  • Минимальные требования к настройке
  • Идеально для тестирования и прототипирования

2. Контролируемое потоковое распознавание

Этот пример расширяет базовую настройку, добавляя возможность вручную управлять процессом распознавания. Он позволяет начинать и останавливать распознавание по желанию, что делает его удобным в сценариях, где требуется точный контроль над процессом. Копируемые ноды.

Ключевые особенности данного кейса:

  • Управление стартом и остановкой вручную
  • Возможность непрерывного распознавания
  • Гибкая длительность записи
  • Подходит для интерактивных приложений

3. Распознавание голосовых команд

Этот пример оптимизирован для сценариев распознавания команд. Он сочетает потоковое распознавание с Voice Activity Detection (VAD), чтобы автоматически обрабатывать речь, когда пользователь перестаёт говорить. Распознаватель начинает обработку накопленной речи только при обнаружении тишины, что делает его идеальным для интерфейсов управления голосом. Копируемые ноды.

Ключевые особенности данного кейса:

  • Управление стартом и остановкой вручную
  • Включён VAD для обнаружения речевых сегментов
  • Автоматический запуск распознавания при детекции тишины
  • Оптимизирован для распознавания коротких команд
  • Уменьшение нагрузки путём обработки только фактической речи

Непотоковый ввод аудио

Этот пример импортирует аудиоданные в Imported sound wave и распознаёт весь аудиофайл после завершения импорта. Копируемые ноды.