NO340411B1 - Audiokoding etterfilter - Google Patents

Audiokoding etterfilter Download PDF

Info

Publication number
NO340411B1
NO340411B1 NO20075773A NO20075773A NO340411B1 NO 340411 B1 NO340411 B1 NO 340411B1 NO 20075773 A NO20075773 A NO 20075773A NO 20075773 A NO20075773 A NO 20075773A NO 340411 B1 NO340411 B1 NO 340411B1
Authority
NO
Norway
Prior art keywords
filter
signal
values
speech
band
Prior art date
Application number
NO20075773A
Other languages
English (en)
Other versions
NO20075773L (no
Inventor
Xiaoqin Sun
Tian Wang
Hosam A Khalil
Kazuhito Koishida
Wei-Ge Chen
Original Assignee
Microsoft Technology Licensing Llc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Technology Licensing Llc filed Critical Microsoft Technology Licensing Llc
Publication of NO20075773L publication Critical patent/NO20075773L/no
Publication of NO340411B1 publication Critical patent/NO340411B1/no

Links

Classifications

    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L19/00Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
    • G10L19/04Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis using predictive techniques
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L19/00Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
    • G10L19/04Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis using predictive techniques
    • G10L19/26Pre-filtering or post-filtering
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L19/00Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
    • G10L19/04Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis using predictive techniques
    • G10L19/06Determination or coding of the spectral characteristics, e.g. of the short-term prediction coefficients
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L19/00Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
    • G10L19/04Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis using predictive techniques
    • G10L19/08Determination or coding of the excitation function; Determination or coding of the long-term prediction parameters

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Signal Processing (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Human Computer Interaction (AREA)
  • Computational Linguistics (AREA)
  • Acoustics & Sound (AREA)
  • Multimedia (AREA)
  • Spectroscopy & Molecular Physics (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Stereophonic System (AREA)
  • Reduction Or Emphasis Of Bandwidth Of Signals (AREA)

Description

Teknisk område
Beskrevne verktøy og teknikker vedrører audiokodeker og særlig etterprosessering av dekodet tale.
Bakgrunn
Med fremkomsten av digitale trådløse telefonnettverk, sanntids overføring av audio over Internett og Internett telefoni har digital prosessering og levering av tale blitt alminnelig. Ingeniører bruker et mangfold av teknikker for å prosessere tale effektivt samtidig som kvaliteten opprettholdes. For å forstå disse teknikker hjelper det å forstå hvordan audioinformasjon representeres og behandles i en datamaskin.
I. Representasjon av audioinformasjon i en datamaskin
En datamaskin prosesserer audioinformasjon som en serie av tall som representerer audioen. Et enkelt tall kan representere et audiosampel, hvilket er en amplitudeverdi på et bestemt tidspunkt. Flere faktorer påvirker kvaliteten av audioen, inkludert sampeldybde og samplingsrate.
Sampeldybde (eller presisjon) angir det verdiområde av tall som brukes til å representere et sampel. Flere mulige verdier for hvert sampel gir typisk utgang med høyere kvalitet, fordi mer subtile variasjoner i amplitude kan representeres. Et åtte-bit sampel har 256 mulige verdier, mens et seksten-bit sampel har 65.536 mulige verdier.
Samlingsraten (vanligvis målt som antallet sampler per sekund) påvirker også kvaliteten. Jo høyere samplingsraten er, jo høyere er kvaliteten, fordi flere lyd-frekvenser kan representeres. Enkelte vanlige samplingsrater er 8.000, 11.025, 22.050, 32.000, 44.100, 48.000 og 96.000 sampler/sekund (Hz). Tabell 1 viser flere formater av audio med forskjellige kvalitetsnivåer, sammen med korresponderende rå-bit ratekostnader.
Som tabell 1 viser er kostnaden for audio av høy kvalitet høy bit rate. Audioinformasjon av høy kvalitet forbruker store mengder av datamaskinlagring og over-føringskapasitet. Mange datamaskiner og datamaskinnettverk mangler ressursene for å prosessere rå digital audio. Kompresjon (også kalt koding (encoding) eller (coding)) reduserer kostnaden med lagring og overføring av audioinformasjon ved konvertering av informasjonen til en form med lavere bit rate. Kompresjon kan være tapløs (hvor kvalitet ikke lider) eller tapsbeheftet (hvor kvalitet lider, men reduksjon i bit rate fra etterfølgende tapløs kompresjon er mer dramatisk). Dekompresjon (også kalt dekoding) ekstraherer en rekonstruert versjon av den opprinnelige informasjon fra den komprimerte form. En kodek er et koder/dekoder-system.
II. Talekodere og -dekodere
Et mål med audiokompresjon er å digitalt representere audiosignalerfor å tilveiebringe maksimum signalkvalitet for en gitt mengde bits. Sagt på en annen måte, dette mål er å representere audiosignalene med færrest bits for et gitt nivå av kvalitet. Andre mål, så som robusthet mot overføringsfeil og begrensning av den samlede forsinkelse på grunn av koding/overføring/dekoding gjelder i enkelte scenarioer.
Forskjellige typer av audiosignaler har forskjellige karakteristika. Musikk karakteriseres ved store verdiområder av frekvenser og amplituder, og inkluderer ofte to eller flere kanaler. På den annen side, tale karakteriseres av mindre verdiområder av frekvenser og amplituder, og blir vanligvis representert i en enkelt kanal. Visse kodeker og prosesseringsteknikker er tilpasset til musikk og generell audio; andre kodeker og prosesseringsteknikker er tilpasset til tale.
En type av konvensjonell talekodek bruker lineær prediksjon ("LP") for å utføre kompresjon. Talekodingen inkluderer flere trinn. Koderen finner og kvantiserer koeffisienter for et lineært prediksjonsfilter som brukes til å predikere sampelverdier som lineære kombinasjoner av forutgående sampelverdier. Et restsignal (representert som et "eksitasjon"-signal) viser deler av det opprinnelige signal som ikke predikeres nøyaktig av filtreringen. På enkelte trinn bruker talekodeken forskjellige kompresjonsteknikker for stemte segmenter (karakterisertav stemmebåndvibrasjon), ustemte segmenter og stille segmenter, siden forskjellige typer av tale har forskjellige karakteristika. Stemte segmenter oppviser typisk høyt repeterende stemmemønstre, selv i restdomenen. For stemte segmenter utfører koderen ytterligere kompresjon ved sammenligning av det inneværende restsignal med forutgående restsykluser og koding av det inneværende restsignal i form av forsinkelses- eller etterslepsinformasjon i forhold til de forutgående sykluser. Koderen håndterer andre uoverensstemmelser mellom det opprinnelige signal og den predikerte, kodede representasjon (fra den lineære prediksjons- og forsinkelses-informasjon) ved bruk av spesielt designede kodebøker.
EP 1 308 932 vedrører en fremgangsmåte og et apparat for behandling av et dekodede talesignal.
Selv om talekodeker som beskrevet ovenfor har god samlet ytelse for mange applikasjoner, har de flere ulemper. Foreksempel reduserer tapsbeheftede kodeker typisk bit rate ved å redusere redundansen i et talesignal, hvilket resulterer i støy eller andre uønskede artefakter i dekodet tale. Enkelte kodekfiltre dekodet følgelig tale for å forbedre sin kvalitet. Slike etterfiltre har typisk kommet i to typer: tidsdomene etterfiltre og frekvensdomene etterfiltre.
Gitt viktigheten av kompresjon og dekompresjon for å representere talesignaler i datamaskinsystemer, er det ikke overraskende at etterfiltrering av rekonstruert tale har tiltrukket seg forskning. Uansett hvilke fordeler det er ved tidligere teknikker for prosessering av rekonstruert tale eller annen audio, har de ikke fordelene ved de teknikker og verktøy som beskrives her.
Sammenfatning
Hovedtrekkene ved den foreliggende oppfinnelse fremgår av det selvstendige patentkrav 1. Ytterligere trekk ved oppfinnelsen er angitt i de uselvstendige krav.
Sammenfattende er den detaljerte beskrivelse rettet mot forskjellige teknikker og verktøy for audiokodeker, og spesifikt mot verktøy og teknikker som er relatert til filtrering av dekodet tale. Beskrevne utførelser implementerer en eller flere av de beskrevne teknikker og verktøy, inkludert, men ikke begrenset til, det følgende: I ett aspekt beregnes et sett av filterkoeffisienter for anvendelse på et rekonstruert audiosignal. Beregningen inkluderer gjennomføring av en eller flere frekvensdomeneberegninger. Et filtrert audiosignal produseres ved filtrering av i det minste en del av det rekonstruerte audiosignal i en tidsdomene ved bruk av settet av filterkoeffisienter.
I et annet aspekt produseres et sett av filterkoeffisienter for anvendelse på et rekonstruert audiosignal. Produksjon av koeffisientene inkluderer prosessering av et sett av koeffisientverdier som representerer en eller flere topper og en eller flere daler. Prosessering av settet av koeffisientverdier inkluderer klipping av en eller flere av toppene eller dalene. I det minste en del av det rekonstruerte audiosignal filtreres ved bruk av filterkoeffisientene.
I et annet aspekt mottas et rekonstruert komposittsignal som er syntetisert fra flere rekonstruerte frekvens subbåndsignaler. Subbåndsignalene inkluderer et rekonstruert første frekvens subbåndsignal for et første frekvensbånd og et rekonstruert annen frekvens subbåndsignal for et annet frekvensbånd. Ved et frekvensområde rundt en skjæring mellom det første frekvensbånd og det annet frekvensbånd, blir det rekonstruerte komposittsignal selektivt forbedret.
De forskjellige teknikker og verktøy kan brukes i kombinasjon eller uavhengig. Ytterligere trekk og fordeler vil klart fremgå av den følgende detaljerte beskrivelse av forskjellige utførelser som går fremover med henvisning til de ledsagende tegninger.
Kort beskrivelse av tegningene
Figur 1 er et blokkdiagram over en passende databehandlingsomgivelse hvor en eller flere av de beskrevne utførelser kan implementeres. Figur 2 er et blokkdiagram over en nettverksomgivelse i forbindelse med hvilken en eller flere av de beskrevne utførelser kan implementeres. Figur 3 er en graf som viser en mulig frekvens subbåndstruktur som kan brukes til subbåndkoding. Figur 4 er et blokkdiagram over en sanntids talebåndkoder i forbindelse med hvilken en eller flere av de beskrevne utførelser kan implementeres. Figur 5 er et flytdiagram som viser bestemmelse av kodebokparametere i en implementering. Figur 6 er et blokkdiagram over en sanntids talebånddekoder i forbindelse med hvilken en eller flere av de beskrevne utførelser kan implementeres. Figur 7 er et flytdiagram som viser en teknikk for bestemmelse av etterfilter koeffisienter som kan brukes i enkelte implementeringer.
Detaljert beskrivelse
Beskrevne utførelser er rettet mot teknikker og verktøy for prosessering av audioinformasjon i koding og/eller dekoding. Med disse teknikker blir kvaliteten av tale som er avledet fra en talekodek, så som en sanntids talekodek, forbedret. Slike forbedringer kan være resultat av bruk av forskjellige teknikker og verktøy separat eller i kombinasjon.
Slike teknikker og verktøy kan inkludere et etterfilter som anvendes på et dekodet audiosignal i tidsdomenen ved bruk av koeffisienter som er designet eller som prosesseres i frekvensdomenen. Teknikkene kan også inkludere klipping av eller å sette lokk på filterkoeffisientverdier til bruk i et slikt filter, eller i en annen type av etterfilter.
Teknikkene kan også inkludere et etterfilter som øker størrelsen av et dekodet audiosignal ved frekvensområder hvor energien kan ha blitt dempet på grunn av dekomposisjon i frekvensbånd. Som et eksempel kan filteret øke signalet ved frekvensområder nær skjæringer mellom tilstøtende bånd.
Selv om operasjoner for de forskjellige teknikker er beskrevet i en bestemt sekvensiell rekkefølge av hensyn til presentasjonen, skal det forstås at denne måten for beskrivelse omfatter mindre omarrangeringer i rekkefølgen av operasjoner, med mindre en bestemt disposisjon er påkrevd. For eksempel kan operasjoner som er beskrevet sekvensielt i enkelte tilfelle omarrangeres eller gjennomføres samtidig. Dessuten, for enkelthets skyld, kan det være at flytskjemaer ikke viser de forskjellige måter som bestemte teknikker kan brukes på i forbindelse med andre teknikker.
Selv om bestemte databehandlingsomgivelsestrekk og audiokodektrekk er beskrevet nedenfor, kan et eller flere av verktøyene og teknikkene brukes sammen med forskjellige ulike typer av databehandlingsomgivelser og/eller forskjellige ulike typer av kodeker. For eksempel kan en eller flere av etterfilter teknikkene brukes sammen med kodeker som ikke bruker CELP-kodingsmodellen, så som adaptive differensial puls kodemodulasjonskodeker, transformasjonskodeker og/eller andre typer av kodeker. Som et annet eksempel kan en eller flere av etterfilter teknikkene brukes sammen med enkeltbåndkodeker eller subbåndkodeker. Som et annet eksempel kan en eller flere av etterfilter teknikkene anvendes på en enkeltbåndkodek i en multibåndkodek og/eller på et syntetisert eller ukodet signal som inkluderer bidrag fra flere bånd i en multibåndkodek.
I. Databehandlingsomgivelse
Figur 1 illustrerer et generalisert eksempel på en passende databehandlingsomgivelse 100 hvor en eller flere av de beskrevne utførelser kan implementeres. Det er ikke meningen at det med databehandlingsomgivelsen 100 skal foreslås noen begrensning på omfanget av bruk eller funksjonalitet av oppfinnelsen, ettersom den foreliggende oppfinnelse kan implementeres i diverse databehandlingsomgivelser for generelt formål eller spesielt formål.
Med henvisning til figur 1 inkluderer databehandlingsomgivelsen 100 minst én prosesseringsenhet 110 og minne 120. På figur 1 er denne mest grunnleggende konfigurasjon 130 inkludert innenfor en stiplet linje. Prosesseringsenheten 110 utfører datamaskinutførbar instruksjon, og kan være en virkelig eller en virtuell prosessor. I et multiprosesseringssystem utfører flere prosesseringsenheter datamaskinutførbare instruksjoner for å øke prosesseringskraft. Minnet 120 kan være et flyktig minne (eksempelvis registre, cache, RAM), ikke-flyktig minne (eksempelvis ROM, EEPROM, flash minne, osv), eller en kombinasjon av disse to. Minnet 120 lagrer programvare 180 som implementerer en eller flere av de etterfiltrerings teknikker som her er beskrevet for en taledekoder.
En databehandlingsomgivelse 100 kan ha ytterligere trekk. På figur 1 inkluderer databehandlingsomgivelsen 100 lagring 140, en eller flere innmatingsinnretninger 150, en eller flere utgangsinnretninger 160 og en eller flere kommunikasjon-sforbindelser 170. En sammenkoplingsmekanisme (ikke vist), så som en buss, kontroller eller et nettverk, kopler sammen komponentene i databehandl-ings-omgivelsen 100. Operativsystemprogramvare (ikke vist) tilveiebringer typisk en operasjonell omgivelse for annen programvare som utføres i databehandlingsomgivelsen 100, og koordinerer aktiviteter til komponentene i databehandlingsomgivelsen 100.
Lagringen 140 kan være uttakbar eller ikke-uttakbar, og kan inkludere magnetiske disker, magnetiske bånd eller kassetter, CD-ROMer, CD-RWer, DVDer eller et hvilket som helst annet medium som kan brukes til å lagre informasjon og som kan aksesseres innenfor databehandlingsomgivelsen 100. Lagringen 140 lagrer informasjon for programvaren 180.
Innmatingsinnretningen(e) 150 kan være en berøringsinnmatingsinnretning så som et tastatur, mus, penn eller styrekule, en stemmeinnmatingsinnretning, en skanningsinnretning, nettverkadapter eller en hvilken som helst annen innretning som tilveiebringer innmating til databehandlingsomgivelsen 100. For audio kan inn-matingsinnretningen(e) 150 være et lydkort, mikrofon eller annen innretning som tar imot audioinnmating i analog eller digital form, eller en CD/DVD-leser som tilveiebringer audiosampler til databehandlingsomgivelsen 100. Utgangsinn-retningen(e) 160 kan være et display, en printer, en høyttaler, CD/DVD-skriver, nettverkadapter eller en hvilken som helst annen innretning som tilveiebringer utgang fra databehandlingsomgivelsen 100.
Kommunikasjonsforbindelsen(e) 170 muliggjør kommunikasjon over et kommunikasjonsmedium til en annen databehandlingsentitet. Kommunikasjons-mediet fører informasjon, så som datamaskinutførbare instruksjoner, komprimert taleinformasjon eller andre data i et modulert datasignal. Et modulert datasignal er et signal som har ett eller flere av sine karakteristika fastsatt eller forandret på en slik måte at informasjon kodes i signalet. Som eksempel, og ikke begrensning, kommunikasjonsmedia inkluderer ledningsførte eller trådløse teknikker som er implementert med en elektrisk, optisk, RF, infrarød, akustisk eller annen bærer.
Oppfinnelsen kan beskrives i den generelle kontekst ved datamaskinlesbare media. Datamaskinlesbare media er et hvilket som helst tilgjengelig media som kan aksesseres innenfor en databehandlingsomgivelse. Som eksempel, og ikke begrensning, med databehandlingsomgivelsen 100, inkluderer datamaskinlesbare media minne 120, lagring 140, kommunikasjonsmedia og kombinasjoner av hvilket som helst av det ovenstående.
Oppfinnelsen kan beskrives i den generelle kontekst med datamaskinutførbare instruksjoner, så som de som er inkludert i programmoduler, som utføres i en databehandlingsomgivelse på en virkelig eller virtuell målprosessor. Programmoduler inkluderer generelt rutiner, programmer, biblioteker, objekter, klasser, komponenter, datastrukturer, osv, som gjennomfører bestemte oppgaver eller implementerer bestemte abstrakte datatyper. Funksjonaliteten til programmodulene kan være kombinert eller delt mellom programmoduler, etter ønske i forskjellige utførelser. Datamaskinutførbare instruksjoner for programmoduler kan utføres innenfor en lokal eller distribuert databehandlingsomgivelse.
For presentasjonens skyld kan den detaljerte beskrivelse bruke uttrykk så som "bestemme" eller "fastlegge", "generere", "justere" og "anvende" for å beskrive datamaskinoperasjoner i en databehandlingsomgivelse. Disse uttrykk er høynivå abstraksjoner for operasjoner som gjennomføres av en datamaskin, og bør ikke blandes sammen med handlinger som gjennomføres av et menneske. De faktiske datamaskinoperasjoner som korresponderer til disse uttrykk varierer i avhengighet av implementeringen.
II. Generalisert nettverksomgivelse for sanntids talekodek
Figur 2 er et blokkdiagram over en generalisert nettverksomgivelse 200 i forbindelse med hvilken en eller flere av de beskrevne utførelser kan implementeres. Et nettverk 250 separerer forskjellige komponenter på kodersiden fra forskjellige komponenter på dekodersiden.
De primære funksjoner ved kodersidens og dekodersidens komponenter er talekoding henholdsvis dekoding. På dekodersiden tar en inngangsbuffer210 imot og lagrer taleinnmating 202. Talekoderen 230 tar taleinnmating 202 fra inngangs-bufferen 210 og koder den.
Spesifikt, en rammesplitter 212 deler samplene av taleinnmatingen 202 i rammer. I en implementering er rammene uniformt tjue ms lange -160 sampler for åtte kHz innmating og 320 sampler for 16 kHz innmating. I andre implementeringer har rammene forskjellige varigheter, er ikke-uniforme eller overlappende, og/eller samplingsraten til innmatingen 202 er forskjellig. Rammene kan være organisert i en superramme/ramme, ramme/subramme, eller en annen konfigurasjon for forskjellige trinn i kodingen og dekodingen.
En rammesorterer 214 klassifiserer rammene i henhold til ett eller flere kriterier, så som energi i signalet, null kryssingshastighet, langtids prediksjonsfor-sterkning, forsterkningsdifferensiale og/eller andre kriterier for subrammer eller de hele rammer. Basert på kriteriene klassifiserer rammesortereren de forskjellige rammer i klasser, så som stille, ustemt, stemt og overgang (eksempelvis ustemt til stemt). I tillegg kan rammene klassifiseres i henhold til typen av redundant koding, hvis det er noen, som brukes for rammen. Rammeklassen påvirker de parametere som vil bli beregnet for å kode rammen. I tillegg kan rammeklassen påvirke opp-løsningen og tapsrobustheten med hvilken parametere kodes, for å tilveiebringe mer oppløsning og tapsrobusthet til flere viktige rammeklasser og parametere. For eksempel, stille rammer blir typisk kodet ved svært lav rate, de er svært enkle å gjenvinne ved skjuling hvis de mistes, og de trenger kanskje ikke beskyttelse mot tap. Ustemte rammer blir typisk kodet med litt høyere rate, de er akseptabelt enkle å gjenvinne ved skjuling hvis de mistes, og de blir ikke vesentlig beskyttet mot tap. Stemte rammer og overgangsrammer blir vanligvis kodet med flere bits, i avhengighet av kompleksiteten av rammen så vel som tilstedeværelsen av overganger. Stemte rammer og overgangsrammer er også vanskelige å gjenvinne hvis de mistes, og blir således beskyttet vesentlig mer mot tap. Alternativt bruker rammesortereren 214 andre og/eller ytterligere rammeklasser.
Inngangstalesignalet kan deles opp i subbåndsignalerfør anvendelse av en kodingsmodell, så som CELP-kodingsmodellen, på subbåndinformasjonen for en ramme. Dette kan gjøres ved bruk av en serie av en eller flere analysefilterbanker (så som QMF-analysefiltre) 216. For eksempel, hvis det skal brukes en tre-båndstruktur, så kan det lave frekvensbåndet deles ved å sende signalet gjennom et lavpassfilter. Likeledes kan det høye båndet deles ved å sende signalet gjennom et høypassfilter. Det midtre båndet kan deles ved å sende signalet gjennom et båndpassfilter, hvilket kan inkludere et lavpassfilter og et høypassfilter i serie. Alternativt kan det brukes andre typer av filterarrangementer for subbånddekomposisjon og/eller tidsstyring av filtrering (eksempelvis før rammedeling). Hvis kun ett bånd skal dekodes for en del av signalet, kan denne delen gå utenom analysefilterbankene 216.
Antallet bånd n kan bestemmes av samplingsrate. For eksempel, i en implementering, brukes en enkeltbåndstruktur for 8 kHz samplingsrate. For 16 kHz og 22,05 kHz samplingsrater, brukes en tre-båndstruktur, som vist på figur 3. I tre-båndstrukturen på figur 3 strekker det lave frekvensbånd 310 seg over halvparten av den fulle båndbredde F (fra 0 til 0,5 F). Den andre halvdel av båndbredden er delt likt mellom det midtre bånd 320 og det høye bånd 330. Nær skjæringene mellom båndene reduseres frekvensresponsen for ett bånd gradvis fra gjennomgangsnivået til stoppnivået, hvilket erkarakterisert veden demping av signalet på begge sider i nærheten av skjæringen. Andre oppdeler av frekvensbåndbredden kan også brukes. For eksempel, for en samplingsrate på 32 kHz, kan det brukes en fire-båndstruktur med lik innbyrdes avstand.
Det lave frekvensbåndet er typisk det viktigste bånd for talesignaler, fordi signalenergien typisk svekkes mot de høyere frekvensområder. Det lave frekvensbåndet er følgelig ofte kodet ved bruk av flere bits enn de andre båndene. Sammenlignet med en enkeltbåndkodingsstruktur, er subbåndstrukturen mer fleksibel, og tillater bedre styring av kvantiseringsstøy over frekvensbåndet. Det antas følgelig at perseptuell stemmekvalitet forbedres signifikant ved bruk av subbåndstrukturen. Imidlertid, som omtalt nedenfor, dekomposisjonen av subbåndene kan forårsake energitap for signalet ved frekvensområdene nær skjæringen mellom tilstøtende bånd. Denne energi kan forringe kvaliteten til det resulterende dekodede talesignal.
På figur 2 er hvert subbånd kodet separat, som illustrert med kodings-komponenter 232, 234. Selv om båndkodingskomponentene 232, 234 er vist separat, kan kodingen av alle båndene gjøres ved hjelp av en enkelt koder, eller de kan kodes av separate kodere. Slik båndkoding er beskrevet i nærmere detalj nedenfor med henvisning til figur 4. Alternativt kan kodeken operere som en enkeltbåndkodek. Den resulterende kodede tale tilveiebringes til programvare for ett eller flere nettverkslag 240 gjennom en multiplekser ("MUX") 236. Nettverkslaget/-lagene 240 prosesserer den kodede tale for overføring over nettverket 250. For eksempel, nett-verkslagprogramvaren pakker rammer med kodet taleinformasjon i pakker som følger RTP-protokollen, hvilke formidles over Internett ved bruk av UDP, IP og forskjellige protokoller for fysiske lag. Alternativt brukes andre og/eller ytterligere lag med programvare eller nettverksprotokoller.
Nettverket 250 er et pakke-svitsjet nettverk så som Internett. Alternativt er nettverket 250 et lokalnett eller et annet slags nettverk.
På dekodersiden mottar og prosesserer programvare for ett eller flere nettverkslag 260 de overførte data. Nettverksprotokoller, transportprotokoller og høyere lags protokoller og programvare i nettverkslaget/-lagene 260 på dekodersiden korresponderer vanligvis til de som er i nettverkslaget/-lagene 240 på kodersiden. Nettverkslaget/-lagene tilveiebringer den kodede taleinformasjon til taledekoderen 270 gjennom en demultiplekser ("DEMUX") 276.
Dekoderen 270 dekoder hvert av subbåndene separat, hvilket er vist i bånddekodingskomponenter 272, 274. Alle subbåndene kan dekodes ved hjelp av enkelt dekoder, eller de kan dekodes ved hjelp av dekodere for separate bånd.
De dekodede subbånd blir deretter syntetisert i en serie av en eller flere syntesefilterbanker (så som QMF-syntesefiltre) 280, som mater ut dekodet tale 292. Alternativt brukes andre typer av filterarrangementer for subbåndsyntese. Hvis kun ett enkelt bånd er til stede, så kan det dekodede bånd gå utenom filterbankene 280. Hvis flere bånd er til stede, kan dekodet taleutgang 292 også sendes gjennom et midtfrekvens forbedrings etterfilter 284 for å forbedre kvaliteten av den resulterende forbedrede taleutgang 294. En implementering av midtfrekvens forbedrings etterfiltret er omtalt i nærmere detalj nedenfor.
En generalisert sanntids talebånddekoder er beskrevet nedenfor med henvisning til figur 6, men andre taledekodere kan brukes isteden. I tillegg kan enkelte av eller alle de beskrevne verktøy og teknikker brukes sammen med andre typer av audiokodere og -dekodere, så som musikkodere og -dekodere, eller audiokodere og -dekodere for generelt formål.
Bortsett fra disse primære kodings- og dekodingsfunksjoner kan komponentene også dele informasjon (vist i stiplede linjer på figur 2) for å styre raten, kvaliteten og/eller tapsrobustheten for den kodede tale. Ratekontrolleren 220 betrakter et mangfold av faktorer, så som kompleksiteten av den inneværende innmating i innmatingsbufferen 210, bufferfullheten for utgangsbuffere i 230 eller et annet sted, ønsket utgangsrate, den inneværende nettverksbåndbredde, nettverks-opphopning/støybetingelser og/eller dekoderens tapsrate. Dekoderen 270 mater tilbake dekodertapsrateinformasjon til ratekontrolleren 220. Nettverkslaget/-lagene 240, 260 samler inn eller estimerer informasjon om inneværende nettverksbåndbredde og opphopning/støybetingelser, hvilken mates tilbake til ratekontrolleren 220. Alternativt betrakter ratekontrolleren 220 andre og/eller ytterligere faktorer.
Ratekontrolleren 220 styrer talekoderen 230 for å forandre rate, kvalitet og/eller tapsrobusthet som tale kodes med. Koderen 230 kan forandre rate og kvalitet ved justering av kvantiseringsfaktorer for parametere eller forandring av opp-løsningen av entropikoder som representerer parameterne. Koderen kan i tillegg forandre tapsrobusthet ved justering av raten eller typen av redundant koding. Koderen 230 kan således forandre allokeringen av bits mellom primære kodings-funksjoner og tapsrobusthetsfunksjoner, avhengig av nettverksbetingelser.
Figur 4 er et blokkdiagram over en generalisert talebåndkoder 400 i forbindelse med hvilken en eller flere av de beskrevne utførelser kan implementeres. Båndkoderen 400 korresponderer generelt til en hvilken som helst av båndkodingskomponentene 232, 234 på figur 2.
Båndkoderen 400 tar imot båndinnmatingen 402 fra filterbankene (eller andre filtre) hvis signalet er delt i flere bånd. Hvis signalet ikke er delt i flere bånd, så inkluderer båndinnmatingen 402 sampler som representerer hele båndbredden. Båndkoderen produserer kodet båndutgang 492.
Hvis et signal er delt i flere bånd, så kan en nedsamplingskomponent 420 gjennomføre nedsampling på hvert bånd. Som et eksempel, hvis samplingsraten er satt til seksten kHz og hver ramme er tjue ms i varighet, så inkluderer hver ramme 320 sampler. Hvis ingen nedsampling ble gjennomført og rammen ble delt i den tre-båndstruktur som er vist på figur 3, så ville tre ganger så mange sampler (det vil si 320 sampler per bånd, eller totalt 960 sampler) bli kodet og dekodet for rammen. Hvert bånd kan imidlertid nedsamples. For eksempel kan det lave frekvensbånd 310 nedsamples fra 320 sampler til 160 sampler, og hvert av de midtre bånd 320 og høye bånd 330 kan samples ned fra 320 sampler til 80 sampler, hvor båndene 310, 320, 330 strekker seg henholdsvis over halvparten, en kvart og en kvart av frekvensområdet. (Graden av nedsampling 420 i denne implementering varierer i forhold til frekvensområdene for båndene 310, 320, 330. Andre implementeringer er imidlertid mulige. I senere trinn brukes typisk færre bit for de høyere bånd, fordi signalenergien typisk faller mot de høyere frekvensområder). Dette tilveiebringer følgelig totalt 320 sampler som skal kodes og dekodes for rammen.
LP-analysekomponenten 430 beregner lineære prediksjonskoeffisienter 432. I en implementering bruker LP-filteret ti koeffisienter for åtte kHz inngang og 16 koeffisienter for 16 kHz inngang, og LP-analysekomponenten 430 beregnet et sett av lineære prediksjonskoeffisienter per ramme for hvert bånd. Alternativt beregner LP-analysekomponenten 430 to sett av koeffisienter per ramme for hvert bånd, en for hver av to vinduer sentrert ved forskjellige lokaliseringer, eller beregner et forskjellig antall av koeffisienter per bånd og/eller per ramme.
LPC-prosesseringskomponenten mottar og prosesserer de lineære prediksjonskoeffisienter 432. LPC-prosesseringskomponenten 435 konverterer typisk LPC-verdier til en forskjellig representasjon for mer effektiv kvantisering og koding. Foreksempel konverterer LPC-prosesseringkomponenten 435 LPC-verdier til en linjespektralpar (line spectral pair, LSP) representasjon, og LSP-verdiene kvantiseres (så som ved hjelp av vektorkvantisering) og kodes. LSP-verdiene kan være intrakodet eller predikert fra andre LSP-verdier. Forskjellige representasjoner, kvantiseringsteknikker og kodingsteknikker er mulig for LPC-verdier. LPC-verdiene er tilveiebrakt i en form som del av den kodede båndutgang 492 for pakketisering og overføring (sammen med eventuelle kvantiseringsparametere og annen informasjon som er nødvendig for rekonstruksjon). For etterfølgende bruk i koderen 400 rekonstruerer LPC-prosesseringskomponenten 435 LPC-verdiene. LPC-prosesseringskomponenten 435 kan gjennomføre interpolasjon for LPC-verdier (så som ekvivalent i LSP-representasjon eller en annen representasjon) for å glatte overgangene mellom forskjellige sett av LPC-koeffisienter, eller mellom de LPC-koeffisienter som brukes for forskjellige subrammer av rammer.
Syntesefilteret (eller "korttids predisjonsfilteret") 440 tar imot rekonstruerte LPC-verdier 438 og inkorporerer dem i filteret. Syntesefilteret 440 mottar et eksitasjonssignal og produserer en approksimasjon av det opprinnelige signal. For en gitt ramme kan syntesefilteret 440 bufre et antall av rekonstruerte sampler (eksempelvis ti for et ti-tapsfilter) fra den forutgående ramme for starten av prediksjonen.
De perseptuelle vektingskomponenter 450, 455 anvender perseptuell vekting på det opprinnelige signal og den modellerte utgang fra syntesefilteret 440, for selektivt å legge mindre vekt på formant-strukturen til talesignaler, for å gjøre hørselssystemene mindre sensitive for kvantiseringsfeil. De perseptuelle vektingskomponenter 450, 455 nyttiggjør seg psykoakustiske fenomener, så som maskering.
I en implementering anvender de perseptuelle vektingskomponenter 450, 455 vekter basert på de opprinnelige LPC-verdier 432 som er mottatt fra LP-analysekomponenten 430. Alternativt anvender de perseptuelle vektingskomponenter 450, 455 andre og/eller ytterligere vekter.
Etter de perseptuelle vektingskomponenter 450, 455, beregner koderen 400 differansen mellom det perseptuelt vektede opprinnelige signal og perseptuelt vektede utgang fra syntesefilteret 440, for å produsere et differansesignal 434. Alternativt bruker koderen 400 en forskjellig teknikk for å beregne taleparameterne.
Eksitasjons parameteriseringskomponten 460 søker å finne den beste kombinasjon av adaptive kodebokindekser, fast kodebokindekser og forsterknings-kodebokindekser i form av å minimere differansen mellom det perseptuelt vektede opprinnelige signal og syntetiserte signal (uttrykt ved vektet middelkvadratfeil eller andre kriterier). Mange parametere beregnes per subramme, men mer generelt kan parameterne være per superramme, ramme eller subramme. Som omtalt ovenfor kan parameterne for forskjellige bånd i en ramme eller subramme være forskjellige. Tabell 2 viser de tilgjengelige typer av parametere for forskjellige rammeklasser i en implementering.
På figur 4 deler eksitasjons parameteriseringskomponenten 460 rammen i subrammer og beregner kodebokindekser og forsterkninger for hver subramme som passende. For eksempel kan det antall og type av kodeboktrinn som skal brukes, og oppløsningene til kodebokindeksene, initialt bestemmes ved hjelp av en kodingsmodus, hvor modusen er diktert av ratekontrollkomponenten som er omtalt ovenfor. En bestemt modus kan også diktere kodings- og dekodingsparametere andre enn antall og type av kodeboktrinn, for eksempel oppløsningen av kodebokindeksene. Parameterne for hvert kodeboktrinn bestemmes ved optimering av parameterne for å minimere feil mellom et målsignal og bidraget fra dette kodeboktrinnet til det syntetiserte signal. (Som her brukt betyr uttrykket "optimere" å finne en passende oppløsning under anvendbare skranker, så som forvrengningsreduksjon, parametersøketid, parametersøkekompleksitet, bit rate for parametere, osv, i motsetning til å gjennomføre et fullt søk på parameterrommet. Tilsvarende bør uttrykket "minimere" forstås med henblikk på å finne en passende oppløsning under anvendbare skranker.) Optimeringen kan for eksempel gjøres ved bruk av en modifisert middelkvadratfeilteknikk. Målsignalet for hvert trinn er differansen mellom restsignalet og summen av bidragene fra de forutgående kodeboktrinn, hvis det er noen, til det syntetiserte signal. Alternativt kan det brukes andre optimeringsteknikker.
Figur 5 viser en teknikk for bestemmelse av kodebokparametere i henhold til en implementering. Eksitasjons parameteriseringskomponenten 460 gjennomfører teknikken, potensielt i forbindelse med andre komponenter, så som en ratekontroller. Alternativt gjennomfører en annen komponent i en koder teknikken.
Med henvisning til figur 5, for hver subramme i en stemt ramme eller over-gangsramme, bestemmer 510 eksitasjons parameteriseringskomponenten 460 om hvorvidt en adaptiv kodebok kan brukes for den inneværende subramme. (For eksempel kan ratestyringen diktere at ingen adaptiv kodebok skal brukes for en bestemt ramme.) Hvis den adaptive kodebok ikke skal brukes, så vil en adaptiv kodeboksvitsj at ingen adaptive kodebøker skal brukes 535. For eksempel kan dette gjøres ved å sette et én bit flagg ved det rammenivå som viser at ingen adaptive kodebøker brukes i rammen, ved spesifisering av en bestemt kodingsmodus ved rammenivået, eller ved å sette et én bit flagg for hver subramme, hvilket viser at ingen adaptiv kodebok brukes i subrammen.
Med fortsatt henvisning til figur 5, hvis en adaptiv kodebok kan brukes, så fastlegger komponenten 460 adaptive kodebokparametere. Disse parametere inkluderer en indeks, eller pitch-verdi, som viser et ønsket segment av eksitasjonssignalhistorien, så vel som en forsterkning som skal anvendes på det ønskede segment. På figurene 4 og 5 gjennomfører komponenten 460 et lukket sløyfe pitch-søk 520. Dette søket begynner med den pitch som er bestemt av den valgfrie åpen sløyfe pitch søkekomponent 425 på figur 4. En åpen sløyfe pitch søkekomponent 425 analyserer det vektede signal som produseres av vektingskomponenten 450 for å estimere dens pitch. Idet den begynner med denne estimerte pitch, optimerer det lukkede sløyfe pitch søk 520 pitch-verdien for å redusere feilen mellom målsignalet og det vektede syntetiserte signal som genereres fra et angitt segment av eksitasjonssignalhistorien. Den adaptive kodebok forsterkningsverdi blir også optimert 525. Den adaptive kodeboks forsterkningsverdi angir en multiplikator for påføring på de pitch predikerte verdier (verdiene fra det angitte segment i eksitasjonssignalhistorien) for å justere skalaen til verdiene. Den forsterkning som multipliseres med de pitch predikerte verdier er den adaptive kodebok sitt bidrag til eksitasjonssignalet for den inneværende ramme eller subramme. Forsterkningsoptimeringen 525 og det lukkede sløyfe pitch søk 520 produserer en forsterkningsverdi henholdsvis en indeksverdi som minimerer feilen mellom målsignalet og det vektede syntetiserte signal fra den adaptive kodebok sitt bidrag.
Hvis komponenten 460 bestemmer 530 at den adaptive kodebok skal brukes, så signaleres 540 de adaptive kodebokparametere i bit strømmen. Hvis ikke, så angis det at ingen adaptiv kodebok brukes for subrammen 535, så som ved å sette et én bit subrammenivåflagg som omtalt ovenfor. Denne bestemmelse 530 kan inkludere bestemmelse av om hvorvidt den adaptive kodebok sitt bidrag til den bestemte subramme er signifikant nok til å være verdt det antall av bits som er påkrevd for å signalisere den adaptive kodebok sine parametere. Alternativt kan en annen basis brukes for bestemmelsen. Dessuten, selv om figur 5 viser signalering etter bestemmelsen, blir signaler alternativt bearbeidet satsvis inntil teknikken avsluttes for en ramme eller superramme.
Eksitasjons parameteriseringskomponenten 460 bestemmer også 550 om hvorvidt det brukes en pulskodebok. Bruken eller ikke bruken av pulskodeboken angis som en del av en samlet kodingsmodus for den inneværende ramme, eller den kan angis eller bestemmes på andre måter. En pulskodebok er en type av fast kodebok som spesifiserer en eller flere pulser som skal bidras til eksitasjonssignalet. Pulskodebokparameterne inkluderer par av indekser og fortegn (forsterkninger kan være positive eller negative). Hvert par angir en puls som skal inkluderes i eksitasjonssignalet, hvor indeksen angir posisjonen til pulsen og fortegnet angir polariteten til pulsen. Det antall av pulser som er inkludert i pulskodeboken og som brukes som bidrag til eksitasjonssignalet kan variere i avhengighet av kodingsmodusen. I tillegg kan antallet av pulser avhenge av om hvorvidt eller ikke det brukes en adaptiv kodebok.
Hvis pulskodeboken brukes, så optimeres 555 pulskodebokparameterne for å minimere feil mellom bidraget fra de angitte pulser og et målsignal. Hvis en adaptiv kodebok ikke brukes, så er målsignalet det vektede opprinnelige signal. Hvis en adaptiv kodebok brukes, så er målsignalet differansen mellom det vektede opprinnelige signal og bidraget fra den adaptive kodebok til det vektede syntetiserte signal. Ved et punkt (ikke vist), blir pulskodebokparameterne deretter signalert i bit strømmen.
Eksitasjons parameteriseringskomponenten 460 bestemmer også 565 om hvorvidt noen tilfeldige faste kodeboktrinn skal brukes. Antallet (hvis noe) av de tilfeldige kodeboktrinn angis som del av en samlet kodingsmodus for den inneværende ramme, eller det kan bestemmes på andre måter. En tilfeldig kodebok er en type av fast kodebok som bruker en forhåndsdefinert signalmodell for de verdier den koder. Kodebokparameterne kan inkludere utgangspunktet for et angitt segment av signalmodellen og et fortegn som kan være positivt eller negativt. Lengden eller verdiområdet av det angitte segment er typisk fast, og blir derfor ikke typisk signalert, men alternativt signaleres en lengde eller utstrekning av det angitte segment. En forsterkning multipliseres med verdiene i det angitte segment for å produsere bidraget fra den tilfeldige kodebok til eksitasjonssignalet.
Hvis det brukes minst ett tilfeldig kodeboktrinn, så optimeres 570 kodebok-trinnparameterne for kodeboken for å minimere feilen mellom bidraget fra det tilfeldige kodeboktrinn og et målsignal. Målsignalet er differansen mellom det vektede opprinnelige signal og summen av bidragene til det vektede syntetiserte signal fra den adaptive kodebok (hvis det er noen), pulskodeboken (hvis det er noen) og de tidligere bestemte tilfeldige kodeboktrinn (hvis det er noen). Ved et punkt (ikke vist), blir de tilfeldige kodebokparametere deretter signalert i bit strømmen.
Komponenten 460 bestemmer deretter 580 om hvorvidt noen flere tilfeldige kodeboktrinn skal brukes. I så fall blir parameterne for det neste tilfeldige kodeboktrinn optimert 570 og signaler som beskrevet ovenfor. Dette fortsetter inntil alle parameterne for de tilfeldige kodeboktrinn har blitt bestemt. Alle de tilfeldige kodeboktrinn kan bruke den samme signalmodell, selv om de trolig vil angi forskjellige segmenter fra modellen og ha forskjellige forsterkningsverdier. Alternativt kan forskjellige signalmodeller brukes for forskjellige tilfeldige kodeboktrinn.
Hver eksitasjonsforsterkning kan kvantiseres uavhengig eller to eller flere forsterkninger kan kvantiseres sammen, som det bestemmes av ratekontrolleren og/eller andre komponenter.
Selv om en bestemt rekkefølge her har blitt fremsatt for optimering av de forskjellige kodebokparametere, kan andre rekkefølger og optimeringsteknikker brukes. For eksempel kan alle tilfeldige kodebøker optimeres samtidig. Således, selv om figur 5 viser sekvensiell beregning av forskjellige kodebokparametere, blir alternativt to eller flere forskjellige kodebokparametere optimert i fellesskap (eksempelvis ved i fellesskap å variere parameterne og evaluere resultatene i henhold til en ikke-lineær optimeringsteknikk). I tillegg kan andre konfigurasjoner av kodebøker eller eksitasjonssignalparametere brukes.
Eksitasjonssignalet i denne implementering er summen av eventuelle bidrag fra den adaptive kodebok, pulskodeboken og den eller de tilfeldige kodeboktrinn. Alternativt kan komponenten 460 på figur 4 beregne andre og/eller ytterligere parametere for eksitasjonssignalet.
Med henvisning til figur 4 blir kodebokparametere for eksitasjonssignalet signalert eller på annen måte tilveiebrakt til en lokal dekoder 465 (innelukket av stiplede linjer på figur 4) så vel som båndutgangen 492. Således, for hvert bånd, inkluderer koderutgangen 492 utgangen fra LPC-prosesseringskomponenten 435 som er omtalt ovenfor, så vel som utgangen fra eksitasjons parameteriseringskomponenten 460.
Bit raten for utgangen 492 avhenger delvis av de parametere som brukes av kodebøkene, og koderen 400 kan styre bit rate og/eller kvalitet ved svitsjing mellom forskjellige sett av kodebokindekser, ved bruk av integrerte koder, eller ved bruk av andre teknikker. Forskjellige kombinasjoner av kodeboktypene og trinnene kan gi forskjellige kodingsmodi for forskjellige rammer, bånd og/eller subrammer. For eksempel kan en ustemt ramme bruke kun ett tilfeldig kodeboktrinn. En adaptiv kodebok og en pulskodebok kan brukes for en stemt ramme med lav rate. En ramme med høy rate kan kodes ved bruk av en adaptiv kodebok, en pulskodebok og en eller flere tilfeldige kodeboktrinn. I en ramme kan kombinasjonen av alle kodingsmodi for alle subbåndene til sammen kalles et modussett. Det kan være flere forhåndsdefinerte modussett for hver samplingsrate, med forskjellige modi som korresponderer til forskjellige kodings bit rater. Ratestyringsmodulen kan bestemme eller influere på den modus som er satt for hver ramme.
Med fortsatt henvisning til figur 4, utgangen fra eksitasjons parameteriseringskomponenten 460 mottas av kodebokrekonstruksjonskomponenter 470, 472, 474, 474, 476 og forsterkningsapplikasjonskomponenter 480, 482, 484, 486 som korresponderer til de kodebøker som brukes av parameteriseringskomponenten 460. Kodeboktrinnene 470, 472, 474, 476 og korresponderende forsterkningsapplikasjonskomponenter 480, 482, 484, 486 rekonstruerer bidraget fra kodebøkene. Disse bidrag summeres for å produsere et eksitasjonssignal 490, som mottas av syntesefiltret 440, hvor det brukes sammen med de "predikerte" sampler fra hvilke etterfølgende lineær prediksjon skjer. Forsinkede deler av eksitasjonssignalet blir også brukt som et eksitasjonshistoriesignal av den adaptive kodebok-rekonstruksjonskomponent 470 for å rekonstruere etterfølgende adaptive kodebokparametere (eksempelvis pitch bidrag), og av parameteriseringskomponenten 460 for beregning av etterfølgende adaptive kodebokparametere (eksempelvis pitch indeks og pitch forsterkningsverdier).
Med henvisning tilbake til figur 2, båndutgangen for hvert bånd tas imot av MUXen 236, sammen med andre parametere. Slike andre parametere kan blant annet inkludere informasjon, rammeklasseinformasjon 222 fra rammesortereren 214 og rammekodingsmodi. MUXen 236 konstruerer applikasjonslagpakker for sending til annen programvare, eller MUXen 236 putter dataene i nyttedataene til pakker som følger en protokoll så som RTP. MUXen kan bufre parametere, for å tillate selektiv repetisjon av parameterne for forover rettet feilkorreksjon i senere pakker. I en implementering pakker MUXen 236 den primære kodede taleinformasjon for en ramme i en enkelt pakke, sammen med forover rettet feilkorreksjonsinformasjon for alle eller en del av en eller flere forutgående rammer.
MUXen 236 tilveiebringer tilbakemelding, så som inneværende bufferfullhet for ratestyringsformål. Mer generelt kan forskjellige komponenter i koderen 230 (inkludert rammesortereren 214 og MUXen 236) tilveiebringe informasjon til en ratekontroller 220, så som den som er vist på figur 2.
Bit strømmen DEMUX 276 på figur 2 tar imot kodet taleinformasjon som innmating og analyserer den for å identifisere og prosessere parametere. Parameterne kan inkludere rammeklasse, en representasjon av LPC-verdier og kodebokparametere. Rammeklassen kan angi hvilke andre parametere som er tilstede for en gitt ramme. Mer generelt bruker DEMUXen 276 de protokoller som brukes av koderen 230 og ekstraherer de parametere som koderen 230 pakker i pakker. For pakker som mottas over et dynamisk pakkesvitsjet nettverk, inkluderer DEMUXen 276 en dirringsbuffer for å glatte ut korttids fluktuasjoner i pakkerate over en gitt tidsperiode. I enkelte tilfeller regulerer dekoderen 270 bufferforsinkelsen og administrerer når pakker leses ut fra bufferen, for å integrere forsinkelse, kvalitetskontroll, skjuling av manglende rammer, osv, i dekoding. I andre tilfeller administrerer en applikasjonslagkomponent dirringsbufferen, og dirringsbufferen fylles ved en variabel rate og tømmes av dekoderen 270 ved en konstant eller relativt konstant rate.
DEMUXen 276 kan motta flere versjoner av parametere for et gitt segment, inkludert en primær kodet versjon og en eller flere sekundære feilkorreksjons-versjoner. Når feilkorreksjon mislykkes, bruker dekoderen 270 skjulingsteknikker, så som parameterrepetisjon eller estimering basert på informasjon som ble korrekt mottatt.
Figur 6 er et blokkdiagram over en generalisert sanntids talebånddekoder 600
i forbindelse med hvilken en eller flere beskrevne utførelser kan implementeres. Bånddekoderen 600 korresponderer generelt til en hvilken som helst av bånddekodingskomponenter 272, 274 på figur 2.
Bånddekoderen 600 tar imot kodet taleinformasjon 692 for et bånd (som kan være det fullstendige båndet, eller ett av flere subbånd) som inngang og produserer en filtrert rekonstruert utgang 604 etter dekoding og filtrering. Komponentene i dekoderen 600 har korresponderende komponenter i koderen 400, men samlet sett er dekoderen 600 enklere, siden den mangler komponenter for perseptuell vekting, eksitasjonsprosesseringssløyfe og ratekontroll.
LPC-prosesseringskomponenten 635 mottar informasjon som representerer LPC-verdier i den form som er tilveiebrakt av båndkoderen 400 (så vel som eventuelle kvantiseringsparametere og annen informasjon som er nødvendig for rekonstruksjon). LPC-prosesseringskomponenten 635 rekonstruerer LPC-verdiene 638 ved bruk av de inverse av konverteringen, kvantiseringen, kodingen, osv, som tidligere ble anvendt på LPC-verdiene. LPC-prosesseringskomponenten 635 kan også gjennomføre interpolasjon for LPC-verdier (i LPC-representasjon eller en annen representasjon, så som LSP) for å glatte overgangene mellom forskjellige sett av LPC-koeffisienter.
Kodeboktrinnene 670, 672, 674, 676 og forsterkningsapplikasjonskomponenter 680, 682, 684, 686 dekoder parameterne i hvilke som helst av de korresponderende kodeboktrinn som brukes til eksitasjonssignalet og beregner bidraget fra hvert kodeboktrinn som brukes. Generelt korresponderer konfigurasjonen og operasjonene av kodeboktrinnene 670, 672, 674, 676 og forsterkningskomponentene 680, 682, 684, 686 til konfigurasjonen og operasjonene av kodeboktrinnene 470, 472, 474, 476 og forsterkningskomponentene 480, 482, 484, 486 i koderen 400. Bidragene fra de brukte kodeboktrinn summeres, og det resulterende eksitasjonssignal 690 mates inn i syntesefilteret 640. Forsinkede verdier av eksitasjonssignalet 690 brukes også som en eksitasjonshistorie av den adaptive kodebok 670 ved beregning av bidragene fra den adaptive kodebok for etterfølgende partier av eksitasjonssignalet.
Syntesefilteret 640 tar imot rekonstruerte LPC-verdier 638 og inkorporerer dem i filteret. Syntesefilteret 640 lagrer tidligere rekonstruerte sampler for prosessering. Eksitasjonssignalet 690 sendes gjennom syntesefilteret for å danne en approksimasjon av det opprinnelige talesignal.
Det rekonstruerte subbåndsignal 602 mates også inn i et korttids etterfilter 694. Korttids etterfilteret produserer en filtrert subbåndutgang 604. Flere teknikker for beregning av koeffisienter for korttids etterfilteret 694 er beskrevet nedenfor. For adaptiv etterfiltrering kan dekoderen 270 beregne koeffisientene fra parametere (eksempelvis LPC-verdier) for den kodede tale. Koeffisientene blir alternativt tilveiebrakt gjennom en annen teknikk.
Med henvisning tilbake til figur 2, som omtalt ovenfor, hvis det er flere subbånd, blir subbåndutgangen for hvert subbånd syntetisert i syntesefilterbankene 280 for å danne taleutgangen 292.
De relasjoner som er vist på figurene 2-6 angir generelle strømmer av informasjon, andre relasjoner er av hensyn til enkelheten ikke vist. Avhengig av implementering og den type av kompresjon som ønskes, kan komponenter adderes, utelates, deles i flere komponenter, kombineres med andre komponenter og/eller byttes ut med like komponenter. For eksempel, i omgivelsen 200 som er vist på figur 2, kan ratekontrolleren 220 kombineres med talekoderen 230. Potensielt tilførte komponenter inkluderer en multimediakodings- (eller avspillings-) applikasjon som administrerer talekoderen (eller dekoderen) så vel som andre kodere (eller dekodere) og samler inn nettverks- og dekodertilstandsinformasjon, og som gjennomfører funksjoner med adaptiv feilkorreksjon. I alternative utførelser prosesserer forskjellige kombinasjoner og konfigurasjoner av komponenter taleinformasjon ved bruk av de teknikker som her er beskrevet.
III. Etterfilter teknikker
I enkelte utførelser anvender en dekoder eller et annet verktøy et korttids etterfilter for å rekonstruere audio, så som rekonstruert tale, etter at den har blitt dekodet. Et slikt filter kan forbedre den perseptuelle kvalitet av den rekonstruerte tale.
Etterfiltre er typisk enten tidsdomene etterfiltre eller frekvensdomene etterfiltre. Et konvensjonelt tidsdomene etterfilter for en CELP kodek inkluderer et alle-pol lineært prediksjonskoeffisient syntesefilter som er skalert med én konstant faktor og et alle-null lineært prediksjonskoeffisient inversfilter som er skalert med en annen konstant faktor.
I tillegg opptrer i mange talesignaler et fenomen som er kjent som "spektral helling", fordi amplitudene til lavere frekvenser i normal tale ofte er høyere enn amplitudene til høyere frekvenser. Frekvensdomene amplitudespektrumet for et talesignal inkluderer således ofte en skråning, eller "helling". Den spektrale helling fra den opprinnelige tale bør således være tilstede i et rekonstruert talesignal. Imidlertid, hvis koeffisienter for et etterfilter også inkorporerer en slik helling, så vil effekten av hellingen bli forstørret i etterfiltrets utgang, slik at det filtrerte talesignal vil bli forvrengt. Enkelte tidsdomene etterfiltre har således også et første ordens høypassfilter for å kompensere for spektral helling.
Karakteristikkene ved tidsdomene etterfiltrene blir derfor typisk styrt av to eller tre parametere, hvilket ikke tilveiebringer mye fleksibilitet.
Et frekvensdomene etterfilter har, på den annen side, en mer fleksibel måte til å definere etterfilter karakteristikaene. I et frekvensdomene etterfilter, bestemmes filterkoeffisientene i frekvensdomenen. Det dekodede talesignal blir transformert til frekvensdomenen, og filtreres i frekvensdomenen. Det filtrerte signal blir deretter transformert tilbake til tidsdomenen. Det resulterende filtrerte tidsdomenesignal har imidlertid typisk et forskjellig antall av sampler enn det opprinnelige, ufiltrerte tidsdomenesignal. For eksempel kan en ramme som har et 160 sampler konverteres til frekvensdomenen ved bruk av en 256-punkters transformasjon, så som en 256-punkters hurtig Fourier-transformasjon (fast Fourier transform, "FFT"), etter utfylling eller inkludering av senere sampler. Når en 256-punkters invers FFT anvendes til å konvertere rammen tilbake til tidsdomenen, vil dette gi 256 tidsdomene sampler. Det gir derfor nittiseks ekstra sampler. De ekstra nittiseks sampler kan overlappes, med og adderes til, respektivt sampler i de første nittiseks sampler i den neste ramme. Dette blir ofte referert til som overlappings-adderingsteknikken. Transformasjonen av talesignalet, så vel som implementeringen av teknikker så som overlappings-adderingsteknikken kan signifikant øke kompleksiteten ved den samlede dekoder, særlig for kodeker som ikke allerede inkluderer frekvens transformasjonskomponent-er. Frekvensdomene etterfiltre blir følgelig typisk kun brukt for sinusbaserte talekodeker fordi anvendelsen av slike filtre på ikke-sinusbaserte kodeker innfører for mye forsinkelse og kompleksitet. Frekvensdomene etterfiltre har også typisk mindre fleksibilitet til å forandre rammestørrelse hvis kodekrammestørrelsen varierer under koding, fordi kompleksiteten ved overlappings-adderingsteknikken som er omtalt ovenfor kan bli hindrende hvis en ramme av forskjellige størrelse (så som en ramme med 80 sampler, istedenfor 160 sampler) påtreffes.
Selv om bestemte databehandlingsomgivelsestrekk og audiokodektrekk er beskrevet ovenfor, kan et eller flere av verktøyene og teknikkene brukes sammen med forskjellige ulike typer av databehandlingsomgivelser og/eller forskjellige ulike typer av kodeker. For eksempel kan en eller flere av etterfilterteknikkene brukes sammen med kodeker som ikke bruker CELP-kodingsmodellen, så som adaptive differensial pulskodemodulasjonskodeker, transformasjonskodeker og/eller andre typer av kodeker. Som et annet eksempel kan en eller flere av etterfilterteknikkene brukes sammen med enkeltbåndkodeker eller subbåndkodeker. Som et annet eksempel kan en eller flere av etterfilterteknikkene anvendes på et enkelt bånd i en multibåndkodek og/eller på et syntetisert eller ukodet signal som inkluderer bidrag fra flere bånd i en multibåndkodek.
A. Eksempel hybrid korttids etterfiltre
I enkelte utførelser inkorporerer den dekoder, så som dekoderen 600 som er vist på figur 6, et adaptivt, tidsfrekvens "hybrid" filter for etterprosessering, eller et slikt filter anvendes på utgangen fra dekoderen 600. Alternativt er et slikt filter inkorporert i eller anvendes på utgangen fra en annen type av audiodekoder eller prosesseringsverktøy, for eksempel en talekodek som er beskrevet et annet sted i den foreliggende søknad.
Med henvisning til figur 6, i enkelte implementeringer er korttids etterfiltret 694 et "hybrid"-filter som er basert på en kombinasjon av tidsdomene- og frekvens-domeneprosesser. Koeffisientene til etterfiltret 694 kan fleksibelt og effektivt designet primært i frekvensdomenen, og koeffisientene kan anvendes på korttids etterfiltret 694 i tidsdomenen. Kompleksiteten ved denne løsningsmåte er typisk lavere enn standard frekvensdomene etterfiltre, og den kan implementeres på en måte som innfører neglisjerbar forsinkelse. Filtret kan i tillegg tilveiebringe mer fleksibilitet enn tradisjonelle tidsdomene etterfiltre. Det antas at et slikt hybridfilter signifikant kan forbedre utgangstalekvaliteten uten at dette krever overdrevent stor forsinkelse eller dekoderkompleksitet. I tillegg, fordi filtret 694 anvendes i tidsdomenen, kan det anvendes på rammer av en hvilken som helst størrelse.
Etterfiltret 694 kan generelt være et filter med endelig impulsrespons (finite impulse response, "FIR"), hvis frekvensrespons er resultatet av ikke-lineære prosesser som gjennomføres på logaritmen til et størrelsesspektrum for et LPC-syntesefilter. Størrelsesspektrumet til etterfiltret kan designes slik at filtret 694 kun demper ved spektrale daler, og i enkelte tilfeller blir i det minste en del av størrelses-spektrumet klippet til å være flatt rundt formantregioner. Som omtalt nedenfor kan FIR etterfilter koeffisientene fremskaffes ved trunkering av en normalisert sekvens som er et resultat av den inverse Fourier-transformasjon av det prosesserte størrelsesspektrum.
Filtret 694 anvendes på den rekonstruerte tale i tidsdomenen. Filtret kan anvendes på hele båndet eller på et subbånd. I tillegg kan filtret brukes alene eller i forbindelse med andre filtre, så som langtids etterfiltre og/eller midtfrekvens forbedringsfilteret som er omtalt i nærmere detalj nedenfor.
Det beskrevne etterfilter kan opereres i forbindelse med kodeker ved bruk av forskjellige bit rater, forskjellige samplingsrater og forskjellige kodingsalgoritmer. Det antas at etterfiltret 694 er i stand til å produsere en signifikant kvalitetsforbedring i forhold til bruken av stemmekodeker uten etterfiltret. Spesifikt antas det at etterfiltret 694 reduserer den sansbare kvantiseringsstøy i frekvensområder hvor signaleffekten er relativt lav, det vil si i spektrale daler mellom formanter. I disse områder er signal-til-støy-forholdet typisk dårlig. Med andre ord, på grunn av det svake signal, er den støyen som er til stede relativt sett sterkere. Det antas at etterfiltret forbedrer den samlede talekvalitet ved å dempe støynivået i disse områder.
De rekonstruerte LPC-koeffisienter 638 inneholder ofte formantinformasjon, fordi frekvensresponsen til LPC-syntesefiltret typisk følger den spektrale innhylling av inngangstalen. LPC-koeffisienter 638 brukes følgelig til å avlede koeffisientene for korttids etterfiltret. Fordi LPC-koeffisientene 638 forandres fra en ramme til den neste eller på en annen basis, tilpasses etterfilter koeffisientene som avledes fra dem også fra ramme til ramme eller på en annen basis.
En teknikk for beregning av filterkoeffisientene for etterfiltret 694 er illustrert på figur 7. Dekoderen 600 på figur 6 gjennomfører teknikken. Alternativt gjennomfører en annen dekoder eller etterfiltreringsverktøy teknikken.
Dekoderen 600 fremskaffer et LPC-spektrum ved null-utfylling 715 av et sett av LPC-koeffisienter 710 a( i), hvor /' = 0, 1, 2,..., P, og hvor a( 0) = 1. Settet av LPC-koeffisienter 710 kan fremskaffes fra en bit strøm hvis en lineær prediksjonskodek så som en CELP-kodek, brukes. Alternativt kan settet av LPC-koeffisienter 710 fremskaffes ved analysering av et rekonstruert talesignal. Dette kan gjøres selv om kodeken ikke er en lineær prediksjonskodek. P er LPC-rekkefølgen for LPC-koeffisientene a( i) som skal brukes ved bestemmelse av etterfilter koeffisientene. Null-utfylling involverer generelt forlenging av et signal (eller spektrum) med nuller for å forlenge dets tidsgrenser (eller frekvensbåndgrenser). I prosessen avbilder null-utfylling et signal med lengde P på signal med lengde N, hvor N>P. I en fullbånd kodek implementering er P ti for en åtte kHz samplingsrate, og seksten for samplingsrater som er høyere enn åtte kHz. Alternativt er P en annen verdi. For subbånd kodeker kan P være en forskjellig verdi for hvert subbånd. For eksempel, for en seksten kHz samplingsrate som bruker tre subbånd strukturen som er illustrert på figur 3, kan P være ti for det lave frekvensbånd 310, seks for det midtre bånd 320 og fire for det høye bånd 330. I en implementering er N 128. Alternativt er N et annet tall, så som 256.
Dekoderen 600 gjennomfører deretter en A/-punkts transformasjon, så som en FFT 720, på de null-utfylte koeffisienter, hvilket gir et størrelsesspektrum A( k). A( k) er spektrumet for det null-utfylte LPC inverse filter, for k = 0, 1,2,..., AM. Det inverse av størrelsesspektrumet (nemlig 1/|A(k)|) gir størrelsesspektrumet for LPC-syntesefiltret.
Størrelsesspektrumet for LPC-syntesefiltret blir valgfritt konvertert til den logaritmiske domene 725 for å redusere dets størrelsesområde. I en implementering er denne konverteringen som følger
hvor In er den naturlige logaritme. Andre operasjoner kan imidlertid brukes for å redusere verdiområdet. For eksempel kan en operasjon med logaritme med grunntall ti brukes istedenfor en operasjon med naturlig logaritme.
Tre valgfrie ikke-lineære operasjoner er basert på verdiene av H( k) ; normalisering 730, ikke-lineær kompresjon 735 og klipping 740.
Normalisering 730 er tilbøyelig til å gjøre verdiområdet av H( k) mer konsistent fra ramme til ramme og bånd til bånd. Både normalisering 730 og ikke-lineær kompresjon 735 reduserer verdiområdet for det ikke-lineære størrelsesspektrum, slik at talesignalet ikke endres for mye av etterfiltret. Alternativt kan ytterligere og/eller andre teknikker brukes til å redusere verdiområdet for størrelsesspektrumet.
I en implementering blir initial normalisering 730 gjennomført for hvert bånd i en multibåndkodek som følger:
hvor Hminer minimumsverdien av H( k), for k=0, 1,2,..., AM.
Normalisering 730 kan gjennomføres for en fullbåndkodek som følger:
hvor Hminer minimumsverdien av H( k), og Hmaxer maksimumsverdien av H( k), for k=0, 1,2,..., AM. I begge normaliseringsligninger ovenfor adderes en konstant verdi på 0,1 for å hindre at maksimums- og minimumsverdiene av H( k) blir 1 henholdsvis 0, hvilket gjør ikke-lineær kompresjon mer virksom. Andre konstante verdier, eller andre teknikker, kan alternativt brukes for å forhindre null-verdier.
Ikke-lineær kompresjon 735 gjennomføres for ytterligere å justere det dynamiske område av det ikke-lineære spektrum som følger:
hvor/c = 0,1,...,AM. Følgelig, hvis en 128-punkts FFT ble brukt til å konvertere koeffisientene til frekvensdomenen, så er k= 0,1,..., 127. I tillegg, a=rj<*>(Hmax-Hmin), med rj og y tatt som passende valgte konstante faktorer. Verdiene av r]og y kan velges i henhold til typen av talekodek og kodingsraten. I en implementering velges rj- og y-parameterne eksperimentelt. For eksempel velges y som en verdi fra området av 0,125 til 0,135, og r) velges fra området fra 0,5 til 1,0. De konstante verdier kan justeres basert på preferanser. For eksempel fremskaffes et område av konstante verdier ved analysering av den predikerte spektrumforvrengning (overveiende rundt topper og daler) som er et resultat av forskjellige konstante verdier. Det er typisk ønskelig å velge et område som ikke overstiger et forhåndsbestemt nivå av predikert forvrengning. Sluttverdiene blir da valgt fra et sett av verdier innenfor området ved bruk av resultatene fra subjektive lyttetester. For eksempel, i et etterfilter med en åtte
kHz samplingsrate, er rj 0,5 og y er 0,125, og i et etterfilter med en seksten kHz samplingsrate, er rj 1,0 og y er 0,135.
Klipping 740 kan anvendes på det komprimerte spektrum, Hc( k), som følger:
hvor Hmiddeier middelverdien av Hc( k) og A er en konstant. Verdien av A kan velges forskjellig i henhold til typen av talekodek og kodingsraten. I enkelte implementeringer velges A eksperimentelt (så som en verdi fra 0,95 til 1,1), og den kan justeres basert på preferanser. For eksempel kan sluttverdiene av A velges ved bruk av resultatene fra subjektive lyttetester. For eksempel, i et etterfilter med en åtte kHz samplingsrate, er A 1,1, og i etterfilter som opererer ved en seksten kHz samplingsrate, er A 0,95.
Klippingsoperasjonen setter lokk på verdiene av Hpf( k) ved et maksimum eller tak. I de ovenstående ligninger representeres dette maksimum som Å* Hmiddei. Alternativt brukes andre operasjoner til å sette lokk på verdiene av størrelses-spektrumet. For eksempel kan taket være basert på medianverdien av Hc( k), isteden for middelverdien. Videre, istedenfor å klippe alle de høye Hc( k)- verd\ er til en spesifikk maksimumsverdi (så som A* HmiddeiK), kan verdiene klippes i henhold til en mer kompleks operasjon.
Klipping er tilbøyelig til å resultere i filterkoeffisienter som vil dempe talesignalet ved dets daler uten i vesentlig grad å forandre talespektrumet i andre regioner, så som formantregioner. Dette kan hindre etterfiltret i å forvrenge tale-formantene, hvilket gir taleutgang med høyere kvalitet. I tillegg kan klipping redusere effektene av spektral helling, fordi klipping flater ut etterfilterspektrumet ved redusering av de store verdier til den verdi det er satt lokk på, mens verdiene rundt dalene forblir hovedsakelig uforandret.
Når konvertering til den logaritmiske domene ble gjennomført, blir det resulterende klippede størrelsesspektrum, Hpf(k), konvertert 745 fra logg-domenen til den lineære domene, for eksempel som følger:
hvor exp er den inverse naturlige logaritmefunksjon.
En A/-punkts invers hurtig Fourier-transformasjon 750 utføres på Hpfi( k), hvilket giren tidssekvens på f( n), hvor /?=0,1 , A/-1, og N er den samme som i FFT-operasjonen 720 omtalt ovenfor. f( n) er således en A/-punkts tidssekvens.
På figur 7 er verdiene av f( n) trunkert 755 ved at verdiene settes til null for/?>M-1, som følger:
hvor M er rekkefølgen av korttids etterfiltret. Generelt gir en høyere verdi av M filtrert tale med høyere kvalitet. Kompleksiteten ved etterfiltret øker imidlertid ettersom M øker. Verdien av M kan velges, idet disse avveiningene tas i betraktning. I en implementering er M sytten.
Verdiene av h( n) blir valgfritt normalisert 760 for å unngå brå forandringer mellom rammer. Dette gjøres for eksempel som følger:
Alternativt brukes en annen normaliseringsoperasjon. For eksempel kan den følgende operasjon brukes:
I en implementering hvor normalisering gir etterfilter koeffisienter hpf( n) 765, anvendes et FIR-filter med koeffisienter hpf( n) 765 på den syntetiserte tale i tidsdomenen. Således, i denne implementering, settes den første ordens etterfilter koeffisient ( n=Q) til en verdi på én for hver ramme, for å forhindre signifikante avvik i filterkoeffisientene fra en ramme til den neste.
B. Eksempel midtfrekvens forbedringsfiltre
I enkelte utførelser inkorporerer en dekoder, så som dekoderen 270 som er vist på figur 2, et midtfrekvens forbedringsfilter for etterprosessering, eller et slikt filter anvendes på utgangen fra dekoderen 270. Alternativt inkorporeres et slikt filter i eller anvendes på utgangen fra en annen type av audiodekoder eller prosesseringsverktøy, for eksempel en talekodek som er beskrevet et annet sted i den foreliggende søknad.
Som omtalt ovenfor dekomponerer multibåndkodeker et inngangssignal til kanaler med reduserte båndbredder, typisk fordi subbånd er mer håndterlige og fleksible for koding. Båndpassfiltre, så som filterbankene 216 som er beskrevet ovenfor med henvisning til figur 2, blir ofte brukt for signaldekomposisjon før koding. Signaldekomposisjon kan imidlertid forårsake et tap av signalenergi ved frekvensområdene mellom passbåndene for passbåndfiltrene. Midtfrekvens forbedrings (middle frequency enhancement, "MFE") filteret hjelper med dette potensielle problem til ved å forsterke størrelsesspektrumet for den dekodede utgangstale ved frekvensområder hvis energi ble dempet på grunn av signaldekomposisjon, uten i vesentlig å endre energien ved andre frekvensområder.
På figur 2 anvendes et MFE-filter 284 på utgangen fra båndsyntesefilteret (-filtrene), så som utgangen 292 fra filterbankene 280. Hvis bånd n dekoderne 272, 274 er vist på figur 6, anvendes følgelig korttids etterfiltret 694 separat på hvert rekonstruerte bånd i en subbånddekoder, mens MFE-filtret 284 anvendes på det kombinerte eller kompositt-rekonstruerte signal som inkluderer bidrag fra de flere subbånd. Som påpekt anvendes alternativt et MFE-filter i forbindelse med en dekoder som har en annen konfigurasjon.
I enkelte implementeringer er MFE-filtret et annen ordens båndpass FIR-filter. Det kaskaderer et første ordens lavpassfilter og et første ordens høypassfilter. Begge første ordens filtre kan ha identiske koeffisienter. Koeffisientene er typisk valgt slik at MFE-filterforsterkningen er ønskelig ved gjennomgangsbånd (økende energi for signalet) og enhet ved stopp-bånd (gjennomføring av signalet uforandret eller relativt uforandret). Alternativt brukes en annen teknikk til å forbedre frekvensområder som har blitt dempet på grunn av bånd-dekomposisjon.
Transferfunksjonen for et første ordens lavpass filter er:
Transferfunksjonen for et første ordens høypassfilter er:
Transferfunksjonen for et annen ordens MFE-filter som kaskaderer lavpass-filtret og høypassfiltret ovenfor er således:
De korresponderende MFE-filterkoeffisienter kan representeres som:
Verdien av u kan velges ved eksperiment. For eksempel fremskaffes et verdiområde av konstante verdier ved analysering av den predikerte spektrumforvrengning som er et resultat av forskjellige konstante verdier. Det er typisk ønskelig å velge et verdiområde som ikke overstiger et forhåndsbestemt nivå av predikert forvrengning. Sluttverdiene blir da valgt blant et sett av verdier innenfor verdiområdet ved bruk av resultatene fra subjektive lyttetester. I en implementering, når det brukes en seksten kHz samplingsrate, og talen er brutt opp i de følgende tre bånd (null til åtte kHz, åtte til tolv kHz og tolv til seksten kHz), kan det være ønskelig å forbedre området rundt åtte kHz, og u velges til å være 0,45. Alternativt velges andre verdier av u, særlig hvis det er ønskelig å forbedre et annet frekvensområde. Alternativt implementeres MFE-filtret med ett eller flere båndpassfiltre med forskjellig design, eller MFE-filteret implementeres med ett eller flere andre filtre.
Etter at prinsippene for vår oppfinnelse nå er beskrevet og illustrert med henvisning til beskrevne utførelser, vil det medgis at de beskrevne utførelser kan modifiseres i arrangement og detalj uten å avvike fra slike prinsipper. Det skal forstås at de programmer, prosesser eller fremgangsmåter som her er beskrevet ikke er relatert eller begrenset til noen bestemt type av databehandlingsomgivelse, med mindre annet er angitt. Forskjellige typer av databehandlingsomgivelser for generelt eller spesialisert formål kan brukes sammen med eller utføre operasjoner i samsvar med den lære som her er beskrevet. Elementer av de beskrevne utførelser som er vist i programvare kan implementeres i maskinvare, og omvendt.
I lys av de mange mulige utførelser som prinsippene ved vår oppfinnelse kan anvendes på, krever vi som vår oppfinnelse alle slike utførelser som kan komme innenfor omfanget og ideen til de følgende krav og ekvivalenter til dette.

Claims (7)

1. Datamaskinimplementert fremgangsmåte omfattende: beregning av et sett av filterkoeffisienter for anvendelse på et rekonstruert audiosignal, hvor beregningen av settet av filterkoeffisienter omfatter: gjennomføring (720) av en transformasjon av et sett av initiale tidsdomeneverdier fra en tidsdomene inn i en frekvensdomene, hvilket produserer et sett av initiale frekvensdomeneverdier; gjennomføring av én eller flere frekvensdomeneberegninger ved bruk av de initiale frekvensdomeneverdiene for å produsere et sett av prosesserte frekvensdomeneverdier; og gjennomføring (750) av en transformasjon av de prosesserte frekvensdomeneverdier fra frekvensdomenen inn i tidsdomenen, hvilket produserer et sett av prosesserte tidsdomeneverdier; produsering av et filtrert audiosignal ved filtrering av i det minste en del av det rekonstruerte audiosignal i en tidsdomene ved bruk av settet av filterkoeffisienter (694), hvor: gjennomføring (740) av én ene eller flere frekvensdomeneberegninger ved bruk av de initiale frekvensdomeneverdiene for å produsere et sett av prosesserte frekvensdomeneverdier, omfatter klipping av frekvensdomeneverdiene i frekvensdomenen, slik at kun de frekvensdomeneverdier som overstiger en maksimumsklippe-verdi, blir klippet.
2. Fremgangsmåte som angitt i krav 1, hvor det filtrerte audiosignal representerer et frekvens subbånd av det rekonstruerte audiosignal.
3. Fremgangsmåte som angitt i krav 1, hvor beregning av settet av filterkoeffisienter omfatter: trunkering av settet av tidsdomeneverdier i tidsdomenen.
4. Fremgangsmåte som angitt i krav 1, hvor beregning av settet av filterkoeffisienter omfatter prosessering av et sett av lineære prediksjonskoeffisienter.
5. Fremgangsmåte som angitt i krav 4, hvor prosessering av settet av lineære prediksjonskoeffisienter omfatter: å sette lokk på et spektrum som er avledet fra settet av lineære prediksjonskoeffisienter.
6. Fremgangsmåte som angitt i krav 4, hvor prosessering av settet av lineære prediksjonskoeffisienter omfatter redusering av et verdiområde for et spektrum som er avledet fra settet av lineære prediksjonskoeffisienter.
7. Fremgangsmåte som angitt i krav 1, hvor den ene eller de flere frekvensdomeneberegninger omfatter én eller flere beregninger i en logaritmisk domene.
NO20075773A 2005-05-31 2007-11-12 Audiokoding etterfilter NO340411B1 (no)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/142,603 US7707034B2 (en) 2005-05-31 2005-05-31 Audio codec post-filter
PCT/US2006/012641 WO2006130226A2 (en) 2005-05-31 2006-04-05 Audio codec post-filter

Publications (2)

Publication Number Publication Date
NO20075773L NO20075773L (no) 2008-02-28
NO340411B1 true NO340411B1 (no) 2017-04-18

Family

ID=37464575

Family Applications (1)

Application Number Title Priority Date Filing Date
NO20075773A NO340411B1 (no) 2005-05-31 2007-11-12 Audiokoding etterfilter

Country Status (15)

Country Link
US (1) US7707034B2 (no)
EP (1) EP1899962B1 (no)
JP (2) JP5165559B2 (no)
KR (2) KR101246991B1 (no)
CN (1) CN101501763B (no)
AU (1) AU2006252962B2 (no)
CA (1) CA2609539C (no)
EG (1) EG26313A (no)
ES (1) ES2644730T3 (no)
IL (1) IL187167A0 (no)
MX (1) MX2007014555A (no)
NO (1) NO340411B1 (no)
NZ (1) NZ563461A (no)
WO (1) WO2006130226A2 (no)
ZA (1) ZA200710201B (no)

Families Citing this family (65)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7315815B1 (en) 1999-09-22 2008-01-01 Microsoft Corporation LPC-harmonic vocoder with superframe structure
US7668712B2 (en) * 2004-03-31 2010-02-23 Microsoft Corporation Audio encoding and decoding with intra frames and adaptive forward error correction
US7707034B2 (en) * 2005-05-31 2010-04-27 Microsoft Corporation Audio codec post-filter
US7831421B2 (en) * 2005-05-31 2010-11-09 Microsoft Corporation Robust decoder
US7177804B2 (en) * 2005-05-31 2007-02-13 Microsoft Corporation Sub-band voice codec with multi-stage codebooks and redundant coding
KR100900438B1 (ko) * 2006-04-25 2009-06-01 삼성전자주식회사 음성 패킷 복구 장치 및 방법
WO2008022184A2 (en) * 2006-08-15 2008-02-21 Broadcom Corporation Constrained and controlled decoding after packet loss
US8311814B2 (en) * 2006-09-19 2012-11-13 Avaya Inc. Efficient voice activity detector to detect fixed power signals
ATE425532T1 (de) * 2006-10-31 2009-03-15 Harman Becker Automotive Sys Modellbasierte verbesserung von sprachsignalen
US8000961B2 (en) * 2006-12-26 2011-08-16 Yang Gao Gain quantization system for speech coding to improve packet loss concealment
US8688437B2 (en) 2006-12-26 2014-04-01 Huawei Technologies Co., Ltd. Packet loss concealment for speech coding
CN101622667B (zh) * 2007-03-02 2012-08-15 艾利森电话股份有限公司 用于分层编解码器的后置滤波器
WO2008111158A1 (ja) * 2007-03-12 2008-09-18 Fujitsu Limited 音声波形補間装置および方法
CN101325537B (zh) * 2007-06-15 2012-04-04 华为技术有限公司 一种丢帧隐藏的方法和设备
RU2470385C2 (ru) * 2008-03-05 2012-12-20 Войсэйдж Корпорейшн Система и способ улучшения декодированного тонального звукового сигнала
US9197181B2 (en) * 2008-05-12 2015-11-24 Broadcom Corporation Loudness enhancement system and method
US9373339B2 (en) * 2008-05-12 2016-06-21 Broadcom Corporation Speech intelligibility enhancement system and method
JP4735711B2 (ja) * 2008-12-17 2011-07-27 ソニー株式会社 情報符号化装置
USRE48462E1 (en) * 2009-07-29 2021-03-09 Northwestern University Systems, methods, and apparatus for equalization preference learning
US9324337B2 (en) * 2009-11-17 2016-04-26 Dolby Laboratories Licensing Corporation Method and system for dialog enhancement
US8832281B2 (en) * 2010-01-08 2014-09-09 Tangome, Inc. Utilizing resources of a peer-to-peer computer environment
US9094527B2 (en) * 2010-01-11 2015-07-28 Tangome, Inc. Seamlessly transferring a communication
US8560633B2 (en) * 2010-01-11 2013-10-15 Tangome, Inc. Communicating in a peer-to-peer computer environment
JP4709928B1 (ja) * 2010-01-21 2011-06-29 株式会社東芝 音質補正装置及び音質補正方法
EP2569767B1 (en) * 2010-05-11 2014-06-11 Telefonaktiebolaget LM Ericsson (publ) Method and arrangement for processing of audio signals
CA3025108C (en) * 2010-07-02 2020-10-27 Dolby International Ab Audio decoding with selective post filtering
CN102074241B (zh) * 2011-01-07 2012-03-28 蔡镇滨 一种通过快速声音波形修复实现声音还原的方法
JP5712288B2 (ja) 2011-02-14 2015-05-07 フラウンホーファー−ゲゼルシャフト・ツール・フェルデルング・デル・アンゲヴァンテン・フォルシュング・アインゲトラーゲネル・フェライン 重複変換を使用した情報信号表記
CA2827266C (en) 2011-02-14 2017-02-28 Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E.V. Apparatus and method for coding a portion of an audio signal using a transient detection and a quality result
CA2903681C (en) 2011-02-14 2017-03-28 Fraunhofer-Gesellschaft Zur Forderung Der Angewandten Forschung E.V. Audio codec using noise synthesis during inactive phases
EP4243017A3 (en) 2011-02-14 2023-11-08 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Apparatus and method decoding an audio signal using an aligned look-ahead portion
PL2661745T3 (pl) 2011-02-14 2015-09-30 Fraunhofer Ges Forschung Urządzenie i sposób do ukrywania błędów w zunifikowanym kodowaniu mowy i audio
MX2013009345A (es) 2011-02-14 2013-10-01 Fraunhofer Ges Forschung Codificacion y decodificacion de posiciones de los pulsos de las pistas de una señal de audio.
ES2529025T3 (es) 2011-02-14 2015-02-16 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Aparato y método para procesar una señal de audio decodificada en un dominio espectral
MY159444A (en) 2011-02-14 2017-01-13 Fraunhofer-Gesellschaft Zur Forderung Der Angewandten Forschung E V Encoding and decoding of pulse positions of tracks of an audio signal
MX2013009346A (es) 2011-02-14 2013-10-01 Fraunhofer Ges Forschung Prediccion lineal basada en esquema de codificacion utilizando conformacion de ruido de dominio espectral.
US9626982B2 (en) * 2011-02-15 2017-04-18 Voiceage Corporation Device and method for quantizing the gains of the adaptive and fixed contributions of the excitation in a CELP codec
JP6010539B2 (ja) * 2011-09-09 2016-10-19 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカPanasonic Intellectual Property Corporation of America 符号化装置、復号装置、符号化方法および復号方法
LT2774145T (lt) * 2011-11-03 2020-09-25 Voiceage Evs Llc Nekalbinio turinio gerinimas mažos spartos celp dekoderiui
WO2013068634A1 (en) * 2011-11-10 2013-05-16 Nokia Corporation A method and apparatus for detecting audio sampling rate
US9972325B2 (en) * 2012-02-17 2018-05-15 Huawei Technologies Co., Ltd. System and method for mixed codebook excitation for speech coding
CN102970133B (zh) * 2012-11-12 2015-10-14 安徽量子通信技术有限公司 量子网络的语音传输方法和语音终端
PL2922053T3 (pl) * 2012-11-15 2019-11-29 Ntt Docomo Inc Urządzenie do kodowania audio, sposób kodowania audio, program do kodowania audio, urządzenie do dekodowania audio, sposób dekodowania audio, i program do dekodowania audio
CN103928031B (zh) 2013-01-15 2016-03-30 华为技术有限公司 编码方法、解码方法、编码装置和解码装置
TR201910989T4 (tr) 2013-03-04 2019-08-21 Voiceage Evs Llc Bir zaman-bölgesi kod çözücüsünde nicemleme gürültüsünün azaltılmasına yönelik cihaz ve yöntem.
US9349196B2 (en) 2013-08-09 2016-05-24 Red Hat, Inc. Merging and splitting data blocks
CN105900455B (zh) * 2013-10-22 2018-04-06 延世大学工业学术合作社 用于处理音频信号的方法和设备
EP2887350B1 (en) * 2013-12-19 2016-10-05 Dolby Laboratories Licensing Corporation Adaptive quantization noise filtering of decoded audio data
CA2940657C (en) * 2014-04-17 2021-12-21 Voiceage Corporation Methods, encoder and decoder for linear predictive encoding and decoding of sound signals upon transition between frames having different sampling rates
US9626983B2 (en) * 2014-06-26 2017-04-18 Qualcomm Incorporated Temporal gain adjustment based on high-band signal characteristic
EP2980799A1 (en) * 2014-07-28 2016-02-03 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Apparatus and method for processing an audio signal using a harmonic post-filter
EP2980801A1 (en) 2014-07-28 2016-02-03 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Method for estimating noise in an audio signal, noise estimator, audio encoder, audio decoder, and system for transmitting audio signals
EP2980794A1 (en) 2014-07-28 2016-02-03 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Audio encoder and decoder using a frequency domain processor and a time domain processor
JP2016042132A (ja) * 2014-08-18 2016-03-31 ソニー株式会社 音声処理装置、音声処理方法、並びにプログラム
MY179448A (en) 2014-10-02 2020-11-06 Dolby Int Ab Decoding method and decoder for dialog enhancement
US9837089B2 (en) * 2015-06-18 2017-12-05 Qualcomm Incorporated High-band signal generation
US10847170B2 (en) 2015-06-18 2020-11-24 Qualcomm Incorporated Device and method for generating a high-band signal from non-linearly processed sub-ranges
EP3320539A1 (en) 2015-07-06 2018-05-16 Nokia Technologies OY Bit error detector for an audio signal decoder
US9881630B2 (en) * 2015-12-30 2018-01-30 Google Llc Acoustic keystroke transient canceler for speech communication terminals using a semi-blind adaptive filter model
CN105869653B (zh) * 2016-05-31 2019-07-12 华为技术有限公司 话音信号处理方法和相关装置和系统
KR20180003389U (ko) 2017-05-25 2018-12-05 조경래 패널용 클램핑 기구
US10957331B2 (en) * 2018-12-17 2021-03-23 Microsoft Technology Licensing, Llc Phase reconstruction in a speech decoder
KR20210135492A (ko) * 2019-03-05 2021-11-15 소니그룹주식회사 신호 처리 장치 및 방법, 그리고 프로그램
US20210093203A1 (en) * 2019-09-30 2021-04-01 DawnLight Technologies Systems and methods of determining heart-rate and respiratory rate from a radar signal using machine learning methods
CN114333856B (zh) * 2021-12-24 2024-08-02 南京西觉硕信息科技有限公司 给定线性预测系数时后半帧语音信号的求解方法、装置及系统

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1308932A2 (en) * 2001-10-03 2003-05-07 Broadcom Corporation Adaptive postfiltering methods and systems for decoding speech

Family Cites Families (116)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4969192A (en) 1987-04-06 1990-11-06 Voicecraft, Inc. Vector adaptive predictive coder for speech and audio
US4815134A (en) 1987-09-08 1989-03-21 Texas Instruments Incorporated Very low rate speech encoder and decoder
CN1062963C (zh) 1990-04-12 2001-03-07 多尔拜实验特许公司 用于产生高质量声音信号的解码器和编码器
US5664051A (en) 1990-09-24 1997-09-02 Digital Voice Systems, Inc. Method and apparatus for phase synthesis for speech processing
KR960013206B1 (ko) * 1990-12-31 1996-10-02 박헌철 조립식 원적외선 사우나 욕실
US5255339A (en) 1991-07-19 1993-10-19 Motorola, Inc. Low bit rate vocoder means and method
US5734789A (en) 1992-06-01 1998-03-31 Hughes Electronics Voiced, unvoiced or noise modes in a CELP vocoder
JP2746039B2 (ja) 1993-01-22 1998-04-28 日本電気株式会社 音声符号化方式
US5706352A (en) * 1993-04-07 1998-01-06 K/S Himpp Adaptive gain and filtering circuit for a sound reproduction system
IT1270438B (it) * 1993-06-10 1997-05-05 Sip Procedimento e dispositivo per la determinazione del periodo del tono fondamentale e la classificazione del segnale vocale in codificatori numerici della voce
US5615298A (en) * 1994-03-14 1997-03-25 Lucent Technologies Inc. Excitation signal synthesis during frame erasure or packet loss
US5717823A (en) 1994-04-14 1998-02-10 Lucent Technologies Inc. Speech-rate modification for linear-prediction based analysis-by-synthesis speech coders
JP3277682B2 (ja) 1994-04-22 2002-04-22 ソニー株式会社 情報符号化方法及び装置、情報復号化方法及び装置、並びに情報記録媒体及び情報伝送方法
JP3277705B2 (ja) 1994-07-27 2002-04-22 ソニー株式会社 情報符号化装置及び方法、並びに情報復号化装置及び方法
TW271524B (no) 1994-08-05 1996-03-01 Qualcomm Inc
US5699477A (en) 1994-11-09 1997-12-16 Texas Instruments Incorporated Mixed excitation linear prediction with fractional pitch
US5751903A (en) 1994-12-19 1998-05-12 Hughes Electronics Low rate multi-mode CELP codec that encodes line SPECTRAL frequencies utilizing an offset
JP3189614B2 (ja) * 1995-03-13 2001-07-16 松下電器産業株式会社 音声帯域拡大装置
JP3317470B2 (ja) 1995-03-28 2002-08-26 日本電信電話株式会社 音響信号符号化方法、音響信号復号化方法
FR2734389B1 (fr) 1995-05-17 1997-07-18 Proust Stephane Procede d'adaptation du niveau de masquage du bruit dans un codeur de parole a analyse par synthese utilisant un filtre de ponderation perceptuelle a court terme
US5668925A (en) 1995-06-01 1997-09-16 Martin Marietta Corporation Low data rate speech encoder with mixed excitation
US5664055A (en) 1995-06-07 1997-09-02 Lucent Technologies Inc. CS-ACELP speech compression system with adaptive pitch prediction filter gain based on a measure of periodicity
US5699485A (en) 1995-06-07 1997-12-16 Lucent Technologies Inc. Pitch delay modification during frame erasures
US5774837A (en) 1995-09-13 1998-06-30 Voxware, Inc. Speech coding system and method using voicing probability determination
US6064962A (en) * 1995-09-14 2000-05-16 Kabushiki Kaisha Toshiba Formant emphasis method and formant emphasis filter device
US5864798A (en) * 1995-09-18 1999-01-26 Kabushiki Kaisha Toshiba Method and apparatus for adjusting a spectrum shape of a speech signal
US5835495A (en) 1995-10-11 1998-11-10 Microsoft Corporation System and method for scaleable streamed audio transmission over a network
TW321810B (no) 1995-10-26 1997-12-01 Sony Co Ltd
IT1281001B1 (it) 1995-10-27 1998-02-11 Cselt Centro Studi Lab Telecom Procedimento e apparecchiatura per codificare, manipolare e decodificare segnali audio.
US5778335A (en) 1996-02-26 1998-07-07 The Regents Of The University Of California Method and apparatus for efficient multiband celp wideband speech and music coding and decoding
US6041345A (en) 1996-03-08 2000-03-21 Microsoft Corporation Active stream format for holding multiple media streams
JP3248668B2 (ja) * 1996-03-25 2002-01-21 日本電信電話株式会社 ディジタルフィルタおよび音響符号化/復号化装置
SE506341C2 (sv) 1996-04-10 1997-12-08 Ericsson Telefon Ab L M Metod och anordning för rekonstruktion av en mottagen talsignal
JP3335841B2 (ja) 1996-05-27 2002-10-21 日本電気株式会社 信号符号化装置
US5819298A (en) * 1996-06-24 1998-10-06 Sun Microsystems, Inc. File allocation tables with holes
JP3472974B2 (ja) 1996-10-28 2003-12-02 日本電信電話株式会社 音響信号符号化方法および音響信号復号化方法
US6570991B1 (en) 1996-12-18 2003-05-27 Interval Research Corporation Multi-feature speech/music discrimination system
US6317714B1 (en) 1997-02-04 2001-11-13 Microsoft Corporation Controller and associated mechanical characters operable for continuously performing received control data while engaging in bidirectional communications over a single communications channel
US6134518A (en) 1997-03-04 2000-10-17 International Business Machines Corporation Digital audio signal coding using a CELP coder and a transform coder
US6292834B1 (en) 1997-03-14 2001-09-18 Microsoft Corporation Dynamic bandwidth selection for efficient transmission of multimedia streams in a computer network
US6131084A (en) 1997-03-14 2000-10-10 Digital Voice Systems, Inc. Dual subframe quantization of spectral magnitudes
US6728775B1 (en) 1997-03-17 2004-04-27 Microsoft Corporation Multiple multicasting of multimedia streams
JP3185748B2 (ja) 1997-04-09 2001-07-11 日本電気株式会社 信号符号化装置
IL120788A (en) 1997-05-06 2000-07-16 Audiocodes Ltd Systems and methods for encoding and decoding speech for lossy transmission networks
US6009122A (en) 1997-05-12 1999-12-28 Amati Communciations Corporation Method and apparatus for superframe bit allocation
CA2291062C (en) 1997-05-12 2007-05-01 Amati Communications Corporation Method and apparatus for superframe bit allocation
US6058359A (en) 1998-03-04 2000-05-02 Telefonaktiebolaget L M Ericsson Speech coding including soft adaptability feature
FI973873A (fi) 1997-10-02 1999-04-03 Nokia Mobile Phones Ltd Puhekoodaus
US6263312B1 (en) 1997-10-03 2001-07-17 Alaris, Inc. Audio compression and decompression employing subband decomposition of residual signal and distortion reduction
EP1763019B1 (en) 1997-10-22 2016-12-07 Godo Kaisha IP Bridge 1 Orthogonalization search for the CELP based speech coding
US6199037B1 (en) 1997-12-04 2001-03-06 Digital Voice Systems, Inc. Joint quantization of speech subframe voicing metrics and fundamental frequencies
US5870412A (en) 1997-12-12 1999-02-09 3Com Corporation Forward error correction system for packet based real time media
US6351730B2 (en) 1998-03-30 2002-02-26 Lucent Technologies Inc. Low-complexity, low-delay, scalable and embedded speech and audio coding with adaptive frame loss concealment
US6029126A (en) 1998-06-30 2000-02-22 Microsoft Corporation Scalable audio coder and decoder
US6330533B2 (en) 1998-08-24 2001-12-11 Conexant Systems, Inc. Speech encoder adaptively applying pitch preprocessing with warping of target signal
US6493665B1 (en) 1998-08-24 2002-12-10 Conexant Systems, Inc. Speech classification and parameter weighting used in codebook search
US6240386B1 (en) * 1998-08-24 2001-05-29 Conexant Systems, Inc. Speech codec employing noise classification for noise compensation
US6385573B1 (en) 1998-08-24 2002-05-07 Conexant Systems, Inc. Adaptive tilt compensation for synthesized speech residual
US6823303B1 (en) 1998-08-24 2004-11-23 Conexant Systems, Inc. Speech encoder using voice activity detection in coding noise
FR2784218B1 (fr) 1998-10-06 2000-12-08 Thomson Csf Procede de codage de la parole a bas debit
US6438136B1 (en) 1998-10-09 2002-08-20 Microsoft Corporation Method for scheduling time slots in a communications network channel to support on-going video transmissions
US6289297B1 (en) 1998-10-09 2001-09-11 Microsoft Corporation Method for reconstructing a video frame received from a video source over a communication channel
GB2342829B (en) * 1998-10-13 2003-03-26 Nokia Mobile Phones Ltd Postfilter
JP4359949B2 (ja) 1998-10-22 2009-11-11 ソニー株式会社 信号符号化装置及び方法、並びに信号復号装置及び方法
US6310915B1 (en) 1998-11-20 2001-10-30 Harmonic Inc. Video transcoder with bitstream look ahead for rate control and statistical multiplexing
US6226606B1 (en) 1998-11-24 2001-05-01 Microsoft Corporation Method and apparatus for pitch tracking
US6385665B1 (en) * 1998-12-18 2002-05-07 Alcatel Usa Sourcing, L.P. System and method for managing faults in a data transmission system
US6311154B1 (en) 1998-12-30 2001-10-30 Nokia Mobile Phones Limited Adaptive windows for analysis-by-synthesis CELP-type speech coding
US6499060B1 (en) 1999-03-12 2002-12-24 Microsoft Corporation Media coding for loss recovery with remotely predicted data units
US6460153B1 (en) 1999-03-26 2002-10-01 Microsoft Corp. Apparatus and method for unequal error protection in multiple-description coding using overcomplete expansions
US6952668B1 (en) 1999-04-19 2005-10-04 At&T Corp. Method and apparatus for performing packet loss or frame erasure concealment
US7117156B1 (en) 1999-04-19 2006-10-03 At&T Corp. Method and apparatus for performing packet loss or frame erasure concealment
DE19921122C1 (de) 1999-05-07 2001-01-25 Fraunhofer Ges Forschung Verfahren und Vorrichtung zum Verschleiern eines Fehlers in einem codierten Audiosignal und Verfahren und Vorrichtung zum Decodieren eines codierten Audiosignals
JP3365346B2 (ja) * 1999-05-18 2003-01-08 日本電気株式会社 音声符号化装置及び方法並びに音声符号化プログラムを記録した記憶媒体
US6633841B1 (en) 1999-07-29 2003-10-14 Mindspeed Technologies, Inc. Voice activity detection speech coding to accommodate music signals
US6434247B1 (en) * 1999-07-30 2002-08-13 Gn Resound A/S Feedback cancellation apparatus and methods utilizing adaptive reference filter mechanisms
US6775649B1 (en) 1999-09-01 2004-08-10 Texas Instruments Incorporated Concealment of frame erasures for speech transmission and storage system and method
US6505152B1 (en) 1999-09-03 2003-01-07 Microsoft Corporation Method and apparatus for using formant models in speech systems
US7315815B1 (en) 1999-09-22 2008-01-01 Microsoft Corporation LPC-harmonic vocoder with superframe structure
US6782360B1 (en) 1999-09-22 2004-08-24 Mindspeed Technologies, Inc. Gain quantization for a CELP speech coder
US6772126B1 (en) 1999-09-30 2004-08-03 Motorola, Inc. Method and apparatus for transferring low bit rate digital voice messages using incremental messages
JP2001117573A (ja) * 1999-10-20 2001-04-27 Toshiba Corp 音声スペクトル強調方法/装置及び音声復号化装置
US6621935B1 (en) 1999-12-03 2003-09-16 Microsoft Corporation System and method for robust image representation over error-prone channels
US6732070B1 (en) 2000-02-16 2004-05-04 Nokia Mobile Phones, Ltd. Wideband speech codec using a higher sampling rate in analysis and synthesis filtering than in excitation searching
US6693964B1 (en) 2000-03-24 2004-02-17 Microsoft Corporation Methods and arrangements for compressing image based rendering data using multiple reference frame prediction techniques that support just-in-time rendering of an image
US6757654B1 (en) 2000-05-11 2004-06-29 Telefonaktiebolaget Lm Ericsson Forward error correction in speech coding
JP2002118517A (ja) 2000-07-31 2002-04-19 Sony Corp 直交変換装置及び方法、逆直交変換装置及び方法、変換符号化装置及び方法、並びに復号装置及び方法
US6934678B1 (en) 2000-09-25 2005-08-23 Koninklijke Philips Electronics N.V. Device and method for coding speech to be recognized (STBR) at a near end
EP1199709A1 (en) * 2000-10-20 2002-04-24 Telefonaktiebolaget Lm Ericsson Error Concealment in relation to decoding of encoded acoustic signals
US6968309B1 (en) 2000-10-31 2005-11-22 Nokia Mobile Phones Ltd. Method and system for speech frame error concealment in speech decoding
EP1353323B1 (en) 2000-11-27 2007-01-17 Nippon Telegraph and Telephone Corporation Method, device and program for coding and decoding acoustic parameter, and method, device and program for coding and decoding sound
CN1327409C (zh) 2001-01-19 2007-07-18 皇家菲利浦电子有限公司 提供信号重建的宽带音频信号发送机、接收机、系统和方法
US6614370B2 (en) 2001-01-26 2003-09-02 Oded Gottesman Redundant compression techniques for transmitting data over degraded communication links and/or storing data on media subject to degradation
US7151749B2 (en) 2001-06-14 2006-12-19 Microsoft Corporation Method and System for providing adaptive bandwidth control for real-time communication
US6658383B2 (en) 2001-06-26 2003-12-02 Microsoft Corporation Method for coding speech and music signals
US6879955B2 (en) 2001-06-29 2005-04-12 Microsoft Corporation Signal modification based on continuous time warping for low bit rate CELP coding
US6941263B2 (en) * 2001-06-29 2005-09-06 Microsoft Corporation Frequency domain postfiltering for quality enhancement of coded speech
US7277554B2 (en) * 2001-08-08 2007-10-02 Gn Resound North America Corporation Dynamic range compression using digital frequency warping
US6785645B2 (en) 2001-11-29 2004-08-31 Microsoft Corporation Real-time speech and music classifier
US6934677B2 (en) 2001-12-14 2005-08-23 Microsoft Corporation Quantization matrices based on critical band pattern information for digital audio wherein quantization bands differ from critical bands
US7027982B2 (en) 2001-12-14 2006-04-11 Microsoft Corporation Quality and rate control strategy for digital audio
US6647366B2 (en) 2001-12-28 2003-11-11 Microsoft Corporation Rate control strategies for speech and music coding
US6789123B2 (en) 2001-12-28 2004-09-07 Microsoft Corporation System and method for delivery of dynamically scalable audio/video content over a network
JP4000589B2 (ja) * 2002-03-07 2007-10-31 ソニー株式会社 復号装置および復号方法、並びにプログラムおよび記録媒体
CA2388352A1 (en) * 2002-05-31 2003-11-30 Voiceage Corporation A method and device for frequency-selective pitch enhancement of synthesized speed
CA2388439A1 (en) 2002-05-31 2003-11-30 Voiceage Corporation A method and device for efficient frame erasure concealment in linear predictive based speech codecs
US7356748B2 (en) 2003-12-19 2008-04-08 Telefonaktiebolaget Lm Ericsson (Publ) Partial spectral loss concealment in transform codecs
EP1709734B1 (en) * 2004-01-19 2008-05-21 Nxp B.V. System for audio signal processing
CA2457988A1 (en) * 2004-02-18 2005-08-18 Voiceage Corporation Methods and devices for audio compression based on acelp/tcx coding and multi-rate lattice vector quantization
US7668712B2 (en) 2004-03-31 2010-02-23 Microsoft Corporation Audio encoding and decoding with intra frames and adaptive forward error correction
US7362819B2 (en) * 2004-06-16 2008-04-22 Lucent Technologies Inc. Device and method for reducing peaks of a composite signal
US7246037B2 (en) 2004-07-19 2007-07-17 Eberle Design, Inc. Methods and apparatus for an improved signal monitor
NZ562182A (en) * 2005-04-01 2010-03-26 Qualcomm Inc Method and apparatus for anti-sparseness filtering of a bandwidth extended speech prediction excitation signal
US7177804B2 (en) 2005-05-31 2007-02-13 Microsoft Corporation Sub-band voice codec with multi-stage codebooks and redundant coding
US7707034B2 (en) * 2005-05-31 2010-04-27 Microsoft Corporation Audio codec post-filter
US7831421B2 (en) 2005-05-31 2010-11-09 Microsoft Corporation Robust decoder

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1308932A2 (en) * 2001-10-03 2003-05-07 Broadcom Corporation Adaptive postfiltering methods and systems for decoding speech

Also Published As

Publication number Publication date
AU2006252962B2 (en) 2011-04-07
AU2006252962A1 (en) 2006-12-07
WO2006130226A3 (en) 2009-04-23
IL187167A0 (en) 2008-06-05
CN101501763B (zh) 2012-09-19
JP5688852B2 (ja) 2015-03-25
NO20075773L (no) 2008-02-28
KR101344174B1 (ko) 2013-12-20
US20060271354A1 (en) 2006-11-30
EP1899962A4 (en) 2014-09-10
ZA200710201B (en) 2009-08-26
JP2012163981A (ja) 2012-08-30
MX2007014555A (es) 2008-11-06
KR101246991B1 (ko) 2013-03-25
ES2644730T3 (es) 2017-11-30
KR20080011216A (ko) 2008-01-31
EP1899962A2 (en) 2008-03-19
NZ563461A (en) 2011-01-28
KR20120121928A (ko) 2012-11-06
JP2009508146A (ja) 2009-02-26
JP5165559B2 (ja) 2013-03-21
EP1899962B1 (en) 2017-07-26
US7707034B2 (en) 2010-04-27
WO2006130226A2 (en) 2006-12-07
EG26313A (en) 2013-07-24
CA2609539A1 (en) 2006-12-07
CN101501763A (zh) 2009-08-05
CA2609539C (en) 2016-03-29

Similar Documents

Publication Publication Date Title
NO340411B1 (no) Audiokoding etterfilter
JP5186054B2 (ja) マルチステージコードブックおよび冗長コーディング技術フィールドを有するサブバンド音声コーデック
RU2389085C2 (ru) Способы и устройства для введения низкочастотных предыскажений в ходе сжатия звука на основе acelp/tcx
US7529660B2 (en) Method and device for frequency-selective pitch enhancement of synthesized speech
CN101140759A (zh) 语音或音频信号的带宽扩展方法及系统
JP2008537165A (ja) 広帯域音声符号化のためのシステム、方法、及び装置
CA3134652A1 (en) Methods, encoder and decoder for linear predictive encoding and decoding of sound signals upon transition between frames having different sampling rates
TWI597721B (zh) 使用多個子頻帶之高頻帶信號寫碼
WO2005045808A1 (en) Harmonic noise weighting in digital speech coders

Legal Events

Date Code Title Description
CHAD Change of the owner's name or address (par. 44 patent law, par. patentforskriften)

Owner name: MICROSOFT TECHNOLOGY LICENSING, US