You are on page 1of 10

Reconocimiento de comandos de voz utilizando

tcnicas de PDS aplicadas a robtica

Villarreal Robles, G.
Olivera Reyna, R.
Unidad Acadmica de Ingeniera Elctrica
Universidad Autnoma de Zacatecas
Campus Jalpa

RESUMEN

En el presente trabajo se cre una interfaz grfica de usuario (GUI, Graphical User

Interfaces) en MATLAB, para el reconocimiento de palabras aisladas (comandos),

utilizando un micrfono multimedia y la tarjeta de audio de una computadora

personal. Para la caracterizacin de las palabras, se aplicaron tcnicas como:

prediccin lineal, coeficientes Cepstrum y polinomios ortogonales.

INTRODUCCIN

Un Sistema de Reconocimiento Automtico del Habla (SRAH) es aquel sistema

automtico que es capaz de gestionar la seal de voz emitida por un individuo.

Dicha seal ha sido pasada por un proceso de digitalizacin para obtener elementos

de medicin (muestras), las cuales permiten denotar su comportamiento e

implementar procesos de tratamiento de la seal, enfocados al reconocimiento. Bajo

este esquema, la seal de voz se ve inmersa en dos bloques importantes:

entrenamiento y reconocimiento. El reconocimiento de voz generalmente es utilizado

como una interfaz entre el ser humano y la computadora a travs de algn software.

Debe cumplir con las siguientes tareas:

a) Preprocesamiento: convierte la entrada de voz a una forma que el reconocedor

pueda procesar.

1
b) Reconocimiento: identifica lo que se dijo (traduccin de seal a texto).

c) Comunicacin: enva lo reconocido al sistema (software/hardware) que lo

requiere.

Los procesos de preprocesamiento, reconocimiento y comunicacin son invisibles al

usuario. El usuario lo nota de manera indirecta como: certeza en el reconocimiento y

velocidad. Estas caractersticas las utiliza para evaluar una interfaz de

reconocimiento de voz. El objetivo fue crear un sistema de reconocimiento de

palabras aisladas que sea capaz de reconocer 5 rdenes distintas, las cuales son:

adelante, atrs, izquierda, derecha y alto, aplicando tcnicas de reconocimiento de voz

conocidas.

Desarrollo

Las tcnicas utilizadas en el reconocimiento del habla dependen, en buena parte, del

tipo de enunciado objeto de reconocimiento, del nmero de locutores, del

vocabulario y del tipo de micrfono utilizado. En un sistema que slo tenga que

tratar palabras aisladas, la tarea se reduce, en esencia, a comparar la palabra de

entrada con una plantilla almacenada previamente de la misma palabra,

contemplando, no obstante, las posibles variaciones entre locutores o los cambios de

duracin debidos a diferentes velocidades de elocucin.

En el entorno domstico, la incorporacin del reconocimiento facilita el control

de electrodomsticos, por ejemplo la programacin de un video. En un coche, el

reconocimiento de palabras aisladas puede resultar til para ayudar a una

conduccin ms segura, dado que permite, por ejemplo, encender la radio,

seleccionar una emisora o poner en marcha la calefaccin sin apartar las manos del

volante ni la vista de la carretera. El desarrollo de este trabajo se realiz bajo el

2
seguimiento del algoritmo mostrado en la Figura 1. En los siguientes subtemas se

detalla el desarrollo e implementacin de cada una de estas etapas.

Figura 1. Diagrama de bloques del sistema reconocedor de palabras.

1) Adquisicin, Cuantificacin y Muestreo

La primera etapa consiste en la adquisicin, la cuantificacin y el muestreo. Para ello,

MATLAB cuenta con libreras especialmente diseadas para el trabajo con seales de

audio. La librera o funcin utilizada para esta etapa es: WAVRECORD (N, FS, CH) donde

graba N muestras de audio (*.wav) a una frecuencia de muestreo FS desde CH

nmeros de canales de entrada. Las tasas de muestreo estndar son: 8000, 11025,

