FMUSER Wirless Trasmetti video e audio più facilmente!
es.fmuser.org
it.fmuser.org
fr.fmuser.org
de.fmuser.org
af.fmuser.org -> Afrikaans
sq.fmuser.org -> albanese
ar.fmuser.org -> Arabo
hy.fmuser.org -> Armenian
az.fmuser.org -> Azerbaigiano
eu.fmuser.org -> Basco
be.fmuser.org -> bielorusso
bg.fmuser.org -> Bulgaro
ca.fmuser.org -> Catalano
zh-CN.fmuser.org -> Cinese (semplificato)
zh-TW.fmuser.org -> Cinese (Tradizionale)
hr.fmuser.org -> croato
cs.fmuser.org -> ceco
da.fmuser.org -> danese
nl.fmuser.org -> Olandese
et.fmuser.org -> Estone
tl.fmuser.org -> Filippino
fi.fmuser.org -> finlandese
fr.fmuser.org -> Francese
gl.fmuser.org -> Galiziano
ka.fmuser.org -> georgiano
de.fmuser.org -> tedesco
el.fmuser.org -> Greca
ht.fmuser.org -> Creolo haitiano
iw.fmuser.org -> Ebraico
hi.fmuser.org -> Hindi
hu.fmuser.org -> Hungarian
is.fmuser.org -> Islandese
id.fmuser.org -> Indonesiano
ga.fmuser.org -> Irlandese
it.fmuser.org -> Italiano
ja.fmuser.org -> giapponese
ko.fmuser.org -> coreano
lv.fmuser.org -> Lettone
lt.fmuser.org -> Lithuanian
mk.fmuser.org -> Macedone
ms.fmuser.org -> Malese
mt.fmuser.org -> Maltese
no.fmuser.org -> Norwegian
fa.fmuser.org -> persiano
pl.fmuser.org -> polacco
pt.fmuser.org -> portoghese
ro.fmuser.org -> Romeno
ru.fmuser.org -> Russo
sr.fmuser.org -> Serbo
sk.fmuser.org -> slovacco
sl.fmuser.org -> Sloveno
es.fmuser.org -> spagnolo
sw.fmuser.org -> Swahili
sv.fmuser.org -> svedese
th.fmuser.org -> Thai
tr.fmuser.org -> turco
uk.fmuser.org -> Ucraino
ur.fmuser.org -> Urdu
vi.fmuser.org -> Vietnamita
cy.fmuser.org -> Gallese
yi.fmuser.org -> Yiddish
Quando utilizziamo strumenti come Skype e QQ per condurre senza problemi chat vocali e video con gli amici, ci siamo mai chiesti quali potenti tecnologie ci siano dietro? Questo articolo fornirà una breve introduzione alle tecnologie utilizzate nelle chiamate vocali di rete, che possono essere considerate come un assaggio del leopardo.
1. Modello concettuale
Le chiamate vocali via Internet sono generalmente bidirezionali, il che è simmetrico a livello di modello. Per semplicità, possiamo discutere il canale in una direzione. Una parte parla e l'altra parte sente la voce. Sembra semplice e veloce, ma il processo alla base è piuttosto complicato.
Questo è il modello più elementare costituito da cinque importanti collegamenti: acquisizione, codifica, trasmissione, decodifica e riproduzione.
(1) Raccolta vocale
La raccolta vocale si riferisce alla raccolta di dati audio da un microfono, ovvero la conversione di campioni sonori in segnali digitali. Coinvolge diversi parametri importanti: frequenza di campionamento, numero di bit di campionamento e numero di canali.
Per dirla semplicemente: la frequenza di campionamento è il numero di azioni di acquisizione in 1 secondo; il numero di bit di campionamento è la lunghezza dei dati ottenuti per ciascuna azione di acquisizione.
La dimensione di un frame audio è pari a: (frequenza di campionamento × numero di bit di campionamento × numero di canali × tempo)
Solitamente, la durata di un frame di campionamento è di 10 ms, ovvero ogni 10 ms di dati costituisce un frame audio. Supponendo: la frequenza di campionamento è 16k, il numero di bit di campionamento è 16 bit e il numero di canali è 1, quindi la dimensione di un frame audio di 10 ms è: (16000*16*1*0.01)/8 = 320 byte. Nella formula di calcolo, 0.01 è un secondo, ovvero 10 ms.
(2) Codifica
Supponendo di inviare direttamente il frame audio raccolto senza codifica, possiamo calcolare il requisito di larghezza di banda richiesto. Sempre l'esempio sopra: 320*100 = 32KBytes/s, se convertito in bit/s, è 256kb/s. Questo è un grande utilizzo della larghezza di banda. Con gli strumenti di monitoraggio del traffico di rete, possiamo scoprire che quando le chiamate vocali vengono effettuate con software IM come QQ, il traffico è di 3-5 KB/s, che è un ordine di grandezza inferiore al traffico originale. Ciò è dovuto principalmente alla tecnologia di codifica audio. Pertanto, nell'attuale applicazione di chiamata vocale, questo collegamento di codifica è indispensabile. Esistono molte tecnologie di codifica vocale comunemente utilizzate, come G.729, iLBC, AAC, SPEEX e così via.
(3) Trasmissione in rete
Quando un frame audio è codificato, può essere inviato al chiamante tramite la rete. Per le applicazioni in tempo reale come le conversazioni vocali, la bassa latenza e la stabilità sono molto importanti, il che richiede che la nostra rete trasmetta in modo molto fluido.
(4) Decodifica
Quando l'altra parte riceve il frame codificato, lo decodificherà per ripristinarlo sui dati che possono essere riprodotti direttamente dalla scheda audio.
(5) Riproduzione vocale
Una volta completata la decodifica, il fotogramma audio ottenuto può essere inviato alla scheda audio per la riproduzione. Allegato: puoi fare riferimento all'introduzione e al codice sorgente demo e al download dell'SDK di MPlayer, un componente di riproduzione vocale
2. Difficoltà e soluzioni nelle applicazioni pratiche
Se solo affidandosi alla suddetta tecnologia è possibile realizzare un sistema di dialogo sonoro applicato alla rete WAN, allora non c'è molto bisogno di scrivere questo articolo. È proprio che molti fattori realistici hanno introdotto molte sfide per il suddetto modello concettuale, il che rende non così semplice la realizzazione del sistema vocale di rete, che coinvolge molte tecnologie professionali. Naturalmente, la maggior parte di queste sfide ha già soluzioni mature. Prima di tutto, dobbiamo definire un sistema di dialogo vocale di "buon effetto". Penso che dovrebbe raggiungere i seguenti punti:
(1) Bassa latenza. Solo con una bassa latenza le due parti della chiamata possono avere un forte senso di Realtime. Naturalmente, questo dipende principalmente dalla velocità della rete e dalla distanza tra le posizioni fisiche dei due interlocutori. Dal punto di vista del software puro, la possibilità di ottimizzazione è molto ridotta.
(2) Basso rumore di fondo.
(3) Il suono è regolare, senza la sensazione di blocco o pausa.
(4) Non c'è risposta.
Di seguito parleremo delle tecnologie aggiuntive utilizzate nell'attuale sistema di dialogo vocale di rete una per una.
1. Cancellazione dell'eco AEC Quasi tutti ormai sono abituati a utilizzare direttamente la funzione di riproduzione vocale del PC o del notebook durante la chat vocale. Come tutti sanno, questa piccola abitudine ha rappresentato una grande sfida per la tecnologia vocale. Quando si utilizza la funzione altoparlante, il suono riprodotto dall'altoparlante verrà nuovamente raccolto dal microfono e ritrasmesso all'altra parte, in modo che l'altra parte possa sentire la propria eco. Pertanto, nelle applicazioni pratiche, è necessaria la funzione di cancellazione dell'eco. Dopo aver ottenuto il frame audio raccolto, questo spazio prima della codifica è il momento in cui il modulo di cancellazione dell'eco funziona. Il principio è semplicemente che il modulo di cancellazione dell'eco esegua alcune operazioni di tipo cancellazione nel frame audio raccolto in base al frame audio appena riprodotto, in modo da rimuovere l'eco dal frame raccolto. Questo processo è piuttosto complicato ed è anche correlato alle dimensioni della stanza in cui ti trovi quando stai chattando e alla tua posizione nella stanza, perché queste informazioni determinano la lunghezza del riflesso dell'onda sonora. Il modulo di cancellazione dell'eco intelligente può regolare dinamicamente i parametri interni per adattarsi al meglio all'ambiente attuale.
2. Soppressione del rumore DENOISE La soppressione del rumore, nota anche come elaborazione della riduzione del rumore, si basa sulle caratteristiche dei dati vocali per identificare la parte del rumore di fondo e filtrarla dai frame audio. Molti codificatori hanno questa funzione integrata.
3. JitterBuffer Il jitter buffer viene utilizzato per risolvere il problema del jitter della rete. Il cosiddetto jitter di rete significa che il ritardo di rete sarà sempre maggiore. In questo caso, anche se il mittente invia regolarmente pacchetti di dati (ad esempio, un pacchetto viene inviato ogni 100 ms), il destinatario non può ricevere la stessa temporizzazione. A volte non è possibile ricevere alcun pacchetto in un ciclo, a volte vengono ricevuti più pacchetti in un ciclo. In questo modo, il suono che sente il ricevitore è una carta una carta. JitterBuffer funziona dopo il decoder e prima della riproduzione vocale. In altre parole, dopo che la decodifica vocale è stata completata, il frame decodificato viene inserito nel JitterBuffer e quando arriva il callback di riproduzione della scheda audio, il frame più vecchio viene recuperato dal JitterBuffer per la riproduzione. La profondità del buffer di JitterBuffer dipende dal grado di jitter della rete. Maggiore è il jitter di rete, maggiore è la profondità del buffer e maggiore è il ritardo nella riproduzione dell'audio. Pertanto, JitterBuffer utilizza un ritardo maggiore in cambio di una riproduzione audio fluida, perché rispetto al suono una scheda una carta, un ritardo leggermente maggiore ma un effetto più fluido, la sua esperienza soggettiva è migliore. Ovviamente, la profondità del buffer di JitterBuffer non è costante, ma regolata dinamicamente in base ai cambiamenti nel grado di jitter della rete. Quando la rete viene ripristinata per essere molto liscia e non ostruita, la profondità del buffer sarà molto piccola, quindi l'aumento del ritardo di riproduzione dovuto a JitterBuffer sarà trascurabile.
4. Rilevamento muto VAD In una conversazione vocale, se una delle parti non sta parlando, non verrà generato traffico. A questo scopo viene utilizzato il rilevamento dell'audio. Il rilevamento del mute è solitamente integrato anche nel modulo di codifica. L'algoritmo di rilevamento silenzioso combinato con il precedente algoritmo di soppressione del rumore può identificare se al momento è presente un input vocale. Se non c'è input vocale, può codificare ed emettere un frame codificato speciale (ad esempio, la lunghezza è 0). Soprattutto in una videoconferenza a più persone, di solito parla solo una persona. In questo caso, l'uso della tecnologia di rilevamento silenzioso per risparmiare larghezza di banda è ancora molto considerevole.
5. Algoritmo di missaggio In una chat vocale con più persone, è necessario riprodurre i dati vocali di più persone contemporaneamente e la scheda audio riproduce solo un buffer. Pertanto, dobbiamo mescolare più voci in una. Questo è ciò che fa l'algoritmo di miscelazione. Anche se riesci a trovare un modo per bypassare il missaggio e lasciare che più suoni vengano riprodotti contemporaneamente, ai fini della cancellazione dell'eco, deve essere mixato in un'unica riproduzione, altrimenti, la cancellazione dell'eco può eliminare solo alcuni dei molteplici suoni a maggior parte. Fino in fondo. La miscelazione può essere eseguita sul lato client o sul lato server (che può risparmiare larghezza di banda a valle). Se vengono utilizzati canali P2P, il missaggio può essere eseguito solo sul lato client. Se si sta mixando sul client, di solito, il missaggio è l'ultimo collegamento prima della riproduzione. Questo articolo è un sommario approssimativo della nostra esperienza nell'implementazione della parte vocale di OMCS. Qui, abbiamo appena fatto una semplice descrizione di ogni collegamento nella figura, e ognuno di essi può essere scritto in un lungo foglio o anche in un libro. Pertanto, questo articolo è solo per fornire una mappa introduttiva per coloro che sono nuovi nello sviluppo di sistemi vocali di rete e fornire alcuni indizi.
|
Inserisci l'email per ricevere una sorpresa
es.fmuser.org
it.fmuser.org
fr.fmuser.org
de.fmuser.org
af.fmuser.org -> Afrikaans
sq.fmuser.org -> albanese
ar.fmuser.org -> Arabo
hy.fmuser.org -> Armenian
az.fmuser.org -> Azerbaigiano
eu.fmuser.org -> Basco
be.fmuser.org -> bielorusso
bg.fmuser.org -> Bulgaro
ca.fmuser.org -> Catalano
zh-CN.fmuser.org -> Cinese (semplificato)
zh-TW.fmuser.org -> Cinese (Tradizionale)
hr.fmuser.org -> croato
cs.fmuser.org -> ceco
da.fmuser.org -> danese
nl.fmuser.org -> Olandese
et.fmuser.org -> Estone
tl.fmuser.org -> Filippino
fi.fmuser.org -> finlandese
fr.fmuser.org -> Francese
gl.fmuser.org -> Galiziano
ka.fmuser.org -> georgiano
de.fmuser.org -> tedesco
el.fmuser.org -> Greca
ht.fmuser.org -> Creolo haitiano
iw.fmuser.org -> Ebraico
hi.fmuser.org -> Hindi
hu.fmuser.org -> Hungarian
is.fmuser.org -> Islandese
id.fmuser.org -> Indonesiano
ga.fmuser.org -> Irlandese
it.fmuser.org -> Italiano
ja.fmuser.org -> giapponese
ko.fmuser.org -> coreano
lv.fmuser.org -> Lettone
lt.fmuser.org -> Lithuanian
mk.fmuser.org -> Macedone
ms.fmuser.org -> Malese
mt.fmuser.org -> Maltese
no.fmuser.org -> Norwegian
fa.fmuser.org -> persiano
pl.fmuser.org -> polacco
pt.fmuser.org -> portoghese
ro.fmuser.org -> Romeno
ru.fmuser.org -> Russo
sr.fmuser.org -> Serbo
sk.fmuser.org -> slovacco
sl.fmuser.org -> Sloveno
es.fmuser.org -> spagnolo
sw.fmuser.org -> Swahili
sv.fmuser.org -> svedese
th.fmuser.org -> Thai
tr.fmuser.org -> turco
uk.fmuser.org -> Ucraino
ur.fmuser.org -> Urdu
vi.fmuser.org -> Vietnamita
cy.fmuser.org -> Gallese
yi.fmuser.org -> Yiddish
FMUSER Wirless Trasmetti video e audio più facilmente!
Contatti
Indirizzo:
No.305 Room HuiLan Building No.273 Huanpu Road Guangzhou Cina 510620
Categorie
Newsletter