DK176383B1 - Fremgangsmåde og apparat til at generere en kodebog af excitationsvektorer samt talekoder og digitalt radiokommunikationsudstyr omfattende et kodebogvektorgenererende apparat - Google Patents

Fremgangsmåde og apparat til at generere en kodebog af excitationsvektorer samt talekoder og digitalt radiokommunikationsudstyr omfattende et kodebogvektorgenererende apparat Download PDF

Info

Publication number
DK176383B1
DK176383B1 DK198904381A DK438189A DK176383B1 DK 176383 B1 DK176383 B1 DK 176383B1 DK 198904381 A DK198904381 A DK 198904381A DK 438189 A DK438189 A DK 438189A DK 176383 B1 DK176383 B1 DK 176383B1
Authority
DK
Denmark
Prior art keywords
vectors
codebook
password
vector
excitation
Prior art date
Application number
DK198904381A
Other languages
English (en)
Other versions
DK438189D0 (da
DK438189A (da
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 DK438189D0 publication Critical patent/DK438189D0/da
Publication of DK438189A publication Critical patent/DK438189A/da
Application granted granted Critical
Publication of DK176383B1 publication Critical patent/DK176383B1/da

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

DK 176383 B1 i
Den foreliggende opfindelse angår generelt kodning af digital tale ved lave bithastigheder og mere specielt en forbedret fremgangsmåde samt et forbedret apparat til at generere en kodebog af excitationsvektorer til brug ved højhastigheds-taleanalyse eller -syntese, hvilken kodebog har i det mindste 2M excitationsvektorer Uj(n), hver med N
elementer, hvor 1 < n < N, og hvor 0 < i < 2M - L Opfindelsen angår endvidere taleko-der og digitalt radiokommunikationsudstyr omfattende et kodebogvektorgenererende apparat.
Kodeexciteret lineær prediktion (CELP) er en talekodeteknik, som har mulighed for at producere syntetiseret tale af høj kvalitet ved lave bithastigheder, dvs. 4,8 til 9,6 kilo-5 bits pr. sekund. Denne klasse af talekodning, også kendt som vektorexciteret lineær prediktion eller stokastisk kodning, vil antagelig blive meget brugt i forbindelse med talekommunikation og talesyntetisering. CELP kan vise sig at være specielt anvendelig til digital talekryptering og digitale radiotelefonkommunikationssystemer, hvor ta-lekvalitet, datahastighed, dimensioner og omkostninger er vigtige sider.
10 I en CELP talekoder bliver prediktoreme for den lange periode ("pitch") og den korte periode ("formant"), som modellerer karakteristikken af det indgående talesignal, muliggjort ved et antal lineære filtre, som varierer over tid. Et excitationssignal for filtrene vælges fra en kodebog af lagrede ændringssekvenser eller kodevektorer. For hver 15 taleramme giver talekoderen hver individuel kodevektor til filtrene for at generere et rekonstrueret talesignal og sammenligne det originale indgående talesignal med det rekonstruerede signal for at fremskaffe et fejlsignal. Fejlsignalet bliver så vejet ved at sende det gennem et vejefilter, som har en respons baseret på menneskelig øreopfattelse. Et optimalt excitationssignal bliver så bestemt ved at vælge den kodevektor, som 20 producerer det vejede fejlsignal med minimumenergi for den foreliggende ramme.
Udtrykket "kode-exciteret" eller "vektor-exciteret" er afledt af det faktum, at excita-tionsfrekvensen for talekoderen er vektorkvantiseret, dvs. et enkelt kodeord anvendes til at repræsentere en sekvens eller vektor af excitationssamplinger. På denne måde 25 bliver hastigheder på mindre end en bit pr. sampling gjort mulig til kodning af excita-tionssekvensen. De lagrede excitationskodevektorer består generelt af uafhængige, DK 176383 B1 2 tilfældige hvide Gaussiske sekvenser. En kodevektor fra kodebogen anvendes til at repræsentere hver blok af N excitationsprøver. Hver lagret kodevektor er repræsenteret ved et kodeord, nemlig adressen for kodevektorens lagerlokation. Det er dette kodeord, som senere sendes over en kommunikationskanal til talesyntesizer for at rekonstu-5 rere talerammen ved modtageren. Se 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), bind 3, side 937-40, marts 1985, for en detaljeret forklaring på CELP.
10 Problemet med CELP talekodning ligger i den ekstremt høje beregningskompleksitet for at få en grundig afsøgning af alle excitationskodevektorer i kodebogen. Fx ved en samplingshastighed på 8 kHz vil en 5 ms taleramme omfatte 40 samplinger. Hvis exci-tationsinformationen bliver kodet ved en hastighed på 0,25 bits pr. sampling (modsvarer 2 kbps), ville 10 bits information skulle anvendes for at kode hver ramme. Af dette 15 følger, at den tilfældige kodebog skal indeholde 210 eller 1024 tilfældige kodevektorer. Vektorsøgeproceduren kræver omtrent 15 multiplicer-akkumuler (MAC) beregninger (antaget en tredje ordens lang-periode prediktorer og en tiende ordens kortperiode pre-diktorer) for hver af de 40 samplinger i hver kodevektor. Dette modsvarer 600 MAC pr. kodevektor pr. 5 ms taleramme, eller omtrent 120.000.000 MAC pr. sekund (600 20 MAC/5 ms ramme x 1024 kodevektorer). Man kan nu se for sig den ekstraordinære regnekraft, som kræves, for at søge gennem hele kodebogen af 1024 vektorer for at finde den bedste - en urimelig opgave for sandtidsimplementering med dagens digitale signalprocessorer.
25 Endvidere kræves en enorm lagerkapacitet til at lagre kodebogen af uafhængige tilfældige vektorer. Til ovennævnte eksempel ville en 640 kilobit ROM kræves til at lagre alle 1024 kodevektorer, hver med 40 samplinger, og hver sampling repræsenteret af et 16 bits ord. Denne ROM størrelse passer ikke sammen med dimensioner og omkost-ningsmål for mange anvendelser med talekodning. På baggrund af dette er kendt ko-30 deexciteret lineær prediktion endnu ikke en praktisk metode til talekodning.
En alternativ måde til at reducere regnekompleksiteten af kodevektorsøgningen er at implementere søgerberegning i et transformeret plan. Der kan henvises til I.M. Tran- DK 176383 B1 3 coso og B.S. Atal, "Efficient Procedures for Finding the Optimum Innovation in Stochastic Coders", Proc. ICASSP, bind 4, side 2375-8, april 1986, som et eksempel på en sådan procedure. Ved at anvende denne metode kan diskret Fourier transformation (DFT) eller andre transformationer anvendes til at udtrykke filterresponsen i det trans-5 formerede plan, således at filterberegningen reduceres til en enkel MAC operation pr. sampling pr. kodevektor. Imidlertid er også yderligere to MAC pr. sampling pr. kode-vektor nødvendig for at evaluere kodevektoren; dette resulterer i et væsentligt antal af multiplicer-akkumuleroperationer, dvs. 120 pr. kodevektor pr. 5 ms ramme, eller 24.000.000 MAC pr. sekund i ovenfor nævnte eksempel. Endvidere vil transforme-10 ringsmetoden kræve mindst dobbelt så stort lager, eftersom transformationen af hver kodevektor også skal lagres. I det ovenfor nævnte eksempel vil 1,3 megabit ROM være nødvendig for at implementere CELP ved hjælp af transformation.
En anden metode til at reducere beregningskompleksiteten er at strukturere excita-15 tionskodebogen således, at kodevektorer ikke længere er uafhængige af hinanden. På den måde vil den filtrerede version af en kodevektor kunne beregnes fra den filtrerede version af den foregående kodevektor ved anvendelse af kun en enkelt filterberegning MAC pr. prøve.
20 Denne metode resulterer i omtrent samme beregningskrav som i transformationsteknikken, dvs. 24.000.000 MAC pr. sekund, men giver væsentlige reduktioner af mængden af ROM, som kræves (16 kilobit i det ovenfor nævnte eksempel). Eksempler på denne type kodebøger er givet i en artikel med titlen "Speech Coding Using Efficient Pseudo-Stochastic Block Codes", Proc. ICASSP, bind 3, side 1354-7, april 1987 af D.
25 Lin. Imidlertid er 24.000.000 MAC pr. sekund endnu over beregningskapaciteten af en enkelt digital signalprocessor. Endvidere er ROM-størrelsen baseret på 2M x antal bit pr. ord, hvor M er antal bit i kodeordet, således at kodebogen indeholder 2M kodevektorer. Derfor vil lagerkravene fortsat stige eksponentielt med antal af bits, som anvendes til at kode rammen af exciteret information. Fx vil ROM kravene stige til 64 kilo-30 bit, når 12 bits kodeord anvendes.
Der eksisterer derfor et behov for at fremskaffe en forbedret talekodeteknik, som angriber både problemet med ekstrem høj beregningskompleksitet for nøjagtig kodebog- DK 176383 B1 4 søgning og de enorme lagerkrav til lagring af excitationskodevektoreme.
I overensstemmelse med dette er det et hovedformål med den foreliggende opfindelse at anvise en forbedret digital talekodningsteknik, som giver tale af høj kvalitet ved 5 lave bithastigheder. Et andet formål med den foreliggende opfindelse er med reducerede lagerkrav at fremskaffe en effektiv generering af excitationsvektorer.
Et yderligere formål med den foreliggende opfindelse er at fremskaffe en forbedret kodebogsøgning med reduceret regnekompleksitet for praktisk implementering i sand 10 tid ved hjælp af dagens digitale signalprocessorer.
Disse og andre formål opnås ved den foreliggende opfindelse ved en fremgangsmåde af den indledningsvis nævnte type, som er særpræget ved følgende trin: a) lagring af et sæt af M basisvektorer vm(n), hver med N elementer, hvor 1 < n < N, 15 og hvor 1 <m < M, b) identifikation af et sæt af 2M digitale kodeord If, hver med M bit, hvor 0 < i < 2M - 1, c) identifikation af et signal øfm for hver bit i hvert kodeord If, således at Øfm har en første værdi, hvis bit m i kodeord If udviser en første tilstand, og således at Θ 20 jm har en anden værdi, hvis bit m i kodeord If udviser en anden tilstand, og d) beregning af nævnte kodebog med 2M excitationsvektorer i overensstemmelse med formlen:
M
ui(n) = Σ Øimvm(n) 25 m=l hvor l<n <N.
Apparatet ifølge opfindelsen er særpræget ved at omfatte:
a) et digitalt lager (114) til at lagre et sæt af M basisvektorer vm(n), hver med N
30 elementer, hvor 1 < n < N, og hvor 1 < m < M, b) organer (140) til identifikation af et sæt af 2M digitale kodeord If, hver med M bit, hvor 0 < i < 2M - 1, DK 176383 B1 5 c) organer (360) til identifikation af et signal Øjm for hver bit i hvert kodeord Ij, således at Øm har en første værdi, hvis bit m i kodeord Ij udviser en første tilstand, og således at Øjm har en anden værdi, hvis bit m i kodeord Ij udviser en anden tilstand, og 5 d) organer (361-365) til beregning af nævnte kodebog med 2M excitationsvektorer i overensstemmelse med formlen:
M
ui(n)= Σ Øimvm(n) m=l 10 hvorl<n<N.
Med opfindelsen opnås kort beskrevet en forbedret generering af excitationsvektorer og søgeteknik for en talekoder, som anvender en kodebog med excitationsvektorer.
15 I overensstemmelse med et første aspekt ved opfindelsen anvendes: a) indlæsning af i det mindste to selektionskodeord, b) definition (360) af et flertal af midlertidige datasignaler (©im) baseret på nævnte selektionskodeord, c) indlæsning (314) af en mængde af X basisvektorer (vm(n)), hvor X < Y, og 20 d) generering (361,362,363,364,365) af nævnte kodebogvektorer ved at udføre lineære transformationer på nævnte X basisvektorer (vm(n)), hvilke lineære transformationer defineres af de midlertidige datasignaler (Øjm)·
Ifølge et yderligere aspekt ved fremgangsmåden, hvor hvert af de nævnte selektions- 25 kodeord kan repræsenteres i bit, hvor de midlertidige datasignaler (Øjm) er baseret på værdien af hver bit i hvert selektionskodeord, er nævnte kodebogvektorgenereringstrin yderligere særpræget ved følgende trin: a) multiplicering (361,362,363,364) af nævnte mængde af X basisvektorer (vm(n)) med nævnte flertal af midlertidige datasignaler (Øjm) for at producere et flertal af 30 midlertidige vektorer, og b) summering (365) af flertallet af de midlertidige vektorer for at producere nævnte kodebogvektorer.
DK 176383 B1 6
Ifølge et yderligere særpræg omfatter fremgangsmåden lagring af kodebogen af excita-tionsvektorer i en hukommelse.
5 Ifølge opfindelsen anvendes således et antal basisvektorer sammen med excitations-signal-kodeordet til at generere en kodebog af excitationsvektorer i overensstemmelse med en ny "vektorsum"-teknik. Denne fremgangsmåde til at generere en mængde af 2m kodebogvektorer omfatter følgende trin: Indlæs et antal selektionskodeord; omform selektionskodeordene til et flertal af foreløbige datasignaler, generelt baseret på værdi-10 en af hver bit i hvert selektionskodeord; indlæs en mængde på M basisvektorer, typisk lagret i lageret i stedet for lagring af hele kodebogen; multiplicer mængden af M basisvektorer med flertallet af foreløbige datasignaler for at producere et flertal af foreløbige vektorer, og summer flertallet af foreløbige vektorer for at producere mængden af 2m kodevektorer.
15 I overensstemmelse med opfindelsen bliver hele kodebogen af 2M mulige excitationsvektorer effektivt søgt ved hjælp af kendskab til, hvordan kodevektoreme er genereret af basisvektorerne - uden at det er nødvendigt at generere og evaluere hver af kodevektoreme. Denne fremgangsmåde til selektering af et kodeord modsvarende den 20 ønskede excitationsvektor omfatter følgende trin: generer en indgående vektor, som modsvarer et indgangssignal; indlæs en mængde af M basisvektorer; generer et flertal af behandlede vektorer af basisvektorerne; sammenlign de behandlede vektorer med indgangsvektoren for at producere sammenligningssignaler; beregn parametre for hvert kodeord modsvarende hver af mængden af 2M excitationsvektorer, baseret på 25 sammenligningssignaleme; evaluer de beregnede parametre for hvert kodeord og vælg et kodeord, som repræsenterer den kodevektor, som vil give et rekonstrueret signal, som er nærmest indgangssignalet, uden at generere en mængde på 2M excitationsvektorer. Videre reduktion i regnekompleksitet opnås ved videreføring fra et kodeord til næste kodeord ved ændring af kun en bit af kodeordet ad gangen i overensstemmelse 30 med en forudbestemt sekvenseringsteknik, således at beregningen for næste kodeord er reduceret til at opdatere parametre fra foregående kodeord baseret på den forudbestemte sekvenseringsteknik.
DK 176383 B1 7
Fremgangsmåden med vektorsum kodeboggenerering ifølge den foreliggende opfindelse tillader hurtigere implementering af CELP talekodning, medens fordelen med høj-kvalitet tale ved lave bithastigheder bibeholdes. Mere specifikt giver den foreliggende opfindelse en effektiv løsning på problemerne med beregningskompleksitet og 5 lagerkrav. Fx kræver vektorsummetoden, som her er vist, kun M + 3 MAC for hver kodeordberegning. Ved sammenligning med foregående eksempel svarer dette til kun 13 MAC, i modsætning til 600 MAC for standard CELP, eller 120 MAC, når transformationsmetoden anvendes. Denne forbedring overføres i en reduktion i kompleksitet på omtrent 10 gange, hvilket resulterer i ca. 2.600.000 MAC pr. sekund. Denne 10 reduktion i beregningskompleksitet gør det muligt at anvende praktisk sandtidsimplementering af CELP ved hjælp af en enkelt digital signalprocessor.
Endvidere skal kun M basisvektorer lagres i lageret, i modsætning til alle 2M kodevek-torer. Af dette følger, at ROM kravet for ovennævnte eksempel er reduceret fra 640 15 kilobit til 6,4 kilobit ved den foreliggende opfindelse. En yderligere fordel ved den foreliggende talekodning er, at den er mere robust over for kanalbitfejl, end tilfældet er med standard CELP. Ved at anvende en vektorsumexciteret tale-koder ifølge den foreliggende opfindelse vil en enkelt bit-fejl i det modtagne kodeord resultere i en excita-tionsvektor, som er magen til den ønskede. Under samme forhold vil standard CELP, 20 som anvender en tilfældig kodebog, give en tilfældig excitationsvektor, som er helt uafhængig af den ønskede.
Opfindelsen skal i det følgende forklares nærmere i forbindelse med tegningen, hvor 25 fig. 1 viser et blokdiagram for en kodeexciteret lineær prediktiv talekoder, som anvender vektorsumexcitationssignalgenereringsteknik i overensstemmelse med den foreliggende opfindelse, fig. 2A/2B et forenklet rutediagram, som illustrerer den generelle sekvens af operatio-30 ner, som udføres af talekoderen i fig. 1, fig. 3 et detaljeret blokdiagram af kodeboggeneratorblokken i fig. 1, som illustrerer vektorsumteknikken ifølge den foreliggende opfindelse, DK 176383 B1 8 fig. 4 et generelt blokdiagram af en talesyntesizer, som anvender den foreliggende opfindelse, fig. 5 et delblokdiagram for talekoderen i fig. 1, som illustrerer en forbedret søgeteknik 5 i overensstemmelse med en foretrukket udførelse af den foreliggende opfindelse, fig. 6A/6B et detaljeret rutediagram, som illustrerer sekvensen af operationer, som udføres af talekoderen i fig. 5, som implementerer forstærkningsberegninger ved en foretrukket udførelse, og 10 fig. 7A/7B/7C et detaljeret rutediagram, som illustrerer sekvensen af operationer, som udføres ved en alternativ udførelse af fig. 5, ved anvendelse af en forud beregnet forstærkningsteknik.
15 I fig. 1 er vist et generelt blokdiagram for en kodeexciteret lineær prediktiv talekoder 100, som anvender excitationssignal genereringsteknik i overensstemmelse med den foreliggende opfindelse. Et akustisk indgangssignal, som skal analyseres, tilføres talekoderen 100 ved en mikrofon 102. Indgangssignalet, som typisk er et talesignal, bliver derefter tilført et filter 104. Filteret 104 vil generelt være udformet som et båndpasfil-20 ter. Hvis imidlertid talebåndbredden allerede er passende, kan filteret 104 erstattes af en direkte ledningsforbindelse.
Det analoge talesignal fra filteret 104 bliver omformet til en sekvens af N impulssam-plinger, og amplituden af hver impulssampling bliver repræsenteret af en digital kode i 25 en A/D-omsætter 108, som er kendt. Samplingshastigheden er bestemt af et samplekloksignal SC, som i den foretrukne udførelse repræsenterer en 8,0 kHz hastighed. Samplekloksignalet frembringes sammen med et rammekloksignal FC af en klokkreds 112.
30 Den digitale udgang fra omsætteren 108, som kan opfattes som en indgående talevek-tor s(n), bliver tilført en koefficientanalysator 110. Talevektoren s(n) bliver repetitivt opnået i separate rammer, dvs. tidsblokke, hvor længden bestemmes af rammeklok-signalet FC. I den foretrukne udførelse repræsenterer den indgående talevektor s (η), 1 DK 176383 B1 9 S n < N, en 5 ms ramme indeholdende N=40 samplinger, hvor hver sampling er repræsenteret af 12-16 bit digital kode. For hver taleblok er parametre for lineær prediktiv kode (LPC) produceret i overensstemmelse med kendt teknik af koefficientanalysatoren 110. Kortperiode prediktorparameter STP, langperiode prediktor-5 parameter LTP, vejefilterparameter WFP og excitationsforstærkningsfaktor τ (sammen med bedste excitationskodeord I som beskrevet senere), bliver tilført en multiplekser 150 og sendt over kanalen for anvendelse af talesyntesizeren. Der henvises til "Predictive Coding of Speech at Low Bit rates", IEEE Trans. Commun., bind COM-30, side 600-14, april 1982, ved B.S. Atal, for repræsentative fremgangsmåder til generering af 10 disse parametre. Den indgåede talevektor s(n) vil blive beskrevet senere.
En basisvektorlagerblok 114 indeholder en mængde M basisvektorer Vm(n), hvor 1 <m <M, hver omfattende N samplinger, hvor 1 <n <N. Disse basisvektorer anvendes af en kodeboggenerator 120 til at generere en mængde bestående af 2M pseudo-15 tilfældige excitationsvektorer Uj(n), hvor O < i <2M-1. Hver af M basisvektorerne omfatter en serie af tilfældige hvide Gaussiske samplinger, men andre typer basisvektorer kan anvendes.
Kodeboggenerator 120 anvender de M basisvektorer vm(n) og en mængde bestående af 20 2m excitationskodeord Ij, hvor O < i < 2M-1, til at generere de 2M excitationsvektorer u; (η). I den foreliggende udførelse er hvert kodeord I; lig indeks i, dvs. Ii=i. Hvis excita-tionssignalet blev kodet ved en hastighed på 0,25 bit pr. sampling for hver af de 40 samplinger (således at M=10), ville der være anvendt 10 basis-vektorer til at generere de 1024 excitationsvektorer. Disse excitationsvektorer er genereret i overensstemmel -25 se med vektorsum-excitationsteknikken, som senere vil blive beskrevet i forbindelse med fig. 2 og 3.
For hver individuel excitationsvektor Uj(n) bliver en rekonstrueret talevektor s';(n) genereret for sammenligning med den indgående talevektor s(n). En forstærkningsblok 30 122 vægter excitationsvektor u;(n) med excitationsforstærkningsfaktoren τ, som er konstant for rammen. Excitationsforstærkningsfaktoren τ kan forhåndsberegnes af koefficientanalysatoren 110 og anvendes til at analysere alle excitationsvektorer som vist i fig. 1, eller den kan optimeres samtidig med søgning af det bedste excitationsko- DK 176383 B1 10 deord I og genereret af kodebogsøge-kontrol 140. Denne optimaliserede forstærkningsteknik vil senere blive beskrevet i overensstemmelse med fig. 5.
Det vægtede excitationssignal Uj(n) bliver filtreret af et langperiode prediktorfilter 124 5 og et kortperiode prediktorfilter 126 for at generere den rekonstruerede talevektor s’j(n).Filteret 124 anvender langperiode prediktorparameter LTP til at introducere stemmeperiodicitet, og filteret 126 anvender kortperiode prediktorparameter STP til at introducere spektralomhylninger. Bemærk, at blokkene 124 og 126 i virkeligheden er rekursive filtre, som indeholder langperiode prediktor og kortperiode prediktor i deres 10 respektive tilbagekoblingsveje. Der henvises til førnævnte artikel for repræsentative overføringsfunktioner for disse tidsvarierede rekursive filtre.
Den rekonstruerede talevektor s'j(n) for den i-te excitationskodevektor bliver sammenlignet med samme blok af den indgående talevektor s(n) ved at subtrahere disse to 15 signaler i en subtraktor 130. Differensvektoren e;(n) repræsenterer differencen mellem den originale og den rekonstruerede taleblok. Differensvektoren bliver vejet i et veje-filter 132, som anvender vejefilterparameter WTP, der er genereret af koefficientanalysatoren 110. Der henvises til foregående reference for en repræsentativ funktion for vejefilteroverføring. Perseptuel vejning fremhæver de frekvenser, hvor fejl er persep-20 tuelt mere vigtig for det menneskelige øre, og dæmper andre frekvenser.
Energiberegner 134 beregner energien af den vejede differens vektor E'j(n) og tilfører dette fejlsignal Ij til kodebogsøgekontrolleren 140. Søgekontrolleren sammenligner det i-te fejlsignal for den foreliggende excitationsvektor u;(n) med foregående fejlsignaler 25 for at bestemme den excitationsvektor, som producerer minimale fejl. Koden for den i-te excitationsvektor, som har minimum af fejl, bliver sendt ud over kanalen som bedste excitationskode I. Som alternativ kan søgekontroller 140 bestemme et særligt kode ord, som giver et fejlsignal med forudbestemte kriterier, som fx at made en forudbestemt fejl tærskel.
Drift af talekoderen 100 skal nu beskrives i forbindelse med rutediagrammet i fig. 2.
Med start i trin 200 bliver en ramme af N samplinger af indgående talevektorer s(n) op taget i trin 202 og tilført subtraktoren 130. I den foretrukne udførelse er N lig 40 sam- 30 DK 176383 B1 11 plinger. I trin 204 beregner koefficientanalysatoren 110 langperiode prediktorparame-ter LTP, kortperiode prediktorparameter STP, vejefilter-parameter WTP og excita-tionsforstærkningsfaktor τ. Filtertilstandene FS af langperiode prediktorfilter 124, kortperiode prediktorfilter 126 og vejefilter 132 bliver så lagret i trin 206 til senere 5 brug. Trin 208 initialiserer variableme i, som repræsenterer excitationskodeordindeks, og Eb, som repræsenterer bedste fejlsignal, som vist.
I trin 210 tilbageføres filtertilstandene for lang- og kortperiode prediktor og vejefilter til de filtertilstande, som er lagret i trin 206. Denne tilbagefaring sikrer, at tidligere filterhistorie bliver den samme ved sammenligning af hver excitationsvektor. I trin 10 212 bliver indeksen i testet for at se, om alle excitationsvektorer er blevet sammenlig net. Hvis i er mindre end 2M, anvendes basisvektorer Vm(n) til at beregne excita-tionsvektoren U;(n) med vektorsumteknikken.
Fig. 3 illustrerer repræsentativ hardwarekonfiguration for kodeboggeneratoren 120 og 15 vil nu blive benyttet til at beskrive vektorsumteknikken. En generatorblok 320 modsvarer kodeboggenerator 120 i fig. 1, medens et lager 314 modsvarer basisvektorlageret 114. Lagerblokken 314 lagrer alle M basisvektorer ved Vj(n) til vM(n), hvor 1 < m < M og 1 < n L < N. Alle M basisvektorer tilføres multiplikatorer 361 til 364 af generatoren 320.
20
Det i-te excitationskodeord bliver også tilført generatoren 320. Excitationsinformatio-nen bliver konverteret til et flertal af midlertidige datasignaler 0« til OiM, hvor 1 < m < M af en omformer 360.1 den foretrukne udførelse er de midlertidige datasignaler baseret på værdien af de individuelle bits af vælgekodeord i, således at hvert midlertidigt 25 datasignal 9im repræsenterer fortegnet, som modsvarer m-te bit af i-te excitationskodeord. Fx hvis bit en i excitationskodeordet i er O, så bliver 0« -1. På lignende måde bliver 0i2 +1. Det skal imidlertid fremhæves, at de midlertidige datasignaler alternativt kan være en anden overføringsform i til Øim bestemt af en ROM-tabel. Læg også mærke til, at antal af bits i kodeordet ikke må være det samme som antal af basisvektorer.
30 Fx kodeordet i kan have 2M bit, hvor hvert par af bits definerer 4 værdier for hver Øim, dvs. 0, 1,2, 3 eller +1, -1,+2, -2 osv.
DK 176383 B1 12
De midlertidige datasignaler bliver også tilført multiplikatorer 361 til 364. Multiplikatorerne anvendes til at multiplicere mængden af basisvektorer vm(n) med mængden af midlertidige vektorer, som så summeres i et summeringsnetværk 365 for at producere signalexcitationskodevektor u,(n). Dermed kan vektorsummeringsteknikken beskrives 5 ved ligningen:
M
(1) Uj(n) = Σ Øim vm(n) m=l 10 hvor u;(n) er n-te sampling i-te excitationskodevektor, og hvor 1 <n <N.
Ved at fortsætte med trin 216 i fig. 2A bliver excitationsvektor Ui(n) multipliceret med excitationsforstærkningsfaktor τ via forstærkningsblok 122. Denne vægtede excitationsvektor Uj(n) bliver så filtreret i trinet 218 aflangperiode- og kortperiodeprediktor-15 filtrene for at beregne den rekonstruerede talevektor s'j(n). Differensvektoren ej(n) bliver kalkuleret i trin 220 af subtraktor 130, således at: (2) ei(n) = s(n) -s'i(n) 20 for alle N samplinger, dvs. 1 <n <N.
I trin 222 benyttes vejefilteret 132 til at veje differensvektoren ei(n) for at opnå den vejede differensvektor e’j(n). Energiberegner 134 beregner derefter energien Ei af den vejede differensvektor i trin 224 i overensstemmelse med ligningen: 25
N
(3) Ej= Σ (e'i(n))2 n=l 30 Trin 226 sammenligner det i-te fejlsignal med hidtil bedste fejlsignal Eb for at bestemme minimum fejl. Hvis det foreliggende indeks i korresponderer med minimum fejlsignal, så bliver bedste fejlsignal Eb opdateret til værdien af i-te fejlsignal i trin 228, og i overensstemmelse med dette bliver bedste kodeord 1 sat lig med i i trin 230. Kodeordindeks i bliver derefter inkrementeret i trin 240, og styring returneres til trin 35 210 for at teste næste kodevektor.
DK 176383 B1 13 Når alle 2M kodevektorer er blevet testet, fortsætter styringen ffa trin 212 til trin 232 for at afgive det bedste kodeord I. Processen er ikke komplet, før de aktuelle filtertilstande opdateres ved hjælp af bedste kodeord I. I overensstemmelse med dette beregner trin 234 excitationsvektoren Uj(n) ved hjælp af vektorsumteknikken, som blev ud-5 ført i trin 216, men denne gang ved hjælp af det bedste kodeord I. Excitationsvektoren bliver så vægtet af forstærkningsfaktor τ i 236 og filtreret for at beregne en rekonstrueret talevektor s'j(n) i trin 238. Differenssignalet ej(n) bliver derefter beregnet i trin 242 og vejet i trin 244 for at opdatere vejefiltertilstanden. Styringen bliver derefter returneret til trin 202.
10 I fig. 4 er vist et blokdiagram for en talesyntesizer, som også anvender vektorsumgene-rering i overensstemmelse med den foreliggende opfindelse. Syntesizeren 400 far kortperiode prediktorparametre STP, langperiode prediktorparametre LTP, excita-tionsforstærkningsfaktor τ og kodeord I fra kanalen via en demultiplekser 450. Kode-15 ordet I bliver til- ført en kodeboggenerator 420 sammen med mængden af basisvektorer vm(n) fra et basisvektorlager 414 for at generere excitationsvektoren Ui(n) som beskrevet i forbindelse med fig. 3. Signalexcitationsvektoren uj(n) bliver derefter multipliceret med forstærkningsfaktor τ i blok 422, filtre- ret af langperiode prediktor-filteret 424 og kortperiode prediktorfilteret 426 for at opnå den rekonstruerede talevek-20 tor s'j(n). Denne vektor, som repræsenterer en ramme af rekonstrueret tale, bliver derefter tilført en A/D omsætter 408 for at producere et rekonstrueret analogt signal. Dette bliver filtreret gennem et lavpasfilter 404 og tilført en udgangstransducer som fx en højttaler 402. Klok 412 genererer samplekloksignaler og rammekloksignaler for syntesizeren 400.
25 I fig. 5 er vist et delblokdiagram af en alternativ udførelse af talekoderen i fig. 1 for at illustrere den foretrukne udførelse af opfindelsen. Læg mærke til, at der er to vigtige forskelle fra talekoder 100 i fig. 1. For det første beregner kodebogsøgekontroller 540 forstærkningsfaktor τ i overensstemmelse med optimal kodeordselektion. I overens-30 stemmelse med dette vil både søgning efter excitationskodeord I og generering af exci-tationsforstærkningsfaktor x blive beskrevet af det tilhørende rutediagram i fig. 6. For det andet skal det bemærkes, at en yderligere alternativ udførelse vil være at anvende forudbestemte forstærkninger kalkuleret af en koefficientanalysator 510. Rutedia- DK 176383 B1 14 grammet i fig. 7 beskriver en sådan udførelse. Fig. 7 kan anvendes til at beskrive blokdiagrammet i fig. 5, hvis en yderligere forstærkningsblok 542 og forstærkningsfaktorudgangen af koefficientanalysator 510 sættes ind som vist med punkteret streg.
5 Før der gives en detaljeret beskrivelse af operationen i talekoderen 500, kan det vise sig nyttigt at give en forklaring på den grundlæggende søgemetode ved den foreliggende opfindelse. I en standard CELP talekoder blev differensvektoren af ligning (2): 10 (2) ej(n) = s(n)-s'i(n) valgt for at give e'i(n), som blev anvendt til at kalkulere fejlsignalet i overensstemmelse med ligningen:
15 N
(3) Ε^Σ^η))2 n=l som blev minimeret for at bestemme det ønskede kodeord I. Alle 2M excitationsvekto-20 rer måtte evalueres for at finde den bedste tilpasning til s(n). Dette blev taget som basis for den grundige søgestrategi.
I den foretrukne udførelse er det nødvendigt at tage med i betragtningen dæmpningsresponsen i filtrene. Dette gøres ved at initialisere filtrene med filtertilstande forekom-25 mende ved starten af rammen og lade filtrene løbe ud uden ekstern indgang. Udgangen af filtrene med ingen indgang er såkaldt nulindgangsrespons. Endvidere kan vejefilter-funktionen flyttes fra den konventionelle lokation ved udgangen af subtraktoren til begge indgangsveje for subtraktoren. Hvis d(n) er vektoren for nulindgangsrespons af filtrene, og hvis y(n) er den vejede indgangstalevektor, så er differensvektoren p(n): 30 (4) p(n) = y(n) - d(n).
Dermed er initielle filtertilstande totalt udkompenseret ved at fratrække nulindgangsresponsen af filtrene.
35 DK 176383 B1 15
Den vejede differensvektor e'i(n) bliver: (5) e’j(n)= p(n) -s'i(n).
5
Imidlertid skal, da forstærkningsfaktoren τ skal optimaliseres samtidig med søgning efter optimalt kodeord, den filtrerede excitationsvektor fi(n) multipliceres med hvert kodeords forstærkningsfaktor τ j for at erstatte s'i(n) i ligning (5), således at den far formen: 10 (6) e’i(n) = p(n) - jfi(n).
Den filtrerede excitationsvektor f,(n) er den filtrerede version af Uj(n) med forstærkningsfaktor τ sat til en og med filtertilstandene initialiseret til nul. Med andre ord er 15 fi(n) nultilstandsresponsen af filtrene exciteret med kodevektor uj(n). Nultilstandsresponsen anvendes, eftersom filtertilstandsinformation allerede blev udkompenseret ved nulindgangsresponsvektor d(n) i ligning (4).
Ved at anvende værdien for e'j(n) fra ligning 6 i ligning 3 bliver: 20
N
(7) E^p(n)-Ttfi(n)2 n=]
Udvikling af ligning (7) giver: 25
N N N
(8) Ej= Σ p(n)2 - 2 Tj Σ ή(η)ρ(η) + τ2Σ fj(n)2 n=l n=l n =1 30
Defineres krydskorrelation mellem Fi(n) og p(n) som:
N
(9) C^fi(n)p(n) 35 n=l og defineres energien i den filtrerede kodevektor fj(n) som: 40
N
(10) Gj = Σ ((fi(n))2 opnås forenkling af ligning (8) som: DK 176383 B1 16 n=]
5 N
(11) Ei=Ep(n)2-2TiCi + Ti2Gi n=l
Vi vil nu bestemme den optimale forstærkningsfaktor i, som vil minimere e, i ligning 10 (11). Ved at tage den delvis afledte af e; med hensyn til Tj og sætte denne lig O opnås bestemmelse af optimal forstærknings faktor τλ. Dette giver: (12) i = Cj/Gi som, når indsat i ligning (11), giver: 15
N
(13) Ej = Σ p(n)2 - (Q)2/Gj 20 Det kan nu ses, at for at minimere fejlen E; i ligning (13), må udtrykket (Ci)2/G; mak- Λ simeres. Den teknik ved kodebogsøgning, som maksimerer (C;) /Gi, vil blive beskrevet i rutediagrammet i fig. 6.
Hvis forstærkningsfaktoren bliver forudberegnet af koefficientanalysator 510, kan lig-25 ning (7) omskrives som:
NN N
(14) Ε; = Σ p(n)2 — 2 Σ y’j (n)p(n) + Σ y’; (n)2 n=l n=l n=l 30 hvor yXn) er nultilstandsresponsen af filtrene til extionsvektor Ui(n) multipliceret med den forudberegnede forstærkningsfaktor τ. Hvis andet og tredje udtryk afrigning (14) bliver redefineret som: 35
N
(15) Q= Σ y'j (n) p(n) n=l og
40 N
(16) Gi= Σ (y'i(n))2 n=l kan ligning (14) reduceres til: DK 176383 B1 17
N
5 (17) Er Σ p(n)2 - 2Cj + Gi n=l
For at minimere E; i ligning (17) for alle kodeord må udtrykket (-2Q + G;) minimeres.
Dette er den kogebogsøgningsteknik, som vil blive beskrevet i rutediagrammet i fig. 7.
10
Ved at huske på, at den foreliggende opfindelse anvender et koncept af basisvektorer til at generere j(n), kan vektorsumligningen:
M
15 (1) Ui(n)= EØimvm(n) m=l anvendes til den substitution af u;, som senere vil blive vist. Essensen af denne substitution er, at basisvektorerne vm(n) kan anvendes en gang for hver ramme til direkte at 20 forudberegne alle udtryk, som er nødvendige for søgeberegningeme. Dette tillader beregning af hvert af de 2M kodeord ved at udføre en serie af multiplikationakkumuleringsoperationer, som er lineære i Μ. I den foretrukne udførelse er kun M + 3 MAC nødvendig.
25 Fig. 5, som anvender optimaliseret forstærkning, skal nu beskrives med henvisning til rutediagrammet i fig. 6a og 6b. Fra start 600 indføres en ramme af n indgangstalesam-plinger s(n) i trin 602 fra A/D omsætteren på samme måde som i fig. 1. Endvidere ledes indgangstalevektor s(n) til en koefficientanalysator 510 og benyttes til at beregne kort-periode prediktorparametre STP, langperiode prediktorparametre LTP og vejefil-30 terparametre WFP i trin 604. Læg mærke til, at koefficientanalysatoren 510 ikke beregner en forudbestemt forstærkningsfaktor τ i denne udførelse, som illustreret med punkteret pil. Indgangstalevektor s(n) bliver også tilført et initialt vejefilter 512 for at veje indgangstalerammen for at generere vejet indgangstalevektor y(n) i trin 606. Som ovenfor nævnt udfører vejefiltrene den samme funktion som vejefilter 131 i fig. 1, 35 bortset fra, at de kan flyttes fra den konventionelle placering ved udgangen af subtrak-tor 130 til begge indgange på subtraktoren. Læg mærke til, at vektor y(n) repræsente- DK 176383 B1 18 rer en mængde på n vejede talevektorer, hvor 1 < n < N, hvor N er antal samplinger i talerammen.
I trin 608 er filtertilstanden FS overført fra første langperiode prediktorfilter 524 til 5 andet langperiode prediktorfilter 525, fra første kortperiode prediktorfilter 526 til andet kortperiode prediktorfilter 527 og fra første vejefilter 528 til andet vejefilter 529.
Disse filtertilstande anvendes i trin 610 til at beregne nulindgangsresponsen d(n) til filtrene. Vektoren d(n) repræsenterer reduktions filtertilstanden i begyndelsen af hver talramme. Nulindgangsresponsvektor d(n) beregnes ved at påtrykke en nulindgang til 10 de andre filtre 525, 527, 529, som hver har de respektive filtertilstande fra de første filtre 524, 526, 528. I en typisk implementering vil funktionen aflangperiode predik-torfiltre, kortperiode prediktorfiltre og vejefiltre kunne kombineres for at reducere kompleksiteten.
15 I trin 612 bliver differensvektoren p(n) beregnet i subtraktor 530. Differensvektor p(n) repræsenterer differencen mellem den vejede indgangstalevektor y(n) og nulindgangsresponsvektor d(n), tidligere beskrevet i ligning (4): (4) p(n) = y(n) -d(n).
20
Differensvektoren p(n) bliver derefter tilført første krydskorrelator 533 for at anvendes i kodebogsøgningen.
For at opnå hensigten med maksimering af udtrykket (Ci) /Gj som vist ovenfor må 25 udtrykket beregnes for hver af de 2M kodebogfaktorer - ikke de M basisvektorer. Imidlertid kan denne parameter kalkuleres for hvert kodeord baseret på parametre i tilknytning til de M basisvektorer hellere end de 2M kodevektorer. Dermed er det nødvendigt at beregne nultilstandsresponsvektoren qm(n) for hver basisvektor vm(n) i trinet 614.
Hver basisvektor vm(n) fra basisvektorlagerblok 514 tilføres direkte til tredje langperi-30 ode prediktorfilter 544 (uden at sendes gennem forstærkningsblok 542 i denne udførelse). Hver basisvektor bliver derefter filtreret ved filterserie nr. 3, som omfatter langperiode prediktorfilter 544, kortperiode prediktorfilter 546 og vejefilter 548. Nul-tilstandsresponsvektor qm(n) produceret ved udgangen af filterserie nr. 3 bliver tilført DK 176383 B1 19 en første krydskorrelator 533 såvel som en anden krydskorrelator 535.
I trin 616 beregner første krydskorrelator krydskorrelationsrække Rm i overensstemmelse med udtrykket: 5
N
(18) Rm= Σ qm(n) p(n) n=l 10 Rækken Rm repræsenterer krydskorrelation mellem m-te filterbasisvektor qm(n) og p(n). Endvidere beregner den anden krydskorrelator krydskorrelationsmatricen Dmj i trin 618 i overensstemmelse med ligningen:
N
15 (19) Dmj = Σ qm(n) q,(n) n=l hvor 1 < m < j < M. Matricen Dnij repræsenterer krydskorrelationen mellem par af individuelle filtrerede basisvektorer. Læg mærke til, at Dmj· er en symmetrisk matrice.
20 Derfor er det kun nødvendigt at beregne omtrent halvdelen af udtrykkene.
Vektorsumligningen fra ovenfor:
M
25 (1) Uj(n)= Σ Øim vm(n) m=l kan anvendes til at aflede fj(n) som følger:
30 M
(20) fi(n)= Σ Øim qm(n) m=l hvor fj(n) er nultilstandsresponsen af filtrene til excitationsvektor u;(n), og hvor qm(n) 35 er nultilstandsresponsen af filtrene til basisvektor vm(n). Ligningen:
N
(9) C;= Σ fj (n) p(n) n=l 40 kan omskrives ved hjælp af ligning 20 til:
Μ N
(21) Σ Øjn, Σ qm (n) p(n)
Ved brug af ligning (18) kan dette forenkles til: DK 176383 B1 20 m=l n=l
5 M
(22) Q = Σ O™ Rm m=l
For det første kodeord, hvor i=0, er alle bit 0. Derfor er 0om for 1 < m < M lig med -1 10 som tidligere diskuteret. Den første korrelation Co, som blot er Cj fra ligning (22) med i = 0, bliver dermed:
M
(23) C0= Σ Rm m=l 15 som beregnes i trin 620 i rutediagrammet.
Ved at anvende qm(n) og ligning (20) kan energiudtrykket Gj også omskrives fra
20 N
(10) G, = Σ (fj(n))2 n=l til følgende:
N M
25 (24) GrI (Σ Øim q* (n))2 n=l m=l som kan udvides til:
MM N
30 (25) Gi= Σ Σ 0im Øy Σ qm(n) qj(n) j=l m=l n=l
Substitution ved brug af ligning (19) giver:
35 M j M
(26) Gj = 2 Σ Σ 0;m Øy Dmj + Σ Djj j=l m=l j=l
Ved at lægge mærke til, at kodeord og dettes komplement, hvor alle kodeord bits er inverteret, begge har samme værdi af (Cj)2 /Gj, kan begge kodevektorer beregnes sam-40 tidig. Kodeordberegningeme bliver derved halveret. Dermed bliver, under anvendelse af ligning (26) evalueret for i=0, første energiudtryk G0:
M j M
(27) G0 = 2 Σ Σ Dmj + Σ Djj 45 j=l m=l j— 1 DK 176383 B1 21 som bliver beregnet i trin 622. Dermed har vi frem til nu beregnet korrelationsudtrykket Co og energiudtrykket Go for kodeord nul.
5 Ved at fortsætte med trin 24 bliver parametrene Øim initialiseret til -1 for 1 < m < M.
Disse Θ parametre repræsenterer de M midlertidige datasignaler, som skulle anvendes til at generere den aktuelle kodevektor som beskrevet ved ligning (1). Dernæst bliver det bedste korrelationsudtryk Q, sat lig den forudberegnede korrelation Co, og udtrykket for bedste energi Gb sættes lig den forudberegnede Go- Kodeordet I, som repræsen-10 terer kodeordet for bedste excitationsvektor uj(n) for den enkelte indgangstaleramme s(n), sættes lig 0. En tællevariabel k initialiseres til nul og bliver derefter inkremente-ret i trin 626.
I fig. 6b bliver tælleren k testet i trin 628 for at se, om alle 2M kombinationerne af ba-15 sisvektoreme er blevet testet. Læg mærke til, at maksimumværd for k er 2m'\ eftersom et kodeord og dets komplementværdi bliver beregnet samtidig som beskrevet ovenfor.
Hvis k er mindre end 2M~‘, fortsætter trin 640 for at definere en funktion "flip", hvor variablen repræsenterer lokationen til næste bit for at "flippes" ind i kodeord i. Denne funktion udføres, fordi den foreliggende opfindelse anvender en Graykode til at se-20 kvensere gennem kodevektoreme, ved at kun en bit ændres ad gangen. Det kan derfor antages, at hvert successivt kodeord er forskelligt fra det foregående kodeord i kun en bitposition. Med andre ord, hvis hvert successive kodeord, som evalueres, er forskelligt fra det foregående kodeord med kun et bit, hvilket kan opnås ved at anvende en binær 25
Graykodetilnærmelse, så er kun M antal additions eller subtraktionsoperationer nødvendig for at beregne korrelationsudtryk og energiudtryk. Trin 630 sætter også θι til for at vise ændring af bit 1 i kodeordet.
30 Ved at anvende denne Graykode bliver det ny korrelationsudtryk Ck beregnet i trin 632 i overensstemmelse med ligningen: (28) Ck = Ck.,+20,Ri
Dette blev udledt fra ligning (22) ved at erstatte -θ| med Øj.
22 DK 176383 B1
Endvidere i trin 634 bliver det ny energiudtryk Gk beregnet overensstemmelse med 5 ligningen:
l-l M
(29) Gk = Gk-i + 4 Σ Øm Øi Dnj + 4 Σ Øm θι Djm m=T m=l+l som forudsætter, at Djk er lagret som en symmetrisk matrice med kun værdier for j < k.
10 Ligning (29) blev udledt af ligning (26) på samme måde.
Når Gk og Ck er blevet beregnet, må (Ck)2/Gk sammenlignes med foregående bedste (Cb)2/Gb- Da division er en langsom operation, er det nyttigt at reformulere problemet for at undgå division ved krydsmultiplikation. Da alle udtryk er positiver, er denne 15 ligning ækvivalent med at sammenligne (Ck)2 x Gb med (Q>)2 x Gk, som det sker i trin 636. Hvis første udtryk er større end det andet udtryk, fortsættes til trin 638, hvor det bedste korrelationsudtryk Cb og det bedste energiudtryk Gb bliver opdateret. Trin 642 beregner excitationskodeordet I på basis af Øm ved at sætte bit m i kodeord I lig 1, hvis Øm er + 1, og ved at sætte bit m i kodeordet I lig 0, hvis Øm er 1 ig -1, for alle m bits 1 ^ 20 m < M. Styringen returneres derefter til trin 626 for at teste næste kodeord, hvilket sker umiddelbart, hvis det første udtryk ikke var større end det andet udtryk.
Når alle par af komplementære kodeord er blevet testet, og kodeordet, som maksimerer (Cb)2/Gb er blevet fundet, fortsætter styringen til trin 646, som kontrollerer, om 25 korrelationsudtrykket Cb er mindre end 0. Dette bliver gjort for at kompensere for det faktum, at kodebogen bliver søgt ved et par af komplementære kodeord. Hvis Cb er mindre end 0, bliver forstærkningsfaktoren sat lig -(Cb/Gb) i trin 650, og kodeordet I bliver komplementeret i trin 652. Hvis Cb er positiv, så bliver forstærkningsfaktoren sat lig (C/Gb) i trin 648. Dette sikrer, at forstærkningsfaktoren bliver positiv.
30
Derefter udlæses bedste kodeord I i trin 654, og forstærkningsfaktoren bliver udlæst i trin 656. Trin 658 beregner derefter den rekonstruerede, vejede talevektor j'(n) ved DK 176383 B1 23 hjælp af det bedste excitationskodeord I. Kodeboggeneratoren anvender kodeord I og basisvektor vm(n) til at generere excitationsvektor U](n) i overensstemmelse med ligning (1). Kodevektor Ui(n) bliver så skaleret med forstærkningsfaktoren x i forstærkningsblok 522 og filtreret af en filterstreng nr. 1 for at generere y'(n). Talekoderen 500 5 anvender ikke den rekonstruerede vejede talevektor y'(n) direkte, som det blev vist i fig. 1.1 stedet anvendes filterstreng nr. 1 til at opdatere filterstatus FS ved at overføre disse til filterstreng nr. 2 for at beregne nulindgangsresponsvektor d(n) for næste ramme. I overensstemmelse med dette returnerer styringen til trin 602 for at indlæse næste taleramme s(n).
10 I søgemetoden beskrevet i fig. 6a/6b er forstærkningsfaktoren beregnet, samtidig med at kodeordet I bliver optimeret. På denne måde kan optimal forstærkningsfaktor for hvert kodeord findes. I den alternative søgemetode illustreret i fig. 7a til 7c er forstærkningsfaktoren forudberegnet, før kodeord bestemmes. Her bliver forstærknings- 15 faktoren typisk baseret på RMS værdien af resten for den pågældende ramme som beskrevet i B.S. Atal og M.R. Schroeder, "Stochastic Coding of Speech Signals at Very Low Bit Rates", Proc. Int. Conf. Commun., bind ICC84, pt. 2, side 1610-1613, maj 1984. Ulempen ved denne forudberegnede forstærkningsfaktormetoder, at den generelt giver et noget dårligere signal/støjforhold (SNR) for talekoderen.
20 I rutediagrammet fig. 7A beskrives operationen af talekoderen 500 under anvendelse af forudbestemte forstærkningsfaktorer. Indgangstalerammevektor s(n) bliver først indlæst fra A/D omsætteren i trin 702, og langperiode prediktorparametre LTP, kortperiode prediktorparametre STP og vejefilterparametre WTP bliver beregnet af koeffici- 25 entanalysator 510 i trin 704, lige som i trinene 602 og 604. Imidlertid, i trin 705, bliver nu forstærkningsfaktoren beregnet for hele rammen som beskrevet i foregående reference. I overensstemmelse med dette afgiver koefficientanalysator 510 den forudbestemte forstærkningsfaktor som vist ved pile i fig. 5, og forstærkningsblok 542 må sættes ind i basisvektorvejen som vist med punkteret streg.
30
Trinene 706 til 712 er identiske med trinene 606 til 612 i fig. 6A og kræver ingen nærmere forklaring. Trin 714 er lig 614 bortset fra, at nultilstandsresponsvektoreme qm(n) bliver beregnet ud fra basisvektorerne vm(n) efter multiplikation ved forstærk- DK 176383 B1 24 ningsfaktoren τ i blok 542. Trinene 716 til 722 er identiske med trinene 616 til 622.
Trin 723 tester, om korrelationen Co er mindre end 0, for at bestemme, hvordan initialiseringen af variableme I og Eb skal ske. Hvis C0 er mindre end 0, sættes bedste kodeord I lig det komplementære kodeord I~2M-1, da det vil give et bedre fejlsignal Eb 5 end kodeord 1=0. Det bedste fejlsignal Eb bliver så sat lig 2Co+Go, da C2M-i = -Co-Hvis Co ikke er negativ, kan trin 725 initialisere I til nul og initialisere Eb til -2Co +
Go, som vist. Trin 726 fortsætter for at initialisere interimdatasignaleme Øm til -1 og tællevariablen k til O, som i trin 624. Variablen k bliver inkrementeret i trin 727 og testet i trin 728, som i trin 626 og 628. Trinene 730, 732 og 734 er identiske med tri-10 nene 630, 632 og 634. Korrelationsudtrykket Ck bliver derefter testet i trin 735. Hvis det er negativt, bliver fejlsignalet Ek sat til 2Ck+Gk, da negativ Ck indikerer, at det komplementære kodeord er bedre end det foreliggende kodeord. Hvis Ck er positiv, sætter trin 737 Ek lig -2Ck + Gk som før.
15 I fig. 7C sammenligner trin 738 det nye fejlsignal Ek med det foregående bedste fejlsignal Eb. Hvis Ek er mindre end Eb, bliver Eb opdateret til Ek i trin 739. Hvis ikke, returneres styringen til trin 727. Trin 740 tester atter korrelationen Ck for at se, om den er mindre end nul. Hvis den ikke er det, bliver bedste kodeord I beregnet ud ffa Øm (som vist i trin 642 i fig. 6B). Hvis Ck er mindre end 0, bliver I beregnet fra -Øm på 20 samme måde for at fa det komplementære kodeord. Styringen returnerer til trin 727, efter at I er beregnet.
Når alle 2M kodeord er testet, går trin 728 direkte til trin 754, hvor kodeordet I er udgangen fra søgekontrollen. Trin 758 beregner den rekonstruerede, vejede signalfaktor 25 y*(n), som det blev gjort i trin 658. Kontrollen bliver derefter returneret til begyndelsen af rutediagrammet ved trin 702.
Den foreliggende opfindelse giver en forbedret generering af excitationsvektorer og søgeteknik, som kan anvendes med eller uden forudbestemte forstærkningsfaktorer.
30 Kodebogen med 2M excitationsvektorer bliver genereret ffa en mængde på kun M basisvektorer. Hele kodebogen kan søges ved hjælp af kun M+3 multipli-cer/akkumuleroperationer pr. kodevektor, som evalueres. Denne reduktion i lager og DK 176383 B1 25 beregningskompleksitet muliggør sandtidsimplementering af CELP talekodning med dagens digitale signalprocessorer.
Medens specielle udførelser for den foreliggende opfindelse er blevet vist og beskre-5 vet, kan yderligere modifikationer og forbedringer gøres uden at fjerne sig fra opfindelsen i dens videre aspekt. Fx kan enhver type basisvektorer anvendes med vektor-sumteknikken som beskrevet her. Endvidere kan forskellige beregninger udføres på basisvektorerne for at opnå samme mål med at reducere beregningskompleksiteten ved kodebogsøgeproceduren.
10

Claims (7)

1. Fremgangsmåde til at generere en kodebog af excitationsvektorer til brug ved høj- hastigheds-taleanalyse eller -syntese, hvilken kodebog har i det mindste 2M excita- 5 tionsvektorer uj(n), hver med N elementer, hvor 1 < n < N, og hvor 0 < i < 2M - 1, hvilken fremgangsmåde kendetegnes ved følgende trin: a) lagring af et sæt af M basisvektorer vm(n), hver med N elementer, hvor 1 < n < N, og hvor 1 < m < M, b) identifikation af et sæt af 2M digitale kodeord I;, hver med M bit, hvor 0 < i < 2M - 10 1, c) identifikation af et signal Øjm for hver bit i hvert kodeord Tj, således at Øjm har en første værdi, hvis bit m i kodeord Ij udviser en første tilstand, og således at Θ im har en anden værdi, hvis bit m i kodeord ^ udviser en anden tilstand, og d) beregning af nævnte kodebog med 2M excitationsvektorer i overensstemmelse med 15 formlen: M ui(n) = Σ Øjmvm(n) m=l hvor 1< n <N. 20
2. Fremgangsmåde ifølge krav 1 yderligere omfattende følgende trin: a) indlæsning af i det mindste to selektionskodeord, b) definering (360) af et flertal af midlertidige datasignaler (Øjm) baseret på nævnte selektionskodeord, 25 c) indlæsning (314) af en mængde af X basisvektorer (vm(n)), hvor X < Y, og d) generering (361,362,363,364,365) af nævnte kodebogvektorer ved at udføre lineære transformationer på nævnte X basisvektorer (vm(n)), hvilke lineære transformationer defineres af de midlertidige datasignaler (0{m).
3. Fremgangsmåde ifølge krav 2, hvor hver af de nævnte selektionskodeord kan re præsenteres i bit, hvor de midlertidige datasignaler (Øjm) er baseret på værdien af DK 176383 B1 27 hver bit i hvert selektionskodeord, og hvor nævnte kodebogvektorgenereringstrin yderligere kendetegnes ved følgende trin: a) multiplicering (361,362,363,364) af nævnte mængde af X basisvektorer (vm(n)) med nævnte flertal af midlertidige datasignaler (Øjm) for at producere et flertal af 5 midlertidige vektorer, og b) summering (365) af flertallet af de midlertidige vektorer for at producere nævnte kodebogvektorer.
4. Fremgangsmåde ifølge krav 1 -3 yderligere omfattende lagring af kodebogen af ex- 10 citationsvektorer i en hukommelse.
5. Apparat til at generere en kodebog af ex citationsvektorer til brug ved højhastig-hedstaleanalyse eller -syntese, hvilken kodebog har i det mindste 2M excitationsvekto-rer uj(n), hver med N elementer, hvor 1 < n < N, og hvor 0 < i < 2M - 1, kendetegnet 15 ved, at omfatte: a) et digitalt lager (114) til at lagre et sæt af M basisvektorer vm(n), hver med N elementer, hvor 1 ^ n < N, og hvor 1 < m < M, b) organer (140) til identifikation af et sæt af 2M digitale kodeord Ij, hver med M bit, hvor 0 < i < 2M - 1, 20 c) organer (360) til identifikation af et signal 0;m for hver bit i hvert kodeord Ij, således at Øm har en første værdi, hvis bit m i kodeord Ij udviser en første tilstand, og således at Øjm har en anden værdi, hvis bit m i kodeord Ij udviser en anden tilstand, og d) organer (361-365) til beregning af nævnte kodebog med 2M excitationsvektorer i 25 overensstemmelse med formlen: M uj(n)= Σ Øjmvm(n) m=l hvor 1< n < N. 30
6. Talekoder omfattende et kodebogvektorgenererende apparat ifølge krav 5. DK 176383 B1 28
7. Digitalt radiokommunikationsudstyr omfattende et kodebogvektorgenererende apparat ifølge krav 5.
DK198904381A 1988-01-07 1989-09-05 Fremgangsmåde og apparat til at generere en kodebog af excitationsvektorer samt talekoder og digitalt radiokommunikationsudstyr omfattende et kodebogvektorgenererende apparat DK176383B1 (da)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US14144688 1988-01-07
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
US8804394 1988-12-29

