FMUSER Wireless Video- und Audioübertragung einfacher!
es.fmuser.org
it.fmuser.org
fr.fmuser.org
de.fmuser.org
af.fmuser.org -> Afrikaans
sq.fmuser.org -> Albanisch
ar.fmuser.org -> Arabisch
hy.fmuser.org -> Armenisch
az.fmuser.org -> Aserbaidschanisch
eu.fmuser.org -> Baskisch
be.fmuser.org -> Weißrussisch
bg.fmuser.org -> Bulgarisch
ca.fmuser.org -> Katalanisch
zh-CN.fmuser.org -> Chinesisch (vereinfacht)
zh-TW.fmuser.org -> Chinesisch (traditionell)
hr.fmuser.org -> Kroatisch
cs.fmuser.org -> Tschechisch
da.fmuser.org -> Dänisch
nl.fmuser.org -> Niederländisch
et.fmuser.org -> Estnisch
tl.fmuser.org -> Philippinisch
fi.fmuser.org -> Finnisch
fr.fmuser.org -> Französisch
gl.fmuser.org -> Galizisch
ka.fmuser.org -> Georgisch
de.fmuser.org -> Deutsch
el.fmuser.org -> Griechisch
ht.fmuser.org -> Haitianisches Kreol
iw.fmuser.org -> Hebräisch
hi.fmuser.org -> Hindi
hu.fmuser.org -> Ungarisch
is.fmuser.org -> Isländisch
id.fmuser.org -> Indonesisch
ga.fmuser.org -> Irisch
it.fmuser.org -> Italienisch
ja.fmuser.org -> Japanisch
ko.fmuser.org -> Koreanisch
lv.fmuser.org -> Lettisch
lt.fmuser.org -> Litauisch
mk.fmuser.org -> Mazedonisch
ms.fmuser.org -> Malaiisch
mt.fmuser.org -> Malteser
no.fmuser.org -> Norwegisch
fa.fmuser.org -> Persisch
pl.fmuser.org -> Polnisch
pt.fmuser.org -> Portugiesisch
ro.fmuser.org -> Rumänisch
ru.fmuser.org -> Russisch
sr.fmuser.org -> Serbisch
sk.fmuser.org -> Slowakisch
sl.fmuser.org -> Slowenisch
es.fmuser.org -> Spanisch
sw.fmuser.org -> Suaheli
sv.fmuser.org -> Schwedisch
th.fmuser.org -> Thai
tr.fmuser.org -> Türkisch
uk.fmuser.org -> Ukrainisch
ur.fmuser.org -> Urdu
vi.fmuser.org -> Vietnamesisch
cy.fmuser.org -> Walisisch
yi.fmuser.org -> Jiddisch
Wenn wir Tools wie Skype und QQ verwenden, um reibungslos Sprach- und Video-Chats mit Freunden zu führen, haben wir uns dann jemals gefragt, welche leistungsstarken Technologien dahinterstecken? Dieser Artikel gibt eine kurze Einführung in die Technologien, die bei Netzwerk-Sprachanrufen verwendet werden, was als ein Vorgeschmack auf den Leoparden angesehen werden kann.
1. Konzeptionelles Modell
Internet-Sprachanrufe erfolgen normalerweise in beide Richtungen, was auf Modellebene symmetrisch ist. Der Einfachheit halber können wir den Kanal in eine Richtung diskutieren. Ein Teilnehmer spricht und der andere Teilnehmer hört die Stimme. Es scheint einfach und schnell, aber der Prozess dahinter ist ziemlich kompliziert.
Dies ist das grundlegendste Modell, das aus fünf wichtigen Verknüpfungen besteht: Erfassung, Kodierung, Übertragung, Dekodierung und Wiedergabe.
(1) Sprachsammlung
Unter Sprachsammlung versteht man das Sammeln von Audiodaten von einem Mikrofon, also die Umwandlung von Klangproben in digitale Signale. Sie umfasst mehrere wichtige Parameter: Abtastfrequenz, Anzahl der Abtastbits und Anzahl der Kanäle.
Einfach ausgedrückt: Die Abtastfrequenz ist die Anzahl der Erfassungsaktionen in 1 Sekunde; Die Anzahl der Abtastbits ist die Länge der Daten, die für jede Erfassungsaktion erhalten werden.
Die Größe eines Audioframes ist gleich: (Abtastfrequenz × Anzahl der Abtastbits × Anzahl der Kanäle × Zeit)
Normalerweise beträgt die Dauer eines Abtastrahmens 10 ms, dh alle 10 ms Daten bilden einen Audiorahmen. Angenommen: die Abtastrate beträgt 16k, die Anzahl der Abtastbits beträgt 16bit und die Anzahl der Kanäle ist 1, dann ist die Größe eines 10ms Audioframes: (16000*16*1*0.01)/8 = 320 Bytes. In der Berechnungsformel ist 0.01 eine Sekunde, also 10 ms.
(2) Kodierung
Angenommen, wir senden den gesammelten Audio-Frame direkt ohne Kodierung, dann können wir den erforderlichen Bandbreitenbedarf berechnen. Noch das obige Beispiel: 320*100 = 32KBytes/s, umgerechnet in Bits/s sind es 256kb/s. Dies ist eine Menge Bandbreitennutzung. Mit Tools zur Überwachung des Netzwerkverkehrs können wir feststellen, dass bei Sprachanrufen mit IM-Software wie QQ der Datenverkehr 3-5 KB/s beträgt, was eine Größenordnung kleiner ist als der ursprüngliche Datenverkehr. Dies ist hauptsächlich auf die Audiocodierungstechnologie zurückzuführen. Daher ist diese Kodierungsverbindung in der tatsächlichen Sprachanrufanwendung unverzichtbar. Es gibt viele häufig verwendete Sprachcodierungstechnologien wie G.729, iLBC, AAC, SPEEX usw.
(3) Netzwerkübertragung
Wenn ein Audioframe codiert ist, kann es über das Netzwerk an den Anrufer gesendet werden. Für Echtzeitanwendungen wie Sprachgespräche sind geringe Latenz und Stabilität sehr wichtig, was eine sehr reibungslose Übertragung unseres Netzwerks erfordert.
(4) Dekodierung
Wenn der andere Teilnehmer den codierten Frame empfängt, wird er ihn decodieren, um ihn in Daten wiederherzustellen, die direkt von der Soundkarte abgespielt werden können.
(5) Sprachwiedergabe
Nachdem die Dekodierung abgeschlossen ist, kann der erhaltene Audiorahmen zur Wiedergabe an die Soundkarte gesendet werden. Anhang: Sie können sich auf die Einführung und den Demo-Quellcode und den SDK-Download von MPlayer, einer Sprachwiedergabekomponente, beziehen
2. Schwierigkeiten und Lösungen in der praktischen Anwendung
Wenn man sich nur auf die oben erwähnte Technologie verlassen kann, um ein auf das Weitverkehrsnetz angewendetes Klangdialogsystem zu realisieren, dann ist es nicht notwendig, diesen Artikel zu schreiben. Gerade viele realistische Faktoren haben viele Herausforderungen für das oben erwähnte konzeptionelle Modell mit sich gebracht, was die Realisierung des Netzwerk-Sprachsystems, das viele professionelle Technologien beinhaltet, nicht so einfach macht. Natürlich gibt es für die meisten dieser Herausforderungen bereits ausgereifte Lösungen. Zunächst müssen wir ein Sprachdialogsystem mit "guter Wirkung" definieren. Ich denke, es sollte folgende Punkte erreichen:
(1) Niedrige Latenz. Nur bei geringer Latenz können die beiden Gesprächspartner ein starkes Echtzeitgefühl haben. Dies hängt natürlich hauptsächlich von der Geschwindigkeit des Netzwerks und der Entfernung zwischen den physischen Standorten der beiden Gesprächsteilnehmer ab. Aus Sicht der reinen Software ist die Optimierungsmöglichkeit sehr gering.
(2) Geringe Hintergrundgeräusche.
(3) Der Klang ist weich, ohne das Gefühl, stecken zu bleiben oder anzuhalten.
(4) Es erfolgt keine Antwort.
Im Folgenden werden wir nacheinander über die zusätzlichen Technologien sprechen, die im eigentlichen Netzwerk-Sprachdialogsystem verwendet werden.
1. Echounterdrückung AEC Fast jeder ist es mittlerweile gewohnt, während des Voice-Chats direkt die Sprachwiedergabefunktion des PCs oder Notebooks zu verwenden. Wie jeder weiß, hat diese kleine Angewohnheit die Sprachtechnologie vor eine große Herausforderung gestellt. Bei Verwendung der Lautsprecherfunktion wird der vom Lautsprecher abgespielte Ton vom Mikrofon wieder aufgenommen und an den Gesprächspartner zurückgesendet, sodass der Gesprächspartner sein eigenes Echo hören kann. Daher ist in praktischen Anwendungen die Funktion der Echokompensation notwendig. Nachdem der gesammelte Audiorahmen erhalten wurde, ist diese Lücke vor der Codierung die Zeit, in der das Echokompensationsmodul arbeitet. Das Prinzip besteht einfach darin, dass das Echokompensationsmodul einige löschungsähnliche Operationen in dem gesammelten Audiorahmen entsprechend dem gerade abgespielten Audiorahmen durchführt, um das Echo aus dem gesammelten Rahmen zu entfernen. Dieser Vorgang ist ziemlich kompliziert und hängt auch von der Größe des Raums ab, in dem Sie sich beim Chatten befinden, und Ihrer Position im Raum, da diese Informationen die Länge der Schallwellenreflexion bestimmen. Das intelligente Echokompensationsmodul kann die internen Parameter dynamisch anpassen, um sich optimal an die aktuelle Umgebung anzupassen.
2. Rauschunterdrückung DENOISE Rauschunterdrückung, auch als Rauschunterdrückung bekannt, basiert auf den Eigenschaften von Sprachdaten, um den Teil des Hintergrundrauschens zu erkennen und aus Audioframes herauszufiltern. Viele Encoder haben diese Funktion eingebaut.
3. JitterBuffer Der Jitterbuffer wird verwendet, um das Problem des Netzwerkjitters zu lösen. Der sogenannte Netzwerkjitter bedeutet, dass die Netzwerkverzögerung größer und kleiner wird. Selbst wenn der Sender regelmäßig Datenpakete sendet (beispielsweise wird alle 100 ms ein Paket gesendet), kann der Empfänger in diesem Fall nicht das gleiche Timing empfangen. Manchmal kann kein Paket in einem Zyklus empfangen werden, und manchmal werden mehrere Pakete in einem Zyklus empfangen. Auf diese Weise ist der Ton, den der Empfänger hört, eine Karte, eine Karte. JitterBuffer arbeitet nach dem Decoder und vor der Sprachwiedergabe. Das heißt, nachdem die Sprachdecodierung abgeschlossen ist, wird der decodierte Frame in den JitterBuffer gestellt, und wenn der Playback-Callback der Soundkarte eintrifft, wird der älteste Frame aus dem JitterBuffer zur Wiedergabe abgerufen. Die Puffertiefe von JitterBuffer hängt vom Grad des Netzwerkjitters ab. Je größer der Netzwerk-Jitter, desto größer die Puffertiefe und desto größer die Verzögerung bei der Audiowiedergabe. Daher verwendet JitterBuffer eine höhere Verzögerung im Austausch für eine reibungslose Soundwiedergabe, da im Vergleich zum Sound einer Karte eine Karte eine etwas größere Verzögerung, aber eine glattere Wirkung hat, seine subjektive Erfahrung ist besser. Natürlich ist die Puffertiefe von JitterBuffer nicht konstant, sondern wird dynamisch an Änderungen des Netzwerk-Jitter-Grades angepasst. Wenn das Netzwerk wieder sehr glatt und ungehindert ist, ist die Puffertiefe sehr gering, so dass die Zunahme der Wiedergabeverzögerung aufgrund von JitterBuffer vernachlässigbar ist.
4. Stummschaltungserkennung VAD Wenn in einem Sprachgespräch ein Teilnehmer nicht spricht, wird kein Verkehr generiert. Dazu wird die Mute-Erkennung verwendet. Die Mute-Erkennung ist in der Regel auch im Kodiermodul integriert. Der Algorithmus zur stillen Erkennung in Kombination mit dem vorherigen Algorithmus zur Geräuschunterdrückung kann erkennen, ob derzeit eine Spracheingabe erfolgt. Wenn keine Spracheingabe erfolgt, kann es einen speziell codierten Frame codieren und ausgeben (z. B. die Länge ist 0). Gerade bei einer Mehrpersonen-Videokonferenz spricht meist nur eine Person. In diesem Fall ist der Einsatz von Silent-Detection-Technologie zur Einsparung von Bandbreite noch sehr beachtlich.
5. Mischalgorithmus In einem Sprachchat mit mehreren Personen müssen wir die Sprachdaten mehrerer Personen gleichzeitig abspielen, und die Soundkarte spielt nur einen Puffer ab. Daher müssen wir mehrere Stimmen zu einer mischen. Das macht der Mischalgorithmus. Selbst wenn Sie einen Weg finden können, das Mischen zu umgehen und mehrere Sounds gleichzeitig abspielen zu lassen, muss diese zum Zweck der Echounterdrückung in eine Wiedergabe gemischt werden, andernfalls kann die Echounterdrückung nur einige der mehreren Töne bei eliminate die meisten. Den ganzen Weg. Das Mischen kann auf der Clientseite oder auf der Serverseite erfolgen (was Downstream-Bandbreite sparen kann). Wenn P2P-Kanäle verwendet werden, kann das Mischen nur auf der Client-Seite erfolgen. Wenn es auf dem Client mischt, ist das Mischen normalerweise der letzte Link vor dem Abspielen. Dieser Artikel ist eine grobe Zusammenfassung unserer Erfahrungen bei der Implementierung des Voice-Teils von OMCS. Hier haben wir nur eine einfache Beschreibung jedes Links in der Abbildung gemacht, und jeder von ihnen kann in ein langes Papier oder sogar in ein Buch geschrieben werden. Daher soll dieser Artikel nur eine einführende Karte für diejenigen bieten, die neu in der Entwicklung von Netzwerk-Sprachsystemen sind, und einige Hinweise geben.
|
Geben Sie eine E-Mail-Adresse ein, um eine Überraschung zu erhalten
es.fmuser.org
it.fmuser.org
fr.fmuser.org
de.fmuser.org
af.fmuser.org -> Afrikaans
sq.fmuser.org -> Albanisch
ar.fmuser.org -> Arabisch
hy.fmuser.org -> Armenisch
az.fmuser.org -> Aserbaidschanisch
eu.fmuser.org -> Baskisch
be.fmuser.org -> Weißrussisch
bg.fmuser.org -> Bulgarisch
ca.fmuser.org -> Katalanisch
zh-CN.fmuser.org -> Chinesisch (vereinfacht)
zh-TW.fmuser.org -> Chinesisch (traditionell)
hr.fmuser.org -> Kroatisch
cs.fmuser.org -> Tschechisch
da.fmuser.org -> Dänisch
nl.fmuser.org -> Niederländisch
et.fmuser.org -> Estnisch
tl.fmuser.org -> Philippinisch
fi.fmuser.org -> Finnisch
fr.fmuser.org -> Französisch
gl.fmuser.org -> Galizisch
ka.fmuser.org -> Georgisch
de.fmuser.org -> Deutsch
el.fmuser.org -> Griechisch
ht.fmuser.org -> Haitianisches Kreol
iw.fmuser.org -> Hebräisch
hi.fmuser.org -> Hindi
hu.fmuser.org -> Ungarisch
is.fmuser.org -> Isländisch
id.fmuser.org -> Indonesisch
ga.fmuser.org -> Irisch
it.fmuser.org -> Italienisch
ja.fmuser.org -> Japanisch
ko.fmuser.org -> Koreanisch
lv.fmuser.org -> Lettisch
lt.fmuser.org -> Litauisch
mk.fmuser.org -> Mazedonisch
ms.fmuser.org -> Malaiisch
mt.fmuser.org -> Malteser
no.fmuser.org -> Norwegisch
fa.fmuser.org -> Persisch
pl.fmuser.org -> Polnisch
pt.fmuser.org -> Portugiesisch
ro.fmuser.org -> Rumänisch
ru.fmuser.org -> Russisch
sr.fmuser.org -> Serbisch
sk.fmuser.org -> Slowakisch
sl.fmuser.org -> Slowenisch
es.fmuser.org -> Spanisch
sw.fmuser.org -> Suaheli
sv.fmuser.org -> Schwedisch
th.fmuser.org -> Thai
tr.fmuser.org -> Türkisch
uk.fmuser.org -> Ukrainisch
ur.fmuser.org -> Urdu
vi.fmuser.org -> Vietnamesisch
cy.fmuser.org -> Walisisch
yi.fmuser.org -> Jiddisch
FMUSER Wireless Video- und Audioübertragung einfacher!
Kontakt
Adresse
Nr.305 Zimmer HuiLan Gebäude Nr.273 Huanpu Road Guangzhou China 510620
Kategorien
Newsletter