← Back to Patent Explorer
US4817157A Expired / Lapsed US ⏱️ 0.0 years remaining

Digital speech coder having improved vector excitation source

Assignee: Motorola Solutions Inc
•
Filing: 1988-01-07
•
Granted: 1989-03-28
•
Expires: 2008-01-07
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract An improved excitation vector generation and search technique (FIG. 1) is described for a code-excited linear prediction (CELP) speech coder (100) using a codebook of excitation code vectors. A set of M basis vectors V m (n) are used along with the excitation signal codewords (i) to generate the codebook of excitation vectors u i (n) according to a "vector sum" technique (120) of converting the selector codewords into a plurality of interim data signals, multiplying the set of M basis vectors by the interim data signals, and summing the resultant vectors to produce the set of 2 M codebook vectors. The entire codebook of 2 M possible excitation vectors is efficiently searched by using the vector sum generation technique with the M basis vectors--without ever having to generate and evaluate each of the 2 M code vectors themselves. Furthermore, only M basis vectors need to be stored in memory (114), as opposed to all 2 M code vectors.

Inventors

  • 👤 Ira A. Gerson

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-11-05 05:47
CPC Classifications
G; G10; G10L; G10L13/00; G10L19/00; G10L19/04; G10L19/08; G10L19/12; G10L19/135; G10L2019/0001; G10L2019/0007; G10L2019/0013; G10L25/00; G10L25/03; G10L25/06

Claims Analysis

