Sie sind auf Seite 1von 13

DEPARTAMENTO DE INGENIERA ELECTRNICA Y COMUNICACIONES CENTRO POLITCNICO SUPERIOR UNIVERSIDAD DE ZARAGOZA

TECNOLOGIAS DE LA VOZ
100

50

-50

-100

1000

2000

3000

4000

PRCTICA I LA SEAL DE VOZ Caractersticas acstico-fonticas: Generacin

LA SEAL DE VOZ Caractersticas acstico-fonticas Generacin I. Introduccin El procesado digital de seales de voz es una de las reas mas fructferas dentro del campo de aplicaciones del procesado digital de seal. Para poder comprender y solventar las dificultades con las que nos encontramos a la hora de desarrollar tecnologas de la voz, esta primera prctica tiene como objetivo bsico el estudio de la seal de voz desde el punto de vista acstico-fontico. Para ello, estudiaremos caractersticas temporales y frecuenciales de sonidos bsicos, relacionando estas caractersticas con el proceso de generacin de la seal de voz. Esta prctica es un complemento al captulo II (Generacin de la seal de voz: Produccin) del temario. Al finalizar esta prctica, el alumno debe consolidar: 1. Identificacin de sonidos sonoros/sordos 2. Nocin de pitch y formantes 3. Nocin de coarticulacin 4. Fonemas y alfonos 5. Modelos de pulso glotal y tracto vocal 6. Sntesis de vocales II. Estudio previo Nota importante El estudio previo consiste en una serie de ejercicios que hay que realizar antes de iniciar la prctica. Una copia del mismo hay que entregarla al iniciar la prctica en el laboratorio. Los conceptos tericos necesarios para realizar la prctica han sido desarrollados en el tema II de las clases tericas. 1. La figura 1 muestra la forma de onda de una realizacin por parte de un locutor masculino de la frase "Los brbaros invadieron el imperio romano". a. Escribir la representacin fontica de la frase utilizando el sistema SAMPA ( apndice A y B ). b. Realizar, de la forma ms precisa posible, la segmentacin fontica de la forma de onda, indicando el inicio y final de cada fonema sobre la forma de onda. Hacer una tabla indicando las muestras de inicio y final (aproximadamente) de cada fonema. 2. La figura 2 muestra cuatro formas de onda y sus correspondientes espectros estimados mediante una FFT de cuatro alfonos. a. Para cada uno de ellos, indicar: - tipo de excitacin - para los sonoros, frecuencia de pitch - Posicin aproximada de los formantes b. Dad una posible lista de fonemas que podran corresponderse con estos alfonos. Justificar la asignacin

500 0 -500 90 45 dB 0 0 2000 4000 frecuencia 6000 8000

0.005

0.01

0.015 tiempo

0.02

0.025

0.03

5000 0 -5000 0 100 80 dB 60 40 0 2000 4000 frecuencia 6000 8000 0.005 0.01 0.015 tiempo 0.02 0.025 0.03

200 0 -200 0 65 45 dB 25 0 0 2000 4000 frecuencia 6000 8000 0.005 0.01 0.015 tiempo 0.02 0.025 0.03

1 0

x 10

-1 0 110 90 dB 70 50 0

0.005

0.01

0.015 tiempo

0.02

0.025

0.03

2000

4000 frecuencia
Figura 2.

6000

8000

3. La figura 3 muestra el modelo bsico de produccin digital de la seal de voz. Basado en el filtrado inverso de la seal de voz, Rosenberg (1971) defini el modelo de pulso glotal representado por la ecuacin

1 1 cos(n / N1 ) 2 gR [ n] = cos ( n N1 ) / ( 2 N2 ) 0

0 n N1 N1 n N1 + N2 otros valores

ganancia sonidos sonoros generador tren impulsos modelo de pulso glotal

sonoro periodo de pitch generador ruido aleatorio sordo

u(n)

modelo tracto vocal H(z)

modelo radiacin R(z)

voz s(n)

ganancia sonidos sordos


Figura 3. Escribir una funcin de Matlab que calcule los N1 + N2 +1 puntos del pulso glotal de Rosenberg y calcule la respuesta frecuencial del pulso glotal. La funcin debe llamarse [g,G,W]=glottalR(N1,N2,Nfreq)

donde g es la forma de onda del pulso glotal de longitud N1+N2+1, G es la respuesta frecuencial del pulso glotal en las Nfreq frecuencias W entre 0 y radianes. 4. Una aproximacin utilizada para modelar la transmisin del sonido por el tracto vocal es la suposicin de que el tracto vocal puede ser modelado por una concatenacin de tubos acsticos de distinta seccin e igual longitud y sin prdidas, como el presentado en la figura 4.

glotis

A1 x

A2

A3

A4

A5

A6

A7

labios

Figura 4.

En tema II hemos visto que para seales muestreadas con un periodo T = 2 , donde =x/c, este modelo se corresponde con un filtro digital tipo celosia (lattice filter) cuya funcin de red para rG=1 (no hay prdidas en la glottis) se puede expresar como

V (z) =

(1 + r )z
k =1 k

N / 2

D( z )

El polinomio del denominador D(z) cumple la siguiente recursin

D0 ( z ) = 1 Dk ( z ) = Dk 1 ( z ) + rk z k Dk 1 ( z 1 ) D( z ) = DN ( z )
donde los rk son los coeficientes de reflexin en la conexin de los tubos,

k = 1, 2, K , N

rk =

Ak +1 Ak Ak +1 + Ak

En este modelo se supone que todas las prdidas se producen en la unin con los labios a travs del coeficiente de reflexin rL = rN y AN +1 es el rea de una tubo de impedancia adaptada (no hay reflexin en su final) que puede ser elegida para introducir las prdidas en el sistema. Despreciando el retardo de N/2 en V(z), podemos reescribir la funcin de red como,

V (z) =

G = D( z )

G 1 k z k
k =1 N

Se dispone de una funcin en Matlab que nos permite calcular los coeficientes de reflexin y el polinomio D(z) dado un array de reas de tubos y el coeficiente de reflexin en los labios. Sea la llamada a dicha funcin de la siguiente forma

[r,D,G]=AtoV(A,rN) donde rN es el coeficiente de reflexin en los labios (abs(rN)<1), A un array de reas, D un array con los coeficientes del denominador, G el numerador de la funcin de red y r los coeficientes de reflexin correspondientes. Escribir una funcin en Matlab que nos permita dibujar la secuencia de tubos, la respuesta frecuencial del sistema y d como salida la respuesta impulsional del sistema. La llamada a la funcin ser [h,H,W]=tracvo(A,rN,Nfreq) donde h es la respuesta impulsional, H es la respuesta frecuencial en Nfreq frecuencias W de 0 a radianes, rN es el coeficiente de reflexin en los labios A es el array de reas. 5. Para sonidos sonoros, la seal de excitacin es un tren de impulsos cuasi-periodicos que excita al modelo de pulso glotal, al tracto vocal y al modelo de radiacin. El modelo de radiacin se corresponde con una funcin de sistema paso-alto definida como

R( z ) = 1 z 1
Escribir una funcin en Matlab que permita sintetizar un sonido sonoro a partir de un array de reas y el coeficiente de reflexin en los labios. Para ello hacer uso de las funciones anteriores y las funciones filter() y conv() de Matlab. La llamada a la funcin ser s=sinte(A,rN,fpitch,N1,N2,Nperiod,fmues) donde fmues es la frecuencia de muestreo, Nperiod es el nmero de periodos de seal a sintetizar, N1 y N2 son los parmetros que definen el pulso glotal de Rosenberg, fpitch es la frecuencia de pitch de la seal a sintetizar, rN es el coeficiente de reflexin en los labios, A es el array de reas y s es la seal sintetizada.

