Passa al contenuto principale

Cancellazione dell'eco acustica

Streaming Sound Wave, insieme ai suoi tipi derivati come Capturable Sound Wave, supporta la cancellazione dell'eco acustica (AEC). AEC rimuove l'eco dall'audio catturato dal microfono causato dalla riproduzione di un segnale di rendering (ad esempio, audio riprodotto attraverso gli altoparlanti). Il risultato è una cattura vocale più pulita in scenari di comunicazione in tempo reale.

Il plugin fornisce l'AEC attraverso l'implementazione WebRTC AEC3, disponibile come plugin di estensione leggero che include solo il codice AEC3 pertinente. WebRTC AEC3 è un cancellatore di eco acustica di alta qualità ampiamente utilizzato nelle applicazioni di comunicazione in tempo reale. Modella il percorso acustico tra gli altoparlanti e il microfono per sottrarre l'eco dal segnale catturato.

Installazione

Per utilizzare la cancellazione dell'eco acustica, è necessario installare il plugin di estensione WebRTC AEC3:

  1. Assicurati che il plugin Runtime Audio Importer sia già installato nel tuo progetto
  2. Scarica il plugin di estensione WebRTC AEC3 da qui
  3. Estrai la cartella dall'archivio scaricato nella cartella Plugins del tuo progetto (crea questa cartella se non esiste)
  4. Ricostruisci il tuo progetto (questa estensione richiede un progetto C++)
important
  • WebRTC AEC3 supporta 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)
  • Questa estensione viene fornita come codice sorgente e richiede un progetto C++ per l'uso
  • WebRTC AEC3 è disponibile per Windows, Linux, Mac, Android (incluso Meta Quest) e iOS
  • Per maggiori informazioni su come compilare manualmente i plugin, consulta il tutorial Building Plugins

Utilizzo di base

Il tipico flusso di lavoro AEC prevede tre passaggi:

  1. Abilita AEC sulla tua sound wave di streaming/catturabile
  2. Configura la dimensione del chunk di rendering sulla sound wave di rendering per la consegna di frame a 10 ms
  3. Associa la sound wave di rendering il cui audio verrà utilizzato per cancellare l'eco dal segnale catturato

Abilitazione di AEC

Per abilitare l'AEC dopo aver creato una sound wave di streaming, utilizza la funzione ToggleAEC. Devi specificare la frequenza di campionamento e il numero di canali per il processore AEC. Se l'audio in ingresso di cattura o di rendering non corrisponde a questi valori, verrà ricampionato automaticamente; tuttavia, la frequenza di campionamento configurata influisce comunque sulla qualità (ad esempio, 48000 Hz produrrà una migliore cancellazione dell'eco rispetto a 16000 Hz) e sulle prestazioni, quindi vale la pena scegliere deliberatamente questi valori piuttosto che lasciare che avvenga il ricampionamento.

Nodo Toggle AEC

Puoi verificare se l'AEC è attualmente abilitato:

Nodo Is AEC Enabled

Configurazione della dimensione del blocco di render

WebRTC AEC3 richiede che l'audio venga elaborato in blocchi da 10 ms. Per garantire che l'onda sonora di render fornisca i dati audio nella dimensione corretta del frame, utilizza la funzione SetNumSamplesPerChunk sulla [Imported Sound Wave] di render (l'onda sonora riprodotta attraverso gli altoparlanti).

La formula per calcolare il numero corretto di campioni per blocco è:

Samples per chunk=SampleRate100\text{Samples per chunk} = \frac{\text{SampleRate}}{100}

Ad esempio, per l'audio a 48000 Hz: 48000 / 100 = 480 campioni per chunk.

Nodo Imposta Numero Campioni per Chunk

Associazione della Render Sound Wave

Dopo aver abilitato l'AEC e configurato la dimensione dei chunk, associa la render sound wave il cui audio verrà utilizzato per identificare e rimuovere l'eco dal segnale di acquisizione. Questa è tipicamente l'onda sonora riprodotta attraverso gli altoparlanti che il microfono potrebbe captare:

Bind AEC To Sound Wave Playback node

Per scollegare l'onda sonora di rendering:

Unbind AEC From Sound Wave Playback node

Configurazione aggiuntiva

Ritardo dello stream

È possibile impostare il ritardo di streaming stimato (in millisecondi) tra i percorsi audio di rendering e di acquisizione. Questo tiene conto della latenza hardware e di sistema, sebbene WebRTC AEC3 possa stimarlo automaticamente in molti casi:

Set AEC Stream Delay node

Reimpostazione dell'AEC

È possibile reimpostare lo stato del processore AEC interno in qualsiasi momento, cancellando qualsiasi modello di eco accumulato:

Reimposta nodo AEC

suggerimento

WebRTC AEC3 supporta frequenze di campionamento di 8000, 16000, 32000 e 48000 Hz. L'audio non corrispondente viene ricampionato automaticamente, ma ciò comporta un overhead di prestazioni. Per la migliore qualità e prestazioni, utilizzare 48000 Hz e far corrispondere la configurazione audio effettiva sia dei flussi di acquisizione che di riproduzione.