Как использовать плагин
Плагин Runtime Speech Recognizer предназначен для распознавания слов из входящих аудиоданных. Он использует слегка модифицированную версию whisper.cpp для работы с движком. Чтобы использовать плагин, выполните следующие шаги:
В редакторе
- Выберите подходящие языковые модели для вашего проекта, как описано здесь.
Во время выполнения
- Создайте Speech Recognizer и установите необходимые параметры (CreateSpeechRecognizer, список параметров см. здесь).
- Привяжитесь к нужным делегатам (OnRecognitionFinished, OnRecognizedTextSegment и OnRecognitionError).
- Запустите распознавание речи (StartSpeechRecognition).
- Обрабатывайте аудиоданные и ожидайте результатов от делегатов (ProcessAudioData).
- Остановите распознаватель речи, когда это необходимо (например, после вызова OnRecognitionFinished).
Плагин поддерживает входящие аудиоданные в формате 32-битного PCM с плавающей запятой (interleaved). Хотя он хорошо работает с Runtime Audio Importer, он не зависит от него напрямую.
Параметры распознавания
Плагин поддерживает распознавание как потоковых, так и непотоковых аудиоданных. Чтобы настроить параметры распознавания для вашего конкретного случая использования, вызовите SetStreamingDefaults
или SetNonStreamingDefaults
. Дополнительно вы можете вручную установить отдельные параметры, такие как количество потоков, размер шага, нужно ли переводить входящий язык на английский и использовать ли предыдущую транскрипцию. Полный список доступных параметров см. в Recognition Parameter List.
Улучшение производительности
Рекомендации по оптимизации производительности плагина см. в разделе How to improve performance.
Детекция голосовой активности (VAD)
При обработке аудиовхода, особенно в потоковых сценариях, рекомендуется использовать Voice Activity Detection (VAD) для фильтрации пустых или содержащих только шум сегментов аудио до их попадания в распознаватель. Эту фильтрацию можно включить на стороне capturable sound wave с помощью плагина Runtime Audio Importer, что помогает предотвратить "галлюцинации" языковых моделей — попытки найти паттерны в шуме и генерацию некорректных транскрипций. Подробные инструкции по настройке VAD см. в Voice Activity Detection documentation.
В демо-проекте, поставляемом с плагином, VAD включен по умолчанию. Дополнительную информацию о реализации демо можно найти в Demo Project.
Примеры
Эти примеры иллюстрируют использование плагина Runtime Speech Recognizer с потоковым и непотоковым аудиовходом, используя Runtime Audio Importer для получения аудиоданных в качестве примера. Обратите внимание, что для доступа к тому же набору функций импорта аудио, показанных в примерах (например, capturable sound wave и ImportAudioFromFile), требуется отдельная загрузка RuntimeAudioImporter. Эти примеры предназначены исключительно для иллюстрации основной концепции и не включают обработку ошибок.
Примеры потокового аудиовхода
Примечание: В UE 5.3 и других версиях вы можете столкнуться с отсутствующими нодами после копирования Blueprints. Это может произойти из-за различий в сериализации нод между версиями движка. Всегда проверяйте, что все ноды правильно подключены в вашей реализации.
1. Базовое потоковое распознавание
Этот пример демонстрирует базовую настройку для захвата аудиоданных с микрофона в виде потока с использованием Capturable sound wave и передачи их в распознаватель речи. Он записывает речь около 5 секунд, а затем обрабатывает распознавание, что делает его подходящим для быстрых тестов и простых реализаций. Copyable nodes.
Ключевые особенности этой настройки:
- Фиксированная длительность записи 5 секунд
- Простое одноразовое распознавание
- Минимальные требования к настройке
- Идеально для тестирования и прототипирования