You are on page 1of 6

Asignatura: Comunicación y Codificación Digital

Actividades del 8 de mayo de 2017

Tema: Características de señal voz


Gonzalo Olmedo

gfolmedo@espe.edu.ec

Introducción
Estimado estudiante, hemos venido analizando cada uno de los bloques que componen un
sistema de comunicación digital [1] y hemos llegado al punto de transmitir una señal de voz
digitalizada. Para ello vamos a comenzar analizando en este módulo cada una de las
componentes básicas de una señal de voz a través de MATLAB.

El proceso de producción de voz se inicia por el paso del aire a través de las cuerdas bucales,
cuando están tensas y vibran producen sonidos sonoros (Voiced speech) y cuando están
relajadas producen sonidos sordos (Unvoiced sound) [2].

Muestreo de la señal de voz


Para iniciar nuestro análisis requerimos una señal de voz de muestra, para lo que vamos a
grabar el sonido de la letra “a” utilizando el programa MATLAB y siguiendo los pasos
detallados a continuación:

1. Verificamos que se encuentre activo el micrófono el computador.


2. Abrimos MATLAB
3. Definimos el tiempo de grabación en la línea de comando:
>> segundos=2
4. Pronunciamos la letra “a” mientras ejecutamos en la línea de comando

>> [x,fm]=daqrecord(segundos)

ver también wavrecord

1
Otra forma de grabar
r = audiorecorder;
disp('Iniciando')
recordblocking(r,4);
disp('Fin.');
play(r);
x = getaudiodata(r);
fm=8000;

En este caso se graba por el micrófono la letra “a” por dos segundos, con una
frecuencia de muestreo, fm, de 8kHz, es decir obtendremos 16000 muestras en la
variable “x”.
5. Reproducimos el sonido utilizamos la función soundsc(x,fm).
6. Graficamos la señal “x” usando la función plot(x) y obtendremos unaseñal similas a
la Figuraservemos la señal de nuestra voz.

Figura 1. Señal de voz en función al número de muestras

Espectro de la Señal de Voz


Es hora de confirmar lo que hemos venido escuchando tantas veces en semestres anteriores,
que la señal de voz se encuentra en un rango de frecuencia de 0 a 4000 Hz. Para lo que
obtenemos la transformada rápida de Fourier usando la función [frec,XF] = transfourier(x,fs)
del profesor.

2
Figura 2. Señal de voz en función en función de la frecuencia

Espectrograma
El espectrograma es una representación visual de las variaciones de la frecuencia en el eje
vertical y de la intensidad mediante los niveles de colores o grises del sonido que se está
representando a lo largo del tiempo en el eje horizontal.

Para obtener el espectrograma de nuestra señal de voz en una ventana de 256 muestras con
frecuencia de muestreo 8kHz utilizamos la función specgram(x,256,8000).

3
Figura 3.-espectrograman de la señal de voz

Frecuencia Fundamental (Pitch fo)


Es la tasa de vibración de las cuerdas vocales, es decir el número de veces que vibran las
cuerdas vocales por segundo. La frecuencia fundamental y el periodo fundamental son
magnitudes inversas.
1
𝑓0 [𝐻𝑧] = 𝑇 (1)
0

Cuando se tiene la señal de voz discretizada, se define No al periodo fundamental en el


dominio del tiempo discreto, y es dado por:

𝑚𝑢𝑒𝑠𝑡𝑟𝑎𝑠
𝑁0 [𝑚𝑢𝑒𝑠𝑡𝑟𝑎𝑠] = 𝑓𝑚 [ ] 𝑇0 [𝑠] (2)
𝑠

𝑓𝑚 [𝑚𝑢𝑒𝑠𝑡𝑟𝑎𝑠/𝑠]
𝑁0 [𝑚𝑢𝑒𝑠𝑡𝑟𝑎𝑠] = (3)
𝑓0 [𝐻𝑧]

Para obtener la frecuencia fundamental, vamos a observar con detalle la señal en función del
número de muestras presentado en la Figura 1. Si hacemos un Zoom podemos observar que
existe una región donde aparentemente la señal se repite por ciclos, para el ejemplo, esta
característica lo podemos observar en la Figura 4. Finalmente, al fijar ampliar más se puede
obtener un período de repetición y verificar el número de muestras que contiene este período
y obtener así el período fundamental N0. Para nuestro ejemplo, podemos observar en la Figura
5 que el período fundamental N0 y usando la ecuación (3), considerando que la frecuencia de
muestreo fue fm=8 kHz, conseguimos obtener que la frecuencia fundamental es igual a 129,87
Hz.

4
Figura 4. Señal de voz en función al número de muestras

Figura 5. Señal de voz en función al número de muestras (Período fundamental)

El rango típico de variación de la frecuencia fundamental es para el hombre de 50 a 250 Hz

y para la mujer de 120 a 500 Hz.

Determinación del la frecuencia fundamental por autocorrelación


Podemos usar una forma automática para obtener el valor de la frecuencia fundamental,
comparándola en espacios de tiempo con ella misma por correlación. Para esto vamos a
considerar ventanas de tiempo de 20 ms y seguir los para pasos listados a continuación:

1. Cargamos la señal de la voz en la variable “x” muestreada a 8 kHz


2. Obtenemos el número de muestras en 20 ms
>> N=floor(0.02*fm)
3. Obtenemos la correlación en espacios de 20 ms, normalizada en uno.
>> C=xcorr(x,N,'coeff')
4. Para verificar los valores de correlación graficamos C.
5. Se puede observar que tenemos como resultado una función idéntica en la parte
positiva y la parte negativa.
6. Para obtener la frecuencia fundamental, vamos a buscar el pico más alto de
correlación, diferente a uno. Para ello incrementamos um desvio de 2ms o 500 Hz

5
>> N1=floor(0.002*fm);
7. Obtenemos el valor máximo y su posición:
[x0,vmax]=max(C(N+N1:2*N+1))
8. De esta forma podemos obtener el período fundamental y la frecuencia fundamental
>> t0=(vmax+N1)/fm;
>> f0=1/t0;

REFERENCIAS:

[1] Simons Haykin, Digital Communications, LIMUSA WILEY, 2001.

[2] Rabiner, Digital processing of speech signals, PRETINCE hall, 2008.

ACTIVIDAD 1

Cada estudiante de forma individual debe obtener la frecuencia fundamental de su propia voz.
Graficar las muestra de voz, el diagrama espectral, el espectrograma y comparar los resultados
obtenidos por dos método presentados. Comparar los resultados con los obtenidos por sus
compañeros y compañeras.