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). L'AEC rimuove l'eco dall'audio del microfono catturato causato dalla riproduzione di un segnale di rendering (ad esempio, audio che viene riprodotto attraverso gli altoparlanti). Il risultato è una cattura vocale più pulita negli scenari di comunicazione in tempo reale.

Il plugin fornisce l'AEC tramite l'implementazione WebRTC AEC3, disponibile come un'estensione plugin leggera che include solo il codice AEC3 rilevante. WebRTC AEC3 è un cancellatore di eco acustica di alta qualità ampiamente utilizzato nelle applicazioni di comunicazione in tempo reale. Modella il percorso acustico tra altoparlanti e 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. Ricompila 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 e 5.7)
  • Questa estensione è fornita come codice sorgente e richiede un progetto C++ per essere utilizzata
  • Per maggiori informazioni su come compilare i plugin manualmente, consulta il tutorial Building Plugins

Utilizzo di Base

Il tipico flusso di lavoro AEC coinvolge tre passaggi:

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

Abilitare l'AEC

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

Toggle AEC node

Puoi verificare se l'AEC è attualmente abilitato:

Nodo Is AEC Enabled

Configurazione della Dimensione del Blocco di Rendering

WebRTC AEC3 richiede che l'audio venga elaborato in blocchi da 10 ms. Per garantire che l'onda sonora di rendering fornisca i dati audio nella dimensione del frame corretta, utilizza la funzione SetNumSamplesPerChunk sull'Imported Sound Wave di rendering (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 audio a 48000 Hz: 48000 / 100 = 480 campioni per chunk.

Nodo Set Num Samples Per Chunk

Associare l'Onda Sonora di Rendering

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

Nodo Bind AEC To Sound Wave Playback

Per scollegare l'onda sonora di rendering:

Unbind AEC From Sound Wave Playback node

Configurazione Aggiuntiva

Ritardo del Flusso

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

Nodo Set AEC Stream Delay

Reimpostazione AEC

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

Nodo Reset AEC

suggerimento

WebRTC AEC3 supporta frequenze di campionamento di 8000, 16000, 32000 e 48000 Hz. L'audio con frequenza non corrispondente viene ricampionato automaticamente, ma questo comporta un sovraccarico di prestazioni. Per la migliore qualità e prestazioni, utilizza 48000 Hz e fai corrispondere la configurazione audio effettiva sia dei flussi di cattura che di riproduzione.