Passa al contenuto principale

Rilevamento dell'attività vocale

Streaming Sound Wave, insieme ai suoi tipi derivati come Capturable Sound Wave, supporta il rilevamento dell'attività vocale (VAD). Il VAD filtra i dati audio in ingresso per popolare il buffer interno solo quando viene rilevata la voce.

Il plugin offre due implementazioni VAD:

L'implementazione predefinita utilizza libfvad, una libreria leggera per il rilevamento dell'attività vocale che funziona in modo efficiente su tutte le piattaforme e le versioni del motore supportate da Runtime Audio Importer.

Utilizzo di base

Per abilitare il VAD dopo aver creato un Sound Wave, utilizza la funzione ToggleVAD:

Toggle VAD node

Dopo aver abilitato il VAD, puoi ripristinarlo in qualsiasi momento:

Nodo di ripristino VAD

Impostazioni VAD predefinite

Quando si utilizza il provider VAD predefinito, è possibile regolarne l'aggressività cambiando la modalità VAD:

Set VAD Mode node

Il parametro mode controlla l'aggressività con cui il VAD filtra l'audio. Valori più alti sono più restrittivi, cioè è meno probabile che segnalino falsi positivi ma potrebbero perdere parte del parlato.

Fornitori VAD

Dopo aver abilitato il VAD con la funzione ToggleVAD, puoi scegliere tra diversi fornitori di Voice Activity Detection in base alle tue esigenze. Il provider predefinito è integrato, mentre provider aggiuntivi come Silero VAD sono disponibili tramite plugin di estensione.

Set VAD Provider node

Silero VAD Extension

Silero VAD fornisce un rilevamento vocale più accurato utilizzando reti neurali. Per utilizzarlo:

  1. Assicurati che il plugin Runtime Audio Importer sia già installato nel tuo progetto

  2. Per UE 5.5 e versioni precedenti: Prima di scaricare il plugin di estensione Silero VAD, assicurati che NNERuntimeORT sia disabilitato nel tuo progetto. Avere NNERuntimeORT abilitato potrebbe causare crash quando si utilizza Silero VAD su queste versioni del motore a causa di conflitti

  3. Scarica il plugin di estensione Silero VAD da qui

  4. Estrai la cartella dall'archivio scaricato nella cartella Plugins del tuo progetto (crea questa cartella se non esiste)

  5. Per UE 5.6 e versioni successive: Modifica il file RuntimeAudioImporterSileroVAD.uplugin per aggiungere la dipendenza da NNERuntimeORT. Nel campo "Plugins", dopo l'inclusione di RuntimeAudioImporter, aggiungere:

,
{
"Name": "NNERuntimeORT",
"Enabled": true
}
  1. Ricostruisci il tuo progetto (questa estensione richiede un progetto C++)
important
  • Il VAD predefinito funziona con tutte le versioni del motore supportate da 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 e 5.8)

  • Silero VAD supporta Unreal Engine 4.27 e tutte le versioni UE5 (4.27, 5.0, 5.1, 5.2, 5.3, 5.4, 5.5, 5.6, 5.7 e 5.8)

  • UE 5.5 e precedenti: NNERuntimeORT deve essere disabilitato prima di utilizzare Silero VAD per prevenire crash dovuti a conflitti tra plugin. In UE 5.3 in particolare, anche NNERuntimeORTCpu e NNERuntimeORTGpu devono essere disabilitati

  • Requisito per UE 5.6+: A partire da Unreal Engine 5.6, l'estensione Silero VAD richiede che la dipendenza dal plugin NNERuntimeORT venga aggiunta manualmente al file .uplugin

  • Silero VAD è disponibile per Windows, Linux, Mac, Android (incluso Meta Quest) e iOS

  • Questa estensione è fornita come codice sorgente e richiede un progetto C++ per essere utilizzata

  • Per maggiori informazioni su come compilare manualmente i plugin, consulta il Building Plugins tutorial

Una volta installato, puoi selezionarlo come provider VAD utilizzando la funzione SetVADProvider con il provider di classe Silero.

Rilevamento Inizio e Fine del Parlato

Il rilevamento dell'attività vocale non solo rileva la presenza del parlato, ma consente anche di rilevare l'inizio e la fine dell'attività vocale. Questo è utile per attivare eventi quando il parlato inizia o termina durante la riproduzione o la cattura.

Puoi personalizzare la sensibilità del rilevamento dell'inizio e della fine del parlato regolando parametri come la durata minima del parlato e la durata del silenzio. Questi parametri aiutano a regolare con precisione il rilevamento per evitare falsi positivi, come rilevare rumori brevi o pause troppo brevi tra un parlato e l'altro.

Minimum Speech Duration

Il parametro Minimum Speech Duration imposta la quantità minima di attività vocale continua richiesta per attivare un evento di inizio parlato. Ciò aiuta a filtrare i rumori brevi che non dovrebbero essere considerati parlato, per garantire che solo l'attività vocale sostenuta venga riconosciuta. Il valore predefinito per Minimum Speech Duration è di 300 millisecondi.

Set Minimum Speech Duration node

Durata del Silenzio

Il parametro Durata del Silenzio imposta la durata del silenzio necessaria per attivare un evento di fine discorso. Ciò impedisce che il rilevamento vocale termini prematuramente durante le pause naturali tra le parole o le frasi. Il valore predefinito per Durata del Silenzio è di 500 millisecondi.

Nodo Set Silence Duration

Associazione ai delegati vocali

È possibile associarsi a delegati specifici quando il parlato inizia o termina. Ciò è utile per attivare comportamenti personalizzati in base all'attività vocale, come avviare o interrompere il riconoscimento del testo oppure regolare il volume di altre sorgenti audio.

Collega evento a On Speech Started Collega evento a On Speech Ended

Confronto tra fornitori VAD

Default VAD (libfvad)

Vantaggi:

  • Leggero ed efficiente
  • Funziona su tutte le piattaforme
  • Utilizzo minimo delle risorse
  • Adatto a dispositivi mobili e a basso consumo

Ideale per:

  • Rilevamento vocale semplice in ambienti silenziosi
  • Applicazioni mobili
  • Progetti in cui le prestazioni sono una priorità
  • Quando è richiesto il supporto universale per le piattaforme