Aller au contenu principal

Détection de l'activité vocale

Streaming Sound Wave, ainsi que ses types dérivés tels que Capturable Sound Wave, prend en charge la Détection de l'activité vocale (VAD). La VAD filtre les données audio entrantes pour remplir le tampon interne uniquement lorsque la voix est détectée.

Le plugin propose deux implémentations de VAD :

L'implémentation par défaut utilise libfvad, une bibliothèque légère de détection de l'activité vocale qui fonctionne efficacement sur toutes les plateformes et versions de moteur prises en charge par Runtime Audio Importer.

Utilisation de base

Pour activer la VAD après avoir créé une sound wave, utilisez la fonction ToggleVAD :

Nœud Toggle VAD

Après avoir activé VAD, vous pouvez le réinitialiser à tout moment:

Reset VAD node

Paramètres VAD par défaut

Lorsque vous utilisez le fournisseur VAD par défaut, vous pouvez ajuster son agressivité en modifiant le mode VAD:

Nœud Set VAD Mode

Le paramètre mode contrôle l'agressivité avec laquelle le VAD filtre l'audio. Les valeurs plus élevées sont plus restrictives, ce qui signifie qu'elles sont moins susceptibles de signaler des faux positifs mais risquent de manquer certaines paroles.

Fournisseurs VAD

Après avoir activé le VAD avec la fonction ToggleVAD, vous pouvez choisir entre différents fournisseurs de détection d'activité vocale pour répondre à vos besoins. Le fournisseur par défaut est intégré, tandis que des fournisseurs supplémentaires comme Silero VAD sont disponibles via des plugins d'extension.

Nœud Définir le fournisseur VAD

Silero VAD Extension

Silero VAD fournit une détection vocale plus précise en utilisant des réseaux neuronaux. Pour l'utiliser :

  1. Assurez-vous que le plugin Runtime Audio Importer est déjà installé dans votre projet

  2. Pour UE 5.5 et versions antérieures : Avant de télécharger le plugin d'extension Silero VAD, assurez-vous que NNERuntimeORT est désactivé dans votre projet. Avoir NNERuntimeORT activé peut provoquer des plantages lors de l'utilisation de Silero VAD sur ces versions du moteur en raison de conflits

  3. Téléchargez le plugin d'extension Silero VAD depuis ici

  4. Extrayez le dossier de l'archive téléchargée dans le dossier Plugins de votre projet (créez ce dossier s'il n'existe pas)

  5. Pour UE 5.6 et versions ultérieures : Modifiez le fichier RuntimeAudioImporterSileroVAD.uplugin pour ajouter la dépendance NNERuntimeORT. Dans le champ "Plugins", après l'inclusion de RuntimeAudioImporter, ajoutez :

,
{
"Name": "NNERuntimeORT",
"Enabled": true
}
  1. Reconstruisez votre projet (cette extension nécessite un projet C++)
important
  • La VAD par défaut fonctionne avec toutes les versions de moteur prises en charge par 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 et 5.8)

  • Silero VAD prend en charge Unreal Engine 4.27 et toutes les versions UE5 (4.27, 5.0, 5.1, 5.2, 5.3, 5.4, 5.5, 5.6, 5.7 et 5.8)

  • UE 5.5 et versions antérieures : NNERuntimeORT doit être désactivé avant d'utiliser Silero VAD pour éviter des plantages dus à des conflits de plugins. Dans UE 5.3 spécifiquement, NNERuntimeORTCpu et NNERuntimeORTGpu doivent également être désactivés

  • Exigence UE 5.6+ : À partir d'Unreal Engine 5.6, l'extension Silero VAD nécessite que la dépendance au plugin NNERuntimeORT soit ajoutée manuellement au fichier .uplugin

  • Silero VAD est disponible pour Windows, Linux, Mac, Android (y compris Meta Quest) et iOS

  • Cette extension est fournie sous forme de code source et nécessite un projet C++ pour être utilisée

  • Pour plus d'informations sur la compilation manuelle des plugins, consultez le tutoriel Building Plugins

Une fois installé, vous pouvez le sélectionner comme fournisseur VAD en utilisant la fonction SetVADProvider avec la classe de fournisseur Silero.

Détection du début et de la fin de la parole

La détection d'activité vocale ne se contente pas de détecter la présence de parole, mais permet également de détecter le début et la fin de l'activité vocale. Cela est utile pour déclencher des événements lorsque la parole commence ou se termine pendant la lecture ou la capture.

Vous pouvez personnaliser la sensibilité de la détection du début et de la fin de la parole en ajustant des paramètres tels que la durée minimale de parole et la durée de silence. Ces paramètres permettent d'affiner la détection pour éviter les faux positifs, comme la prise en compte de bruits brefs ou de pauses trop courtes entre les paroles.

Durée minimale de parole

Le paramètre Durée minimale de parole définit la durée minimale d'activité vocale continue nécessaire pour déclencher un événement de début de parole. Cela permet de filtrer les bruits brefs qui ne devraient pas être considérés comme de la parole, afin de s'assurer que seule une activité vocale soutenue est reconnue. La valeur par défaut de Durée minimale de parole est de 300 millisecondes.

Nœud Définir la durée minimale de parole

Durée du silence

Le paramètre Silence Duration définit la durée de silence nécessaire pour déclencher un événement de fin de parole. Cela empêche la détection vocale de se terminer prématurément lors de pauses naturelles entre les mots ou les phrases. La valeur par défaut de Silence Duration est de 500 millisecondes.

Set Silence Duration node

Liaison avec les délégués de parole

Vous pouvez vous lier à des délégués spécifiques lorsque la parole commence ou se termine. Cela est utile pour déclencher un comportement personnalisé basé sur l'activité vocale, comme démarrer ou arrêter la reconnaissance de texte, ou ajuster le volume d'autres sources audio.

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

Comparaison des fournisseurs VAD

Default VAD (libfvad)

Avantages :

  • Léger et efficace
  • Fonctionne sur toutes les plateformes
  • Utilisation minimale des ressources
  • Adapté aux appareils mobiles et à faible puissance

Idéal pour :

  • Détection vocale simple dans des environnements calmes
  • Applications mobiles
  • Projets où la performance est une priorité
  • Lorsque la prise en charge universelle des plateformes est nécessaire