III. Realizacin de la prctica Nota importante Para la realizacin de la prctica en el laboratorio es imprescindible haber realizado y presentado al inicio de la misma una copia del estudio previo. Parte 0. Conversin A/D y D/A de la seal de voz Los ordenadores utilizados en la realizacin de las prcticas disponen de una placa de adquisicin tipo Sound Blaster que permite realizar la conversin A/D y D/A de seales de audio a partir de programas propios de Sound Blaster o a traves de Matlab (Conversin D/A, de momento). Como vamos a trabajar con Matlab, veamos el proceso a seguir para la conversin A/D y D/A desde el entorno Matlab. Conversin D/A Para la conversin D/A, Matlab dispone de una funcin que nos permite realizar la conversin D/A de una seal almacenada en un array. Dicha funcin se llama de la siguiente forma sound(x,fs) donde x es el array de muestras y fs es la frecuencia de muestreo. Para mas informacin help sound en el entorno Matlab. Conversin A/D De momento no disponemos de una funcin sobre PC para la conversin A/D directamente desde Matlab. Sin embargo, podemos hacer el proceso de conversin A/D a travs del programa Grabadora de Sonidos del sistema Windows. Este programa permite convertir A/D y almacenar la seal en ficheros tipo .wav que podemos leer desde Matlab con la funcin wavread() (para mas informacin sobre la funcin help wavread en el entorno Matlab). Antes de realizar la conversin A/D, debemos fijar el nivel de grabacin y los valores de grabacin (nmero de bits, frecuencia de muestreo, etc). Para ello disponemos del menu opciones donde podemos activar el mezclador para fijar los niveles de grabacin y fijar los parmetros de grabacin. Como valores fijos utilizaremos 16 bits y grabacin mono. La grabacin se activa presionando con el ratn en el botn con el crculo rojo (botn de la derecha). La grabacin se puede escuchar pulsando en el boton de la izquierda (play). Una vez validada la grabacin, en el menu fichero se puede grabar la seal adquirida en un fichero con extensin .wav.

1. Utilizando el programa Grabadora de Sonidos convertir y escuchar a distintas frecuencias de muestreo desde 44 kHz a 8 kHz la frase las seis casas se sostienen fuera por si solas Cmo afecta la frecuencia de muestreo en la intelegibilidad de los distintos sonidos de la frase?

Parte 1. Segmentacin y etiquetado fontico En este apartado vamos a verificar y precisar mejor la segmentacin realizada en el estudio previo. Para ello leer el fichero nino.mat mediante el comando load. El resultado es el array sam que contiene las muestras de la frase utilizada en el estudio previo con una frecuencia de muestreo a 16 kHz.

2. Repetir el apartado 1 del estudio previo para precisar mejor la segmentacin realizada utilizando las posibilidades tanto grficas como de procesado de seal de Matlab.

3. Leer el fichero roma.mat (variable samples) y comentar las diferencias mas notables con relacin a la seal anterior. 4. Verificar que en ambas seales, la transcripcin fontica es la adecuada. 5. (pcional) Grabar la frase "Los brbaros invadieron el imperio romano" con vuestra voz y comentar las diferencias ms notables en relacin a los anteriores ficheros.

Parte 2. Estudio del modelo de pulso glotal Generar un pulso glotal, gR, utilizando la funcin glottalR con N1=40 y N2=10. Crear un pulso glotal causal, g RC, de la forma

gRC [ n ] = gR ( n N1 N2 )

para ello utilizar las funciones Matlab fliplr() o flipup() segn se trabaje con vectores lnea o columna.

6. Cal es la relacin analtica entre las transformadas de Fourier de ambas seales? 7. Dibujar la forma de onda de ambos pulsos, as como el mdulo de la transformada de Fourier. Experimentar con los parmetros del modelo, viendo como afecta la forma del pulso temporal en su respuesta en frecuencia. 8. Utilizando la funcin roots() de Matlab, encontrad los zeros de la transformada z de los pulsos glotales g R y g RC. Dibujar su posicin utilizando la funcin zplane(). Comentar las diferencias y resultados.

