Domanda

che sto facendo prova di latenza del suono. il dispositivo riceverà sia un segnale acustico o un segnale di silenzio. Come posso distinguere tra questi segnali. Mi aiuti per favore. Grazie in anticipo ..

È stato utile?

Soluzione

Dipende. Se l'audio digitale è stata generata sinteticamente (come da un'altra funzione) e si può quindi fare affidamento sul fatto che, in un caso, si otterrà il vero silenzio digitale (campioni azzerate), allora la soluzione è semplicemente quello di testare per i campioni azzerati sopra la finestra di misurazione. Qualcosa di diverso da zero non è il silenzio.

Direi, però, che hai a che fare con l'audio del mondo reale registrato da, diciamo, un microfono. Se questo è il caso, quindi misurare l'energia in una finestra di tempo e confrontandolo con una soglia effettivamente senso. I due parametri che dovrete determinare sono:

  1. livello di energia soglia
  2. Lunghezza della finestra di tempo

Se la soglia è troppo basso, il tasso di falsi positivi sarà troppo alto; rumore di fondo che non è un segnale acustico può essere interpretato come un segnale acustico. Al contrario, se la soglia è troppo alta, il sistema potrebbe classificare un segnale acustico come rumore. Per fortuna, se si sta facendo l'audio con un ragionevolmente basso rumore di fondo, le prestazioni non sarà molto sensibile a questa soglia.

lunghezze finestra più lunghi ridurre questi tassi di falsi positivi / negativi, rendendo così il sistema più robusto, ma l'usabilità del sistema possono soffrire con eccessivamente lunghe finestre. Per esempio, i sistemi telefonici automatizzati classificano le pressioni dei tasti per aiutare la navigazione del menu. Se l'utente è tenuto a tenere ogni tasto per tre secondi alla volta, la precisione potrebbe migliorare, ma a scapito di quasi tutti usabilità.

Vi incoraggio a non prendere una decisione basata esclusivamente sul un campione massimo come suggerisce Paul. Facendo questo mina la resistenza ai falsi positivi forniti dalla lunghezza della finestra di campionamento.

Altri suggerimenti

Osservare circa 10 ms valore di campioni (per esempio 441 campioni a 44,1 kHz) e misurare l'energia in quel buffer. Se è al di sopra di una certa soglia è un segnale e se è al di sotto della soglia di allora è il silenzio.

Per misurare energia solo sommare il valore quadrato di ogni campione nel buffer e dividere per il numero di campioni.

E se usano il loop back metodo, non il rumore prende in considerazione? Ad esempio, se mandano un segnale acustico al secondo dispositivo, loopback e rinviarlo al mittente, inviare un pacchetto silenzio e fare lo stesso, non Possono misurare la latenza a livello mittente (condizione che conoscono la latenza di rete attuale) .

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top