Publications (3)

Publication Number Publication Date
DK438189D0 DK438189D0 (da) 1989-09-05
DK438189A DK438189A (da) 1989-11-07
DK176383B1 true DK176383B1 (da) 2007-10-22

Family

ID=22495733

Family Applications (1)

Application Number Title Priority Date Filing Date
DK198904381A DK176383B1 (da) 1988-01-07 1989-09-05 Fremgangsmåde og apparat til at generere en kodebog af excitationsvektorer samt talekoder og digitalt radiokommunikationsudstyr omfattende et kodebogvektorgenererende apparat

Country Status (16)

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

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
US5263119A (en) * 1989-06-29 1993-11-16 Fujitsu Limited Gain-shape vector quantization method and apparatus
JPH0332228A (ja) * 1989-06-29 1991-02-12 Fujitsu Ltd ゲイン―シェイプ・ベクトル量子化方式
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
EP0570362B1 (en) * 1989-10-17 1999-03-17 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.
CA2010830C (en) * 1990-02-23 1996-06-25 Jean-Pierre Adoul Dynamic codebook for efficient speech coding based on algebraic codes
US5701392A (en) * 1990-02-23 1997-12-23 Universite De Sherbrooke Depth-first algebraic-codebook search for fast coding of speech
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
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
KR960007138B1 (ko) * 1990-12-20 1996-05-27 모토로라 인코포레이티드 시분할 다중 액세스 무선 주파수 송신기용 전력 제어 회로
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
GB2282943B (en) * 1993-03-26 1998-06-03 Motorola Inc Vector quantizer method and apparatus
US5491771A (en) * 1993-03-26 1996-02-13 Hughes Aircraft Company Real-time implementation of a 8Kbps CELP coder on a DSP pair
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 (da) * 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
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
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
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
DE69712537T2 (de) * 1996-11-07 2002-08-29 Matsushita Electric Industrial Co., Ltd. Verfahren 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
CN101467459B (zh) * 2006-03-21 2011-08-31 法国电信公司 信号的矢量量化字典生成方法、编解码器及编解码方法
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
WO1989006419A1 (en) 1989-07-13
CN1035379A (zh) 1989-09-06
CA1279404C (en) 1991-01-22
US4817157A (en) 1989-03-28
CN1021938C (zh) 1993-08-25
JPH08234799A (ja) 1996-09-13
AR246631A1 (es) 1994-08-31
EP0372008A1 (en) 1990-06-13
NO302849B1 (no) 1998-04-27
NO893202L (no) 1989-08-09
IL88465A0 (en) 1989-06-30
MX168558B (es) 1993-05-31
KR930005226B1 (ko) 1993-06-16
DE3853916D1 (de) 1995-07-06
ATE123352T1 (de) 1995-06-15
DK438189D0 (da) 1989-09-05
FI894151A0 (fi) 1989-09-04
FI105292B (fi) 2000-07-14
JP2523031B2 (ja) 1996-08-07
EP0372008B1 (en) 1995-05-31
DK438189A (da) 1989-11-07
NO893202D0 (no) 1989-08-09
JPH02502135A (ja) 1990-07-12
BR8807414A (pt) 1990-05-15
IL88465A (en) 1992-06-21
DE3853916T2 (de) 1995-12-14
KR930010399B1 (ko) 1993-10-23
JP2820107B2 (ja) 1998-11-05
KR900700994A (ko) 1990-08-17

Similar Documents

Publication Publication Date Title
DK176383B1 (da) Fremgangsmåde og apparat til at generere en kodebog af excitationsvektorer samt talekoder og digitalt radiokommunikationsudstyr omfattende et kodebogvektorgenererende apparat
US4896361A (en) Digital speech coder having improved vector excitation source
US5138661A (en) Linear predictive codeword excited speech synthesizer
Giacobello et al. Sparse linear prediction and its applications to speech processing
EP0515138B1 (en) Digital speech coder
Trancoso et al. Efficient procedures for finding the optimum innovation in stochastic coders
US5359696A (en) Digital speech coder having improved sub-sample resolution long-term predictor
CA2159571C (en) Vector quantization apparatus
JP3254687B2 (ja) 音声符号化方式
CN102129862A (zh) 降噪装置及包括降噪装置的声音编码装置
CA2137756C (en) Voice coder and a method for searching codebooks
SE518319C2 (sv) Förfarande och anordning för vektorkvantisering
CA2722196A1 (en) A method for speech coding, method for speech decoding and their apparatuses
WO2001020595A1 (en) Voice encoder/decoder
JP3268360B2 (ja) 改良されたロングターム予測器を有するデジタル音声コーダ
JP3180786B2 (ja) 音声符号化方法及び音声符号化装置
CN100593195C (zh) 在语音编码系统中对增益信息进行编码的方法和装置
EP0578436A1 (en) Selective application of speech coding techniques
JPH0764600A (ja) 音声のピッチ符号化装置
NO862602L (no) Vocoder innebygd i digitale signalbehandlingsenheter.
Tseng An analysis-by-synthesis linear predictive model for narrowband speech coding
JPH0511799A (ja) 音声符号化方式
Anselam et al. Quality Enhancement of Low Bit Rate Speech Coder with Nonlinear Prediction
Perkis et al. A good quality, low complexity 4.8 kbit/s stochastic multipulse coder
Kumar et al. A 6.7 kbps vector sum excited linear prediction on TMS320C54X digital signal processor

Legal Events

Date Code Title Description
PUP Patent expired