UNIVERSIDAD NACIONAL
PEDRO RUIZ GALLO
Facultad de Ciencias Físicas y Matemáticas.
Escuela profesional de Ingeniería en
Computación e Informática.
ALUMNO:
BARRETO ROJAS JEAN CARLOS
CHAVEZ ARBILDO JEISON PAUL
GUERRERO SILVA CARMEN
TANTARICO BANCES ERINSON
DOCENTE:
REYES LESCANO LUIS
CICLO:
2021– I
Reconocimiento de comandos de voz
utilizando técnicas de PDS
Un Sistema de Reconocimiento Automático del Habla (SRAH) es aquel sistema
automático que es capaz de gestionar la señal de voz emitida por un individuo. Dicha
señal ha sido pasada por un proceso de digitalización para obtener elementos de
medición (muestras), las cuales permiten denotar su comportamiento e implementar
procesos de tratamiento de la señal, enfocados al reconocimiento. Bajo este esquema,
la señal 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 través de algún software.
Debe cumplir con las siguientes tareas:
a) Preprocesamiento: convierte la entrada de voz a una forma que el reconocedor
pueda procesar.
b) Reconocimiento: identifica lo que se dijo (traducción de señal a texto).
c) Comunicación: envía lo reconocido al sistema (software/hardware) que lo requiere.
Los procesos de preprocesamiento, reconocimiento y comunicación son invisibles al
usuario. El usuario lo nota de manera indirecta como: certeza en el reconocimiento y
velocidad. Estas características 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, atrás, izquierda,
derecha y alto, aplicando técnicas de reconocimiento de voz conocidas.
Desarrollo
Las técnicas utilizadas en el reconocimiento del habla dependen, en buena parte, del
tipo de enunciado objeto de reconocimiento, del número de locutores, del vocabulario
y del tipo de micrófono utilizado. En un sistema que sólo 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 duración debidos a
diferentes velocidades de elocución. En el entorno doméstico, la incorporación del
reconocimiento facilita el control de electrodomésticos, por ejemplo la programación
de un video. En un coche, el reconocimiento de palabras aisladas puede resultar útil
para ayudar a una conducción más segura, dado que permite, por ejemplo, encender
la radio, seleccionar una emisora o poner en marcha la calefacción sin apartar las
manos del volante ni la vista de la carretera. El desarrollo de este trabajo se realizó
bajo el seguimiento del algoritmo mostrado en la Figura 1. En los siguientes subtemas
se detalla el desarrollo e implementación de cada una de estas etapas.
1) Adquisición, Cuantificación y Muestreo
La primera etapa consiste en la adquisición, la cuantificación y el muestreo.
Para ello, MATLAB cuenta con librerías especialmente diseñadas para el
trabajo con señales de audio. La librería o función utilizada para esta etapa es:
WAVRECORD (N, FS, CH) donde graba N muestras de audio (*.wav) a una
frecuencia de muestreo FS desde CH números de canales de entrada. Las
tasas de muestreo estándar 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=estéreo). Para este sistema se utiliza sólo una entrada
(mono). Para la cuantificación, el valor por default es double = 16 bits por
muestra. Mediante la utilización de un micrófono multimedia se implementó la
adquisición de las señales de voz, por medio de la tarjeta de sonido de una PC.
2) Cortar silencio
A la hora de adquirir la señal, la mayoría de las veces existe al principio de la
señal un tramo sordo. Para contrarrestar esto, se utiliza la función
especialmente diseñada para obtener sólo los tramos donde la señal es sonora
(función cort_sil(x)), dada la siguiente ecuación:
Donde Es es la energía promedio de cada segmento s de tamaño N; ET es la
energía total promedio de la señal completa x de longitud L. Entonces, si la
energía promedio del segmento es mayor que la energía promedio de la señal
completa por un umbral, se dice que el segmento es sonoro sí se cumple la
siguiente condición.
3) Preénfasis
El filtro de preénfasis (función filtro(x)) permite acentuar las frecuencias de la
señal de voz, esto debido a que el modelo del tracto vocal no filtra de buena
manera las señales de frecuencias altas (no sonoras, por ejemplo
consonantes), a diferencia de las frecuencias bajas (sonoras, por ejemplo:
vocales). El filtro de preénfasis esta dado por la función de transferencia:
Se dice que la señal de voz es cuasi–estacionaria a intervalos cortos de 20 a
30 ms. Se ha utilizado la función segmentos(x) para una segmentación de 20
ms, con un solapamiento de 10 ms (50 %), multiplicado por la ventana de
Hamming también de 20 ms (220 muestras). En esta etapa se obtiene una
matriz de: número de segmentos por 220 muestras (num_seg*220). Lo que
significa que cada segmento consta de 220 muestras.
4) Predicción Lineal
El método de predicción lineal o LP (Linear Prediction) es históricamente uno
de los métodos más importantes para el análisis 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 Auto–regresivo (AR) que utiliza la función
de autocorrelación de la señal para generar una función de transferencia
racional que sólo tiene polos en el plano Z.
Donde G es la ganancia del filtro, P es el número de coeficientes deseados (de
10–15).
5) Coeficientes Cepstrum
Se define como: la transformada inversa de Fourier del logaritmo de la
magnitud de la transformada de Fourier. Esta técnica homomórfica sirve para
separar la acción del tracto vocal (filtro lineal variable en el tiempo) de la señal
de excitación. La señal de voz s(n) se descompone en una parte de excitación
e(n) y en un filtro lineal H(es ). Para la obtención de estos coeficientes se utilizó
la función de MATLAB rceps(x), la cual devuelve los coeficientes Cepstrum de
un vector dado.
6) Olinomios Ortogonales
Esta técnica se utiliza para la caracterización de las palabras, la ecuación para
la calcularlos es la siguiente:
Donde b son los coeficientes característicos de primer orden, xj es el vector de
entrada, y P1j es una matriz igual a j–5 filas= (–4:4) y columnas= tamaño del
vector de entrada.
7) Clasificación de patrones
El algoritmo utilizado para este fin es el «Alineamiento temporal dinámico,
Dynamic Time Warping». En esta etapa se relacionan, la palabra de entrada
(matriz de características) con las diferentes palabras almacenadas. Esta
técnica es óptima cuando se trata de vocabularios reducidos, es decir, cuando
se tienen pocos comandos por reconocer como es el caso.
8) Determinación y decisión
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.
9) Clasificación de patrones de voz
Cada uno de los comandos existentes en la base de datos con el comando de
entrada. La función [dmin,ind]=min([d0,d1,d2,d3,d4]), nos regresa el elemento
mínimo del vector junto con su índice, éste es el que utilizamos para hacer la
decisión y mostrar los resultados.
DISCUSIÓN DE RESULTADOS
Para el procesamiento y análisis de la voz se desarrolló la interfaz gráfica 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 físicamente 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 distribución antes mencionada. Un 1
significa orden reconocida (LED encendido), mientras que un cero LED
apagado u orden no reconocida.
Se capturaron 10 veces cada palabra para encontrar la siguiente tabla de confusión
(Tabla 2). Cabe destacar que la prueba se hizo con cuatro usuarios diferentes y se
obtuvieron los mismos resultados.
CONCLUSIONES
El objetivo de reconocer comandos de voz utilizando diferentes técnicas de PDS se
cumplió ampliamente; sin embargo, una aplicación futura de este trabajo puede estar
encaminada a sistemas mecatrónicos activados por habla, tales como sillas de ruedas
dirigidas por voz, el encendido y apagado de las luces de una habitación, 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 sólo palabras no locutores.