Applied Speech and Audio Processing: With matlab examples


Download 2.66 Mb.
Pdf ko'rish
bet165/170
Sana18.10.2023
Hajmi2.66 Mb.
#1708320
1   ...   162   163   164   165   166   167   168   169   170
Bog'liq
Applied Speech and Audio Processing With MATLAB Examples ( PDFDrive )

7.9. Voice and pitch changer
197
Figure 7.11
A voice changer based on adjusting intermediate speech representation parameters
within a CELP codec, between the encoder and the decoder parts.
%Extract the pitch from the speech
vocA=filter([1,zeros(1,tapA-1),-Beta], 1, sp);
%Perform LPC analysis
aA=lpc(sp.*hamming(length(vocA)), 10);
lung=filter(aA, 1, vocA);
lspA=lpc_lsp(aA);
%-- transform --
%lspB=lspA*1.1;
%tapB=round(tapA/1.1);
lspB=lspA/1.1;
tapB=round(tapA*1.1);
%------------------
aB=lsp_lpc(lspB);
%Recreate the speech
vocB=filter(1, aB, lung);
spB=filter([1,zeros(1,tapB-1),Beta], 1, vocB);


198
Advanced topics
Remember, this is a simple test only, it will not work over longer recordings because the
pitch and LPC parameters will no longer be stationary. It also scales the LSPs in a very
trivial manner without considering resonances that may result, or shifts toward either
frequency extreme, and thus large shifts will result in significant quality degradation.
Increasing the LTP tap lowers the pitch frequency: reducing the LSP values lowers the
vocal tract frequency response, and thus the LTP and LSP scaling needs to be in opposite
directions if a consistent frequency movement is expected (i.e. for voice frequency
scaling they should both move either upward or downward in frequency, but for voice
scrambling, they could move in any combination).
Tests of these methods within a CELP coder reveal that pitch scaling and LSP adjust-
ments should remain relatively small but result in fairly natural sounding speech. In very
general terms, this method can change a male-sounding voice into a female-sounding
one and vice versa. In contrast to the Matlab code above, the tested system identified
the LSP line pairs related to the primary formants (as in lspnarrow() on page 190),
and shifted these without changing the other lines, wherever possible.
It should be noted at this point that the voice changing method described really does
depend upon the presence of a CELP coder. In fact it was designed for use within a
telecommunications application as an extension to an existing codec. Since the computa-
tional complexity of CELP is quite high, it may be an inefficient solution for applications
where a CELP-style coder is not already present.

Download 2.66 Mb.

Do'stlaringiz bilan baham:
1   ...   162   163   164   165   166   167   168   169   170




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling