Method and apparatus for an adaptive codebook search in a speech processing system
AssigneeRenesas Technology Corp.
InventorClifford Tavares
Life of this patent
Estimating the term…
Abstract
An adaptive codebook search (ACS) algorithm is based on a set of matrix operations suitable for data processing engines supporting a single instruction multiple data (SIMD) architecture. The result is a reduction in memory access and increased parallelism to produce an overall improvement in the computational efficiency of ACS processing.
Claims21
In a computer device for speech synthesis, a method for searching a codebook of excitation vectors to identify a selected excitation vector for CELP (code-excited linear prediction) coding comprising:
- receiving an input speech signal;
- computing a metric Mi based on the input speech signal and a signal synthesized by an excitation vector vi;
- repeating the computing step for each excitation vector in the codebook;
- and
- identifying a minimum metric (Mmin) from among the computed Mi's, the excitation vector associated with Mmin being the selected excitation vector used to produce synthesized speech,
- wherein the computing step includes computing a correlation quantity between a target vector signal and an impulse response comprising:
- accessing elements Ri of a first vector (R) stored in a first area of a memory component of the computer device and representative of the target vector signal;
- accessing elements Ii of a second vector (I) stored in a second area of the memory component and representative of the impulse response;
- computing
-
-
- a
-
-
- vector
-
-
- F
-
-
- 1
- =
- [
- 0
- ⋯
- ⋯
- 0
- R
- 0
- ⋮
- R
- 0
- R
- 1
- ⋮
- ⋱
- ⋮
- 0
- R
- 0
- ⋮
- R
- 0
- R
- 1
- ⋯
- ⋯
- R
- (
- 2
- s
- -
- 1
- )
- ]
- ×
- [
- I
- 2
- s
- -
- 1
- ⋮
- ⋮
- ⋮
- I
- 0
- ]
- ;
- and
- computing
-
-
- a
-
-
- vector
-
-
- F
-
- 2
- =
- ∑
- n
- =
- 2
- s
- Frm
- ,
- step
-
-
- 4
-
-
- {
- [
- 0
- ⋯
- ⋯
- 0
- R
- n
- ⋮
- R
- n
- R
- n
- +
- 1
- ⋮
- ⋱
- ⋮
- 0
- R
- n
- ⋮
- R
- n
- R
- n
- +
- 1
- ⋯
- ⋯
- R
- n
- +
- (
- 2
- s
- -
- 1
- )
- ]
- ×
- [
- I
- 2
- s
- -
- 1
- ⋮
- ⋮
- ⋮
- I
- 0
- ]
- +
- ∑
- m
- =
- n
- +
- (
- 2
- s
- -
- 1
- )
- l
- =
- 0
- l
- ,
- step
-
-
- 4
- m
- ,
- step
-
- -
- 4
- m
- -
- 2
- ×
- (
- 2
- s
- -
- 1
- )
- >
- 0
-
-
- [
- I
- (
- m
- -
- (
- 2
- s
- -
- 1
- )
- )
- -
- (
- 2
- s
- -
- 1
- )
- ⋯
- I
- (
- m
- -
- (
- 2
- s
- -
- 1
- )
- )
- ⋮
- ⋮
- ⋮
- ⋮
- I
- (
- m
- -
- (
- 2
- s
- -
- 1
- )
- )
- ⋯
- I
- m
- ]
- ×
- [
- R
- l
- +
- (
- 2
- s
- -
- 1
- )
- ⋮
- ⋮
- R
- l
- ]
- }
- ,
- where s>1 and Frm is a framesize,
- wherein the vectors F1 and F2 together are representative of the correlation quantity.
A computer program product suitable for execution on a data processing device for use in a speech synthesis system, the data processing device supporting SIMD (single instruction multiple data) instructions comprising:
- computer readable media containing a computer program to select an excitation vector from codebook containing a plurality of excitation vectors v,
- the computer program comprising:
- first computer program code to operate the data processing device to access from a first area of a memory component elements Ri of a vector R representative of a target vector signal;
- second computer program code to operate the data processing device to access from a second area of the computer memory component elements Ii of a vector I representative of an impulse response;
- third computer program code to operate the data processing device to access the excitation vectors v from the codebook, the codebook stored in a third area of the computer memory component;
- fourth computer program code to operate the data processing device to compute a metric Mi based on an input speech signal and a signal synthesized from an excitation vector vi, including computing a vector F2 which is a portion of a correlation vector d representative of a correlation between the target vector signal and the impulse response, where
-
- vector
-
-
- F
-
-
- 2
- =
- ∑
- n
- =
- 2
- s
- Frm
- ,
- step
-
-
- 4
-
-
- {
- [
- 0
- ⋯
- ⋯
- 0
- R
- n
- ⋮
- R
- n
- R
- n
- +
- 1
- ⋮
- ⋱
- ⋮
- 0
- R
- n
- ⋮
- R
- n
- R
- n
- +
- 1
- ⋯
- ⋯
- R
- n
- +
- (
- 2
- s
- -
- 1
- )
- ]
- ×
- [
- I
- 2
- s
- -
- 1
- ⋮
- ⋮
- ⋮
- I
- 0
- ]
- +
- ∑
- m
- =
- n
- +
- (
- 2
- s
- -
- 1
- )
- l
- =
- 0
- l
- ,
- step
-
-
- 4
- m
- ,
- step
-
- -
- 4
- m
- -
- 2
- ×
- (
- 2
- s
- -
- 1
- )
- >
- 0
-
-
- [
- I
- (
- m
- -
- (
- 2
- s
- -
- 1
- )
- )
- -
- (
- 2
- s
- -
- 1
- )
- ⋯
- I
- (
- m
- -
- (
- 2
- s
- -
- 1
- )
- )
- ⋮
- ⋮
- ⋮
- ⋮
- I
- (
- m
- -
- (
- 2
- s
- -
- 1
- )
- )
- ⋯
- I
- m
- ]
- ×
- [
- R
- l
- +
- (
- 2
- s
- -
- 1
- )
- ⋮
- ⋮
- R
- l
- ]
- }
- ,
- s>1 and Frm is a framesize;
- fifth computer program code to obtain the input speech signal;
- and
- sixth computer program code to coordinate the first, second, third and fourth computer program codes to compute a metric for each excitation vector in the codebook and to identify a minimum metric therefrom, the excitation vector associated with the minimum metric being the selected excitation vector,
- wherein the selected excitation vector can be used to synthesize speech.
A speech codec device comprising:
- a input component operable to receive a speech signal to produce an input speech signal;
- a processing component supporting one or more single instruction multiple data (SIMD) instructions;
- a data storage component coupled to the processing component for transferring data therebetween;
- a first portion of the data storage component having stored therein a codebook of excitation vectors v;
- a second portion of the data storage component having stored therein a vector R representative of a target vector signal generated based on the input speech signal;
- a third portion of the data storage component having stored therein a vector I representative of an impulse response to a synthesis filter;
- and
- computer program code stored in the data storage component comprising a code portion suitable for execution on the processing component to compute a metric Mi=
- (
- (
- dv
- i
- )
- 2
- v
- i
- T
-
- ϕ
-
-
- v
- i
- )
- for an excitation vector vi, where φ is a covariance matrix of the impulse response and d is a correlation vector representative of a correlation between the target vector signal and the impulse response, the correlation vector d comprising a vector F1 and a vector F2, wherein
- vector
-
-
- F1
- =
- [
- 0
- ⋯
- ⋯
- 0
- R
- 0
- ⋮
- R
- 0
- R
- 1
- ⋮
- ⋱
- ⋮
- 0
- R
- 0
- ⋮
- R
- 0
- R
- 1
- ⋯
- ⋯
- R
- (
- 2
- s
- -
- 1
- )
- ]
- ×
- [
- I
- 2
- s
- -
- 1
- ⋮
- ⋮
- ⋮
- I
- 0
- ]
-
-
- and
- vector
-
-
- F2
- =
- ∑
- n
- =
- 2
- s
- Frm
- ,
- step
-
-
- 4
-
- {
- [
- 0
- ⋯
- ⋯
- 0
- R
- n
- ⋮
- R
- n
- R
- n
- +
- 1
- ⋮
- ⋱
- ⋮
- 0
- R
- n
- ⋮
- R
- n
- R
- n
- +
- 1
- ⋯
- ⋯
- R
- n
- +
- (
- 2
- s
- -
- 1
- )
- ]
- ×
- [
- I
- 2
- s
- -
- 1
- ⋮
- ⋮
- ⋮
- I
- 0
- ]
- +
- ∑
- m
- =
- n
- +
- (
- 2
- s
- -
- 1
- )
- l
- =
- 0
- i
- ,
- step
-
-
- 4
- m
- ,
- step
- -
- 4
- m
- -
- 2
- ×
- (
- 2
- s
- -
- 1
- )
- >
- 0
-
- [
- I
- (
- m
- -
- (
- 2
- s
- -
- 1
- )
- )
- -
- (
- 2
- s
- -
- 1
- )
- ⋯
- I
- (
- m
- -
- (
- 2
- s
- -
- 1
- )
- )
- ⋮
- ⋮
- ⋮
- ⋮
- I
- (
- m
- -
- (
- 2
- s
- -
- 1
- )
- )
- ⋯
- I
- m
- ]
- ×
- [
- R
- l
- +
- (
- 2
- s
- -
- 1
- )
- ⋮
- ⋮
- R
- l
- ]
-
- }
- ,
- where s>1 and Frm is a framesize,
- the computer program code further computing a plurality of the metrics Mi and identifying a minimum one of the metrics Mmin, wherein the excitation vector corresponding to Mmin constitutes a selected excitation vector.
A speech synthesis device comprising:
- means for receiving input speech to produce an input speech signal;
- data processing means for performing single instruction multiple data (SIMD) operations, including a multiply and accumulate (MAC) operation;
- memory means, in data communication with the data processing means, for storing a vector R representative of a target vector signal produced based on the input speech signal, a vector I representative of an impulse response to a synthesis filter, and a codebook of excitation vectors v;
- and
- computer program code stored in the memory means comprising a code segment suitable for execution on the data processing means to compute a metric
- M
- i
- =
- (
- (
- dv
- i
- )
- 2
- v
- i
- T
-
- ϕ
-
-
- v
- i
- )
- for an excitation vector vi, where φ is a covariance matrix of the impulse response and d is a correlation vector representative of a correlation between the target vector signal and the impulse response, the correlation vector d comprising a vector F1 and a vector F2, wherein
- vector
-
-
- F1
- =
- [
- 0
- 0
- 0
- R
- 0
- 0
- 0
- R
- 0
- R
- 1
- 0
- R
- 0
- R
- 1
- R
- 2
- R
- 0
- R
- 1
- R
- 2
- R
- 3
- ]
- ×
- [
- I
- 3
- I
- 2
- I
- 1
- I
- 0
- ]
-
-
- and
- vector
-
-
- F2
- =
- ∑
- n
- =
- 4
- Frm
- ,
- step
-
-
- 4
-
- {
-
- [
- 0
- 0
- 0
- R
- n
- 0
- 0
- R
- n
- R
- n
- +
- 1
- 0
- R
- n
- R
- n
- +
- 1
- R
- n
- +
- 2
- R
- n
- R
- n
- +
- 1
- R
- n
- +
- 2
- R
- n
- +
- 3
- ]
- ×
- [
- I
- 3
- I
- 2
- I
- 1
- I
- 0
- ]
- +
- ∑
- m
- =
- n
- +
- (
- 2
- s
- -
- 1
- )
- l
- =
- 0
- l
- ,
- step
-
-
- 4
- m
- ,
- step
- -
- 4
- m
- -
- 6
- >
- 0
-
- [
- I
- m
- -
- 6
- I
- m
- -
- 5
- I
- m
- -
- 4
- I
- m
- -
- 3
- I
- m
- -
- 5
- I
- m
- -
- 4
- I
- m
- -
- 3
- I
- m
- -
- 2
- I
- m
- -
- 4
- I
- m
- -
- 3
- I
- m
- -
- 2
- I
- m
- -
- 1
- I
- m
- -
- 3
- I
- m
- -
- 2
- I
- m
- -
- 1
- I
- m
- ]
- ×
- [
- R
- l
- +
- 3
- R
- l
- +
- 2
- R
- l
- +
- 1
- R
- l
- ]
- }
- ,
- where Frm is a framesize.
Dependencies are inferred from the claim text.