FMUSER Wirless transmet la vidéo et l'audio plus facilement!
es.fmuser.org
it.fmuser.org
fr.fmuser.org
de.fmuser.org
af.fmuser.org -> Afrikaans
sq.fmuser.org -> albanais
ar.fmuser.org -> arabe
hy.fmuser.org -> Armenian
az.fmuser.org -> azerbaïdjanais
eu.fmuser.org -> basque
be.fmuser.org -> biélorusse
bg.fmuser.org -> Bulgare
ca.fmuser.org -> catalan
zh-CN.fmuser.org -> chinois (simplifié)
zh-TW.fmuser.org -> Chinois (traditionnel)
hr.fmuser.org -> croate
cs.fmuser.org -> tchèque
da.fmuser.org -> danois
nl.fmuser.org -> Néerlandais
et.fmuser.org -> estonien
tl.fmuser.org -> Philippin
fi.fmuser.org -> finnois
fr.fmuser.org -> Français
gl.fmuser.org -> Galicien
ka.fmuser.org -> géorgien
de.fmuser.org -> allemand
el.fmuser.org -> Grec
ht.fmuser.org -> Créole haïtien
iw.fmuser.org -> hébreu
hi.fmuser.org -> Hindi
hu.fmuser.org -> Hongrois
is.fmuser.org -> islandais
id.fmuser.org -> indonésien
ga.fmuser.org -> irlandais
it.fmuser.org -> Italien
ja.fmuser.org -> japonais
ko.fmuser.org -> coréen
lv.fmuser.org -> letton
lt.fmuser.org -> Lituanien
mk.fmuser.org -> macédonien
ms.fmuser.org -> malais
mt.fmuser.org -> maltais
no.fmuser.org -> Norwegian
fa.fmuser.org -> persan
pl.fmuser.org -> polonais
pt.fmuser.org -> portugais
ro.fmuser.org -> Roumain
ru.fmuser.org -> russe
sr.fmuser.org -> serbe
sk.fmuser.org -> slovaque
sl.fmuser.org -> Slovène
es.fmuser.org -> espagnol
sw.fmuser.org -> Swahili
sv.fmuser.org -> suédois
th.fmuser.org -> Thai
tr.fmuser.org -> turc
uk.fmuser.org -> ukrainien
ur.fmuser.org -> ourdou
vi.fmuser.org -> Vietnamienne
cy.fmuser.org -> Gallois
yi.fmuser.org -> Yiddish
Lorsque nous utilisons des outils tels que Skype et QQ pour mener en douceur des conversations vocales et vidéo avec des amis, nous sommes-nous déjà demandé quelles technologies puissantes se cachent derrière ? Cet article donnera une brève introduction aux technologies utilisées dans les appels vocaux en réseau, qui peuvent être considérées comme un aperçu du léopard.
1. Modèle conceptuel
Les appels vocaux Internet sont généralement bidirectionnels, ce qui est symétrique au niveau du modèle. Par souci de simplicité, nous pouvons discuter du canal dans un sens. Une partie parle et l'autre partie entend la voix. Cela semble simple et rapide, mais le processus sous-jacent est assez compliqué.
Il s'agit du modèle le plus basique composé de cinq liens importants : l'acquisition, l'encodage, la transmission, le décodage et la lecture.
(1) Collecte de voix
La collecte vocale fait référence à la collecte de données audio à partir d'un microphone, c'est-à-dire la conversion d'échantillons sonores en signaux numériques. Il fait intervenir plusieurs paramètres importants : la fréquence d'échantillonnage, le nombre de bits d'échantillonnage et le nombre de canaux.
Pour faire simple: la fréquence d'échantillonnage est le nombre d'actions d'acquisition en 1 seconde; le nombre de bits d'échantillonnage est la longueur des données obtenues pour chaque action d'acquisition.
La taille d'une trame audio est égale à : (fréquence d'échantillonnage × nombre de bits d'échantillonnage × nombre de canaux × temps)
Habituellement, la durée d'une trame d'échantillonnage est de 10 ms, c'est-à-dire que toutes les 10 ms de données constituent une trame audio. En supposant : le taux d'échantillonnage est de 16 k, le nombre de bits d'échantillonnage est de 16 bits et le nombre de canaux est de 1, alors la taille d'une trame audio de 10 ms est : (16000*16*1*0.01)/8 = 320 octets. Dans la formule de calcul, 0.01 est une seconde, c'est-à-dire 10 ms.
(2) Codage
En supposant que nous envoyions la trame audio collectée directement sans encodage, nous pouvons alors calculer la bande passante requise. Toujours l'exemple ci-dessus : 320*100 = 32 Ko/s, si converti en bits/s, c'est 256 Ko/s. C'est beaucoup d'utilisation de la bande passante. Avec les outils de surveillance du trafic réseau, nous pouvons constater que lorsque les appels vocaux sont passés avec un logiciel de messagerie instantanée comme QQ, le trafic est de 3 à 5 Ko/s, ce qui est un ordre de grandeur inférieur au trafic d'origine. Cela est principalement dû à la technologie de codage audio. Par conséquent, dans l'application d'appel vocal proprement dite, ce lien de codage est indispensable. Il existe de nombreuses technologies de codage de la parole couramment utilisées, telles que G.729, iLBC, AAC, SPEEX, etc.
(3) Transmission réseau
Lorsqu'une trame audio est encodée, elle peut être envoyée à l'appelant via le réseau. Pour les applications en temps réel telles que les conversations vocales, la faible latence et la stabilité sont très importantes, ce qui nécessite que notre réseau transmette de manière très fluide.
(4) Décodage
Lorsque l'autre partie reçoit la trame encodée, elle la décode pour la restituer en données pouvant être lues directement par la carte son.
(5) Lecture vocale
Une fois le décodage terminé, la trame audio obtenue peut être soumise à la carte son pour la lecture. Pièce jointe : vous pouvez vous référer à l'introduction et au code source de la démo et au téléchargement du SDK de MPlayer, un composant de lecture vocale
2. Difficultés et solutions dans les applications pratiques
Si seule la technologie mentionnée ci-dessus permet de réaliser un système de dialogue solide appliqué au réseau étendu, alors il n'est pas vraiment nécessaire d'écrire cet article. C'est précisément que de nombreux facteurs réalistes ont introduit de nombreux défis pour le modèle conceptuel mentionné ci-dessus, ce qui rend la réalisation du système vocal en réseau pas si simple, ce qui implique de nombreuses technologies professionnelles. Bien sûr, la plupart de ces défis ont déjà des solutions matures. Tout d'abord, nous devons définir un système de dialogue vocal "à bon effet". Je pense qu'il devrait atteindre les points suivants:
(1) Faible latence. Ce n'est qu'avec une faible latence que les deux parties à l'appel peuvent avoir un sens aigu du temps réel. Bien entendu, cela dépend principalement de la vitesse du réseau et de la distance entre les emplacements physiques des deux parties à l'appel. Du point de vue du logiciel pur, la possibilité d'optimisation est très faible.
(2) Faible bruit de fond.
(3) Le son est lisse, sans sensation de blocage ou de pause.
(4) Il n'y a pas de réponse.
Ci-dessous, nous parlerons des technologies supplémentaires utilisées dans le système de dialogue vocal réseau actuel une par une.
1. Annulation d'écho AEC Presque tout le monde est maintenant habitué à utiliser directement la fonction de lecture vocale sur PC ou ordinateur portable pendant le chat vocal. Comme tout le monde le sait, cette petite habitude a posé un grand défi pour la technologie vocale. Lors de l'utilisation de la fonction haut-parleur, le son joué par le haut-parleur sera à nouveau capté par le microphone et retransmis à l'autre partie, afin que celle-ci puisse entendre son propre écho. Par conséquent, dans les applications pratiques, la fonction d'annulation d'écho est nécessaire. Une fois la trame audio collectée obtenue, cet écart avant codage est le temps de fonctionnement du module d'annulation d'écho. Le principe est simplement que le module d'annulation d'écho effectue des opérations de type annulation dans la trame audio collectée en fonction de la trame audio qui vient d'être jouée, de manière à supprimer l'écho de la trame collectée. Ce processus est assez compliqué et est également lié à la taille de la pièce dans laquelle vous vous trouvez lorsque vous discutez et à votre emplacement dans la pièce, car cette information détermine la longueur de la réflexion des ondes sonores. Le module d'annulation d'écho intelligent peut ajuster dynamiquement les paramètres internes pour s'adapter au mieux à l'environnement actuel.
2. Suppression du bruit DENOISE La suppression du bruit, également connue sous le nom de traitement de réduction du bruit, est basée sur les caractéristiques des données vocales pour identifier la partie du bruit de fond et la filtrer hors des trames audio. De nombreux encodeurs ont cette fonctionnalité intégrée.
3. JitterBuffer Le tampon de gigue est utilisé pour résoudre le problème de gigue du réseau. La gigue du réseau signifie que le délai du réseau sera de plus en plus petit. Dans ce cas, même si l'expéditeur envoie régulièrement des paquets de données (par exemple, un paquet est envoyé toutes les 100 ms), le destinataire ne peut pas recevoir le même timing. Parfois, aucun paquet ne peut être reçu dans un cycle, et parfois plusieurs paquets sont reçus dans un cycle. De cette façon, le son que le récepteur entend est une carte une carte. JitterBuffer fonctionne après le décodeur et avant la lecture vocale. C'est-à-dire qu'une fois le décodage vocal terminé, la trame décodée est placée dans le JitterBuffer, et lorsque le rappel de lecture de la carte son arrive, la trame la plus ancienne est récupérée du JitterBuffer pour la lecture. La profondeur de tampon de JitterBuffer dépend du degré de gigue du réseau. Plus la gigue du réseau est importante, plus la profondeur de la mémoire tampon est grande et plus le délai de lecture audio est important. Par conséquent, JitterBuffer utilise un délai plus élevé en échange d'une lecture sonore fluide, car par rapport à la carte son une carte, un délai légèrement plus important mais un effet plus fluide, son expérience subjective est meilleure. Bien entendu, la profondeur de tampon de JitterBuffer n'est pas constante, mais ajustée dynamiquement en fonction des changements du degré de gigue du réseau. Lorsque le réseau est restauré pour être très fluide et non obstrué, la profondeur du tampon sera très faible, de sorte que l'augmentation du délai de lecture due au JitterBuffer sera négligeable.
4. Détection de sourdine VAD Dans une conversation vocale, si un interlocuteur ne parle pas, aucun trafic ne sera généré. La détection de sourdine est utilisée à cette fin. La détection de sourdine est généralement également intégrée dans le module d'encodage. L'algorithme de détection silencieuse combiné à l'algorithme de suppression de bruit précédent peut identifier s'il y a actuellement une entrée vocale. S'il n'y a pas d'entrée vocale, il peut coder et sortir une trame codée spéciale (par exemple, la longueur est 0). Surtout dans une vidéoconférence à plusieurs personnes, généralement une seule personne parle. Dans ce cas, l'utilisation de la technologie de détection silencieuse pour économiser de la bande passante est encore très importante.
5. Algorithme de mixage Dans un chat vocal à plusieurs personnes, nous devons lire les données vocales de plusieurs personnes en même temps et la carte son ne joue qu'un seul tampon. Par conséquent, nous devons mélanger plusieurs voix en une seule. C'est ce que fait l'algorithme de mixage. Même si vous pouvez trouver un moyen de contourner le mixage et de laisser plusieurs sons jouer en même temps, alors pour l'annulation d'écho, il doit être mélangé en une seule lecture, sinon, l'annulation d'écho ne peut éliminer qu'une partie des sons multiples à les plus. Tout le. Le mixage peut être effectué côté client ou côté serveur (ce qui permet d'économiser de la bande passante en aval). Si des canaux P2P sont utilisés, le mixage ne peut être effectué que du côté client. S'il mixe sur le client, le mixage est généralement le dernier lien avant de jouer. Cet article est un résumé approximatif de notre expérience dans la mise en œuvre de la partie vocale de l'OMCS. Ici, nous venons de faire une description simple de chaque lien de la figure, et chacun d'entre eux peut être écrit dans un long papier ou même dans un livre. Par conséquent, cet article est juste pour fournir une carte d'introduction pour ceux qui sont nouveaux dans le développement de systèmes vocaux en réseau, et donner quelques indices.
|
Entrez l'email pour avoir une surprise
es.fmuser.org
it.fmuser.org
fr.fmuser.org
de.fmuser.org
af.fmuser.org -> Afrikaans
sq.fmuser.org -> albanais
ar.fmuser.org -> arabe
hy.fmuser.org -> Armenian
az.fmuser.org -> azerbaïdjanais
eu.fmuser.org -> basque
be.fmuser.org -> biélorusse
bg.fmuser.org -> Bulgare
ca.fmuser.org -> catalan
zh-CN.fmuser.org -> chinois (simplifié)
zh-TW.fmuser.org -> Chinois (traditionnel)
hr.fmuser.org -> croate
cs.fmuser.org -> tchèque
da.fmuser.org -> danois
nl.fmuser.org -> Néerlandais
et.fmuser.org -> estonien
tl.fmuser.org -> Philippin
fi.fmuser.org -> finnois
fr.fmuser.org -> Français
gl.fmuser.org -> Galicien
ka.fmuser.org -> géorgien
de.fmuser.org -> allemand
el.fmuser.org -> Grec
ht.fmuser.org -> Créole haïtien
iw.fmuser.org -> hébreu
hi.fmuser.org -> Hindi
hu.fmuser.org -> Hongrois
is.fmuser.org -> islandais
id.fmuser.org -> indonésien
ga.fmuser.org -> irlandais
it.fmuser.org -> Italien
ja.fmuser.org -> japonais
ko.fmuser.org -> coréen
lv.fmuser.org -> letton
lt.fmuser.org -> Lituanien
mk.fmuser.org -> macédonien
ms.fmuser.org -> malais
mt.fmuser.org -> maltais
no.fmuser.org -> Norwegian
fa.fmuser.org -> persan
pl.fmuser.org -> polonais
pt.fmuser.org -> portugais
ro.fmuser.org -> Roumain
ru.fmuser.org -> russe
sr.fmuser.org -> serbe
sk.fmuser.org -> slovaque
sl.fmuser.org -> Slovène
es.fmuser.org -> espagnol
sw.fmuser.org -> Swahili
sv.fmuser.org -> suédois
th.fmuser.org -> Thai
tr.fmuser.org -> turc
uk.fmuser.org -> ukrainien
ur.fmuser.org -> ourdou
vi.fmuser.org -> Vietnamienne
cy.fmuser.org -> Gallois
yi.fmuser.org -> Yiddish
FMUSER Wirless transmet la vidéo et l'audio plus facilement!
Contactez-Nous
Adresse :
No.305 Chambre HuiLan Building No.273 Huanpu Road Guangzhou Chine 510620
Catégories
Newsletter