Total Claims: 63
Claim 1
Independent Claim 75 words
A method of generating at least one of a set of Y codebook vectors for a vector quantizer comprising the steps of: (a) inputting at least one selector codeword; (b) defining a plurality of interim data signals based upon said selector codeword; (c) inputting a set of X basis vectors, where X<Y; (d) generating said codebook vectors by performing linear transformations on said X basis vectors, said linear transformations defined by said interim data signals.
Claim 2
Independent Claim 75 words
A method of generating at least one of a set of Y codebook vectors for a vector quantizer comprising the steps of: (a) inputting at least one selector codeword; (b) defining a plurality of interim data signals based upon said selector codeword; (c) inputting a set of X basis vectors, where X<Y; (d) generating said codebook vectors by performing linear transformations on said X basis vectors, said linear transformations defined by said interim data signals.
Claim 3
Dependent Claim 51 words
The method according to claim 1, wherein said codebook vector generating step includes the steps of: (i) multiplying said set of X basis vectors by said plurality of interim data signals to produce a plurality of interim vectors; and (ii) summing said plurality of interim vectors to produce said codebook vectors.
Claim 4
Dependent Claim 35 words
The method according to claim 1, wherein each of said selector codewords can be represented in bits, and wherein said interim data signals are based upon the value of each bit of each selector codeword.
Claim 5
Dependent Claim 10 words
The method according to claim 1, wherein Y≧2 X .
Claim 6
Dependent Claim 81 words
A means for generating a set of 2 M codebook vectors for a vector quantizer, said codebook vector generating means comprising: means for converting a set of selector codewords into a plurality of interim data signals; means for inputting a set of M basis vectors; multiplying said set of basis vectors by said plurality of interim data signals to produce a plurality of interim vectors; and means for summing said plurality of interim vectors to produce said set of codebook vectors.
Claim 7
Dependent Claim 81 words
A means for generating a set of 2 M codebook vectors for a vector quantizer, said codebook vector generating means comprising: means for converting a set of selector codewords into a plurality of interim data signals; means for inputting a set of M basis vectors; multiplying said set of basis vectors by said plurality of interim data signals to produce a plurality of interim vectors; and means for summing said plurality of interim vectors to produce said set of codebook vectors.
Claim 8
Dependent Claim 78 words
The generating means according to claim 5, wherein said converting means produces said plurality of interim data signals θ im by identifying the state of each bit of each selector codeword i, where 0≦i≦2 M -1, and where 1≦m≦M, such that θ im has a first value if bit m of codeword i is of a first state, and such that θ im has a second value if bit m of codeword i is of a second state.
Claim 9
Dependent Claim 21 words
The generating means according to claim 5, wherein said basis vector inputting means includes memory means for storing said basis vectors.
Claim 10
Independent Claim 153 words
A method of generating an excitation vector codebook for a speech synthesizer, said codebook having at least 2 M excitation vectors u i (n), each having N elements, where 1≦n≦N, and where 0≦i≦2 M -1, from a memory containing M basis vectors v m (n), each having N elements, where 1≦n≦N and where 1≦m≦M, using a set of 2 M digital codewords I i , each having M bits, where 0≦i≦2 M -1, comprising the steps of: (a) identifying a signal θ im for each bit of each codeword I i , such that θ im has a first value if bit m of codeword I i is of a first state, and such that θ im has a second value if bit m of codeword I i is of a second state; and (b) calculating said codebook of 2 M excitation vectors u i (n) according to the equation: ##EQU29## where 1≦n≦N.
Claim 11
Independent Claim 153 words
A method of generating an excitation vector codebook for a speech synthesizer, said codebook having at least 2 M excitation vectors u i (n), each having N elements, where 1≦n≦N, and where 0≦i≦2 M -1, from a memory containing M basis vectors v m (n), each having N elements, where 1≦n≦N and where 1≦m≦M, using a set of 2 M digital codewords I i , each having M bits, where 0≦i≦2 M -1, comprising the steps of: (a) identifying a signal θ im for each bit of each codeword I i , such that θ im has a first value if bit m of codeword I i is of a first state, and such that θ im has a second value if bit m of codeword I i is of a second state; and (b) calculating said codebook of 2 M excitation vectors u i (n) according to the equation: ##EQU29## where 1≦n≦N.
Claim 12
Independent Claim 85 words
A method of reconstructing a signal from a set of basis vectors and from a particular excitation codeword, said signal reconstructing method comprising the steps of: (a) defining a plurality of interim data signals based upon said particular codeword; (b) multiplying said set of basis vectors by said plurality of interim data signals to produce a plurality of interim vectors; (c) summing said plurality of interim vectors to produce a single excitation vector; and (d) signal processing said excitation vector to produce said reconstructed signal.
Claim 13
Independent Claim 85 words
A method of reconstructing a signal from a set of basis vectors and from a particular excitation codeword, said signal reconstructing method comprising the steps of: (a) defining a plurality of interim data signals based upon said particular codeword; (b) multiplying said set of basis vectors by said plurality of interim data signals to produce a plurality of interim vectors; (c) summing said plurality of interim vectors to produce a single excitation vector; and (d) signal processing said excitation vector to produce said reconstructed signal.
Claim 14
Dependent Claim 16 words
The method according to claim 9, wherein said set of basis vectors is stored in memory.
Claim 15
Dependent Claim 18 words
The method according to claim 9, wherein said signal processing step includes linear filtering of said excitation signal.
Claim 16
Dependent Claim 77 words
The method according to claim 9, wherein said defining step produces said plurality of interim data signals θ im by identifying the state of each bit of said particular codeword i, where 0≦i≦2 M -1, and where 1≦m≦M, such that θ im has a first value if bit m of codeword i is of a first state, and such that θ im has a second value if bit m of codeword i is of a second state.
Claim 17
Independent Claim 153 words
A method of selecting a codeword for a code-excited signal coder, said selected codeword corresponding to a particular excitation vector having characteristics favorable to those of a given input signal, said particular excitation vector being one of a set of Y excitation vectors, said codeword selecting method comprising the steps of: (a) identifying a test codeword; (b) defining a plurality of interim data signals based upon said test codeword; (c) inputting a set of X basis vectors, where X<Y; (d) generating a test excitation vector from said set of basis vectors and said plurality of interim data signals; (e) signal processing said test excitation vector to produce a reconstructed signal; (f) calculating an error signal representative of the difference between said reconstructed signal and said input signal; and (g) repeating steps (a) through (f) identifying different test codewords, and selecting one test codeword that produces an error signal which meets predetermined error criteria.
Claim 18
Independent Claim 153 words
A method of selecting a codeword for a code-excited signal coder, said selected codeword corresponding to a particular excitation vector having characteristics favorable to those of a given input signal, said particular excitation vector being one of a set of Y excitation vectors, said codeword selecting method comprising the steps of: (a) identifying a test codeword; (b) defining a plurality of interim data signals based upon said test codeword; (c) inputting a set of X basis vectors, where X<Y; (d) generating a test excitation vector from said set of basis vectors and said plurality of interim data signals; (e) signal processing said test excitation vector to produce a reconstructed signal; (f) calculating an error signal representative of the difference between said reconstructed signal and said input signal; and (g) repeating steps (a) through (f) identifying different test codewords, and selecting one test codeword that produces an error signal which meets predetermined error criteria.
Claim 19
Dependent Claim 10 words
The method according to claim 13, wherein Y≧2 X .
Claim 20
Dependent Claim 16 words
The method according to claim 13, wherein said set of basis vectors is stored in memory.
Claim 21
Dependent Claim 18 words
The method according to claim 13, wherein said signal processing step includes linear filtering of said excitation vector.
Claim 22
Dependent Claim 29 words
The method according to claim 13, wherein a particular error signal meets said predetermined error criteria if said particular error signal has the least energy of all error signals.
Claim 23
Dependent Claim 52 words
The method according to claim 13, wherein each of said test excitation vectors is generated by: (i) multiplying said set of basis vectors by said plurality of interim data signals to produce a plurality of interim vectors; and (ii) summing said plurality of interim vectors to produce a single test excitation vector.
Claim 24
Independent Claim 152 words
A method of selecting a single excitation codeword for a code-excited signal coder, said single codeword corresponding to a particular excitation vector having characteristics most favorable to those of a portion of a given input signal, said single codeword being one of a set of codewords corresponding to a set of Y possible excitation vectors, said codeword selecting method comprising the steps of: (a) generating an input vector corresponding to said input signal portion; (b) inputting a set of X basis vectors, where X<Y; (c) generating a plurality of processed vectors from said basis vectors; (d) producing comparison signals based upon said processed vectors and said input vector; (e) calculating parameters for each of said set of codewords based upon said comparison signals; and (f) evaluating said calculated parameters for each codeword, and selecting one particular codeword having parameters which meet predetermined criteria, without generating said set of Y possible excitation vectors.
Claim 25
Independent Claim 152 words
A method of selecting a single excitation codeword for a code-excited signal coder, said single codeword corresponding to a particular excitation vector having characteristics most favorable to those of a portion of a given input signal, said single codeword being one of a set of codewords corresponding to a set of Y possible excitation vectors, said codeword selecting method comprising the steps of: (a) generating an input vector corresponding to said input signal portion; (b) inputting a set of X basis vectors, where X<Y; (c) generating a plurality of processed vectors from said basis vectors; (d) producing comparison signals based upon said processed vectors and said input vector; (e) calculating parameters for each of said set of codewords based upon said comparison signals; and (f) evaluating said calculated parameters for each codeword, and selecting one particular codeword having parameters which meet predetermined criteria, without generating said set of Y possible excitation vectors.
Claim 26
Dependent Claim 23 words
The method according to claim 19, wherein the number of calculations performed by said calculating step for each codeword is linear in X.
Claim 27
Dependent Claim 37 words
The method according to claim 19, wherein said calculating step sequences from the current codeword to the next codeword by changing only one bit of the codeword at a time in accordance with a predetermined sequencing technique.
Claim 28
Dependent Claim 29 words
The method according to claim 21, wherein said calculating step calculates parameters for the next codeword by updating parameters from the current codeword based upon said predetermined sequencing technique.
Claim 29
Dependent Claim 21 words
The method according to claim 19, wherein said comparison signals include a cross-correlation between said processed vectors and said input vector.
Claim 30
Dependent Claim 24 words
The method according to claim 19, wherein said comparison signals include a cross-correlation between each of said processed vectors and each other processed vector.
Claim 31
Dependent Claim 29 words
The method according to claim 19, wherein said set of basis vectors is stored in memory, and wherein said set of possible codebook vectors is not stored in memory.
Claim 32
Dependent Claim 8 words
The method according to claim 19, wherein Y≧2X.
Claim 33
Dependent Claim 19 words
The method according to claim 19, wherein said processed vector generating step includes linear filtering of said basis vectors.
Claim 34
Dependent Claim 54 words
The method according to claim 19, further including the step of generating said particular excitation vector by: (i) defining a plurality of interim data signals based upon said single excitation codeword; (ii) generating said particular excitation vector by performing linear transformations on said basis vectors, said linear transformations defined by said interim data signals.
Claim 35
Dependent Claim 51 words
The method according to claim 28, wherein said excitation vector generating step includes the steps of: (i) multiplying said set of basis vectors by said plurality of interim data signals to produce a plurality of interim vectors; and (ii) summing said plurality of interim vectors to produce said particular excitation vector.
Claim 36
Dependent Claim 161 words
A codebook search controller for a code-excited signal coder, said codebook search controller capable of selecting a particular codeword from a set of codewords, said particular codeword corresponding to a desired code vector, said desired code vector being one of at least 2 M possible code vectors, said particular codeword selected according to similarity characteristics between a given input signal and a reconstructed signal derived from said desired code vector, said codebook search controller comprising: means for generating a set of processed vectors from a set of M basis vectors; means for generating an input vector corresponding to said input signal; means for producing comparison signals based upon said processed vectors and said input vector; means for calculating parameters for each codeword corresponding to each of said 2 M possible code vectors, said parameters based upon said comparison signals; and means for selecting a particular codeword having calculated parameters which meet predetermined criteria, without generating said 2 M possible code vectors.
Claim 37
Dependent Claim 161 words
A codebook search controller for a code-excited signal coder, said codebook search controller capable of selecting a particular codeword from a set of codewords, said particular codeword corresponding to a desired code vector, said desired code vector being one of at least 2 M possible code vectors, said particular codeword selected according to similarity characteristics between a given input signal and a reconstructed signal derived from said desired code vector, said codebook search controller comprising: means for generating a set of processed vectors from a set of M basis vectors; means for generating an input vector corresponding to said input signal; means for producing comparison signals based upon said processed vectors and said input vector; means for calculating parameters for each codeword corresponding to each of said 2 M possible code vectors, said parameters based upon said comparison signals; and means for selecting a particular codeword having calculated parameters which meet predetermined criteria, without generating said 2 M possible code vectors.
Claim 38
Dependent Claim 26 words
The codebook search controller according to claim 30, wherein the number of calculations performed b said codebook search controller for each codeword is linear in M.
Claim 39
Dependent Claim 20 words
The codebook search controller according to claim 30, further comprising memory means for storing said set of M basis vectors.
Claim 40
Dependent Claim 34 words
The codebook search controller according to claim 32, wherein the size of said memory means is linear in M, and wherein said 2 M possible code vectors are not stored in said signal coder.
Claim 41
Dependent Claim 39 words
The codebook search controller according to claim 30, wherein said calculating means sequences from the current codeword to the next codeword by changing only one bit of the codeword at a time in accordance with a predetermined sequencing technique.
Claim 42
Dependent Claim 31 words
The codebook search controller according to claim 34, wherein said calculating means calculates parameters for the next codeword by updating parameters from the current codeword based upon said predetermined sequencing technique.
Claim 43
Dependent Claim 23 words
The codebook search controller according to claim 30, wherein said comparison signals include a crosscorrelation between said processed vectors and said input vector.
Claim 44
Dependent Claim 22 words
The codebook search controller according to claim 30, wherein said processed vector generating means includes means for linearly filtering said basis vectors.
Claim 45
Dependent Claim 51 words
The codebook search controller according to claim 30, further including means for generating said desired code vector including: means for defining a plurality of interim data signals based upon said particular codeword; and means for performing linear transformations on said basis vectors, said linear transformations defined by said interim data signals.
Claim 46
Dependent Claim 53 words
The codebook search controller according to claim 38, wherein said desired code vector generating means includes: means for multiplying said set of basis vectors by said plurality of interim data signals to produce a plurality of interim vectors; and means for summing said plurality of interim vectors to produce said desired code vector.
Claim 47
Dependent Claim 201 words
In a code-excited signal coder, a method of selecting a particular excitation codeword I from a set of Y excitation codewords, said particular excitation codeword representative of a desired excitation vector u I (n) capable of coding a portion of a given input signal, said input signal portion divided into a plurality of N signal samples, said selecting method comprising the steps of: (a) generating an input vector y(n) from said input signal portion, where 1≦n≦N; (b) compensating said input vector y(n) for previous filter states, thereby providing compensated vector p(n); (c) inputting a set of M basis vectors v m (n), where 1≦m≦M<Y; (d) filtering said basis vectors to produce zero-state response vectors q m (n) for each of said M basis vectors; (e) generating correlation signals from said zero-state response vectors q m (n) and said compensated vector p(n); (f) identifying a test codeword i from said set of Y excitation codewords; (g) calculating parameters for said test codeword i based upon said correlation signals; and (h) repeating only steps (f) and (g) identifying different test codewords i from said set of Y excitation codewords, and selecting the particular excitation codeword I having calculated parameters which meet predetermined criteria.
Claim 48
Dependent Claim 201 words
In a code-excited signal coder, a method of selecting a particular excitation codeword I from a set of Y excitation codewords, said particular excitation codeword representative of a desired excitation vector u I (n) capable of coding a portion of a given input signal, said input signal portion divided into a plurality of N signal samples, said selecting method comprising the steps of: (a) generating an input vector y(n) from said input signal portion, where 1≦n≦N; (b) compensating said input vector y(n) for previous filter states, thereby providing compensated vector p(n); (c) inputting a set of M basis vectors v m (n), where 1≦m≦M<Y; (d) filtering said basis vectors to produce zero-state response vectors q m (n) for each of said M basis vectors; (e) generating correlation signals from said zero-state response vectors q m (n) and said compensated vector p(n); (f) identifying a test codeword i from said set of Y excitation codewords; (g) calculating parameters for said test codeword i based upon said correlation signals; and (h) repeating only steps (f) and (g) identifying different test codewords i from said set of Y excitation codewords, and selecting the particular excitation codeword I having calculated parameters which meet predetermined criteria.
Claim 49
Dependent Claim 27 words
The method according to claim 40, wherein said codeword selecting method performs a maximum number of multiply-accumulate operations for selecting each codeword which is linear in M.
Claim 50
Dependent Claim 37 words
The method according to claim 40, wherein said calculating step sequences from the current codeword to the next codeword by changing only one bit of the codeword at a time in accordance with a predetermined sequencing technique.
Claim 51
Dependent Claim 29 words
The method according to claim 42, wherein said calculating step calculates parameters for the next codeword by updating parameters from the current codeword based upon said predetermined sequencing technique.
Claim 52
Dependent Claim 15 words
The method according to claim 42, wherein said predetermined sequencing technique is a Gray code.
Claim 53
Dependent Claim 21 words
The method according to claim 40, wherein said correlation signals include cross-correlation R m according to the equation: ##EQU30## where 1≦m≦M.
Claim 54
Dependent Claim 21 words
The method according to claim 40, wherein said correlation signals include cross-correlation D mj according to the equation: ##EQU31## where 1≦m≦j≦M.
Claim 55
Dependent Claim 84 words
The method according to claim 40, further including the step of generating said desired excitation vector u I (n) by: (i) identifying a signal θ Im for each bit of codeword I, such that θ Im has a first value if bit m of codeword I is of a first state, and such that θ Im has a second value if bit m of codeword I is of a second state; and (ii) calculating u I (n) according to the equation: ##EQU32## where 1≦n≦N.
Claim 56
Dependent Claim 10 words
The method according to claim 40, wherein Y=2 M .
Claim 57
Independent Claim 130 words
A method of generating an excitation signal for a code-excited speech coder, said generating method comprising the steps of: (a) signal processing an input signal to produce an input vector; (b) providing a set of basis vectors from a memory; (c) signal processing said basis vectors to produce a plurality of processed vectors; (d) comparing said processed vectors with said input vector to produce comparison signals; (e) providing a set of address words; (f) calculating parameters for each address word using said comparison signals; (g) selecting a particular address word having calculated parameters which meet predetermined error criteria; (h) converting said particular address word into a plurality of interim data words; and (i) generating said excitation signal from said set of basis vectors and said plurality of interim data words.
Claim 58
Independent Claim 130 words
A method of generating an excitation signal for a code-excited speech coder, said generating method comprising the steps of: (a) signal processing an input signal to produce an input vector; (b) providing a set of basis vectors from a memory; (c) signal processing said basis vectors to produce a plurality of processed vectors; (d) comparing said processed vectors with said input vector to produce comparison signals; (e) providing a set of address words; (f) calculating parameters for each address word using said comparison signals; (g) selecting a particular address word having calculated parameters which meet predetermined error criteria; (h) converting said particular address word into a plurality of interim data words; and (i) generating said excitation signal from said set of basis vectors and said plurality of interim data words.
Claim 59
Dependent Claim 167 words
A speech coder comprising: input means for providing an input vector corresponding to a segment of input speech; means for providing a set of codewords corresponding to a set of Y possible excitation vectors; a first signal path including: means for filtering excitation vectors; a second signal path including: means for providing X basis vectors, where X<Y; means for filtering said basis vectors; means for comparing said filtered basis vectors to said input vector, thereby providing comparison signals; controller means for evaluating said set of codewords and said comparison signals, and for providing a particular codeword representative of a single excitation vector which, when passed through said first signal path, most closely resembles said input vector; and generator means for generating said single excitation vector by performing a linear transformation on said basis vectors as defined by said particular codeword, whereby the evaluation of said set of Y possible excitation vectors is simulated without passing each of said Y possible excitation vectors through said first signal path.
Claim 60
Dependent Claim 167 words
A speech coder comprising: input means for providing an input vector corresponding to a segment of input speech; means for providing a set of codewords corresponding to a set of Y possible excitation vectors; a first signal path including: means for filtering excitation vectors; a second signal path including: means for providing X basis vectors, where X<Y; means for filtering said basis vectors; means for comparing said filtered basis vectors to said input vector, thereby providing comparison signals; controller means for evaluating said set of codewords and said comparison signals, and for providing a particular codeword representative of a single excitation vector which, when passed through said first signal path, most closely resembles said input vector; and generator means for generating said single excitation vector by performing a linear transformation on said basis vectors as defined by said particular codeword, whereby the evaluation of said set of Y possible excitation vectors is simulated without passing each of said Y possible excitation vectors through said first signal path.
Claim 61
Dependent Claim 56 words
The speech coder according to claim 50, wherein said generator means includes: means for defining a plurality of interim data signals based upon said particular codeword; means for multiplying said basis interim data signals to produce a plurality of interim vectors; and means for summing said plurality of interim vectors to produce said single excitation vector.
Claim 62
Dependent Claim 31 words
The speech coder according to claim 50, wherein said first signal path includes means for scaling said excitation vectors by a gain factor, said gain factor provided by said controller means.
Claim 63
Dependent Claim 28 words
The speech coder according to claim 50, wherein the number of calculations performed in simulating the evaluation of each of said possible excitation vectors is linear in X.

References Cited (Backward Citations)

US3631520A Cited
US4133976A Cited
US4220819A Cited
US4472832A Cited
CA1222568A Cited

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 1992-03-27 1992-09-26 1993-03-28 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 1996-03-27 1996-09-26 1997-03-28 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2000-03-27 2000-09-26 2001-03-28 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag