NO302849B1 - Framgangsmåte og anordning for digital talekoding - Google Patents

Framgangsmåte og anordning for digital talekoding Download PDF

Info

Publication number
NO302849B1
NO302849B1 NO893202A NO893202A NO302849B1 NO 302849 B1 NO302849 B1 NO 302849B1 NO 893202 A NO893202 A NO 893202A NO 893202 A NO893202 A NO 893202A NO 302849 B1 NO302849 B1 NO 302849B1
Authority
NO
Norway
Prior art keywords
vectors
vector
excitation
codebook
code
Prior art date
Application number
NO893202A
Other languages
English (en)
Other versions
NO893202D0 (no
NO893202L (no
Inventor
Ira Alan Gerson
Original Assignee
Motorola Inc
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 Motorola Inc filed Critical Motorola Inc
Publication of NO893202D0 publication Critical patent/NO893202D0/no
Publication of NO893202L publication Critical patent/NO893202L/no
Publication of NO302849B1 publication Critical patent/NO302849B1/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
    • G10L13/00Speech synthesis; Text to speech systems
    • 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
    • G10L19/12Determination or coding of the excitation function; Determination or coding of the long-term prediction parameters the excitation function being a code excitation, e.g. in code excited linear prediction [CELP] vocoders
    • G10L19/135Vector sum excited linear prediction [VSELP]
    • 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
    • G10L2019/0001Codebooks
    • G10L2019/0007Codebook element generation
    • 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
    • G10L2019/0001Codebooks
    • G10L2019/0013Codebook search algorithms
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L25/00Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00
    • G10L25/03Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00 characterised by the type of extracted parameters
    • G10L25/06Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00 characterised by the type of extracted parameters the extracted parameters being correlation coefficients

Landscapes

  • Engineering & Computer Science (AREA)
  • Computational Linguistics (AREA)
  • Health & Medical Sciences (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • Acoustics & Sound (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Description

Foreliggende oppfinnelse angår en framgangsmåte og anordning for å generere ei kodebok med eksitasjonsvektorer, i samsvar med den innledende delen av patentkrav 1, hhv. -5.
Kodeeksitert lineær prediksjon (CELP) er en talekodeteknikk som har mulighet for å produsere syntetisert tale av høy kvalitet ved lave bitrater, dvs. 4,8 til 9,6 kilobits pr. sekund. Denne klasse av talekoding, også kjent som vektor eksitert lineær prediksjon eller stokastisk koding, vil antakelig bli mye brukt i forbindelse med talekommunikasjon og talesyntetisering. CELP kan vise seg å være spesielt anvendbar til digital talekryptering og digitale radiotelefonkommunikasjonssystemer der talekvalitet, datarate, størrelse og kostnad er viktige sider.
I en CELP talekoder, blir prediktorene for den lange perioden ("pitch") og den korte perioden ("formant"), som modellerer karakteristikken av det inngående talesignalet, muliggjort ved et antall lineære filtrer som varierer over tid. Et eksitasjonssignal for filtrene velges fra ei kodebok av lagrede endringssekvenser eller kode vektorer. For hver taleramme, gir talekoden hver individuell kodevektor til filtrene for å generere et rekonstruert talesignal og sammenlikne det originale inngående talesignalet med det rekonstruerte signalet for å framskaffe et feilsignal. Feilsignalet blir så veid ved å sende det gjennom et veiefilter som har en respons basert på menneskelig øreoppfattelse. Optimalt eksitasjonssignal blir så bestemt ved å velge kodevektoren som produserer det veide feilsignalet med minimum energi for foreliggende ramme.
Uttrykket "kode-eksitert" eller "vektor-eksitert" er avledet fra det faktum at eksita-sjonsfrekvensen for talekoderen er vektorkvantisert, dvs. et enkelt kodeord anvendes for å representere en sekvens eller vektor av eksitasjons-samplinger. På denne måten blir datarater av mindre enn en bit pr. sampling gjort mulig for koding av eksitasjonssekvens-en. De lagrede eksitasjonskodevektorene består generelt av uavhengige tilfeldige hvite Gaussiske sekvenser. En kodevektor fra kodeboka anvendes for å representere hver blokk av N eksitasjonsprøver. Hver lagret kodevektor er representert ved et kodeord, dvs. adressen av kodevektorens minnelokasjon. Det er dette kodeordet som senere sendes over en kommunikasjonskanal til talesyntetisereren for å rekonstruere taleramme ved mottak-eren. See M.R. Schroeder og B.S. Atal, "Code-Excited Linear Prediction (CELP): High-Quality Speech at Very Low Bit Rates", Proceedings of the IEEE International Conference on Acoustics, Speech and Signal Processing (ICASSP), Vol. 3, ss. 937-40, Mars 1985, for en detaljert forklaring av CELP.
Problemet med CELP talekoding ligger i den ekstremt høye beregningskompleksiteten for å få en grundig søk av alle eksitasjonskodevektorene i kodeboka. For eksempel ved en samplingsrate på 8 kHz , vil ei 5 mS taleramme omfatte 40 samplinger. Hvis eksitasjons-informasjohen blir kodet ved en hastighet av 0,25 bits pr. sampling (tilsvarer 2 kbps), ville 10 bits informasjon anvendes for å kode hver ramme. Av dette følger at den tilfeldige kodeboka ville inneholde 2'0 eller 1024 tilfeldige kodevektor er. Vektor søk-prosedyren krever omtrent 15 multipliser-akkumuler (MAC) beregninger (antatt en tredje-i ordens langperiode prediktor og en tiendeordens kortperiode prediktor) for hver av de 40 samplingene i hver kodevektor. Dette tilsvarer 600 MAC pr. kodevektor pr. 5 mS taleramme, eller omtrent 120.000.000 MAC pr. sekund (600 MAC/5ms ramme x 1024 kodevektorer). En kan nå se for seg den ektraordinære regnekrafta som kreves for å søke gjennom hele kodeboka av 1024 vektorer for å finne beste - en urimelig oppgave for sanntidsimplementering med dagens digitale signalprosessorer.
Videre kreves en enorm minnekapasiteten for å lagre kodeboka av uavhengige tilfeldige vektorer. For ovenfor nevnte eksempel ville en 640 kilobit lesehukommelse (ROM) kreves for å lagre alle 1024 kodevektorer, hver med 40 samplinger, hver sampling representert av et 16 bits ord. Denne ROM størrelsen passer ikke sammen med størrelse og kostnadsmål for mange applikasjoner med talekoding. På bakgrunn av dette er kjent kodeeksitert lineær prediksjon ennå ikke en praktisk måte for talekoding.
En alternativ måte for å redusere regnekompleksiteten av kodevektorsøket er å implementere søkerberegning i et transformert plan. Ved å referere til LM. Trancoso og B.S. Atal, "Efficient Procedures for Finding the Optimum Innovation in Stochastic Coders", Proe. ICASSP, Vol. 4, ss 2375-8, April 1986, som et eksempel på en slik prosedyre. Ved å anvende denne metoden, kan diskret Fourier transform (DFT) eller andre transformasjoner, anvendes for å uttrykke filterresponsen i det transformerte planet, slik at filterberegningen reduseres til en enkel MAC operasjon pr. sampling pr. kodevektor. Imidlertid er også ytterligere to MAC pr. sampling pr. kodevektor nødvendig i for å evaluere kodevektoren, dette resulterer i et vesentlig antall av multipliser-akkumuleroperasjoner, dvs. 120 pr. kodevektor pr. 5 millisekund ramme, eller 24.000.000 MAC pr. sekund i ovenfor nevnte eksempel. Videre vil transformerings- metoden kreve minst dobbelt så mye minne ettersom at transformasjonen av hver kodevektor også må lagres. I det ovenfor nevnte eksemplet vil 1,3 megabit rom være nødvendig for å implementere CELP ved hjelp av transformasjon.
En andre metode for å redusere beregningskompleksiteten er å strukturere eksitasjons-kodeboka slik at kodevektorer ikke lenger er uavhengig av hverandre. På den måten vil den filtrerte versjonen av en kodevektor kunne beregnes fra den filtrerte versjonen av foregående kodevektor, og igjen anvende bare en enkel filterberegning MAC pr. prøve. Denne metoden resulterer i omtrent samme beregningskrav som i transformasjons-teknikken, dvs. 24.000.000 MAC pr. sekund, mens det oppnås vesentlig reduksjoner av mengden av ROM som kreves (16 kilobit i det ovenfor nevnte eksempel). Eksempler på denne type kodebøker er gitt i artikkel ved tittel "Speech Coding Using Efficient Pseudo-Stochastic Block Codes", Proe. ICASSP, Vol 3, ss. 1354-7, April 1987 av D.Lin. Imidlertid er 24.000.000 MAC pr. sekund ennå over beregningskapasiteten av en enkel digital signalprosessor. Videre er ROM-størrelsen basert på 2M x ant. bit pr. ord, der M er et antall bit i kodeordet, slik at kodeboka inneholder 2M kodevektorer. Derfor vil minnekravene fortsatt øke eksponentielt med antall bits som anvendes for å kode ramma av eksitert informasjon. For eksempel vil ROM kravene øke til 64 kilobit når 12 bits kodeord anvendes.
Det eksisterer derfor et behov for å framskaffe en forbedret talekodeteknikk som an-griper både problemet med ekstrem høy beregningskompleksitet for nøyaktig kodebok-søk, såvel som de enorme minnekravene for lagring av eksitasjonskodevektorene.
I samsvar med dette er det et hovedformål for foreliggende oppfinnelse å framskaffe en forbedret digital talekodingsteknikk som gir tale av høy kvalitet ved lave bitrater. Et annet formål ved foreliggende oppfinnelse er under reduserte minneskrav å framskaffe en effektiv generering av eksitasjonsvektorer.
Et videre formål med foreliggende oppfinnelse er å framskaffe et forbedret kodebok-søk med redusert regnekompleksitet for praktisk implementering i sanntid ved hjelp av dagens digitale signalprosessorer.
Disse og andre formål oppnås ved foreliggende oppfinnelse, i samsvar med den karak-teriserende delen av patentkrav 1, hhv. 5. Ytterligere trekk framgår av de tilhørende uselvstendige krav.
Framgangsmåten med vektorsum kodebokgenerering ved foreliggende oppfinnelse tillater raskere implementering av CELP talekoding mens fordelen med høy kvalitet tale ved lave bit rater beholdes. Mer spesifikt gir foreliggende oppfinnelse en effektiv løsning til problemene med beregningskompleksitet og minnekrav. F.eks. vektorsummetoden som her er vist krever bare M + 3 for hver kodeordberegning. Med sammenlikning i foregående eksempel, tilsvarer dette bare 3 MAC, i motsetning til 600 MAC for standard CELP eller 120 MAC når transformasjonsmetoden anvendes. Denne forbedringen over-føres i en reduksjon i kompleksitet på omtrent 10 ganger, noe som resulterer i omtrent 2.600.000 MAC pr. sekund. Denne reduksjonen i beregningskompleksitet gjør det mulig å anvende praktisk sanntidsimplementering av CELP ved hjelp av en enkel digital signal-prossessor.
Videre trengs bare M basisvektorer å lagres i minne, i motsetning til alle 2M kodevektorer. Av dette følger at ROM kravet for ovenfor nevnte eksempel er redusert fra 640 kilobit til 6,4 kilobit for foreliggende oppfinnelse. En videre fordel ved foreliggende talekoding er at den er mer robust mot kanalbitfeil enn hva som er tilfelle med standard CELP. Ved å anvende vektorsumeksitert talekoder ved foreliggende oppfinnelse, vil en enkel bitfeil i mottatte kodeord resultere i en eksitasjonsvektor som er lik den øsnkede. Under like forhold vil standard CELP, som anvender en tilfeldig kodebok, gi en tilfeldig eksitasjonsvektor som er helt uavhengig av den ønskede,
Trekk ved den foreliggende oppfinnelsen som antas å være nye vil settes fram i de vedlagte krav. Oppfinnelsen sammen med videre trekk og fordeler av denne kan best forstås med referanse til følgende beskrivelse tatt i samband med vedlagte tegninger, der: fig, 1 er et generelt blokkskjema av en kodeeksitert lineær prediktiv talekoder som anvender vektorsumeksitasjons signalgenereringsteknikk i samsvar med foreliggende oppfinnelse;
fig. 2A/2B er et forenklet flytskjema som illustrerer den generelle sekvensen av
operasjoner som utføres av talekoderen i fig. 1;
fig. 3 er et detaljert blokkskjema av kodebokgeneratorblokka i fig. 1, som illustrerer vektorsumteknikken ved foreliggende oppfinnelse;
i fig. 4 er et generelt blokkskjema av en talesyntetiserer som anvender foreliggende oppfinnelse;
fig. 5 er et delblokkskjema av en talekoder i fig. 1, som illustrerer en forbedret søketeknikk i samsvar med en foretrukket utførelse av foreliggende oppfinnelsen;
fig. 6A/6B er et detaljert flytskjema som illustrerer sekvensen av operasjonen som utføres av talekoderen i fig. 5, som implementerer forsterkningsberegninger ved en foretrukket utførelse, og
fig. 7A/7B/7C er et detaljert flytskjema som illustrerer sekvensen av operasjonen som utføres ved alternativ utførelse av fig. 5, ved anvendelse av en forhåndsberegnet forsterkningsteknikk.
Ved nå å referere til fig. 1 er det vist et generelt blokkskjema av en kodeeksitert lineær prediktiv talekoder 100 som anvender eksitasjonssignal genereringsteknikk i samsvar med foreliggende oppfinnelse. Et akustisk innsignal som skal analyseres tilføres talekoderen 100 ved en mikrofon 102. Inngangssignalet som typisk er et talesignal, blir så tilført et filter 104. Filteret 104 vil generelt være utformet som et båndpassfilter. Hvis imidlertid talebåndbredden allerede er adekvat, kan filteret 104 bestå av en direkte ledningsforbind-else.
Det analoge talesignalet fra filteret 104 blir så omformet til en sekvens av N puls-samplinger, og amplituden av hver pulssampling blir så representert av en digital kode i analog til digital (A/D) omformer 108, noe som er kjent. Samplingsraten blir bestemt av sampleklokke SC, som i den foretrukne utførelsen, representerer en 8,0 kHz rate. Sampelklokka SC er generert sammen med rammeklokke FC av klokkekrets 112.
Den digitale utgangen av A/D 108, som kan bli representert som inngående talevektor s(n) blir så tilført til koeffisientanalysator 110. Inntalevektor s(n) blir repetitivt oppnådd i separate rammer, dvs. tidsblokker, der lengden bestemmes av rammeklokka FC. I den foretrukne utførelsen representerer inngangstalevektor s(n), 1 _< n <L N, en 5 mS ramme inneholder N=40samplinger, der hver sampling er representert av 12-16 bit digital kode. For hver taleblokk, er parametre for lineær prediktiv kode (LPC) produsert i samsvar med kjent teknikk av koeffisientanalysator 110. Kortperiode prediktorparameter STP, langperiode prediktorparameter LTP, veiefilterparameter WFP og eksitasjonsforsterkningsfaktor y (sammen med beste eksitasjonskodeord I som beskrevet senere), blir tilført multiplekser 150 og sendt over kanalen for anvendelse av talesyntetisatoren. Ved å referere til artikkelen med tittel "Predictive Coding of Speech at Low Bit Rates", IEEE Trans. Commun., Vol. COM-30. s. 600-14, April 1982, ved B.S. Atal, for representative framgangsmåter for generering av disse parametrene. Inngående talevektor s(n) blir også tilført til subtraktor 130, funksjonen av denne vil bli beskrevet senere.
Basisvektor minneblokk 114 inneholder en mengde M basisvektorer Vm(n), der 1 <_ m M, hver omfatter N samplinger, der 1 <L n <L N. Disse basisvektorene anvendes av kodebokgenerator 120 for å generere en mengde bestående av 2M pseudo-random eksitasjonsvektorerUj(n), der 0 j< i <L 2M<->1. Hver av M basisvektorer omfatter en serie av tilfeldige hvite Gaussiske samplinger, selv om andre typer basisvektorer kan anvendes ved foreliggende oppfinnelse.
Kodebokgenerator 120 anvender M basisvektorer vm(n) og en mengde bestående av 2M eksitasjonskodeord I;, hvor 0 <. i 2M<->1, for å generere de 2M eksitasjonsvektoreneUj(n). I foreliggende utførelse er hvert kodeord I;lik indeks i, det vil si I, = i. Hvis eksitasjonssignalet ble kodet ved en hastighet på 0,25 bit pr. sampling for hver av de 40 samplingene (slik at M = 10), ville det være 10 basisvektorer anvendt for å generere de 1024 eksitasjonsvektorene. Disse eksitasjonsvektorene er generert i samsvar med vektorsum eksitasjonsteknikken, som senere vil beskrives i samsvar med figurene 2 og 3.
For hver individulle eksitasjonsvektorU;(n), blir en rekonstruert talevektor s'i(n) generert for sammenlikning med inngående talevektor s(n). Forsterkningsblokka 122 skalerer eksitasjonsvektor u^n) med eksitasjonsforsterkningsfaktoren y, som er konstant for ramma. Eksitasjonsforsterkningsfaktoren y kan forhåndsberegnes ved koeffisientanalysator 110 og anvendes for å analysere alle eksitasjonsvektorer som vist i fig. 1, eller kan optimeres vesentlig ved søk av beste eksitasjonskodeord I og generert ved kodeboksøk-kontroller 140. Denne optimaliserte forsterkningsteknikken vil senere beskrives i samsvar med fig. 5.
Det skalerte eksitasjonssignalet yn^n) blir så filterert av langperiode prediktorfilter 124 og kortperiode prediktorfilter 126 for å generer det rekonstuerte talevektor s'j(n). Filter 124 anvender langperiode prediktorparameter LTP for å introdusere stemme periodisitet og filter 126 anvender kortperiode preditorparameter STP for å introdusere spektralom-hyllinger. Legg merke til at blokkene 124 og 126 i virkeligheten er rekursive filtere som inneholder langperiode prediktor og kortperiode prediktor i sine respektive feedbackveier. Det refereres til før nevnte artikkel for representativ overføringsfunksjoner for disse tidsvarierede rekursive filtrene.
Den rekonstruerte talevektor s'i(n) for den i-te eksitasjonskodevektoren blir sammenliknet med samme blokk av inngående talevektor s(n) ved å subtrahere disse to signalene i subtraktor 130. Differansevektoren e^n) representerer differansen mellom den originale og den rekonstruerte taleblokka. Differansevektoren blir veid ved veiefilter 132, som anvender veiefilterparameter WFP generert av koeffisientanalysator 110. Det refereres til foreående referanse for en representativ funksjon for veiefilteroverføring. Perseptuell veing legger vekt på de frekvenser der feil er perseptuelt mer viktig for det menneskelige øret, og demper andre frekvenser.
Energiberegner 134 beregner energien av den veide for skjells vektor en E'j(n), og til-fører dette feilsignalet I; til kodeboksøk-kontroller 140. Søkkontrolleren sammenlikner det gitte feilsignalet for foreliggende eksitasjonsvektorUj(n) mot foregående feilsignal for å bestemme eksitasjonsvektoren som produserer minimal feil. Koden av den i-te eksitasjonsvektoren med et minimum av feil blir sendt ut over kanalen som beste eksitasjons-kode I. I alternativet kan søkkontroller 140 bestemme et spesielt kodeord som gir et feilsignal med forhåndsbestemte kriterier, som f.eks. å møte en forhåndsbestemt feilterskel.
Operasjon av talekoder 100 vil nå beskrives i samband med et flytskjema i fig. 2. Ved å starte i trinn 200, blir ei ramme av N samplinger av inngående talevektorer s(n) opptatt i trinn 202 og tilført subtraktor 130. I den foretrukne utførelse er N lik 40 samplinger. I trinn 204 beregner koeffisientanalysator 110 langperiode prediktorparameter LTP, kortperiode prediktorparameter STP, veiefilterparameter WFP, og eksitasjonsforsterkningsfaktor y. Filtertilstandene FS av langperiode prediktorfilter 124, kortperiode prediktorfilter 126, og veiefilter 132, blir så lagret i trinn 206 for senere bruk. Trinn 208 initialiserer variablene i, som representerer eksitasjonskodeordindeksen, og Eb som representerer beste feilsignal, som vist.
Ved å fortsette med trinn 210, er filtertilstandene for lang- og kortperiode prediktor og veiefilter tilbakestilt til de filtertilstandene lagret i trinn 206. Denne tilbakestillingen sikrer at tidligere filterhistorie blir den samme for å sammenlikne hver eksitasjonsvektor. I trinn 212 blir indeksen i så testet for å se om ikke alle eksitasjonsvektorer har blitt sammenliknet. Hvis i er mindre enn 2M så fortsetter operasjonen for neste kodevektor. I trinn 214, anvendes basisvektorer Vm(n) for å beregne eksitasjonsvektoren U;(n) med vektor sumteknikken.
Fig. 3 illustrerer representativ hardwarekonfigurasjon for kodebokgenerator 120, og vil nå anvendes for å beskrive vektorsumteknikken. Generatorblokk 320 tilsvarer kodebokgenerator 120 i fig. 1, mens minne 314 tilsvarer basis vektorminne 114. Minneblokk 314 lagrer alle M basisvektorer vedVj(n) til vM(n), der 1 _< m _< M og 1 <_ n N. Alle M basisvektorer tilføres multiplikatorer 361 til 364 av generator 320.
Det i-te eksitasjonskodeord blir også tilført til generator 320. Eksitasjonsinformasjonen blir så konvertert i et flertall av interim datasignaler 0^til ØiM, der 1 <. m M, av omformer 360. I den foretrukne utførelsen, er de interime datasignalene basert på verdien av de individuelle bitene av velgekodeord i, slik at hvert interimtdatasignal Øim representerer fortegnet som tilsvarer m-te bit av i-te eksitasjonskodeord. F.eks. hvis bit en i eksitasjonskodeordet i er 0, så blir 6n -1. På liknende måte hvis den andre bit i eksitasjonskodeordet i er 1, blir Øi2+1. Det skal imidlertid framholdes at de interime datasignaler alternativt kan være av annen overføringsform i til Øim, dvs. bestemt av ROM-tabell. Legg også merke til at antall biter i kodeordet ikke må være det samme som antall basisvektorer. F.eks. kodeordet i kan ha 2M bit der hvert par av bit definerer 4 verdier for hver Øim- dvs. 0, 1, 2, 3 eller +1, -1, +2, -2, osv..
De interime datasignaler blir også tilført multiplikatorer 361 til 364. Multiplikatorene anvendes for å multiplisere mengden av basisvektorer vm(n) med mengden av interime datasignaler Øim for å produsere en mengde av interime vektorer som så summeres i summeringsnettverk 365 for å produsere signaleksitasjonskodevektor u^n). Dermed kan vektorsummeringsteknikken beskrives ved likningen:
derUj(n) er n-te sampling i-te eksitasjonskodevektor og der 1 n <_ N.
Ved å fortsette med trinn 216 i fig. 2A, blir eksitasjonsvektorUj(n) multiplisert med eksitasjonsforsterkningsfaktor y via forsterkningsblokk 122. Denne skalerte eksitasjonsvektorenYU;(n) blir så filterert i trinnet 218 av langperiode og kortperiode prediktorfiltere for å beregne den rekonstruerte talevektoren s'j(n). Differansevektoren e^n) blir så kalkulert i trinn 220 av subtraktor 130 slik at:
for alle N samplinger, dvs. 1 <_ n j< N.
I trinn 222, er veiefilteret 132 anvent for perseptivt å veie differansevektoren e^n) for å oppnå veid differansevektor E'j(n). Energiberegner 134 beregner så energien Etav den veide differansevektoren i trinn 224 i samsvar med likningen:
Trinn 226 sammenlikner i-te feilsignal med foregående beste feilsignal E,, for å bestemme minimum feil. Hvis foreliggende indeks i korresponderer med minimum feilsignal så langt, så blir beste feilsignal E^, oppdatert til verdien av i- te feilsignal i trinnet 228, og i samsvar med dette blir beste kodeord I satt i i i trinn 230. Kodeordindeks i blir så inkrementert i trinn 240, og styring returneres til trinn 210 for å teste neste kodevektor.
Når alle 2M kodevektorer har blitt testet, fortsetter styringa fra trinn 212 til trinn 232 for å gi ut beste kodeord I. Prosessen er ikke komplett før de aktuelle filtertilstandene oppdateres ved hjelp av beste kodeord I. I samsvar med dette beregner trinn 234 eksitasjonsvektorUj(n) ved hjelp av vektorsumteknikken som ble utført i trinn 216, men denne gangen ved hjelp av beste kodeord I. Eksitasjonsvektoren blir så skalert av forsterkningsfaktor y i 236 og filterert for å beregne rekonstruert talevektor s'j(n) i trinn 238. Differansesignalet e,(n) blir så beregnet i trinn 242, og veid i trinn 244 for å oppdatere veiefiltertilstanden. Styringa blir så returnert til trinn 202.
Ved nå å referere til fig. 4, er vist et blokkskjema for talesyntetiserer som også anvender vektorsumgenerering i samsvar med foreliggende oppfinnelse. Sytetiserer 400 får kortperiode prediktorparameter STP, langperiode prediktorparameter LTP, eksitasjonsforsterkningsfaktor y, og kodeord I mottatt fra kanalen via demultiplekser 450. Kodeordet I blir tilført kodebokgenerator 420 sammen med mengden av basisvektorer vm(n) fra basisvektorlageret 414 for å generere eksitasjonsvektorUj(n) som beskrevet i fig. 3. SignaleksitasjonsvektorenU;(n) blir så multiplisert med forsterkningsfaktor i blokk 422, filterert av langperiode prediktorfilter 424 og kortperiode prediktorfilter 426 for å oppnå rekonstruert talevektor s';(n). Denne vektoren som representerer ei ramme av rekonstruert tale, blir så tilført analogt til digital (A/D) omformer 408 for å produsere et rekonstruert analogt signal, som blir filterert gjennom et lavpassfilter for å redusere aliasing av filter 404, og tilført en utgsngstransducer som f.eks. en høytaler 402. Klokka 412 genererer sampleklokka og rammeklokka for syntetiserer 400.
Ved nå å referere til fig. 5, et delblokkskjema av en alternativ utførelse av talekoderen i fig. 1 er vist for å illustrere foretrukket utførelse av oppfinnelsen. Legg merke til at det er to viktige forskjeller fra talekoder 100 fig. 1. For det første beregner kodeboksøk-kontroller 540 forsterkningsfaktor y i samband med optimal kodeord-seleksjon. I samsvar med dette vil både søk etter eksitasjonskodeord I, og generering av eksitasjonsforsterkningsfaktor y beskrives i tilhørende flytskjema i fig. 6. For det andre skal det bemerkes at videre alternative utførelser vil være å anvende forhåndsbestemte forsterkninger kalkulert ved koeffisientanalysator 510. Flytskjemaet i fig. 7 beskriver en slik utførelse. Fig. 7 kan anvendes for å beskrive blokkskjemaet fig. 5 hvis den videre forsterkningsblokka 542 og forsterkningsfaktorutgangen av koeffisientanalysator 510 settes inn som vist med brukne linjer.
Før det fortsettes med detaljert beskrivelse av operasjonen i talekoder 500, kan det vise seg nyttig å gi en forklaring av den grunnleggende søkmetoden tatt ved foreliggende oppfinnelse. I en standard CELP talekoder er differansevektoren formet av likning (2): som ble veid for å gi e'j(n), som ble anvendt for å kalkulere feilsignalet i samsvar med likningen:
som ble minimalisert for å bestemme ønsket kodeord I. Alle 2M eksitasjonsvektorer måtte evalueres for å forsøke å finne beste tilpasning til s(n). Dette ble tatt som basis for den grundige søkstrategien.
I den foretrukne utførelsen er det nødvendig å ta med i betrakningen dempingsres-ponsen i filterene. Dette gjøres ved å initialisere filteret med filtertilstander tilført ved starten av ramma, og la filterene begrenses med ingen ekstern inngang. Utgangen av filterene med ingen inngang er såkalt nullinngangsrespons. Videre kan veiefilterfunk-sjonen fjernes fra den konvensjonelle lokasjonen til utgangen av subtraktor til begge inngangsveier for subtraktoren. På den måten hvis d(n) er vektoren for nullinnngangs-respons av filterene, og hvis y(n) er den veide inngangstalevektoren, så er differansevektoren p(n):
Dermed er initielle filtertilstander totalt kompensert for ved å trekke ifra nullinngangsresponsen av filterene.
Den veide differansevektor e^n) blir:
Imidlertid ettersom at forsterkningsfaktor y skal optimaliseres samtidig som søk for optimalt kodeord, må den Altererte eksitasjonsvektor f;(n) multipliseres med hvert kodeords forsterkningsfaktor Yi for å erstatte s'i(n) i likning (5) slik at den får formen:
Den Altererte eksitasjonsvektor f^n) blir så den Altererte versjonen avUj(n) med forsterkningsfaktor y satt til en, og med filtertilstandene initialisert til null. Med andre ord er f;(n) nulltilstandsresponsen av filterene eksitert ved kodevektorU;(n). Nulltilstandsresponsen anvendes ettersom at filtertilstandsinformasjon allerede ble kompensert for ved nullinngangsresponsvektor d(n) i likning (4).
Ved å anvende verdien for e'j(n) fra likning 6 i likning 3 blir:
Utvidelse av likning 7 gir:
Definerer krysskorrelasjon mellom F;(n) og p(n) som:
og definerer energien i den filtrerte kodevektoren f;(n) som: tillater forenkling av likning 8 som:
Vi vil nå bestemme optimal forsterkningsfaktor yi som vil minimalisere ei i likning (11). Ved å ta den delderiverte av ejmed hensyn på{og sette denne lik 0 tillater løsning av optimal forsterkningsfaktor { Dette gir: som når satt inn i likning (11) gir:
Dette
kan nå ses at å minimaliser feil ^ i likning 13, må uttrykket [CjVG;maksimaliseres. Denne teknikken ved kodeboksøk som maksimaliseres ved [Cj]<2>/Gjvil beskrives i sluttskjemaet fig. 6.
Hvis forsterkningsfaktoren blir forregnet av koeffisientanalysator 510, kan likning 7 omskrives som:
Der y'j(n) er 0 tilstandsresponsen av filtrene til eksitasjonsvektorUj(n) multiplisert med forhåndsbestemt forsterkningsfaktor y. Hvis andre og tredje uttrykk av likning 14 blir redefinert som:
og kan likning 14 reduseres til:
For å minimalisere E; i uttrykk 17 for alle kodeord, må uttrykket [-2Q + GJ minimal-iseres. Dette er kodeboksøk- teknikken som vil beskrives i flytdiagrammet i fig. 7.
Ved å huske på at foreliggende oppfinnelse anvender et konsept av basisvektorer for å generereUj(n), blir vektorsumlikninga:
mulig å anvende for substitusjon avUjsom senere vil bli bevist. Essensen med denne substitusjonen er at basisvektorene vm(n) kan anvendes med en gang for hver ramme for direkte å forberegne alle uttrykk som er nødvendig for søk beregninger. Dette tillater foreliggende oppfinnelse å beregne hvert av de 2M kodeord ved å utføre en serie av multiplikasjon- akkumuleringsoperasjoner som er lineære i M. I det foretrukne utførelsen er bare M + 3 MAC nødvendig.
Fig. 5, som anvender optimalisert forsterkning vil nå beskrives i uttrykk og operasjon med henvisning til illustrasjonen i flytskjema fig. 6a og 6b. Begynner ved starten 600, ei ramme av n inngangstalesamplinger s(n) oppnås i trinn 602 fra analog til digitalkonverter, noe som også ble gjort i fig. 1. Videre er inngangstalevektor s(n) påtrykt koeffisientanalysator 510 og anvendt for å beregne kortperiode prediktor parameter STP, langperiode prediktorparameter LTP, og veiefilterparametre WFP i trinn 604. Legg merke til at koeffisientanalysator 510 ikke beregner en forhåndsbestemt forsterkningsfaktor y i denne utførelsen, som illustrert med brutt pil. Inngangstalevektor s(n) blir også tilført til initielt veiefilter 512 for å veie inngangstaleramme for å generere veid inngangs-talevektor y(n) i trinnet 606. Som overfor nevnt utfører veiefiltret den samme funksjonen som veiefilter 131 i fig. 1, bortsett fra at de kan beveges fra den konvensjonelle plass-eringen av utgangen av subtraktor 130 til begge inngangen av subtraktoren. Legg merke til at vektor y(n) representerer en mengde på n veide talevektorer, der n ligger mellom 1 og n og der n er antall samplinger i taleramma.
I trinn 608 er filtertilstanden FS overført fra første langperiode prediktorfilter 524 til andre langperiode prediktorfilter 525, for første kortperiode prediktorfilter 526 til andre kortperiode prediktorfilter 527, og fra første veiefilter 528 til andre veiefilter 529. Disse filtertilstandene anvendes i trinn 610 for å beregne nullinngangsresponsen d(n) til filtrene. Vektoren d(n) representerer reduksjonsfiltertilstanden i begynnelsen av hver tallramme. Nullinngangsresponsvektor d(n) beregnes ved å påtrykke en nullinngang til andre filterstreng 525, 527, 529 som hver har de respektive filtertilstander til tilhørende filtre 524, 526, 528 av første filterstreng. I en typisk implementering vil funksjonen av langperiode prediktorfiltre, kortperiode prediktorfiltre, og veiefiltre kunne kombineres for å redusere kompleksiteten.
I trinn 612, blir differansevektoren p(n) beregnet i subtraktor 530. Differansevektor p(n) representerer differansen mellom den veide inngangstalevektor y(n) og nullinngangsresponsvektor d(n), tidligere beskrevet i likning 4:
Differansevektoren p(n) blir så tilført første krysskorrelator 533 for å anvendes i kode-boksøket.
For å oppnå målet med maksimalisering av uttrykket [C^G;som vist overfor, må uttrykket beregnes for hver av de 2M kodebokfaktorene - ikke de M basisvektorene. Imidlertid kan denne parameteren kalkuleres for hvert kodeord basert på parametre i tilknyt-ning til de M basisvektorene heller enn de 2M kodevektorene. Dermed er nulltilstands-responsvektoren q^n) nødt til å beregnes for hver basisvektor vm(n) i trinnet 614. Hver basisvektor vm(n) fra basisvektor minneblokk 514 tilføres direkte til tredje langperiode-prediktorfilter 544 (uten å sendes gjennom forsterkningsblokk 542 i denne utførelsen). Hver basisvektor blir så filtrert ved filterserier nr. 3, som omfatter langperiode prediktorfilter 544, kortperiode prediktorfilter 546, og veiefilter 548. Nulltilstandsresponsvektor q^n) produsert ved utgangen av filterserie nr. 3, blir tilført første krysskorrelator 533 såvel som andre krysskorrelator 535.
I trinn 616, beregnes første krysskorrelator krysskorrelasjonarray P^i samsvar med uttrykket:
Array ^representerer krysskorrelasjon mellom m-te filterbasisvektor q^n) og p(n). Videre beregner andre krysskorrelator krysskorrelasjonen matrisen Dmji trinn 618 i samsvar med likninga:
der 1 <. m <_ j <_ M. Matrise Dmjrepresenterer krysskorrelasjonen mellom par av individuelle filtrerte basisvektorer. Legg merke til at Dmjer en symmetrisk matrise. Derfor omtrent halvparten av uttrykkene trengs å beregnes som vist ved grensene av subskrift-ene.
Vektor sum likninga fra overfor:
kan anvendes å avlede f;(n) som følger: der fj(n) er nulltilstandsresponsen av filtrene til eksitasjonsvektor u^n), og der q^n) er nulltilstandsresponsen av filtrene til basisvektor vm(n). Likning (9): kan omskrives ved hjelp av likning 20 som: ved å anvende likning 18 kan dette forenkles til: i For første kodeord, der i=0 er alle bit 0. Derfor 60mfor 1 <_ m _< M = -1 som tidligere diskutert. Første korrelasjon c0- som bare er q fra uttrykket 22 der i = 0 blir dermed:
i
som beregnes i trinn 620 i i flytdiagrammet.
Ved å anvende q^n) og likning 20, kan energiuttrykket Gjogså skrives om og forme likninga (10): i inn i følgende:
)
som kan utvides til:
Substitusjon ved bruk av likning 19 gir:
Ved å legge merke til at kodeord og dettes komplement, dvs. der alle kodeord bits er invertert, begge har samme verdi av [Ci]<2>/Gi'kan begge kodevektorer beregnes samtidig. Kodeordberegningene blir så halvert. Dermed ved å anvende likning 26 evaluert for i=0, blir første energiuttrykk G0<:>
som blir beregnet i trinn 622. Dermed har vi fram til nå beregnet korrelasjonsuttrykket C0og energiuttrykket G0for kodeord 0.
Ved å fortsette med trinn 624, er parametrene 6im initialisert for -1 for 1 <_ m <_ M. Disse Øim parametrene representerer de M interim datasignaler som ville anvendes for å generere aktuelle kodevektor som beskrevet ved likning 1. (i-subskriften i 9imble droppet i figurene for enkelthet skyld.) For det neste vil korrelasjonsuttrykket Cb settes lik det forkalkulerte korrelasjon C0, og uttrykket for beste energi Gb settes lik forhåndskalkulert G0. Kodeordet I, som representerer kodeordet for beste eksitasjonsvektorUj(n) for spesielle inngangstaleramma s(n), settes lik 0. En tellevariabel k initialiseres til null, og blir så inkrementert i trinn 626.
I fig. 6b blir telleren k testet i trinn 628 for å se om alle 2M kombinasjonene av basisvektorene har blitt testet. Legg merke til at maksimum verdi på k er 2M<->1 etter som at et kodeord og dets komplement verdi blir beregnet samtidig som beskrevet ovenfor. Hvis k er mindre enn 2M-1 da fortsetter trinn 640 for å definere en funksjon "flip" der variabelen / representerer lokasjonen til neste bit for å "flippes" inn i kodeord i. Denne funksjonen er utført etter som at den foreliggende oppfinnelse anvender en Gray kode for å sek-vensere gjennom kodevektorene ved at bare en bit endres i gangen. Det kan derfor antas at hvert suksessive kodeord er forskjellig fra foregående kodeord i bare en bitposisjon. Med andre ord hvis hvert suksessive kodeord som evalueres er forskjellig fra foregående kodeord med bare ett bit, noe som kan oppnås ved å anvende binær Gray kode metoden, så er bare M antall addisjon eller substraksjonsoperasjoner nødvendig for å beregne korelaterte uttrykk og energiuttrykk. Trinn 630 setter også 6, til -0, for å vise endring i bit / i kodeordet.
Ved å anvende Gray kode, er den ny korrelasjonsuttrykket ck beregnet i trinn 632 i samsvar med likninga:
Dette ble utledet fra likning 22 ved å erstatte -0, med 0;.
Videre i trinn 634 blir det nye energiuttrykket Gk beregnet i samsvar med likninga:
som antar at Djk er lagret som en symmetrisk matrise med bare verdier for j <_ k blir lagret. Ligning 29 ble utledet av likning 26 på samme måte.
Med en gang Gkog Ck har blitt beregnet må [Ck]2/Gk sammenliknes med foregående beste [Cb]<2>/GbEtter som at divisjon er en sen operasjon, er det nyttig å reformulere problemet for å unngå divisjon ved kryssmultiplikasjon. Etter som at alle uttrykk er positive, er denne likninga ekvivalent med å sammenlikne [Ck]<2>x Gbmed [Cb]<2>x Gk som er gjort i trinn 636. Hvis første kvantitet er større enn andre kvantitet fortsettes styringa til trinn 638 der beste korrelasjonsuttrykk Cbog beste energiuttrykk Gbblir oppdatert. Trinn 642 beregner eksitasjonskodeordet i fra Ømved å sette bit m i kodeord i lik 1 hvis Øm er + 1 og ved å sette bit m i kodeordet i lik 0 hvis Øm er lik -1, for alle bits m mellom 1 og M. Styringa returneres så til trinn 626 for å teste neste kodeord, noe som blir gjort umiddelbart hvis første størrelse ikke var større enn andre størrelse.
Med en gang alle par med komplementere kodeord har blitt testet og kodeordet som maksimaliserer [Cb]<2>/Gbstørrelsen har blitt funnet, fortsetter styringa til trinn 646, som kontrollerer for å se om korrelasjons uttrykket Cber mindre enn 0. Dette blir gjort for å kompensere for det faktum at kodeboka blir søkt ved et par av komplementære kodeord. Hvis Cb er mindre enn 0 blir forsterkningsfaktoren y satt lik -[Cb'Gb]i trinn 650 og kodeordet i blir komplementert i trinn 652. Hvis Cber positiv, så blir forsterkningsfaktoren y satt lik [Cb'Gb<]>i trinn 648. Dette sikrer at forsterkningsfaktoren y blir positiv.
Videre blir beste kodeord i gitt ut i trinn 654, og forsterkningsfaktoren y blir beregnet i trinn 656. Trinn 658 fortsetter å beregne den rekonstruerte veide talevektor j'(n) ved hjelp av beste ekstasjonskodeord i. Kodebokgeneratoren anvender kodeord i og basisvektor vm(n) for å generere eksitasjonsvektorU;(n) i samsvar med likning 1. KodevektorUj(n) blir så skalert ved forsterkningsfaktor i forsterkningsblokka 522 og filtrert av en filterstreng nr. 1 for å generere y'(n). Talekoder 500 anvender ikke den rekonstruerte veide talevektoren y'(n) direkte som ble vist i fig. 1. Istedet anvendes filterstreng nr. 1 for å oppdatere fil ter status FS ved å overføre den til filterstreng nr. 2 for å beregne nullinngangsresponsvektor d(n) for neste ramme. I samsvar med dette returnerer styringa til trinn 602 for å få inn neste taleramme s(n).
I søkmetoden beskrevet i fig. 6a/6b er forsterkningsfaktoren y beregnet samtidig som kodeordet i blir optimalisert. På denne måten kan optimal forsterkningsfaktor for hvert kodeord finnes. I den alternative søkmetoden illustrert i figurene 7a til 7c er forseglings-faktoren forhåndsberegnet før kodeord bestemmelse. Her blir forsterkningsfaktoren typisk basert på RMS verdien av gjenværende for den ramma som beskrevet i B.S. Atal og M.R. Schroeder, "Stochastic Coding of Speech Signals at Very Low Bit Rates", Proe. Tnt Conf Commun.. Vol. ICC84, Pt.2, pp. 1610-1613, May 1984. Ulempen med denne forberegnede forsterkningsfaktormetoden er at den generelt gir et noe dårligere signal til støyforhold (SNR) for talekoderen.
Ved nå å referere til flytskjemaet fig. 7A, blir operasjonen av talekoderen 500 med å anvende forhåndsbestemt forsterkning faktor nå beskrevet. Inngangstaleramme faktor s(n) blir først fått fra A/D i trinn 702, og langperiode prediktorparameter LTP, og kortperiode prediktorparameter STP, og veiefilterparameter WTP blir beregnet av koeffisientanalysator 510 i trinn 704, noe som blir gjort i trinnene 602 og 604. Imidlertid i trinn 705 blir nå forsterkningsfaktoren y beregnet for hele ramma som beskrevet i foregående referanse. I samsvar med dette vil koeffisient analysator 510 gi ut forhåndsbestemte forsterkningsfaktor y som vist ved piler i fig. 5 og forsterkningsblokka 542 må settes inn i basisvektorveien som vist med prikket linjer.
Trinnene 706 til 712 er identisk med trinnene 606 til 612 i fig. 6A og krever ingen videre forklaring. Trinn 714 er lik 614 unntatt at nulltilstandsresponsvektor q^n) blir beregnet fra basisvektorer vm(n) etter multiplikasjon ved forsterkningsfaktor y i blokk 542. Trinnene 716 til 722 er identisk med trinnene 616 til 622. Trinn 723 tester om korrelasjonen C0er mindre enn 0 for å bestemme hvordan initialiseringa av variablene I og E,, skal skje. Hvis C0er mindre enn 0, så er beste kodeord I satt lik det komplementære kodeordet I=2<M->1 etter som at det vil gi et bedre feilsignal E,,enn kodeord 1=0. Beste feilsignal F^blir så satt lik 2C0+ G0etter som C2M., = -C0. hvis C0ikke er negativ kan trinn 725 initialisere I til null og initialisere F^til -2C0+ G0, som vist.
Trinn 726 fortsetter for å initialisere interimdatasignalene Øm til -1 og tellevariablene k til 0, som blir gjort i trinn 624. Variabelen k blir inkrementert i trinn 727 og testet i trinn 728 som gjort i trinn 626 og 628. Trinnene 730, 732 og 734 er identisk med trinnene 630, 632 og 634. Korrelasjonsuttrykket Ckblir så testet i trinn 735. Hvis det er negativt blir feilsignalet satt lik 2Ck + Gketter som at negativ Ck indikerer at det komplementære kodeordet er bedre enn foreliggende kodeord. Hvis Ck er positiv blir trinn 737 satt Ek lik -2Ck + Gksom før gjort.
Ved å fortsette med fig. 7C sammenlikner trinn 738 det nye feilsignalet Ekmed foregående beste feilsignal E,,. Hvis Eker mindre enn så blir oppdatert til trinn 739. Hvis ikke returneres styringa til trinn 727. Trinn 740 tester igjen korrelasjon Ckfor å se om den er mindre enn null. Hvis den ikke er det blir beste kodeord I beregnet fra M som vist i trinn 642 i fig. 6B. Hvis Cker mindre enn 0, blir I beregnet fra -6 m på samme måte for å få det komplementære kodeordet. Styringen returnerer til trinn 727 etter at I er beregnet.
Når alle 2M kodeord har blitt testet, går 728 direkte og gir styring til trinn 754, der kodeordet I er utgangen fra søkkontrolleren. Trinn 758 beregner den rekonstruerte veide signalfaktoren y'(n) som ble gjort i trinn 658. Kontrollen blir så returnert til begynnelsen av flytdiagrammet ved trinn 702.
I sum gir foreliggende oppfinnelse en forbedret generering av eksitasjonsvektorer og søkteknikk som kan anvendes med eller uten forhåndsbestemt forsterkningsfaktorer. Kodeboka med 2M eksitasjonsvektorer blir generert fra en mengde på bare M basisvektorer. Hele kodeboka kan søkes ved hjelp av bare 5+3 multipliser/ akkumuleroperasjon pr kodevektor som evalueres. Denne reduksjonen i lager og beregningskompleksitet gjør det mulig med sanntids implementering av CELP talekoding med dagens digitale signalprosessorer. Mens spesielle utførelser ved foreliggende oppfinnelse har blitt vist og beskrevet kan videre modifikasjoner og forbedringer gjøres uten å fjerne seg fra oppfinnelsen i dets videre aspekt. F.eks. kan enhver type basisvektorer anvendes med vektor sumteknikken beskrevet her. Videre kan forskjellige beregninger utføres på basis vektorene for å oppnå samme mål for å redusere beregningskompleksiteten ved kodeboksøk-prosedyren. Alle slik modifikasjoner som har basis i prinsippene vist og tatt med i kravene, er innenfor oppfinnelsens rekkevidde.

Claims (7)

1. Framgangsmåte for å generere ei kodebok med eksitasjonsvektorer for bruk ved høyhastighets taleanalyse eller syntese, kodeboka omfatter minst 2M eksitasjonsvektorerUi(n), som hver har N elementer, der 1 < n < N, og der 0 < i < 2M<->1, karakterisert vedå omfatte følgende trinn: a) lagre et sett av M basisvektorer vm(n), som hver har N elementer, der 1 < n < N, og der 1 < m < M, b) identifisere et sett av 2M digitale kodeord Ii5som hver har M bits, der 0 < i < 2M<->1, c) identifisere et signal Øim for hver bit av hvert kodeord Ii5slik at Øim har en første verdi dersom bit m av kodeordet Ijer i en første tilstand, og slik at Øim har en andre verdi dersom bit m av kodeordet Ijer i en andre tilstand, og d) kalkulere kodeboka av eksitasjonsvektorene 2M ifølge likningen:
der 1 < n < N.
2. Framgangsmåte i samsvar med krav 1, karakterisert vedå omfatte følgende trinn: a) gi inn minst to selektor kodeord, b) definere (360) et flertall av foreløpige datasignaler (Øim) basert på nevnte selektor kodeord, c) gi inn (314) et sett av X basisvektorer (vm(n)), derX< Y, og d) generere (361, 362, 363, 364, 365) kodebokvektorene ved å utføre lineær transformasjon på de X basisvektorene (vm(n)), idet de lineære transformasjonene er definert ved de foreløpige datasignalene (Øim).
3. Framgangsmåte i samsvar med krav 2, der hvert av selektor kodeordene kan være representert i biter, der de foreløpige datasignalene (Øjm) er basert på verdien av hver bit av hvert selektor kodeord, og trinnet med å generere kodebok vektoren videre erkarakterisert vedfølgende trinn: a) multiplisere (361, 362, 363, 364) settet av X basisvektorer (vm(n)) med flertallet av foreløpige datasignaler (Øim) for å produsere et flertall av foreløpige vektorer, og b) summere (365) flertalet av foreløpige vektorer for å produsere kodebok vektorene.
4. Framgangsmåte i samsvar med et av de foregående krav, karakterisert vedvidere å omfatte: lagre kodeboka med eksitasjonsvektorer i et lager.
5. Anordning for å generere ei kodebok med eksitasjonsvektorer for bruk ved høy-hastighets taleanalyse eller syntese, kodeboka omfatter minst 2M eksitasjonsvektorerUj(n), som hver har N elementer, der 1 < n < N, og der 0 < i < 2M<->1, karakterisert vedå omfatte: a) digitalt lager (114) for lagring av et sett av M basisvektorer vm(n), som hver har N elementer, der 1 < n < N, og der 1 < m < M, b) organ (140) for å identifisere et sett av 2M digitale kodeord Ij, som hver har M bits, der 0 < i < 2M-1, c) organ (360) for å identifisere et signal 6im for hver bit av hvert kodeord I;, slik at 6im har en første verdi dersom bit m av kodeordet l{er i en første tilstand, og slik at Øim har en andre verdi dersom bit m av kodeordet I; er i en andre tilstand, og d) organ (361-365) for å kalkulere kodeboka av eksitasjonsvektorene 2M ifølge likningen:
der 1 < n < N.
6. En talekoder,karakterisert vedå omfatte kodebok vektor genereringsorgan i samsvar med krav 5.
7. En digital radiokommunikasjonsanordning,karakterisert vedå omfatte kodebok vektor genereringsorgan i samsvar med krav 5.
NO893202A 1988-01-07 1989-08-09 Framgangsmåte og anordning for digital talekoding NO302849B1 (no)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US07/141,446 US4817157A (en) 1988-01-07 1988-01-07 Digital speech coder having improved vector excitation source
PCT/US1988/004394 WO1989006419A1 (en) 1988-01-07 1988-12-29 Digital speech coder having improved vector excitation source

