Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Informe Vocoder
Informe Vocoder
I. Introducción
El VOCODER construye un codificador de voz LPC, es decir, realiza análisis y síntesis LPC en
un archivo de voz, lo que resulta en una aproximación de voz sintética a la voz original. El
análisis LPC utiliza un análisis de autocorrelación estándar para determinar los conjuntos de
coeficientes LPC, cuadro por cuadro, junto con la ganancia basada en cuadros, G. Un método de
análisis independiente (un detector de período de tono cepstral) clasifica cada cuadro del habla
como voz expresada (con un período determinado por la ubicación del pico cepstral en un rango
designado de períodos de tono) o un discurso sordo (simulado por un marco de ruido aleatorio)
designado como un período de tono de marco de 0 muestras. El análisis independiente
proporciona una función de excitación de dos estados para la parte de síntesis LPC del
procesamiento, que consiste en una serie de pulsos de tono (durante las tramas sonoras) y / o
secuencias de ruido (durante las tramas sonoras).
1
Con nuestro audio, aplicaremos algunas fórmulas para encontrar los coeficientes e innovaciones de
nuestra señal, para captar nuestros polinomios P (z) y Q (z), a partir de ahí encontraremos nuestros
coeficientes Wk.
(1)
(2)
(3)
(4)
(5)
En las ecuaciones 2 a 5, obtenemos los polinomiales P(z) y Q(z) de donde se obtienen los
coeficientes
En su implementación del código P nos permite eliminar el valor mayor y Q nos permite eliminar
el menor valor.
2
Con los datos que se obtuvieron anteriormente en los distintos procesos, reconstruiremos la señal.
V. Código
Como se observa en el código 1 llamamos a la grabación realizada anteriormente en el laboratorio,
una vez a través de código obtenemos su longitud, establecemos el número de ventanas y luego
realizamos la segmentación de la señal (voz).
clear all
[x0,fs] = audioread('Voz_1.wav');
L=length(x0);
nw = 160;
R = zeros(1,L-nw);
%segmentamos solo la
for i=1:L-nw
idx = i:nw+i;
R(i) = sqrt(sum(x0(idx).^2)/nw);
end
eta = 0.01;
x = x0(R>=eta);
Lx = length(x); nw = 160; eta=0.01;
3
Figure 2 – Voz original y segmento de voz deseado
function [u]=innovaciones(xs,a)
xs=xs(:);
a=a(:);
xs1=[zeros(10,1);xs];
u=zeros(1
for i=1:160
u(i)=xs1(10+i:-1:i)'*[1;a];
end
function a = coefficients_a(xn)
Rx = xcorr(xn);
[~, idx_max] =
R = toeplitz(Rx(idx_max:idx_max+9));
r = -Rx(idx_max+1:idx_max+1+9);
a = inv(R)*r;
for i=1:floor(Lx/nw)
idx = 1 + (i-1)*160:i*160;
xn = x(idx);
a = coefficients
(xn,a); %hallamos las innovaciones
xn_est=filter(1,[1;a],u);
sw_est = zeros(170,1);
4
VII. Coeficientes Wk (codificador) y coeficientes Ak (decodificador)
function wk = val_wk(a)
an = a(end:-1:1);
Pz = [1; a-an; -1];
Qz = [1; a+an; 1];
Pz_roots = roots(Pz);
Qz_roots = roots(Qz);
(idx)=[];
idx = real(Qz_roots)<=-0.99999;
Qz_roots(idx)=[];
for i=1:2:10
r11 = Pz_roots(i); r12 = Pz_roots(i+1);
z1 = [1/r11 -1]; z2 = [1/r12 -1];
fz = conv(z1, z2);
wk(i+1) = acos(-fz(2)/2);
for i=10:-2:1
fz = [1 1 1];
fz(2) = -2*cos(wk(j,i));
z = roots(fz);
Pzr_roots(i,1) = z(2
fz(2) = -2*cos(wk(j,i-1));
z = roots(fz);
Qzr_roots(i,1) = z(2);
Qzr_roots(i-1,1) = z(1);
end
Pzr = poly(Pzroots)';
Qzr = poly(Qzroots)';
5
a1 = (Pzr + Qzr)/2;
a(:,j) = a1(2:end-1)
end
Code 6 – Función ak (decodificador)
%PITCH
[g,ptch]=max(Ru(179:end));
Code 7 – Pitch
En la figura 3 observamos la gráfica que nos representa la autocorrelación, con su valor máximo de
ganancia, que la ubicamos en 160.
6
Code 8 – Reconstrucción de la señal
Finalmente, al ejecutar todo el código, obtenemos una señal reconstruida (Figura 4), el cual a
efectos de la experiencia realizada, se observa una cantidad considerable de pérdida de la señal,
más allá de lo que ya se perdió en la segmentación, así mismo es necesario resaltar la importancia
de mantener la ganancia para recuperar los patrones formantes de nuestra señal cuando esta pasa
por un proceso de codificación y decodificación.
IX. Conclusiones:
3. Basta con 160 ventanas como las implementadas en el código para obtener un buen resultado
en la decodificación d
4. La voz reconstruida tiene la característica de escucharse “robotizada”, debido al proceso que
sufre la señal, sobre todo al pasar por una serie de filtros basados en la secuencia original de
símbolos.