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

Обнаружение речевой активности

Streaming Sound Wave, а также его производные типы, такие как Capturable Sound Wave, поддерживают Обнаружение речевой активности (VAD). VAD фильтрует входящие аудиоданные, заполняя внутренний буфер только при обнаружении речи.

Плагин предлагает две реализации VAD:

Реализация по умолчанию использует libfvad, легковесную библиотеку обнаружения речевой активности, которая эффективно работает на всех платформах и версиях движка, поддерживаемых Runtime Audio Importer.

Базовое использование

Чтобы включить VAD после создания звуковой волны, используйте функцию ToggleVAD:

Toggle VAD node

После включения VAD вы можете сбросить его в любое время:

Узел сброса VAD

Настройки VAD по умолчанию

При использовании провайдера VAD по умолчанию вы можете настроить его агрессивность, изменив режим VAD:

Узел Set VAD Mode

Параметр mode управляет тем, насколько агрессивно VAD фильтрует аудио. Более высокие значения являются более строгими, что означает меньшую вероятность ложных срабатываний, но при этом некоторые фрагменты речи могут быть пропущены.

Провайдеры VAD

После включения VAD с помощью функции ToggleVAD вы можете выбрать между различными провайдерами обнаружения речевой активности в соответствии с вашими потребностями. Провайдер по умолчанию является встроенным, в то время как дополнительные провайдеры, такие как Silero VAD, доступны через плагины-расширения.

Узел Set VAD Provider

Расширение Silero VAD

Silero VAD обеспечивает более точное обнаружение речи с использованием нейронных сетей. Чтобы использовать его:

  1. Убедитесь, что плагин Runtime Audio Importer уже установлен в вашем проекте

  2. Для UE 5.5 и более ранних версий: Перед загрузкой плагина расширения Silero VAD убедитесь, что NNERuntimeORT отключен в вашем проекте. Включенный NNERuntimeORT может вызывать сбои при использовании Silero VAD в этих версиях движка из-за конфликтов

  3. Загрузите плагин расширения Silero VAD отсюда

  4. Извлеките папку из загруженного архива в папку Plugins вашего проекта (создайте эту папку, если она не существует)

  5. Для UE 5.6 и более поздних версий: Отредактируйте файл RuntimeAudioImporterSileroVAD.uplugin, чтобы добавить зависимость NNERuntimeORT. В поле "Plugins", после включения RuntimeAudioImporter, добавьте:

   ,
{
"Name": "NNERuntimeORT",
"Enabled": true
}
  1. Пересоберите свой проект (это расширение требует проект на C++)
important
  • Стандартный VAD работает со всеми версиями движка, поддерживаемыми Runtime Audio Importer (UE 4.24, 4.25, 4.26, 4.27, 5.0, 5.1, 5.2, 5.3, 5.4, 5.5, 5.6 и 5.7)

  • Silero VAD поддерживает Unreal Engine 4.27 и все версии UE5 (4.27, 5.0, 5.1, 5.2, 5.3, 5.4, 5.5, 5.6 и 5.7)

  • UE 5.5 и более ранние: NNERuntimeORT должен быть отключен перед использованием Silero VAD, чтобы предотвратить сбои из-за конфликтов плагинов

  • Требование для UE 5.6+: Начиная с Unreal Engine 5.6, расширение Silero VAD требует, чтобы зависимость плагина NNERuntimeORT была вручную добавлена в файл .uplugin

  • Silero VAD доступен для Windows, Linux, Mac, Android (включая Meta Quest) и iOS

  • Это расширение предоставляется в виде исходного кода и требует проект на C++ для использования

  • Для получения дополнительной информации о том, как вручную собирать плагины, см. руководство по сборке плагинов

После установки вы можете выбрать его в качестве провайдера VAD, используя функцию SetVADProvider с провайдером класса Silero.

Обнаружение начала и окончания речи

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

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

Минимальная продолжительность речи

Параметр Минимальная продолжительность речи устанавливает минимальное количество непрерывной голосовой активности, необходимое для запуска события начала речи. Это помогает отфильтровать кратковременные шумы, которые не должны считаться речью, чтобы гарантировать, что распознается только устойчивая голосовая активность. Значение по умолчанию для Минимальной продолжительности речи составляет 300 миллисекунд.

Узел Set Minimum Speech Duration

Длительность тишины

Параметр Длительность тишины задает продолжительность тишины, необходимую для срабатывания события окончания речи. Это предотвращает преждевременное завершение детектирования речи во время естественных пауз между словами или предложениями. Значение по умолчанию для Длительности тишины составляет 500 миллисекунд.

Узел Set Silence Duration

Привязка к делегатам речи

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

Bind Event To On Speech Started Bind Event To On Speech Ended

Сравнение провайдеров VAD

Default VAD (libfvad)

Преимущества:

  • Легковесный и эффективный
  • Работает на всех платформах
  • Минимальное использование ресурсов
  • Подходит для мобильных и маломощных устройств

Лучше всего для:

  • Простого обнаружения голоса в тихих средах
  • Мобильных приложений
  • Проектов, где приоритетом является производительность
  • Когда требуется универсальная поддержка платформ