Publications (3)

Publication Number Publication Date
NO893202D0 NO893202D0 (no) 1989-08-09
NO893202L NO893202L (no) 1989-08-09
NO302849B1 true NO302849B1 (no) 1998-04-27

Family

ID=22495733

Family Applications (1)

Application Number Title Priority Date Filing Date
NO893202A NO302849B1 (no) 1988-01-07 1989-08-09 Framgangsmåte og anordning for digital talekoding

Country Status (16)

Country Link
US (1) US4817157A (no)
EP (1) EP0372008B1 (no)
JP (2) JP2523031B2 (no)
KR (2) KR930010399B1 (no)
CN (1) CN1021938C (no)
AR (1) AR246631A1 (no)
AT (1) ATE123352T1 (no)
BR (1) BR8807414A (no)
CA (1) CA1279404C (no)
DE (1) DE3853916T2 (no)
DK (1) DK176383B1 (no)
FI (1) FI105292B (no)
IL (1) IL88465A (no)
MX (1) MX168558B (no)
NO (1) NO302849B1 (no)
WO (1) WO1989006419A1 (no)

Families Citing this family (81)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4896361A (en) * 1988-01-07 1990-01-23 Motorola, Inc. Digital speech coder having improved vector excitation source
US5359696A (en) * 1988-06-28 1994-10-25 Motorola Inc. Digital speech coder having improved sub-sample resolution long-term predictor
CA2005115C (en) * 1989-01-17 1997-04-22 Juin-Hwey Chen Low-delay code-excited linear predictive coder for speech or audio
JPH02250100A (ja) * 1989-03-24 1990-10-05 Mitsubishi Electric Corp 音声符合化装置
JPH02272500A (ja) * 1989-04-13 1990-11-07 Fujitsu Ltd コード駆動音声符号化方式
JPH02287399A (ja) * 1989-04-28 1990-11-27 Fujitsu Ltd ベクトル量子化制御方式
US5261027A (en) * 1989-06-28 1993-11-09 Fujitsu Limited Code excited linear prediction speech coding system
JPH0332228A (ja) * 1989-06-29 1991-02-12 Fujitsu Ltd ゲイン―シェイプ・ベクトル量子化方式
US5263119A (en) * 1989-06-29 1993-11-16 Fujitsu Limited Gain-shape vector quantization method and apparatus
US5097508A (en) * 1989-08-31 1992-03-17 Codex Corporation Digital speech coder having improved long term lag parameter determination
US5216745A (en) * 1989-10-13 1993-06-01 Digital Speech Technology, Inc. Sound synthesizer employing noise generator
IL95753A (en) * 1989-10-17 1994-11-11 Motorola Inc Digits a digital speech
WO1991006093A1 (en) * 1989-10-17 1991-05-02 Motorola, Inc. Digital speech decoder having a postfilter with reduced spectral distortion
US5241650A (en) * 1989-10-17 1993-08-31 Motorola, Inc. Digital speech decoder having a postfilter with reduced spectral distortion
FR2654542B1 (fr) * 1989-11-14 1992-01-17 Thomson Csf Procede et dispositif de codage de filtres predicteurs de vocodeurs tres bas debit.
US5754976A (en) * 1990-02-23 1998-05-19 Universite De Sherbrooke Algebraic codebook with signal-selected pulse amplitude/position combinations for fast coding of speech
US5701392A (en) * 1990-02-23 1997-12-23 Universite De Sherbrooke Depth-first algebraic-codebook search for fast coding of speech
CA2010830C (en) * 1990-02-23 1996-06-25 Jean-Pierre Adoul Dynamic codebook for efficient speech coding based on algebraic codes
DE9006717U1 (de) * 1990-06-15 1991-10-10 Philips Patentverwaltung GmbH, 22335 Hamburg Anrufbeantworter für die digitale Aufzeichnung und Wiedergabe von Sprachsignalen
SE466824B (sv) * 1990-08-10 1992-04-06 Ericsson Telefon Ab L M Foerfarande foer kodning av en samplad talsignalvektor
US5293449A (en) * 1990-11-23 1994-03-08 Comsat Corporation Analysis-by-synthesis 2,4 kbps linear predictive speech codec
IT1241358B (it) * 1990-12-20 1994-01-10 Sip Sistema di codifica del segnale vocale con sottocodice annidato
DE4193230C1 (de) * 1990-12-20 1997-10-30 Motorola Inc Sendeschaltung in einem Funktelefon mit einem Pegelsender
US5528723A (en) * 1990-12-28 1996-06-18 Motorola, Inc. Digital speech coder and method utilizing harmonic noise weighting
US5195137A (en) * 1991-01-28 1993-03-16 At&T Bell Laboratories Method of and apparatus for generating auxiliary information for expediting sparse codebook search
JP2776050B2 (ja) * 1991-02-26 1998-07-16 日本電気株式会社 音声符号化方式
US5504936A (en) * 1991-04-02 1996-04-02 Airtouch Communications Of California Microcells for digital cellular telephone systems
FI98104C (fi) * 1991-05-20 1997-04-10 Nokia Mobile Phones Ltd Menetelmä herätevektorin generoimiseksi ja digitaalinen puhekooderi
US5396576A (en) * 1991-05-22 1995-03-07 Nippon Telegraph And Telephone Corporation Speech coding and decoding methods using adaptive and random code books
US5646606A (en) * 1991-05-30 1997-07-08 Wilson; Alan L. Transmission of transmitter parameters in a digital communication system
US5265190A (en) * 1991-05-31 1993-11-23 Motorola, Inc. CELP vocoder with efficient adaptive codebook search
US5179594A (en) * 1991-06-12 1993-01-12 Motorola, Inc. Efficient calculation of autocorrelation coefficients for CELP vocoder adaptive codebook
US5255339A (en) * 1991-07-19 1993-10-19 Motorola, Inc. Low bit rate vocoder means and method
US5410632A (en) * 1991-12-23 1995-04-25 Motorola, Inc. Variable hangover time in a voice activity detector
ES2042410B1 (es) * 1992-04-15 1997-01-01 Control Sys S A Metodo de codificacion y codificador de voz para equipos y sistemas de comunicacion.
US5457783A (en) * 1992-08-07 1995-10-10 Pacific Communication Sciences, Inc. Adaptive speech coder having code excited linear prediction
US5357567A (en) * 1992-08-14 1994-10-18 Motorola, Inc. Method and apparatus for volume switched gain control
CA2110090C (en) * 1992-11-27 1998-09-15 Toshihiro Hayata Voice encoder
JPH06186998A (ja) * 1992-12-15 1994-07-08 Nec Corp 音声符号化装置のコードブック探索方式
US5434947A (en) * 1993-02-23 1995-07-18 Motorola Method for generating a spectral noise weighting filter for use in a speech coder
US5491771A (en) * 1993-03-26 1996-02-13 Hughes Aircraft Company Real-time implementation of a 8Kbps CELP coder on a DSP pair
CA2135629C (en) * 1993-03-26 2000-02-08 Ira A. Gerson Multi-segment vector quantizer for a speech coder suitable for use in a radiotelephone
DE4315319C2 (de) * 1993-05-07 2002-11-14 Bosch Gmbh Robert Verfahren zur Aufbereitung von Daten, insbesondere von codierten Sprachsignalparametern
JP3685812B2 (ja) * 1993-06-29 2005-08-24 ソニー株式会社 音声信号送受信装置
US5659659A (en) * 1993-07-26 1997-08-19 Alaris, Inc. Speech compressor using trellis encoding and linear prediction
JP2626492B2 (ja) * 1993-09-13 1997-07-02 日本電気株式会社 ベクトル量子化装置
US5621852A (en) * 1993-12-14 1997-04-15 Interdigital Technology Corporation Efficient codebook structure for code excited linear prediction coding
JP3119063B2 (ja) * 1994-01-11 2000-12-18 富士通株式会社 符号情報処理方式並びにその符号装置及び復号装置
US5487087A (en) * 1994-05-17 1996-01-23 Texas Instruments Incorporated Signal quantizer with reduced output fluctuation
JP3224955B2 (ja) * 1994-05-27 2001-11-05 株式会社東芝 ベクトル量子化装置およびベクトル量子化方法
US5602961A (en) * 1994-05-31 1997-02-11 Alaris, Inc. Method and apparatus for speech compression using multi-mode code excited linear predictive coding
TW271524B (no) 1994-08-05 1996-03-01 Qualcomm Inc
US5742734A (en) * 1994-08-10 1998-04-21 Qualcomm Incorporated Encoding rate selection in a variable rate vocoder
JPH08179796A (ja) * 1994-12-21 1996-07-12 Sony Corp 音声符号化方法
DE19600406A1 (de) * 1995-01-09 1996-07-18 Motorola Inc Verfahren und Vorrichtung zur Bereitstellung verschlüsselter Nachrichten
US5991725A (en) * 1995-03-07 1999-11-23 Advanced Micro Devices, Inc. System and method for enhanced speech quality in voice storage and retrieval systems
US5742640A (en) * 1995-03-07 1998-04-21 Diva Communications, Inc. Method and apparatus to improve PSTN access to wireless subscribers using a low bit rate system
JPH08272395A (ja) * 1995-03-31 1996-10-18 Nec Corp 音声符号化装置
US5673361A (en) * 1995-11-13 1997-09-30 Advanced Micro Devices, Inc. System and method for performing predictive scaling in computing LPC speech coding coefficients
US5864795A (en) * 1996-02-20 1999-01-26 Advanced Micro Devices, Inc. System and method for error correction in a correlation-based pitch estimator
US5696873A (en) * 1996-03-18 1997-12-09 Advanced Micro Devices, Inc. Vocoder system and method for performing pitch estimation using an adaptive correlation sample window
US5774836A (en) * 1996-04-01 1998-06-30 Advanced Micro Devices, Inc. System and method for performing pitch estimation and error checking on low estimated pitch values in a correlation based pitch estimator
US5778337A (en) * 1996-05-06 1998-07-07 Advanced Micro Devices, Inc. Dispersed impulse generator system and method for efficiently computing an excitation signal in a speech production model
US6047254A (en) * 1996-05-15 2000-04-04 Advanced Micro Devices, Inc. System and method for determining a first formant analysis filter and prefiltering a speech signal for improved pitch estimation
JP2914305B2 (ja) * 1996-07-10 1999-06-28 日本電気株式会社 ベクトル量子化装置
US5751901A (en) * 1996-07-31 1998-05-12 Qualcomm Incorporated Method for searching an excitation codebook in a code excited linear prediction (CELP) coder
US5797120A (en) * 1996-09-04 1998-08-18 Advanced Micro Devices, Inc. System and method for generating re-configurable band limited noise using modulation
DE19643900C1 (de) * 1996-10-30 1998-02-12 Ericsson Telefon Ab L M Nachfiltern von Hörsignalen, speziell von Sprachsignalen
DE69712535T2 (de) * 1996-11-07 2002-08-29 Matsushita Electric Industrial Co., Ltd. Vorrichtung zur Erzeugung eines Vektorquantisierungs-Codebuchs
US5832443A (en) * 1997-02-25 1998-11-03 Alaris, Inc. Method and apparatus for adaptive audio compression and decompression
JP3593839B2 (ja) * 1997-03-28 2004-11-24 ソニー株式会社 ベクトルサーチ方法
US6704705B1 (en) 1998-09-04 2004-03-09 Nortel Networks Limited Perceptual audio coding
US6415029B1 (en) * 1999-05-24 2002-07-02 Motorola, Inc. Echo canceler and double-talk detector for use in a communications unit
US6510407B1 (en) 1999-10-19 2003-01-21 Atmel Corporation Method and apparatus for variable rate coding of speech
US6681208B2 (en) 2001-09-25 2004-01-20 Motorola, Inc. Text-to-speech native coding in a communication system
ATE322069T1 (de) * 2002-08-08 2006-04-15 Cit Alcatel Verfahren zur signalkodierung mittels einer vektorquantisierung
US7337110B2 (en) * 2002-08-26 2008-02-26 Motorola, Inc. Structured VSELP codebook for low complexity search
US7054807B2 (en) * 2002-11-08 2006-05-30 Motorola, Inc. Optimizing encoder for efficiently determining analysis-by-synthesis codebook-related parameters
WO2007107659A2 (fr) * 2006-03-21 2007-09-27 France Telecom Quantification vectorielle contrainte
US9105270B2 (en) * 2013-02-08 2015-08-11 Asustek Computer Inc. Method and apparatus for audio signal enhancement in reverberant environment
US10931293B1 (en) 2019-12-27 2021-02-23 Seagate Technology Llc Transform domain analytics-based channel design

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3631520A (en) * 1968-08-19 1971-12-28 Bell Telephone Labor Inc Predictive coding of speech signals
US4133976A (en) * 1978-04-07 1979-01-09 Bell Telephone Laboratories, Incorporated Predictive speech signal coding with reduced noise effects
US4220819A (en) * 1979-03-30 1980-09-02 Bell Telephone Laboratories, Incorporated Residual excited predictive speech coding system
US4472832A (en) * 1981-12-01 1984-09-18 At&T Bell Laboratories Digital speech coder
US4701954A (en) * 1984-03-16 1987-10-20 American Telephone And Telegraph Company, At&T Bell Laboratories Multipulse LPC speech processing arrangement

