FMUSER Wirless Overfør video og lyd enklere!
es.fmuser.org
it.fmuser.org
fr.fmuser.org
de.fmuser.org
af.fmuser.org -> Afrikaans
sq.fmuser.org -> albansk
ar.fmuser.org -> arabisk
hy.fmuser.org -> armensk
az.fmuser.org -> aserbajdsjansk
eu.fmuser.org -> baskisk
be.fmuser.org -> hviterussisk
bg.fmuser.org -> Bulgarian
ca.fmuser.org -> katalansk
zh-CN.fmuser.org -> Kinesisk (forenklet)
zh-TW.fmuser.org -> Kinesisk (tradisjonell)
hr.fmuser.org -> Kroatisk
cs.fmuser.org -> tsjekkisk
da.fmuser.org -> dansk
nl.fmuser.org -> Nederlandsk
et.fmuser.org -> estisk
tl.fmuser.org -> filippinsk
fi.fmuser.org -> finsk
fr.fmuser.org -> French
gl.fmuser.org -> galisisk
ka.fmuser.org -> Georgisk
de.fmuser.org -> tysk
el.fmuser.org -> gresk
ht.fmuser.org -> haitisk kreolsk
iw.fmuser.org -> hebraisk
hi.fmuser.org -> hindi
hu.fmuser.org -> Ungarsk
is.fmuser.org -> islandsk
id.fmuser.org -> indonesisk
ga.fmuser.org -> Irsk
it.fmuser.org -> Italiensk
ja.fmuser.org -> japansk
ko.fmuser.org -> koreansk
lv.fmuser.org -> lettisk
lt.fmuser.org -> litauisk
mk.fmuser.org -> makedonsk
ms.fmuser.org -> malaysisk
mt.fmuser.org -> maltesisk
no.fmuser.org -> norsk
fa.fmuser.org -> persisk
pl.fmuser.org -> polsk
pt.fmuser.org -> portugisisk
ro.fmuser.org -> rumensk
ru.fmuser.org -> russisk
sr.fmuser.org -> serbisk
sk.fmuser.org -> Slovakisk
sl.fmuser.org -> Slovenian
es.fmuser.org -> spansk
sw.fmuser.org -> Swahili
sv.fmuser.org -> svensk
th.fmuser.org -> Thai
tr.fmuser.org -> tyrkisk
uk.fmuser.org -> ukrainsk
ur.fmuser.org -> urdu
vi.fmuser.org -> Vietnamesisk
cy.fmuser.org -> walisisk
yi.fmuser.org -> Yiddish
Når vi bruker verktøy som Skype og QQ for å jevnlig gjennomføre tale- og videochatter med venner, har vi noen gang lurt på hvilke kraftige teknologier som ligger bak? Denne artikkelen vil gi en kort introduksjon til teknologiene som brukes i nettverkssamtaler, som kan betraktes som et glimt av leoparden.
1. Konseptuell modell
Internett-taleanrop er vanligvis toveis, noe som er symmetrisk på modellnivå. For enkelhets skyld kan vi diskutere kanalen i en retning. Den ene parten snakker og den andre parten hører stemmen. Det virker enkelt og raskt, men prosessen bak er ganske komplisert.
Dette er den mest grunnleggende modellen som består av fem viktige lenker: anskaffelse, koding, overføring, dekoding og avspilling.
(1) Stemmesamling
Stemmesamling refererer til innsamling av lyddata fra en mikrofon, det vil si konvertering av lydprøver til digitale signaler. Det involverer flere viktige parametere: samplingsfrekvens, antall samplingsbiter og antall kanaler.
For å si det enkelt: prøvetakingsfrekvensen er antall anskaffelseshandlinger på 1 sekund; antall samplingsbiter er lengden på dataene som er oppnådd for hver anskaffelseshandling.
Størrelsen på en lydramme er lik: (samplingsfrekvens × antall samplingsbiter × antall kanaler × tid)
Vanligvis er varigheten av en samplingsramme 10ms, det vil si at hver 10ms data utgjør en lydramme. Forutsatt: samplingshastigheten er 16k, antall samplingsbiter er 16bit, og antall kanaler er 1, så er størrelsen på en 10ms lydramme: (16000 * 16 * 1 * 0.01) / 8 = 320 byte. I beregningsformelen er 0.01 et sekund, det vil si 10ms.
(2) Koding
Forutsatt at vi sender den innsamlede lydrammen direkte uten koding, kan vi beregne ønsket båndbreddekrav. Fortsatt eksemplet ovenfor: 320 * 100 = 32 kBytes / s, hvis det konverteres til bits / s, er det 256 kb / s. Dette er mye bruk av båndbredde. Med nettverkstrafikkovervåkingsverktøy kan vi finne at når taleanrop blir foretatt med IM-programvare som QQ, er trafikken 3-5 kB / s, som er en størrelsesorden mindre enn den opprinnelige trafikken. Dette skyldes hovedsakelig lydkodingsteknologi. Derfor er denne lenken for koding i den faktiske applikasjonen for taleanrop uunnværlig. Det er mange ofte brukte talekodingsteknologier, for eksempel G.729, iLBC, AAC, SPEEX og så videre.
(3) Nettverksoverføring
Når en lydramme er kodet, kan den sendes til innringeren via nettverket. For sanntidsapplikasjoner som talesamtaler er lav ventetid og stabilitet veldig viktig, noe som krever at nettverket vårt overfører veldig jevnt.
(4) Dekoding
Når den andre parten mottar den kodede rammen, vil den dekode den for å gjenopprette den til data som kan spilles direkte av lydkortet.
(5) Stemmeavspilling
Etter at dekodingen er fullført, kan den oppnådde lydrammen sendes til lydkortet for avspilling. Vedlegg: Du kan referere til introduksjon og demo-kildekode og SDK-nedlasting av MPlayer, en komponent for taleopptak
2. Vanskeligheter og løsninger i praktiske anvendelser
Hvis bare å stole på den ovennevnte teknologien kan realisere et lyddialogsystem som brukes på brednettverket, er det ikke mye behov for å skrive denne artikkelen. Det er nettopp at mange realistiske faktorer har introdusert mange utfordringer for den ovennevnte konseptuelle modellen, noe som gjør realiseringen av nettverksstemmesystemet ikke så enkelt, som involverer mange profesjonelle teknologier. Selvfølgelig har de fleste av disse utfordringene allerede modne løsninger. Først og fremst må vi definere et "god effekt" stemmedialogsystem. Jeg tror det skal oppnå følgende punkter:
(1) Lav ventetid. Bare med lav ventetid kan de to partene på samtalen ha en sterk sans for sanntid. Selvfølgelig avhenger dette hovedsakelig av hastigheten på nettverket og avstanden mellom de fysiske stedene til de to partene under samtalen. Fra perspektivet til ren programvare er muligheten for optimalisering veldig liten.
(2) Lav bakgrunnsstøy.
(3) Lyden er jevn, uten følelsen av fast eller pause.
(4) Det er ikke noe svar.
Nedenfor vil vi snakke om tilleggsteknologiene som brukes i selve nettverksstemmesamtalen.
1. Ekko-kansellering AEC Nesten alle er nå vant til å bruke stemmeavspillingsfunksjonen på PC eller bærbar PC under talechat. Som alle vet, har denne lille vanen utgjort en stor utfordring for taleteknologi. Når du bruker høyttalerfunksjonen, vil lyden som spilles av høyttaleren samles opp av mikrofonen igjen og overføres tilbake til den andre parten, slik at den andre parten kan høre sitt eget ekko. Derfor, i praktiske anvendelser, er funksjonen til ekko-kansellering nødvendig. Etter at den innsamlede lydrammen er oppnådd, er dette gapet før koding tiden for ekko-kanselleringsmodulen til å fungere. Prinsippet er ganske enkelt at ekko-kanselleringsmodulen utfører noen kanselleringslignende operasjoner i den samlede lydrammen i henhold til den lydrammen som nettopp er spilt, for å fjerne ekkoet fra den samlede rammen. Denne prosessen er ganske komplisert, og den er også relatert til størrelsen på rommet du er i når du chatter, og din plassering i rommet, fordi denne informasjonen bestemmer lengden på lydbølgerefleksjonen. Den intelligente ekko-kanselleringsmodulen kan dynamisk justere de interne parametrene for å tilpasse seg det beste miljøet best mulig.
2. Støydemping DENOISE Støydemping, også kjent som støyreduksjonsbehandling, er basert på karakterene til stemmedata for å identifisere den delen av bakgrunnsstøyen og filtrere den ut av lydrammer. Mange kodere har denne funksjonen innebygd.
3. JitterBuffer Jitterbufferen brukes til å løse problemet med nettverksjitter. Den såkalte nettverksjitteren betyr at nettverksforsinkelsen blir større og mindre. I dette tilfellet, selv om avsenderen sender datapakker regelmessig (for eksempel sendes en pakke hver 100 ms), kan mottakeren ikke motta samme timing. Noen ganger kan ingen pakker mottas i en syklus, og noen ganger mottas flere pakker i en syklus. På denne måten er lyden som mottakeren hører ett kort ett kort. JitterBuffer fungerer etter dekoderen og før stemmeavspilling. Det vil si at etter at dekodingen er fullført, blir den dekodede rammen satt i JitterBuffer, og når avspilling av lydkortet kommer tilbake, blir den eldste rammen hentet fra JitterBuffer for avspilling. Bufferdybden til JitterBuffer avhenger av graden av nettverksjitter. Jo større nettverksjitter, jo større bufferdybde og jo større forsinkelse i lydavspilling. Derfor bruker JitterBuffer en høyere forsinkelse i bytte for jevn lydavspilling, fordi den subjektive opplevelsen er bedre sammenlignet med lyden ett kort ett kort, en litt større forsinkelse, men en jevnere effekt. Selvfølgelig er bufferdybden til JitterBuffer ikke konstant, men dynamisk justert i henhold til endringer i graden av nettverksjitter. Når nettverket gjenopprettes for å være veldig glatt og uhindret, vil bufferdybden være veldig liten, slik at økningen i avspillingsforsinkelse på grunn av JitterBuffer vil være ubetydelig.
4. Demp deteksjon VAD Hvis en part ikke snakker i en talesamtale, genereres ingen trafikk. Mute deteksjon brukes til dette formålet. Mute deteksjon er vanligvis også integrert i kodingsmodulen. Den stille deteksjonsalgoritmen kombinert med den forrige støydempingsalgoritmen kan identifisere om det er taleinngang for øyeblikket. Hvis det ikke er taleinngang, kan den kode og sende ut en spesiell kodet ramme (for eksempel er lengden 0). Spesielt på en videokonferanse med flere personer snakker vanligvis bare én person. I dette tilfellet er bruken av lydløs deteksjonsteknologi for å spare båndbredde fremdeles veldig betydelig.
5. Blandingsalgoritme I en stemmechat med flere personer, trenger vi å spille taledata fra flere personer samtidig, og lydkortet spiller bare en buffer. Derfor må vi blande flere stemmer i en. Dette er hva blandingsalgoritmen gjør. Selv om du kan finne en måte å omgå blandingen og la flere lyder spille samtidig, må den for ekko-kansellering blandes til en avspilling, ellers kan ekko-kansellering bare eliminere noen av de mange lydene på mest. Hele veien. Blanding kan gjøres på klientsiden eller på serversiden (noe som kan spare nedstrøms båndbredde). Hvis P2P-kanaler brukes, kan blanding bare gjøres på klientsiden. Hvis det blandes på klienten, er miksing vanligvis den siste lenken før du spiller. Denne artikkelen er en grov oppsummering av vår erfaring med å implementere stemmedelen av OMCS. Her laget vi bare en enkel beskrivelse av hver lenke i figuren, og en av dem kan skrives til et langt papir eller til og med en bok. Derfor er denne artikkelen bare for å gi et introduksjonskart for de som er nye innen nettverksutvikling av talesystemer, og gi noen ledetråder.
|
Skriv inn e-post for å få en overraskelse
es.fmuser.org
it.fmuser.org
fr.fmuser.org
de.fmuser.org
af.fmuser.org -> Afrikaans
sq.fmuser.org -> albansk
ar.fmuser.org -> arabisk
hy.fmuser.org -> armensk
az.fmuser.org -> aserbajdsjansk
eu.fmuser.org -> baskisk
be.fmuser.org -> hviterussisk
bg.fmuser.org -> Bulgarian
ca.fmuser.org -> katalansk
zh-CN.fmuser.org -> Kinesisk (forenklet)
zh-TW.fmuser.org -> Kinesisk (tradisjonell)
hr.fmuser.org -> Kroatisk
cs.fmuser.org -> tsjekkisk
da.fmuser.org -> dansk
nl.fmuser.org -> Nederlandsk
et.fmuser.org -> estisk
tl.fmuser.org -> filippinsk
fi.fmuser.org -> finsk
fr.fmuser.org -> French
gl.fmuser.org -> galisisk
ka.fmuser.org -> Georgisk
de.fmuser.org -> tysk
el.fmuser.org -> gresk
ht.fmuser.org -> haitisk kreolsk
iw.fmuser.org -> hebraisk
hi.fmuser.org -> hindi
hu.fmuser.org -> Ungarsk
is.fmuser.org -> islandsk
id.fmuser.org -> indonesisk
ga.fmuser.org -> Irsk
it.fmuser.org -> Italiensk
ja.fmuser.org -> japansk
ko.fmuser.org -> koreansk
lv.fmuser.org -> lettisk
lt.fmuser.org -> litauisk
mk.fmuser.org -> makedonsk
ms.fmuser.org -> malaysisk
mt.fmuser.org -> maltesisk
no.fmuser.org -> norsk
fa.fmuser.org -> persisk
pl.fmuser.org -> polsk
pt.fmuser.org -> portugisisk
ro.fmuser.org -> rumensk
ru.fmuser.org -> russisk
sr.fmuser.org -> serbisk
sk.fmuser.org -> Slovakisk
sl.fmuser.org -> Slovenian
es.fmuser.org -> spansk
sw.fmuser.org -> Swahili
sv.fmuser.org -> svensk
th.fmuser.org -> Thai
tr.fmuser.org -> tyrkisk
uk.fmuser.org -> ukrainsk
ur.fmuser.org -> urdu
vi.fmuser.org -> Vietnamesisk
cy.fmuser.org -> walisisk
yi.fmuser.org -> Yiddish
FMUSER Wirless Overfør video og lyd enklere!
Kontakt
Adresse:
No.305 Room HuiLan Building No.273 Huanpu Road Guangzhou Kina 510620
Type kategori
Nyhetsbrev