22050, 44100 Hz. En este caso se tom como FS = 11025 Hz. CH puede ser 1 o 2

dependiendo como se desee, (1=mono, 2=estreo). Para este sistema se utiliza slo

una entrada (mono). Para la cuantificacin, el valor por default es double = 16 bits por

3
muestra. Mediante la utilizacin de un micrfono multimedia se implement la

adquisicin de las seales de voz, por medio de la tarjeta de sonido de una PC

(Personal Computer, computadora personal) (Figura 2).

Figura 2. Micrfono multimedia.

2) Cortar silencio

A la hora de adquirir la seal, la mayora de las veces existe al principio de la seal

un tramo sordo. Para contrarrestar esto, se utiliza la funcin especialmente diseada

para obtener slo los tramos donde la seal es sonora (funcin cort_sil(x)), dada la

siguiente ecuacin:

N
1 1 L 2
Es =
N
s
n =1
2
(n) y ET = x (l )
L l =1
(1)

Donde Es es la energa promedio de cada segmento s de tamao N; ET es la energa

total promedio de la seal completa x de longitud L. Entonces, si la energa promedio

del segmento es mayor que la energa promedio de la seal completa por un umbral,

se dice que el segmento es sonoro s se cumple la siguiente condicin.

ES > ET *umb.

En la Figura 3, se ha tomado como muestra la palabra Adelante.

4
Figura 3. Grfica de la palabra adelante antes y despus de cortar el silencio.

3) Prenfasis

El filtro de prenfasis (funcin filtro(x)) permite acentuar las frecuencias de la seal

de voz, esto debido a que el modelo del tracto vocal no filtra de buena manera las

seales de frecuencias altas (no sonoras, por ejemplo consonantes), a diferencia de las

frecuencias bajas (sonoras, por ejemplo: vocales). El filtro de prenfasis esta dado por

la funcin de transferencia:

H ( z ) = 1 0.95 z 1 (2)

En la Figura 4 se muestra a la derecha la seal filtrada.

Figura 4. Seal de voz aplicando el filtro prenfasis.

Segmentacinenventanado mediante la ventana de Hamming

5
Se dice que la seal de voz es cuasiestacionaria a intervalos cortos de 20 a 30 ms. Se

ha utilizado la funcin segmentos(x) para una segmentacin de 20 ms, con un

solapamiento de 10 ms (50 %), multiplicado por la ventana de Hamming tambin de

20 ms (220 muestras). En esta etapa se obtiene una matriz de: nmero de segmentos

por 220 muestras (num_seg*220). Lo que significa que cada segmento consta de 220

muestras.

4) Prediccin Lineal

El mtodo de prediccin lineal o LP (Linear Prediction) es histricamente uno de los

mtodos ms importantes para el anlisis de la voz. Su fundamento se basa en

establecer un modelo de filtro del tipo todo polo, para la fuente de sonido. Es

equivalente a un modelo Autoregresivo (AR) que utiliza la funcin de

autocorrelacin de la seal para generar una funcin de transferencia racional que

slo tiene polos en el plano Z.


G
H ( z) = P
(3)
1 ak z k

k =1

Donde G es la ganancia del filtro, P es el nmero de coeficientes deseados (de 1015).

5) Coeficientes Cepstrum

Se define como: la transformada inversa de Fourier del logaritmo de la magnitud de

la transformada de Fourier. Esta tcnica homomrfica sirve para separar la accin del

tracto vocal (filtro lineal variable en el tiempo) de la seal de excitacin. La seal de

voz s(n) se descompone en una parte de excitacin e(n) y en un filtro lineal H(es). Para

la obtencin de estos coeficientes se utiliz la funcin de MATLAB rceps(x), la cual

devuelve los coeficientes Cepstrum de un vector dado.

6
6) Olinomios Ortogonales

Esta tcnica se utiliza para la caracterizacin de las palabras, la ecuacin para la

calcularlos es la siguiente:

x
j =1
j P1 j
(4)
b= 9

P
j =1
2
1j

Donde b son los coeficientes caractersticos de primer orden, xj es el vector de

entrada, y P1j es una matriz igual a j5 filas= (4:4) y columnas= tamao del vector de

entrada.
4 4 L 4
3 3 3
P1j= L
M M O M

4 4 L 4

7) Clasificacin de patrones

El algoritmo utilizado para este fin es el Alineamiento temporal dinmico, Dynamic

Time Warping. En esta etapa se relacionan, la palabra de entrada (matriz de

caractersticas) con las diferentes palabras almacenadas. Esta tcnica es ptima

cuando se trata de vocabularios reducidos, es decir, cuando se tienen pocos

comandos por reconocer como es el caso.

8) Determinacin y decisin

En esta etapa final que es la que decide que palabra se pronunci, se plantean una

serie de condiciones para obtener la menor distancia, que se obtuvieron al comparar.

7
9) Clasificacin de patrones de voz

Cada uno de los comandos existentes en la base de datos con el comando de entrada.

La funcin [dmin,ind]=min([d0,d1,d2,d3,d4]), nos regresa el elemento mnimo del

vector junto con su ndice, ste es el que utilizamos para hacer la decisin y mostrar

los resultados.

DISCUSIN DE RESULTADOS

Para el procesamiento y anlisis de la voz se desarroll la interfaz grfica de usuario

en MATLAB (GUI, Graphical User Interfaces) de MathWorks, Inc. Para utilizar la interfaz

no es necesario que el usurario tenga conocimientos avanzados sobre procesamiento

de voz. Como se puede observar en la Figura 4, la interfaz muestra las etapas antes

mencionadas, cabe destacar que para probar fsicamente este desarrollo, se utiliz el

puerto paralelo (PP) de una computadora, a cada uno de los comandos (ordenes) se le

asigno un bit del PP y a su vez se conecto un diodo emisor de luz (LED) para

representar los cinco comandos. En la Tabla 1 se muestra la distribucin antes

mencionada. Un 1 significa orden reconocida (LED encendido), mientras que un cero

LED apagado u orden no reconocida.

Figura 5. Descripcin de elementos de la interfaz.

8
TABLA 1
SALIDA POR EL PUERTO PARALELO

Bit 8 Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1


Atrs 0 0 0 0 0 0 0 1
Adelante 0 0 0 0 0 0 1 0
Izquierda 0 0 0 0 0 1 0 0
Derecha 0 0 0 0 1 0 0 0
Alto 0 0 0 1 0 0 0 0

Se capturaron 10 veces cada palabra para encontrar la siguiente tabla de confusin

(Tabla 2). Cabe destacar que la prueba se hizo con cuatro usuarios diferentes y se

obtuvieron los mismos resultados.

TABLA 2
TABLA DE CONFUSIN PARA EL SISTEMA

Atrs Adelante Izquierda Derecha Alto


Atrs 10 0 0 0 0
Adelante 0 10 0 0 0
Izquierda 0 0 10 0 0
Derecha 0 0 0 10 0
Alto 0 0 0 0 10

CONCLUSIONES

El objetivo de reconocer comandos de voz utilizando diferentes tcnicas de PDS se

cumpli ampliamente; sin embargo, una aplicacin futura de este trabajo puede estar

encaminada a sistemas mecatrnicos activados por habla, tales como sillas de ruedas

dirigidas por voz, el encendido y apagado de las luces de una habitacin, el

encendido de la radio, etc. El sistema al comparar con cada una de las palabras

muestra el resultado por el PP como unos y ceros. Con las pruebas que se hicieron

queda demostrado que el sistema puede funcionar para cualquier locutor, ya que

este sistema reconoce slo palabras no locutores.

9
BIBLIOGRAFA

E. J. Keogh., M. J. Pazzani, Derivative Dynamic Time Warping. Departamento de

Informtica y Ciencias de la Computacin de la Universidad de California,

Irvine, California, USA.

M. A. Mart Antonin, Tecnologas del Lenguaje, UOC, Barcelona Espaa, 271, 2003.

10

You might also like