procesamiento de voz

Upload: francisco-javier-cortes-carrillo

Post on 04-Apr-2018

215 views

Category:

Documents


0 download

TRANSCRIPT

  • 7/29/2019 Procesamiento de Voz

    1/11

    Procesamiento de vozUniversidad Surcolombiana

    Neiva, Colombia

    FRANCISCO JAVIER CORTES CARRILLO COD:2008276052

    VICENTE PEREZ ESCOBAR COD:2008275398

    JEFERSON DUSSAN CUBI COD:2008275667

    RAUL ANDRES MOSQUERA COD:200875598

    AbstractDigital processing of voice is very important in digitalcommunications, because the works and designs today are

    directed to processing speed, bandwidth and quality, ie thelowest transmit a parameter information representing a good

    quality. This work is aimed at strengthening the voice processing

    concepts and find ways to make the above.

    I. INTRODUCCIONLa seal de voz se puede dividir en dos componentes,componente estocstica y componente determinista para elcaso de tramas sonoras, en el caso de tramas sordas

    consideraremos solo la componente estocstica. Teniendo estoen cuenta podemos calcular los parmetros necesarios parasintetizar cada componente por separado.

    La voz humana es producida por el paso del aire procedentede los pulmones, que al llegar a la laringe, produce lavibracin de los dos pares de cuerdas vocales. Las cavidadesde la cabeza, relacionadas con el sistema respiratorio ynasofarngeo, actan como resonadores, mientras que losdientes, labios y paladar, como articuladores.La combinacin de stos, permiten generar distintos sonidos(vocales y consonantes). En el caso de las vocales, el paso delaire no se ve interrumpido en el tracto vocal, diferencindose

    nicamente por su forma (configuracin boca lengua,paladar). Esto es lo que produce la amplificacin o atenuacinde las frecuencias generadas previamente. Aquellas queson reforzadas, son las que se denominan formantes y son lasque caracterizan a cada vocal. stas aparecen en el espectrocomo envolventes que modifican las amplitudes de losarmnicos de la fuente sonora. El formante con la frecuenciams baja se designa F1, el segundo F2, el tercero F3.En muchas lenguas, como en el caso de la castellana, los dosformantes principales permiten distinguir la mayora desonidos voclicos del habla.Para lenguas con mayor cantidad de vocales, como por ej. elingls, es necesario recurrir a ms formantes para

    caracterizarlas.

    II.MARCO TEORICO

    PROCESAMIENTO DE VOZ

    El esquema general que se seguir para el clculo de losparmetros de cada componente ser:

    Por un lado, calculamos los coeficientes del filtro LPC para elFiltrado del tracto vocal (componente estocstica).

    Por separado, calculamos la sonoridad y el pitch de cadatrama, para con ello, calcular las amplitudes, fases yfrecuencias de los armnicos en el caso de tramas sonoras,estos sern los parmetros necesarios de la componentedeterminista (excitacin).

  • 7/29/2019 Procesamiento de Voz

    2/11

    En primer lugar, en el codificador se dividen las tramas y secalcula la matriz de coeficientes y la energa para el filtro deltracto vocal.Tras este procedimiento, calculamos el pitch y la sonoridad.

    Teniendo los valores de pitch y sonoridad se calculan lasfrecuencias (f0), la matriz de amplitudes de los armnicos(amp, 10 por trama en este caso) y las fases (fas,10 por trama).

    Si eligiramos ms armnicos la informacin a transmitirseria mayor y la calidad de la seal sintetizada seria mayor omenor respectivamente al nmero de armnicos.

    Para llegar a deducir el valor de las amplitudes y las fases decada trama sonora debemos seguir los siguientes pasos:

    Paso 1

    Calculamos la transformada de la trama mediante (funcin fften matlab) despus se transforma el valor Npitch, en muestras,a Hz para obtener la frecuencia (f0) de la trama, redondeamos

    para poder operar con este valor. Para ello hemos utilizado laformula.

    Paso 2Calculamos la distancia entre muestras teniendo en cuenta quees la frecuencia de muestreo (fs), entre el nmero de muestraspor trama (N), como se muestra en la figura

    El valor de la distancia entre muestras es muy importante yaque con este valor podemos hallar la posicin de losarmnicos en el espectro y el valor de la amplitud y la fase deestos armnicos.

    Paso 3Se calcula la posicin de la frecuencia fundamental (k0) en elespectro de la trama sonora, sabiendo que es la relacin entre

    la frecuencia fundamental en Hz anteriormente calculada y ladistancia entre muestras:

    Se estima la amplitud armnica y la fase, para hallar laamplitud utilizo la formula, eligiendo el valor de la muestra k0en el espectro.Amplitud=(A/2)N

    La amplitud que necesitamos hallar es la mitad del valorcontenido en la posicin k0 del espectro partido multiplicadopor el nmero de muestras.Para calcular la fase utilizamos la funcin angle de matlaben la posicin k0.

    Una vez hemos calculado el valor de la amplitud y la fasedebemos hacer una matriz para hallar tantos armnicos comoqueramos

  • 7/29/2019 Procesamiento de Voz

    3/11

    Se han utilizado varias funciones:

    Parmetros Codificador. Coeficientes. PitchSonoridad. Valores Excitacin

    ESTRUCTURA DE LA PROGRAMACION

    Funcionamiento

    Cada una de las funciones implementadas tiene su aplicacin,la funcin parmetros es la encargada de leer la seal de voz.wav, mediante wavread, Esta seal de entrada se puede variarsiendo aplicable a cualquier seal de voz en formato .wav,tambin se han aadido los parmetros t (tiempo de cadatrama en ms) y armnicos (nmero de armnicos para elclculo de los parmetros de la excitacin) para dar la opcin

    a elegir cualquier valor

    (parametros.m) mandando los parmetros necesarios que son:

    x: Seal de voz. fs: Frecuencia de muestreo de la seal de voz, esta

    puede variar segn la seal de entrada por ellodebemos mandarla.

    t: Tiempo en ms de cada trama. armnicos: Numero de armnicos para el clculo de

    los parmetros deExcitacin.

    Luego se llama la funcin codificador (codificador.m),transmitindoles los parmetros necesarios.

    Se crea el reproductor de sonido por medio de la funcinwavplay(x,fs) y se reproduce con ayuda de audioplayer(x,fs).

    Como se tiene en anlisis dos archivos .wav se cre uncondicional if para analizarlos por separado.

    FUNCION CODIFICADOR

    La funcin codificador.m es la encargada de codificar la sealoriginal,Los parmetros de entrada son: seal original (x), lafrecuencia de muestreo (fs), el tiempo de las tramas (t) y elnmero de armnicos (armnicos).

    En primer lugar, calculamos el nmero de muestras por trama(N) y el nmero de tramas (Ntramas), redondeamos losvalores para poder operar con ellos.

    Para implementar un ciclo que nos divida la seal en tramas senecesita calcular la longitud de la seal en funcin de losparmetros anteriores (F) por ello se multiplica el nmero detramas (Ntramas) por las muestras que contiene cada trama(N). Se aplica un ciclo for desde i=1 hasta i=F cogiendo Nmuestras cada vez (for i=1: N:F;) dentro de este lazo se dividela seal en tramas (trama=x(i:N-1+i);) y se aplica Hamming acada trama y se resta la media.

    Teniendo la trama (trama2) preparada se llama a la funcincoeficientes.mMandndole los parmetros trama2 (trama con hamming y sinmedia), Ntrama (nmero de tramas) y trama (trama sinhamming y con media). Esta funcin nos devuelve el vectorde coeficientes LPC y la energa de cada trama.

    Con estos parmetros generamos una matriz de coeficientes yun vector de energas.

    El siguiente paso es calcular la sonoridad y el pitch de cadatrama para ellos se llama a la funcin pitchsonoridad.mmandndole trama2 (trama con hamming y sin media). Nosdevuelve el valor de la sonoridad (1 si es una trama sonora 0si es sorda) y el valor de pitch en muestras.

    Con estos valores, si sonoridad =1, se llama a la funcinvaloresexcitacion.m dando los parmetros de Mitch (pitch enmuestras), fs (frecuencia de muestreo), N (nmero demuestras por trama) y trama (trama sin hamming y conmedia). Esta funcin nos devuelve los vectores de amplitudes(amp) y fases (fas) armnicas y la frecuencia fundamental (f0)en Hz de cada trama.

    Una vez obtenidos estos valores se crean los vectores pitch(pitch), sonoridad (sonoridad) y frecuencia (frecuencia) y lasmatrices de amplitudes (amplitud) y fases (fases).

    Con todo ello tenemos todos los parmetros necesarios parasintetizar laSeal

    FUNCION COEFICIENTE (COEFICIENTE.M)

  • 7/29/2019 Procesamiento de Voz

    4/11

    La funcin coeficientes.m es la encargada de calcular losvalores de los coeficientes (co) del filtro del tracto vocal y laenerga (energ) de cada trama.

    Para ello aplicamos un filtro LPC_10 a la trama enventanaday sin media(trama2), a partir del residuo que obtenemos, calculamos laenergia, haciendo la suma de todos los elementos del vector,

    residuo2 al cuadrado.Estos valores sern necesarios a la hora de sintetizar lacomponente estocstica.

    FUNCION PITCHSONODIDAD (PITCHSONODIDAD.M)

    En la funcin pitchSonoridad.m se calcula el pitch enmuestras (Npitch) y la sonoridad (son). Para ello se genera unfiltro paso bajo, mediante la funcin fir1 de matlab, filtramosla trama y le aplicamos un filtro LPC_4, para hallar el residuosobre el que calcularemos la auto-correlacin y de esta, elvalor (m1) y la posicin (n1), correspondientes al mximovalor.

    Para buscar el siguiente mximo, cogemos los valores de laauto-correlacin desde, n1+20 hasta n1+160, y en ellosbuscamos el siguiente mximo (m2, n2), si este, es mayor queel 25% del valor m1, corregimos n2 sumndole n1+20 yentonces la trama ser sonora, por tanto, sonoridad ser 1 ypitch ser igual a la diferencia de posiciones entre losmximos (pitch=n2-n1).

    Por el contrario si no supera el 25% del valor m1 la trama sersorda y por tanto la sonoridad y el pitch sern 0.

    FUNCION VALORESEXCITACION(VALORESEXCITACION.M)

    En la funcin valoresexcitacion.m se calculan las amplitudes(amp), fases (fas) y frecuencia fundamental (f0) en Hz de cadatrama.

    Para ello seguimos los pasos:Calculamos la distancia entre tramas (af=floor (fs/N);).La frecuencia fundamental en Hz ( fo=floor(1/(Npitch/fs));)La muestra donde se encuentra, (k=round(fo/af);).Para obtener los valores necesarios se calcula la transformadade la trama (trastra=fft(trama);).

    Una vez procesado lo anterior se crea un lazo: (for

    s=1:armonicos;)

    DESARROLLO DE CONTENIDOS

    1) Dados los siguientes comandos de Matlab,

    implementar un ejemplo con cada uno y explicar sufuncionalidad.

    (a) WAVREAD().

    (b) PLAY().

    (c) PLOT() Y SUBPLOT().

    (d) WAVWRITE().

    (e) AUDIOPLAYER().

    El siguiente cdigo graba una seal de voz de 3 segundos auna frecuencia de muestreo de 8000 hz (sonido monofnico)El cual en una sola ventana muestra la grfica de amplitud yfrecuencia.clear all

    clc% PRIMERO% hacemos captura de la seal de vozinput('presione intro para capturar lavoz')Fs=8000; %utilizamos una frecuencia demuestreo ade 8khzts=3; %el fragmento de voz acapturar es de 10 segy = wavrecord(ts*Fs, Fs);% SEGUNDO% Guardamos la seal capturada 8 bitspor muestrawavwrite(y,Fs,8,'voz_punto1.wav')input('el archivo ha sido gravado,presione intro para mostrar losparametros de grabacion')% TERCERO% Escuchamos el archivo de voz guardado[y,F_muestreo,NBits]=wavread('voz_punto1.wav')% CUARTO GRAFICARinput('presione intro para graficar')subplot(211)plot(y) %el efecto de gravar crealas dos columnas de datossubplot(212)

    E=fft(y,ts*Fs) %calculotransformada de fourierEs=Fs*(0:(ts*Fs)-1)/ts*Fs; %dominio dela frecuencia en hzplot(Es(100:10000),abs(E(100:10000)));

    1) Dadas dos seales de voz (s1, s2), leer los archivos

    en Matlab (.wav), encontrar las propiedades de la

    voz en cada uno, realizar un anlisis comparativo de

    las seales y reproducirlas.

    CODIGO EN MATLAB

    El siguiente es el cdigo utilizado en matlab para generar lasgrficas necesarias en nuestro posterior anlisis y

    comparacin de las 2 seales de voz

    Cdigo principalLlama la funcin utilizada llamar los archivos de voz,para

    obtener las caractersticas de la seal []=parametros (),adems es quien grafica las propiedades caractersticas

    obtenidas y reproduce la voz.

  • 7/29/2019 Procesamiento de Voz

    5/11

    for a=0:1:2 %seleciona el valor de laseal de audio que se va analizar

    if a==1 %evalua si se escoje laprimera seal de audio[x,fs,b]=wavread('s1.wav'); % lee laseal de audio%%tiempo en ms de la trama.t=30;

    %% Nmero de armnicos.armonicos=10; % armonicos para el calculode los parametros de exitacion( amplitud,fase y frecuencia)%% Llamada a funcin codificador.[pitch,coefmed,amplitud,fases,frecuencia,energia,N,sonoridad]=codificador(x,fs,t,armonicos,a); % funcion codificadorcodifica la seal original%% escuchar sonidowavplay(x,fs); %crea el reproductor deaudioaudioplayer(x,fs); % reproduce la sealde audio%% grafica imagenesfigure(2);subplot(4,1,1);plot(x);title('seal original');subplot(4,1,2);plot(pitch);title('seal pitch ');subplot(4,1,3);plot(sonoridad);title('seal sonoridad ');subplot(4,1,4);plot(frecuencia);

    title('seal frecuencia ');endif a==2 %evalua si se escoje la

    segunda seal de audio[x,fs,b]=wavread('s2.wav');%%tiempo en ms de la trama.t=30;%% Nmero de armnicos.armonicos=10;%% Llamada a funcin codificador.[pitch,coefmed,amplitud,fases,frecuencia,energia,N,sonoridad]=codificador(x,fs,t,armonicos,a);%% escuchar sonidowavplay(x,fs);audioplayer(x,fs);

    endend%% graficar las seales frecuencia pitch, sonoridad , frecuencia de la tramas decada seal

    if a==2;figure(6);subplot(4,1,1);plot(x,'r');title('seal original');subplot(4,1,2);plot(pitch,'r');title('seal pitch ');

    subplot(4,1,3);plot(sonoridad,'r');title('seal sonoridad ');subplot(4,1,4);plot(frecuencia,'r');title('seal frecuencia ');end

    funcin []=codificador()Es una parte muy importante del cdigo debido que es la que

    obtiene el nmero de tramas de la seal de voz deseada,

    adems obtiene los parmetros de cada una de ellas como la

    amplitud, fase y los coeficientes de cada trama.

    function[pitch,coefmed,amplitud,fases,frecuencia,energia,N,sonoridad]=codificador(x,fs,t,armonicos,a);L=length(x); % encuentra el numero deelementos de xN=floor(fs/1000)*t; % calcula el numerode muestras por tramaNtramas=floor(L/N) % calcula el numero detramasF=Ntramas*N; % calcula la longitud de laseal para poderla dividir en tramaspitch=[]; % vector pitch vaciocoefmed=[];

    sonoridad=[];energia=[];amplitud=[];fases=[];frecuencia=[];for i=1:N:F; % ciclo para el analisis decada trama hasta llegar a la longitudtotal de la sealtrama=x(i:N-1+i); %%separamos la seal entramastrama1=trama.*hamming(N); %% aplicamosHammingtrama2=trama1-mean(trama1); %% restamos

    la media% Vamos a la funcin coeficientes parahallar los coeficientes LPC%para el filtrado del Tracto Vocal.[energ,co]=coeficientes(trama2,Ntramas,trama,a); % calcula los valores de loscoeficientes para el filtro del tractovocal y la energiacoefmed=[coefmed;co]; % matrix decoeficientes

  • 7/29/2019 Procesamiento de Voz

    6/11

    energia=[energia energ]; % vector deenergia

    %Vamos a la funcin pitchsonoridad parahallar los valores del pitch y%la sonoridad de cada trama.[Npitch,son]=pitchsonoridad(trama2);%Si la trama es sonora vamos a la funcinvaloresexcitacion para%hallar las amplitudes fases y lafrecuencia de cada trama.if son==1; % evalua si la es sonora omuda ( 1 sonora) (0 sorda)[amp,fas,fo]=valoresexcitacion(Npitch,fs,N,trama,armonicos);if a==1 % evalua la seal se estaanalizando

    figure(1);subplot(4,1,1);

    plot(x);title('seal original');subplot(4,1,2);plot(amp);title('seal amplitud por trama');subplot(4,1,3);plot(fas);title('seal fase por trama');subplot(4,1,4);plot(co);title('seal coeficientes por trama');end

    if a==2figure(4);subplot(4,1,1);plot(x,'r');title('seal original');subplot(4,1,2);plot(amp,'r');title('seal amplitud por trama');subplot(4,1,3);plot(fas,'r');title('seal fase por trama');subplot(4,1,4);plot(co,'r');title('seal coeficientes por trama');

    end

    %Si la trama es sorda los valores seran 0para los tres parametros.else amp=zeros(1,armonicos);fas=zeros(1,armonicos);fo=0;end

    %Concatenamos los valores de pitch,sonoridad, amplitud, fases y%frecuencia.pitch=[pitch Npitch];sonoridad=[sonoridad son];amplitud=[amplitud; amp];fases=[fases; fas];frecuencia=[frecuencia fo];

    end

    if a==1figure(3);subplot(1,1,1);plot(energia);title('seal trama energia');endif a==2figure(5);subplot(1,1,1);plot(energia,'r');title('seal trama energia');end

    funcion []=coeficientes()Esta funcin es la que determina los coeficientes espectrales

    de la seal de voz. En la funcin anterior[]=codificador() se

    ha obtenido la longitud de la trama y es guardada en la

    funcin trama1, luego hallamos los coeficientes de cadatrama restando la media y posteriormente la seal obtenida

    en la trama2 es filtrada para hallar los componentes

    espectrales de la voz. Los componentes espectrales son

    guardados en energ

    function[energ,co]=coeficientes(trama2,Ntramas,trama,a);%%% CALCULAMOS ENERGIA y los coeficientesif a==1co=lpc(trama2,10);% determina los 10coeficientes para el filtro de la sealde la trama 2residuo2=filter(co,1,trama2); % realizaun filtro cuyo coeficiente derealimentacion directa es co, elcoeficiente de realimentacion es 1 de laseal de la trama 2energ=sum(residuo2.^2); % calcula laenergia haciendo la suma de los elementos

    del vectorendif a==2co=lpc(trama2,10);residuo2=filter(co,1,trama2);energ=sum(residuo2.^2);end

    funcion [ ]=pitchconoridad ( )

  • 7/29/2019 Procesamiento de Voz

    7/11

    Debido a que tenemos la variable trama2 que posee los

    coeficientes de cada trama, partimos de ella para hallar o

    definir los sonidos sordos y sonoros de la seal de vos,

    partiendo de un filtro con una frecuencia de 250 hz

    (p=fir1(25,0.225);%%%genera el filtropasobajo de orden 25 y frecuencia de

    corte de 0.225) de los cuales por encima de estafrecuencia se produce los sonidos sonoros y por debajo los

    sonidos sordos.

    function[Npitch,son]=pitchsonoridad(trama2);p=fir1(25,0.225);%%%genera el filtropasobajo de orden 25 y frecuencia decorte de 0.225trama3=filter(p,1,trama2);%%%aplica elfiltro con coeficiente del numinador pdenominador 1 de la seal trama 2c=lpc(trama3,4);%determina los 4coeficientes para el filtro de la sealde la trama 3

    residuo=filter(c,1,trama3); %aplica elfiltro con coeficiente del numinador cdenominador 1 de la seal trama 3 paracalcular la correlacionautores=xcorr(residuo); % se halla laautocorrelacion[m1,n1]=max(autores);% valor y posiciondel primer maximosegbusq=autores(n1+20:n1+120); % buscalos siguientes elementos[m2,n2]=max(segbusq); % posicion y valordel segundo maximon2=n2+n1+20; % corriccion para q la tramasea sonora

    if m2>m1*0.25; % evalua si el segundomaximo es mayor al primero en 25% si esasi es sonora y poner a son=1Npitch=n2-n1; % valor del pitch enmuestrasson= 1; % la trama es sonoraelse son=0; % la trama es sordaNpitch=0; % pitch es 0;end

    Partiendo del cdigo mostrado anteriormente, al introducir la

    seal de voz se muestra con los siguientes plot(graficasgeneradas en matlab).

    PROPIEDADES DE LA VOZ s1.wav

    Caractersticas de grabacinF1_muestreo = 8000NBits1 = 16

    las tramas tomadas para esta seal de voz es deNtramas=100

    La grafica seal original muesra la aplitud vs tiempo de la

    seal de voz , esta grafica nos proporciona una idea de laenergia y en procesamiento de voz avanzado podemos

    determinar que palabras se encuentran en la grafica.Las graficas seal amplitud por trama, seal de fase portrama, seal coeficientes por trama nos proporciona datos

    generados y utilizados por el codigo para y que son utilizadosposteriormente para determinar sonidos sordos y sonoros.Es importante aclara que las graficas que se ploten por tramaque son la tres ultimas solo muestra las caracteristicas de lasultima trama (la trama 100).

    La seal trama energia nos muestra las componentes

    espectrales de la seal de voz amplitud vs frecuencia que nospuede indicar armonicos y frecuencia fundamental que masadelante sera explicada con claridad debido a que ssta graficaes muy importante para dertenimar similitudes y difenereciasentre diferentes seales

  • 7/29/2019 Procesamiento de Voz

    8/11

    Para este laboratorio tal vez la grafica mas importante es lagrafica seal sonoridad ya que nos indica los tramos o

    sonidos sordos que posee la seal de voz procesada, ennuestro cas tenemos:14 tramos de seal sonoros (tramos en 1)

    15 tramos de seal sordos (tramos en 0)Los tramos de seal sonoro 7, 9 y 11 son los de mayorsonoridad por el tiempo de duracion y tenemos y pequeosintervalos de tiempo sordos.Ademas podemos ver que un tiempo despues de que se iniciola grabacion, la persona empezo a halblar

    PROPIEDADES DE LA VOZ s2.wav

    Caractersticas de grabacin:F2_muestreo = 16000NBits2 = 16Las tramas tomadas para esta seal de voz es de:Ntramas = 63El nmero de tramas es diferente que en s1.wav debido a quela frecuencia de muestreo es diferente y estas se calculan conrespecto a la frecuencia de grabacin.

    La grfica seal sonoridad, cono ya lo dijimos

    anteriormente, nos indica los tonos sordos y sonoros de lafrase grabada.En este caso tenemos:13 tramos de seal sonoros (tramos en 1)13 tramos de seal sordos (tramos en 0)Los tramos 3, 6 y 10 de los segmentos sonoros son los demayor duracin.Podemos ver tambien que se empezo a grabar despuessegundos despues que se empezo a hablar.

    COMPARACION ENTRE s1.wav Y s2.wav

    Pirme analizaremos la seal de original en amplitudS1.wav:

  • 7/29/2019 Procesamiento de Voz

    9/11

    S2.wav:

    Observado los niveles de amplitud de las seales

    podemos decir que que las dos personas no estandiciendo la misma frase debido a que las regiones dondese produce la mayor energia no coinciden.

    En cuanto a las caractersticas de grabacin de de las dosseales la s1.wav tiene una frecuencia de muestreo de 8000 hzy 16 bits por muestra en cambio la s2.wav tiene unafrecuencia de muestreo de 16000 hz con 16 bits por muestra .

    Obteniendo las componentes espectrales de las dos sealespodemos definir si la voz es de homre o de mujer.S1.wav:

    S2.wav:

    Del espectro en frecuencia de las dos seales se puede deirque la primera seal (s1.wav) es una voz de mujer debido aque las componentes espectrales con mayor energia o lasprincipales se encuentran entre llos 150 y 200 herz en cambioen la segunda seal de voz (s2.wav) las componentesespectrales principales se encuentar en los rangos por debajode los 200 e incluso de los 150 herz con algunas de ellas porencima, entonces se puede detreminar que dicha seal de vozrepresenta la voz de un hombre.

    El codigo utilizado para hallar el espectro con mayorresolucion es el siguiente:clear allclc[y,Fs,NBits]=wavread('s2.wav')ts=length(y)/Fswavplay(y,Fs);audioplayer(y,Fs);E=fft(y,ts*Fs); %calculotransformada de fourierEs=Fs*(0:(ts*Fs)-1)/ts*Fs; %dominio dela frecuencia en hz

  • 7/29/2019 Procesamiento de Voz

    10/11

    plot(Es(100:10000),abs(E(100:10000)),'r');title('espectro');ylabel('frecuencia')

    2) Grabar un archivo de voz con una duracin de 10milisegundos, especificar las caractersticas degrabacin e identificar los tramos de voz sonoros y

    sordos.Para obtener el cdigo de gravar la seal es el mismoutilizado en el punto 1, el cual nos genera algunasgrficas, pero nos da tambin el archivo de voz, queposteriormente lo vamos a utilizar con el cdigo del punto2 para procesar la seal.El cdigo utilizado para obtener los tramos de voz sordosy sonoros es el mismo que el punto 2, solamente esnecesario reemplazar las lneas de cdigo siguiente:

    En la funcin principal [ ]=parametros ( )reeplazamos la line del for [0:1:1] que vaya de 0 a 1 paraque solo haga el for una sola vez debido a que el

    procesamiento se hace para una sola seal y no para doscomo se tenia inicialmente.Tambin se cambie el nombre de el archivo a cargar el cual esel que se gravo en el punto 1, para nuestro caso el archivo sellama voz_punto1.wav.

    Los resultados que se obtuvieron fueron los siguientes:

    Caractersticas de grabacin:F_muestreo = 8000NBits = 8

    Graficas obtenidas

    tenemos:10 tramos sonoros (en 1)10 tramos sordos (en 0)

    CONCLUSIONES

    El anlisis de la seal se hace por tramas de 5-40msen los cuales la seal de voz se mantiene casiconstante.

    El reconocimiento de voz es una de las aplicacionesdel procesamiento digital de seales que permiteinteraccin entre seres humanos y computadoras. ennuestro caso hacemos uso de matlab para digitalizary procesar la seal, el cual nos facilita el uso defiltros para enfatizar los formantes de la seal que esun parmetro muy importante de para elprocesamiento.

  • 7/29/2019 Procesamiento de Voz

    11/11

    El espectro de la seal de voz brinda la informacinrelevante de la seal, debido a que al obtener losformantes tenemos los fundamentos adecuados parafiltrar la seal, reducir informacin y sintetizar oreconstruir la misma.

    Matlab utilizado como herramienta para elprocesamiento de voz es un recurso poderoso para

    tratar seales y obtener patrones de anlisis de lasmismas, ya que con este herramienta se logra inclusosintetizar una nueva seal. Adems la facilidad conque nos permite filtra la seal es muy prctica.

    REFERENCIAS

    La voz y su espectro | Beln Ruiz Mezcua|[en linea]http://www.hezkuntza.ejgv.euskadi.net/r43-573/es/contenidos/informacion/dia6_sigma/es_sigma/adjuntos/sigma_27/11_la_voz.pdf

    Procesamiento digital de Seales de Voz| Modelos de produccin de Voz|Gomez, J.C [en lnea].http://www.fceia.unr.edu.ar/prodivoz/modelo_prod_voz.pdf

    Matlab: filters, voz humana |Renata guila, Pilar del roci|[en lnea].http://bloglabcom.files.wordpress.com/2011/03/practica_5-pilar-retana-aguilar.pdf

    El tono de la voz masculina y femenina en los informativos radiofnicos: unanlisis comparativo.| Emma Rodero Antn|[en lnea].http://bocc.ubi.pt/pag/rodero-emma-tono-voz-femenina.pdf