Also Published As

Publication number Publication date
EP0372008A1 (en) 1990-06-13
IL88465A0 (en) 1989-06-30
AR246631A1 (es) 1994-08-31
IL88465A (en) 1992-06-21
NO893202D0 (no) 1989-08-09
CA1279404C (en) 1991-01-22
DK438189D0 (da) 1989-09-05
DE3853916D1 (de) 1995-07-06
KR930010399B1 (ko) 1993-10-23
FI894151A0 (fi) 1989-09-04
MX168558B (es) 1993-05-31
KR930005226B1 (ko) 1993-06-16
CN1035379A (zh) 1989-09-06
JP2523031B2 (ja) 1996-08-07
FI105292B (fi) 2000-07-14
BR8807414A (pt) 1990-05-15
JPH02502135A (ja) 1990-07-12
WO1989006419A1 (en) 1989-07-13
NO893202L (no) 1989-08-09
CN1021938C (zh) 1993-08-25
DE3853916T2 (de) 1995-12-14
DK176383B1 (da) 2007-10-22
EP0372008B1 (en) 1995-05-31
JP2820107B2 (ja) 1998-11-05
ATE123352T1 (de) 1995-06-15
US4817157A (en) 1989-03-28
KR900700994A (ko) 1990-08-17
DK438189A (da) 1989-11-07
JPH08234799A (ja) 1996-09-13

