Download Presentation
## Speech Processing

- - - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - - -

**Speech Processing**Homomorphic Signal Processing**Outline**• Principles of Homomorphic Signal Processing • Details of Homomorphic Processing • Variants of Homomorphic Processing • Investigation of Homomorphic systems to speech analysis and synthesis Veton Këpuska**Principles of Homomorphic Processing**• Superposition Property of Linear Systems: x1[n] x[n] L L(x[n]) a1 x2[n] a2 a1L(x1[n]) L x1[n] L(x[n]) a1 L x2[n] a2L(x2[n]) a2 Veton Këpuska**0 for ∈[0,/2]**1 for ∈[/2, ] Principles of Homomorphic Processing • Example 6.1: • If signals fall in non-overlapping frequency bands then they are separable. • x[n]=x1[n]+x2[n] • X1()=ℱ{x1[n]} & X1() [0,/2], • X2()=ℱ{x2[n]} & X2() [/2, ], y[n] = h[n]＊(x1[n]+x2[n]) = h[n]＊x1[n] + h[n]＊x2[n] y[n] = h[n]＊x2[n] = x2[n] Veton Këpuska**Input rule**□ : Principles of Homomorphic Processing • Generalized Superposition • Concept that would support separation of nonlinearly combined signals. • Leads to the notion of Generalized Linear Filtering. • Properties: • H(x1[n]□x2[n])=H(x1[n])○H(x2[n]) • H(c:x[n])=c◈H(x[n]) • Systems that satisfy those two properties are referred to as homomorphic systems and are said to satisfy a generalized principle of superposition. Output rule ○ H() y[n] x[n] ◈ Veton Këpuska**Principles of Homomorphic Processing**• Importance of homomorphic systems for speech processing lies in their capability of transforming nonlinearly combined signals to additively combined signals so that linear filtering can be performed on them. • Homomorphic systems can be expressed as a cascade of three homomorphic sub-systems depicted in the figure below – referred to as the canonic representation: H + + □ + + ○ -1 L D○ D□ x[n] . . . y[n] . : ◈ III I II Veton Këpuska**The Characteristic System: Transforms □ into add “+”**The Linear System: transforms “add” into “add” The Inverse System: transforms add into ○ Canonic Representation of a Homomorphic System I □ + D□ x[n] . : II + + L . . III + ○ -1 D○ . y[n] ◈ Veton Këpuska**Homomorphic Systems**• Let the goal be removal of undesired component of the signal (e.g., noise): Veton Këpuska**●**● M[] x[n] y[n] Multiplicative Homomorphic Systems • Consider Homomorphic Multiplicative System depicted below: • Use D□ to convert MULT into ADD. • Use D○ to convert ADD into MULT. • Which rule (operation) transforms MULT into ADD? -1 + + ● + + ● -1 L D● D● x[n] y[n] III I II Veton Këpuska**Multiplicative Homomorphic Systems**• If • x[n]=x1[n]●x2[n], and • x1[n]>0 & x2[n]>0 for all n • Then • log(x1[n]●x2[n])=log(x1[n])+log(x2[n]) • However, x[n] may not be always positive. • Generalization to complex signals: • x[n]=|x[n]|ejarg(x[n]) which requires definition of complex log operator. Veton Këpuska**Multiplicative Homomorphic Systems**• An implementation of multiplicative Homomorphic System: • Definition: • Complex log: • Complex exp.(Inverse operation) + + + + ● ● LinearSystem Complex Exp. Complex log x[n] y[n] III I II Veton Këpuska**＊**＊ C[] x[n] y[n] Homomorphic Systems for Convolution • Consider Homomorphic System for Convolution depicted below: • Use D□ to convert “＊” into ADD. • Use D○ to convert ADD into “＊”. • How to transform “＊” into ADD? C + + + ＊ + ＊ -1 L D＊ D＊ y[n] x[n] III I II Veton Këpuska**III.**● ● + + + * З-1[] З[] exp[] y[n] “time” -1 D＊ Homomorphic Systems for Convolution • Let x[n]=x1[n]*x2[n] • Inverse Operation I. + + ＊ ● ● + x[n] З-1[] З[] log[] time “time” D＊ Veton Këpuska**Homomorphic Systems for Convolution**• For x[n]=x1[n]*x2[n]: • X(z)=X1(z)X2(z) • Log(X(z))=Log(X1(z)X2(z))= Log(X1(z))+Log(X2(z))Complex logarithm. • This operation requires special handling because: • X(z) > 0 • For complex X(z) phase is not uniquely defined (i.e., multiple of 2) • X(z) has to be defined on unit circle (e.g., Z transform of a stable sequence). • In practice operate on unit circle z=ej. Fourier Transform: Veton Këpuska**Homomorphic Systems for Convolution**• Two cases are possible in computing : • Complex Cepstrum (CC): • Real Cepstrum (RC): Veton Këpuska**Homomorphic Systems for Convolution**• Example 6.3 Consider a sequence x[n] consisting of a system impulse response h[n] convolved with an impulse train p[n]: • Goal is to estimate h[n]. • First form canonical representation for convolution: • If D* is such that p[n] remains train of pulses, and h[n] falls between impulses then separation is possible. h[] x[n] p[n] x[n]=h[n]*p[n] ^ ^ Veton Këpuska**0**Example 6.3 (cont.) • Let L denote such operation (i.e., rectangular window that would separate p[n] from h[n]). ^ ^ Veton Këpuska**Example 6.4**• a,b real and positive:⇒ log(ab) = log(a)+log(b) • a,b real but b<0⇒ log(ab) = log(a|b|ejk)=log(a)+log(|b|)+jk, k=1,3,5,… • log(ab) is ambiguous. • This example indicates that special consideration must be made in defining the logarithm operator for complex X(z) in order to make the logarithm of the product the sum of logarithms. Veton Këpuska**Homomorphic Systems for Convolution-Complex Logarithm**• Suppose that X(z) is evaluated on the unit circle (z=ej) • Let x[n]=x1[n]*x2[n] ⇒ X()=X1() X2() • Consider then complex log of X(): • Considering that X()=X1() X2() then: Veton Këpuska**Homomorphic Systems for Convolution-Complex Logarithm**• In the previous expression the following was assumed: • Also: • Expression generally does not hold due to the ambiguity in the definition of phase: Veton Këpuska**Homomorphic Systems for Convolution-Complex Logarithm**• Note that: • PV denotes principal value of the phase which falls in the interval [-,]. • Arbitrary multiple of 2 can be added to the principal phase value • Thus additive property generally does not hold. • How to impose uniqueness? • Force continuity of phase: • Select k such that ∠X()=PV[∠X()]+ 2k is a continuous function. Figure 6.5 (next slide). • Phase derivative approach:It can be shown that: Veton Këpuska**Fourier Transform Phase Continuity**Veton Këpuska**Homomorphic Systems for Convolution**• Relationship of complex cepstrum to real cepstrum c[n]: • If x[n] real then: • |X()| is real and even and thus log[|X()|] is real and even • ∠X() is odd, and hence • is referred to as the complex cepstrum. • Even component of the complex cepstrum, c[n] is referred to as the real cepstrum. Veton Këpuska**Complex Cepstrum of Speech-Like Sequences**• Sequences with Rational z-Transform: • General form the class of sequences is given below: • Mi, Ni – are zeros and poles inside the unit circle. • Mo, No – are zeros and poles outside the unit circle. • |ak|, |bk|, |ck|, |dk| are all < 1 ⇒ • Thus there are no singularities on the unit circle. • A > 0. Veton Këpuska**Complex Cepstrum of Speech-Like Sequences**• Applying complex logarithm gives: • is a z-transform of sequence • Want inverse z-transform to be absolutely summable⇒ ROC of must include unit circle, |z|=1. • This condition is equivalent to having all constituent elements of have ROC’s that include unit circle, |z|=1 Veton Këpuska**Complex Cepstrum of Speech-Like Sequences**Im Z-plane 1 • In order to obtain ROC for expressions of the form: • log(1-z-1) • log(1-z),they are expressed in a power series expansion: Re ROC for log(1-z-1) Im Z-plane 1 Re 1/ ROC for log(1- z) Veton Këpuska**Complex Cepstrum of Speech-Like Sequences**• The ROC of is therefore given by an annulus defined by the poles & zeros of X(z) closest to the unit circle: Im Z-plane 1 Re ROC for typical rational X(z) Veton Këpuska**Complex Cepstrum of Speech-Like Sequences**• Complex cepstrum associated with rational X(z) can be therefore expressed as: Veton Këpuska**Example A.**• Determine the complex cepstrum of the minimum-phase sequence: x[n] = anu[n], |a|<1 • Solution: • Determine the z-transform of x[n]. Veton Këpuska**Example A. (cont.)**^ • Compute X(z): • Complex cepstrum values are simply the coefficients of the term z-n above, that is: Veton Këpuska**Example B.**• Determine the complex cepstrum of the maximum-phase sequence: x[n] = d[n]+bd[n-1], |b|<1 • Solution: • Determine the z-transform of x[n]. Veton Këpuska**Example B. (cont.)**^ • Compute X(z): • Complex cepstrum values are simply the coefficients of the term zn above, that is: Veton Këpuska**Example C.**• Determine the complex cepstrum of the sequence: x[n] = d[n]+ad[n-Np], |a|<1 Discrete convolution of any sequence x[n] with this sequence produced a scaled by-a echo of the first sequence: i.e.: x1[n]*(d[n]+ad[n-Np]) = x1[n]+ax1[n-Np] • Solution: • Determine the z-transform of x[n]. Veton Këpuska**Example C. (cont.)**^ • Compute X(z): • Complex cepstrum values are simply the coefficients of the term zn above, that is: Veton Këpuska**Example D.**• Determine the complex cepstrum of the convolution sequence of previous examples (A-C): • Solution: Veton Këpuska**Example D.**• The complex cepstrum of x[n] is the sum of the complex cepstra of the three sequences: Veton Këpuska**Example D. (cont.)**Veton Këpuska**Example 6.5**• Let:where a, b, c, are real and <1. • The ROC of X(z) includes unit circle so that x[n] is stable. • A delay z-r corresponds to a shift in the sequence. • Thus complex cepstrum is given by: Veton Këpuska**Example 6.5 (cont.)**• The inverse z-transform of the shift term is given by: • Contribution of z-r term is significant. • On the unit circle: z-r=e-jr=1∠-r contributes a linear ramp to the phase and thus for a large shift r, dominates the phase representation and gives a large discontinuity at and -. Veton Këpuska**Complex Cepstrum of Speech-Like Sequences**• Relation of complex cepstrum and real cepstrum for x[n] with rational z-transform that is minimum phase: • Complex cepstrum of a minimum-phase sequence with a rational z-transform is right-sided: Veton Këpuska**h[n]**p[n] x[n] x[n]=h[n]*p[n] Z Impulse Train Convolved with Rational z-Transform Sequences • Second class of sequences of interest in the speech context is the train of uniformly-spaced unit samples with varying weights and its interaction with the system: Veton Këpuska**Impulse Trans Convolved with Rational z-Transform Sequences**• If p[n] is minimum phase and |ar(zN)-1|<1, zeros are inside the unit circle, log[P(z)] can be expressed as: • Thus is an infinite right-sided sequence of impulses spaced N-samples apart. • Note that in general for non-minimum phase sequences the complex cepstrum is two-sided with uniformly spaced impulses. Veton Këpuska**h[n]**p[n] x[n] Example 6.6 • Consider a sequence x[n]=h[n]*p[n] where z-transform of h[n] is given by: • b,b*, and c, c* are complexconjugate pairs. • Consider p[n] to be train ofperiodic pulses then: Z-plane Im b 1 a Re a* b* x[n]=h[n]*p[n] Veton Këpuska**p[n]**1 … n Example 6.6 (cont) • If ∈and ||<1 then p[n] is train of decaying exponentials: • Z-transform of p[n] is given by: • Then, as derived earlier: Veton Këpuska**Example 6.6 (cont)**h[n] p[n] Veton Këpuska**Homomorphic Filtering**• In the cepstral domain: • Pseudo-time Quefrency • Low Quefrency Slowly varying components. • High Quefrency Fast varying components. • Removal of unwanted components (i.e., filtering) can be attempted in the cepstral domain (on the signal , in which case filtering is referred to as liftering): • When the complex cestrum of h[n] resides in a quefrency interval less than a pitch period, then the two components can be separated form each other. Veton Këpuska**Homomorphic Filtering**• If log[X()] • Is viewed as a “time signal” • Consisting of low-frequency and high-frequency contributions. • Separation of this signal with a high-pass/low-pass “filter”. • One implementation of low pass “filter”: + + ＊ + + ＊ x[n]=h[n]*p[n] -1 l[n] D＊ D＊ y[n] Veton Këpuska**Homomorphic Filtering**• Alternate view of “liftering” operation: Filtering operation L() applied in the log-spectral domain • Interchange of time and frequency domain by viewing the frequency-domain signal log[X()] as a time signal to be filtered. ⇒ • “Cepstrum” can be thought of as spectrum of log[X ()] • Time axes of is referred to as “quefrency” • Filter l[n] as the “lifter”. ^ ^ L() Y() X() x[n]=h[n]*p[n] F-1 l[n] F-1 log F F exp y[n] Veton Këpuska**Homomorphic Filtering**• Three elements in the doted lines of previous figure can be replaced by L(), which can be viewed as a smoothing function: ^ ^ Y() X() x[n]=h[n]*p[n] F F-1 L() log exp y[n] Veton Këpuska**Practical Implementation Issues**• Use FFT and IFFT for Fourier Transformations. • X() is computed by: • log|X()| computed as • And for x[n] use ^ Veton Këpuska