Parte 3. Estudio del modelo del tracto vocal Para la realizacin de esta parte de la prctica, utilizaremos los siguientes valores de las reas del modelo de tubos.

Seccin Vocal a Vocal i

1 1.6 2.6

2 2.6 8

3 0.65 10.5

4 1.6 10.5

5 2.6 8

6 4 4

7 6.5 0.65

8 8 0.65

9 7 1.3

10 5 3.2

9. Utilizando la funcin definida en el estudio previo AtoV(), obtener el denominador D(z) de la funcin de red del sistema del tracto vocal para ambas vocales con rN=0.71 y rN=1. Factorizar el polinomio D(z) y dibujar los polos en el plano z utilizando zplane(). Como afecta rN en la posicin de los polos?. Convertir los ngulos de las raizes a frecuencias analgicas, suponiendo una frecuencia de muestreo de 8000 Hz. 10. Utilizando la funcin creada en el estudio previo tracvo(), dibujar el modelo de tubos y su respuesta frecuencial para los casos del apartado anterior.

Parte 4. Sntesis de vocales

Para la realizacin de esta parte de la prctica, supondremos que la frecuencia de muestreo es 8000 Hz. 11. Utilizando la funcin creada en el estudio previo sinte(), sintetizar las dos vocales utilizadas en la parte 3 de la prctica con un pitch de 100 Hz y 250 Hz, N1=40, N2=10 y rN=0.7 en ambos casos. Almacenar las seales sintetizadas para un apartado posterior. Qu ocurrira si utilizamos rN=1? 12. Utilizando la funcin sound(), escuchar las seales sintetizadas. 13. Suponed que la excitacin del tracto vocal es de tipo susurro (turbulencia producida en la glotis). Este tipo de excitacin se puede modelar mediante un ruido aleatorio de tipo gaussiano de media cero (funcin randn() ). Repetir el apartado 11 con este tipo de excitacin. Escuchar las seales sintetizadas y compararlas con el caso de excitacin periodica. Seleccionar un segmento de 256 muestras y utilizando la funcin fft() dibujar la magnitud en dB del espectro de la seal sinttica para el caso de excitacin periodica y aleatoria.

Apendice A: Notacin fontica SAMPA

SAMPA p b t d k g m n N J tS B f T D s z jj x G l L rr r i j e a o u w

explosiva bilabial sorda explosiva bilabial sonora explosiva dental sorda explosiva dental sonora explosiva velar sorda explosiva velar sonora nasal bilabial sonora nasal alveolar sonora nasal velar sonora (precede a una consonante velar) nasal palatal sonora africada palatal sorda aproximante bilabial sonora fricativa labiodental sorda fricativa interdental sorda aproximante dental sonora fricativa alveolar sorda fricativa alveolar sonora (precede a una consonante sonora) fricativa palatal sonora fricativa velar sorda aproximante velar sonora lateral alveolar sonora lateral palatal sonora vibrante mltiple alveolar sonora vibrante simple alveolar sonora vocal anterior cerrada semivocal palatal (aproximante palatal sonora) vocal anterior media vocal central abierta vocal posterior media redondeada vocal posterior cerrada redondeada semivocal labiodental (aproximante labio-velar sonora)

Ejemplo pala bala tala dar cala gala mala nada hongo caa chico lava falso zona cada sala desde ayer jamn lago la llana carro caro tila labio tela tal todo tul agua

Transcripcin pala bala tala dar kala gala mala naDa oNgo kaJa tSiko laBa falso Tona kaDa sala dezDe ajjer xamon laGo la Lana karro karo tila laBjo tela tal toDo tul aGwa

Apendice B: Reglas de transcripcin SAMPA

grafema <a> <b>

<c>