Similar Documents

Publication Publication Date Title
NO302849B1 (no) Framgangsmåte og anordning for digital talekoding
US4896361A (en) Digital speech coder having improved vector excitation source
US5826224A (en) Method of storing reflection coeffients in a vector quantizer for a speech coder to provide reduced storage requirements
CN102129862B (zh) 降噪装置及包括降噪装置的声音编码装置
US5327519A (en) Pulse pattern excited linear prediction voice coder
US5127053A (en) Low-complexity method for improving the performance of autocorrelation-based pitch detectors
CA2177421C (en) Pitch delay modification during frame erasures
US5794182A (en) Linear predictive speech encoding systems with efficient combination pitch coefficients computation
US5138661A (en) Linear predictive codeword excited speech synthesizer
US5187745A (en) Efficient codebook search for CELP vocoders
US5485581A (en) Speech coding method and system
Atal High-quality speech at low bit rates: Multi-pulse and stochastically excited linear predictive coders
US5359696A (en) Digital speech coder having improved sub-sample resolution long-term predictor
US6055496A (en) Vector quantization in celp speech coder
US6385577B2 (en) Multiple impulse excitation speech encoder and decoder
CA2159571C (en) Vector quantization apparatus
CA2037899C (en) Digital speech coder having improved long-term predictor
US5970444A (en) Speech coding method
EP0578436A1 (en) Selective application of speech coding techniques
US7337110B2 (en) Structured VSELP codebook for low complexity search
US5235670A (en) Multiple impulse excitation speech encoder and decoder
NO862602L (no) Vocoder innebygd i digitale signalbehandlingsenheter.
CN1845239B (zh) 声源矢量生成装置以及声音编码装置和声音解码装置
JPH11296195A (ja) 音響信号の符号化方法、復号方法、そのプログラム記録媒体、およびこれに用いる符号帳
JPH0511799A (ja) 音声符号化方式