reglas para la transcripcin SAMPA a despus de pausa: b tras <m> o <n>: b otros casos: B seguida por <e> or <i>: T al final de palabra y seguida por <l> or <r>: G seguida por <b>, <d>, <g> (ante <a>, <o>, <u>), <m>, <n>, <> o <v>: G otros casos : k

ejemplos

com-ba: kom-ba la-bio: la-Bjo ce-lo: Te-lo

<ch>

tS

ac-ne: aG-ne tac-to: tak-to coro: ko-ro te-cla: te-kla che-lo: tSe-lo

<d>

<e> <f> <g>

despus de pausa: d tras <l>, <m> o <n>: d otros casos: D e f despus de pausa y seguida por <r>, <l>, <a>, <o> o <u>: g tras <m> or <n> y seguida por <a>, <o> o <u>: g seguida por <i> o <e>: x otros casos: G

cal-do: kal-do co-do: ko-Do co-fia: ko-fja

<h>

<i>

al inicio de slaba y seguida por <ie>: jj al inicio de slaba y seguida por <ue>: G otros casos: muda en posicin silbica nuclear: i en posicin silbica no nuclear: j x k l L m seguida por <p>, <b>, <v>, <m> o <f>: m seguida por <c> (ante <a>,<o>,<u>,<r> o <l>), <g>,<j> o <qu>: N otros casos: n J o p always followed by <u>: k al inicio de palabra: rr tras <l>, <n> o <s>: rr otros casos: r

<j> <k> <l> <ll> <m> <n>

ton-go: ton-go ge-nio: xe-njo ti-gre: ti-Gre la-go: la-Go hier-ba: jjer-Ba ahue-car: a-Gue-car ha-lo: a-lo ti-po: ti-po cie-lo: Tje-lo ar-ma-rio: ar-ma-rjo ja-ra-na: xa-ra-na kios-ko: kjos-ko lote: lo-te ta-llo: ta-Lo ar-ma: ar-ma an-fo-ra: am-fo-ra an-ca: aN-ka co-no: ko-no u-a: u-Ja pe-rro: pe-rro que-so: ke-so ra-ma: rra-ma hon-ra: on-rra ar-pa: ar-pa tram-pa: tram-pa pe-ra: pe-ra a-mor: a-mor ca-rro: k-a-rro ras-go: rraz-Go ca-sa: ka-sa tras-to: tras-to at-leta: aD-leta to-ro: to-ro que-so: ke-so lu-jo: lu-xo u o-tro: w o-tro ci-ge-a: Ti-Gwe-Ja con ve-lo: kom be-lo cal-vo: kal-Bo whis -ky: gwis-ki wa-ter: Ba-ter e-xa-men: eG-sa-men ex-ter-no: es-ter-no

<> <o> <p> <q> <r>

<rr> <s>

rr seguida por <b>, <d>, <g> (ante <a>, <o>, <u>, <r> o <l>), <l>, <m>, <n>, <r> o <v>: z otros casos: s al final de slaba: D otros casos: t sin diresis tras <g> o <q> : muda en posicin silbica nuclear: u conjuncin: w en posicin silbica no nuclear: w despus de pausa: b tras <m> o <n>: b otros casos: B en palabras extranjeras: Gu, g o como <v> en posicin no inicial de palabra y ante una vocal: Gs otros casos: s

<t> <u>

<v>

<w> <x>

<y>

al inicio de slaba y seguida de vocal: jj conjuncin en contacto con una vocal distinta de <y>: j conjuncin entre dos vocales distintas de <y>: jj conjuncin en otras situaciones: i otros casos: se trata como <i> T

<z>

yun-que: jjun-ke con-yu-ge: kon-jju-Ge ra-so y tul: rra-so j tul se-sen-ta y u-no: se-sen-ta jj u-no dos y dos: dos i Dos muy: mwi zar-za: Tar-Ta tiz-ne: tiT-ne

Das könnte Ihnen auch gefallen