0% encontró este documento útil (0 votos)
61 vistas6 páginas

Detección de Vocales en Matlab

Este documento describe un método para detectar vocales pronunciadas mediante la implementación de un código en Matlab. El código usa codificación predictiva lineal para obtener coeficientes de las grabaciones de vocales y entrenar una red neuronal para identificar las vocales basadas en estas características. El método puede reconocer vocales grabadas en tiempo real y mostrar la letra correspondiente.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
61 vistas6 páginas

Detección de Vocales en Matlab

Este documento describe un método para detectar vocales pronunciadas mediante la implementación de un código en Matlab. El código usa codificación predictiva lineal para obtener coeficientes de las grabaciones de vocales y entrenar una red neuronal para identificar las vocales basadas en estas características. El método puede reconocer vocales grabadas en tiempo real y mostrar la letra correspondiente.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

Detección de grabaciones de audio en matlab

Andrey Pinzón Rodrı́guez — Código N.o 20142005139*


21 de julio de 2019

Resumen
En este trabajo se presenta una forma de hacer una identificación de voz mediante la implementación
de un código en matlab. La idea es que un usuario pronuncie una de las vocales del alfabeto, y mediante un
mensaje, el software muestre una imagen de la letra que se acaba de pronunciar. Este trabajo se ha realizado
mediante la implementación de distintas herramientas tanto matemáticas como herramientas informáticas.
La principal herramienta que se ha empleado es la obtención de coeficientes LPC y un entrenamiento de
red neuronal artificial en matlab. Se han realizado una serie de grabaciones de las vocales por el usuario
principal del programa y estas grabaciones han sido analizadas para determinar las caracterı́sticas fonéticas
del usuario. Una vez obtenidas estas caracterı́sticas, se almacenan en una red neuronal artificial para que la
próxima vez que el usuario diga una vocal, el programa sea capas de identificar de que fonema se trata1 .
Palabras clave: Codificación predictiva lineal, autocorrelación, red neuronal artificial.

* Estudiante de la carrera de ingenierı́a electrónica de la Universidad Distrital Francisco José de Caldas. Correo Electrónico: miapin-

[email protected].
1 La terminologı́a empleada en esta parte se desarrolla a traves de todo el documento. Especialmente en la sección Introducción

1
1. Introducción ción de seguridad de la información. También hay que tener
en cuenta que la cantidad de grabaciones que se hacen para
Para esta práctica, se diseña un código que permite detectar obtener los coeficientes LPC, puede ser un factor que dismi-
una grabación de la voz humana(para este caso una graba- nuya la calidad del trabajo, ya que solamente se hacen 25
ción de las vocales) en tiempo real.El usuario pulsa un botón grabaciones por vocal. Tal vez si se hiciera un numero ma-
de grabación en el software de matlab2 y una vez sea detec- yor de grabaciones, por ejemplo 100 o 200, se podrı́a intuir
tada esta grabación, el programa hace una comparación de que los resultados serian mejores.
esta misma con una base de datos de audios previamente
almacenada.Después de dicha comparación, el código es ca- En general, este trabajo pretende mostrar una forma de
paz de detectar de qué vocal se trata y muestra un mensaje dar solución al problema plantea mediante la implementa-
con una imagen de dicha vocal. ción las herramientas que se han adquirido a lo largo del
Es de gran interés este trabajo, ya que no solamente per- curso de Procesamiento Digital de Señales. Se espera que el
mite al desarrollador de este mismo comprender los procesos código implementado sea capaz de reconocer las grabaciones
de análisis de señales de audio en matlab, sino que puede que se hacen en vivo y muestre un mensaje que contenga la
ser implementado en la industria moderna. Por ejemplo, en imagen de la vocal que se graba con la voz. En la sección
reconocimiento de voz para seguridad de la información, o 2, se mostrará parte de la teorı́a tanto matemática como de
reconocimiento de voz para el control de ingreso de algún procesamiento de señales que se utilizó para este trabajo y
establecimiento o para el ingreso a la vivienda de cada per- los experimentos que se llevaron a cabo antes de completar
sona. También podrı́a ser implementado para corroborar la esta práctica. En la sección 3 se muestran los resultados ob-
identidad de una persona. En general, las aplicaciones de tenidos con este trabajo y algunas gráficas para aclarar estos
este trabajo dependen de la imaginación de cada individuo. mismos. Los errores obtenidos y las posibles soluciones. En
En un trabajo anterior, se desarrolló un código que per- la sección 4 se hace un análisis de los resultados obtenidos y
mitı́a detectar las grabaciones de audio de las vocales me- en la sección 5 se muestran las conclusiones mas relevantes.
diante la implementación de Codificación de Predicción Li-
neal (LPC)3 por sus siglas en ingles. Con este trabajo se
pudo descomponer las grabaciones de audio en coeficientes 2. Formulación del problema
numéricos, a los cuales se les realizó un tratamiento para
identificar el tipo de vocal que se pronunciaba[1]. Con ayu- En esta sección se presenta una descripción detalla da
da de este trabajo previo se desarrolló el actual trabajo. del problema a resolver. Cuando hacemos una grabación de
Pero para completar la solución al problema planteado para audio, esta señal se puede analizar mediante diferentes he-
esta practica, se recurrió a una herramienta que proporciona rramientas tanto de software como matemáticas o ambas a
el software de matlab que se llama red neuronal4 . la vez. Esto con el fin de, por ejemplo, identificar qué letras,
Las redes neuronales descomponen las entradas en capas vocales, números o sonidos está pronunciando una persona.
de abstracción. Se pueden entrenar con muchos ejemplos Cuando un usuario pronuncie una de las vocales de nuestro
para que reconozcan patrones de voz o en imágenes, por alfabeto, el software implementado debe ser capaz de mos-
ejemplo, igual que el cerebro humano[2]. trar una imagen de la vocal que se acaba de pronunciar.Pero,
¿cómo lograr esto?
Suposiciones y restricciones.
Debido a que no se cuenta con un entorno adecuado para Se aborda el problema basándose en los trabajos reali-
las grabaciones y no se cuenta con un equipo óptimo pa- zados anteriormente(A lo largo del curso). Uno de los pri-
ra realizar estas mismas, se espera que halla un margen de meros pasos realizados, fue un pequeño análisis del aparato
error de reconocimiento de las señales grabadas por parte fonador humano. Debido a que las señales de voz que pro-
del software. nunciamos tienen su debida frecuencia, estas frecuencias se
Es la primera vez que se trabaja con una red neuronal, ası́ pueden descomponer en señales senos y cosenos pero las po-
que los resultados obtenidos tal vez no tengan una calidad sibles combinaciones de éstas pueden ser complejas. Esto es
profesional para implementar, por ejemplo, en una aplica- muy practico, ya que podemos hacer un análisis en el domi-
nio de la frecuencia de dichas señales.Esto se puede lograr
2 MATLAB (abreviatura de Matrix Laboratory, ”laboratorio de ma- gracias a la transformada rápida de fourier, que se ha em-
trices”) es un sistema de cómputo numérico que ofrece un entorno de pleado en trabajos previos y se implementa en este trabajo
desarrollo integrado (IDE) con un lenguaje de programación propio como alternativa de solución5 .
(lenguaje M.
3 La codificación predictiva lineal o LPC es un tipo de codificador

ampliamente utilizado en audio digital.En sistemas de procesado de


f −1
NX
voz, se usa partiendo de la idea de que la voz puede modelarse como n
una combinación lineal de p muestras anteriores más una señal de x[k] = X0 [n] ∗ e−i2π∗k( N f )) (1)
error. n=0
4 Una red neuronal es un modelo de computación cuya estructura

de capas se asemeja a la estructura interconectada de las neuronas en 5 Es un algoritmo eficiente que permite calcular la transformada de

el cerebro, con capas de nodos conectados. Fourier discreta (DFT) y su inversa.

2
La ecuación 1 es la transformada rápida de fourier. La trans- volúmenes de datos.Entonces para este trabajo se ha em-
formada rápida de Fourier (FFT) basa su principio de fun- pleado ya que al obtener los coeficientes LPC de cada vocal
cionamiento en la reorganización de la señal que debe ser se puede entrenar una red neuronal que los reconozca y cada
potencia de 2, como condición para la operación. Al igual vez que se ingrese una nueva grabación, diga de qué vocal
que la DTF, en la FFT la señal transformada en el dominio se trata basándose en la predicción que hace.
de la frecuencia debe descomponerse en una serie de senos
y cosenos representada por números complejos. Proceso.
Se presenta a continuación el proceso realizado para obtener
Otra herramienta que hemos empleado es el análisis por los coeficientes LPC y la creación de la red neuronal. En la
codificación Lineal predictiva LPC, que ya se mencionó en sección resultados, se muestran las gráficas que se obtuvie-
la sección de introducción. La predicción lineal es una buena ron al realizar este procedimiento para que se pueda replicar
herramienta para análisis de señales de habla. La predicción este trabajo en cualquier momento.
lineal modela el tracto vocal humano como un sistema de
Paso 1.
respuesta al impulso infinita (IIR) que produce la señal de
Se diseña un código que permite capturar las grabaciones de
voz. Para sonidos vocales y otras regiones con voz, que tie-
las 5 vocales del alfabeto. Este código sencillamente se basa
nen una estructura resonante y un alto grado de similaridad
en un audiorecorder, que es una herramienta de matlab. En-
sobre cambios de tiempo que son múltiplos de su periodo
tonces el usuario se ubica frente al computador y ejecuta el
tonal, este modelo predice una representación eficiente del
programa. Cada vez que presiona la tecla enter, el programa
sonido[3].
permite hacer una grabación de su voz. Al mismo tiempo,
El modelo matemático expuesto establece que el trac-
el programa va hallando los coeficientes LPC de cada gra-
to vocal puede modelarse mediante un filtro digital siendo
bación que se realiza. Este proceso se debe repetir 25 veces
los parámetros los que determinan la función de transferen-
para cada vocal(se puede escoger un numero mayor o me-
cia. El problema consiste en, dado un segmento de palabra,
nor) y una vez se terminan estas 25 grabaciones, se guardan
extraerle sus parámetros que en este caso vienen a ser los
todos estos coeficientes en una variable llamada LPC.
coeficientes del filtro. El análisis de predicción lineal permi-
te aproximar una señal a partir de señales pasadas. En este Paso 2.
caso se trata de predecir señales de voz mediante un filtro Esta variable es una tabla o matriz que contiene 11 filas
FIR (filtro de respuesta impulsiva finita) , cuya función de y 25 columnas llenas de los coeficientes LPC de la vocal
transferencia se deduce a partir de: grabada. Entonces como son 5 vocales, se hace un arreglo
de 11 filas y 125 columnas. Se crea una tabla de 1 fila y
p 125 columnas y a las primeras 25 columnas se les asigna el
X
y[n] = − ak [n] ∗ G ∗ y(n − k) ∗ x(n) (2) numero 1. Luego a las siguientes 25 columnas se les asigna
k=1 el numero 2 y ası́ sucesivamente hasta asignar el numero 5
Pero, ¿de qué nos sirve obtener estos coeficientes?. Bueno, a las ultimas 25 columnas. Esto se hace con el objetivo de
estos nos permiten trabajar con la siguiente herramienta em- que la red neuronal reconozca que para los primeros datos,
pleada en este trabajo, a saber una red neuronal. a saber los 11*25 coeficientes de la primera grabación, se les
Las Redes Neuronales son un campo muy importante dentro debe asignar un valor 1, y ası́ para los demás datos.
de la Inteligencia Artificial. Inspirándose en el comporta- Paso 3.
miento conocido del cerebro humano (principalmente el re- Obtenidas estas dos matrices, se ingresan a la herramienta
ferido a las neuronas y sus conexiones), trata de crear mode- nntool de matlab, que es una herramienta de entrenamien-
los artificiales que solucionen problemas difı́ciles de resolver to de red neuronal artificial. Esta herramienta permite al
mediante técnicas algorı́tmicas convencionales. El modelo software hacer predicciones como ya se ha mencionado, y
de Rumelhart y McClelland (1986) define un elemento de arroja los procesos de aprendizaje y autocorrelación7 de las
proceso (EP), o neurona artificial, como un dispositivo que señales grabadas.
a partir de un conjunto de entradas, xi (i=1...n) o vector x,
genera una única salida y6 . Paso 4.
La utilidad de esta herramienta radica en que se uti- Entrenada la red neuronal, se diseña un GUIDE que es una
liza predecir relaciones fuertemente no lineales de grandes interfaz grafica para el usuario, y en ella se configuran todos
los botones e imágenes que el usuario empleará para pronun-
6 David Everett Rumelhart (12 de junio de 1942 - 13 de marzo de
ciar las vocales y visualizar estas mismas en pantalla.Esta
2011)fue un psicólogo estadounidense que hizo muchas contribuciones
al análisis formal de la cognición humana , trabajando principalmente
interfaz tiene todos los objetos a utilizar y los métodos de
dentro de los marcos de la psicologı́a matemática. dichos objetos que permites codificar las acciones que desea-
James Lloyd ”Jay ”McClelland , FBA (nacido el 1 de diciembre de mos implementar para este caso.
1948) es profesor de Lucie Stern en la Universidad de Stanford , donde
anteriormente fue presidente del Departamento de Psicologı́a .Es mejor 7 La función de autocorrelación se define como la correlación cruza-

conocido por su trabajo sobre el aprendizaje estadı́stico y el procesa- da de la señal consigo misma. La función de autocorrelación resulta de
miento distribuido en paralelo , aplicando modelos conexionistas (o gran utilidad para encontrar patrones repetitivos dentro de una señal,
redes neuronales ) como la periodicidad de una señal.

3
Precauciones.
Se debe tener especial cuidado al momento de hacer las
grabaciones de las vocales, ya que estar ubicado en un lu-
gar muy ruidoso, con mucha reverberación acústica8 o ecos,
provoca errores en la lectura y generación de los coeficien-
tes LPC. Tampoco es recomendable hacer las grabaciones de
manera muy rápida y tampoco se recomienda hacer la pro-
nunciación de las vocales con bajo volumen de la vos o con
una pronunciación extraña. En la siguiente parte se mues-
tran los resultados obtenidos tanto del proceso de creación
Figura 2: Matriz Target.
como de los resultados finales[4].

3. Resultados
Obtención de los coeficientes LPC.
En la figura numero 1 se muestra el arreglo o matriz que
se obtiene una ves se han grabado las vocales con matlab.
Como se mencionó en el apartado anterior, se tratada de una
matriz de 11 filas por 125 columnas, siendo las primeras 25
columnas los coeficientes para la vocal a, las siguientes 25
columnas los coeficientes para la vocal e y ası́ hasta llegar a
la vocal u.

Figura 3: Interfaz para crear la red.

Existe una herramienta de visualización para obtener el


diagrama de bloques de la red neuronal. Este se muestra en
la figura 4.
Figura 1: Coeficientes LPC de las vocales.

Es de interés notar que los coeficientes ubicados uno al


lado del otro, es decir, los que están entre columnas, deben
tener cierta similitud.
Se crea también una matriz llamada Target de una fila por
125 columnas, donde las primeras 25 columnas contienen el
numero 1, y las siguientes 25 columnas contienen el numero
2, y ası́ sucesivamente hasta llegar al numero 5.Esta matriz
se utiliza para hacer el entrenamiento de la red neuronal.
Su objetivo es que la red neuronal entienda que en las item
1 debe tratarse de una vocal a, y en los item 2 de una vocal Figura 4: Diagrama de bloques de la red.
e, y ası́ sucesivamente hasta la vocal u.
Ahora, mediante el comando en matlab nntool, se abre
la barra de tareas para comenzar a implementar la red neu- Luego de hacer el entrenamiento de la red neuronal, se
ronal. Se ingresan las dos matrices de las figuras 1 y 2, y se obtienen resultados de mı́nimo erro de entrenamiento, que
crea la red. para este caso fue de 0.446 (44.6 %) tal como se aprecia en
8 La reverberación es un fenómeno sonoro producido por la reflexión, la figura 5. Este es un resultado aceptable, ya que la curva
que consiste en una ligera permanencia del sonido una vez que la fuente de entrenamiento que es la de color azul en la figura 5, se
original ha dejado de emitirlo. acerca a la curva de test que es la de color rojo.

4
tenida después de la décima iteración.

Figura 8: Autocorrelación mejorada.

El último paso consiste en crear la interfaz para el usua-


rio, la cual consta de un panel creado en matlab, que permite
Figura 5: Curva de errores y test de validación. crear los objetos y sus métodos para que el usuario pueda
manipular el programa y hacer sus pruebas.
Esta red neuronal también permite observar la autoco-
rrelación de los datos obtenidos. Es de importancia men-
cionar que entre mas iteraciones de entrenamiento, la red 4. Discusión
mostrará mejores resultados de autocorrelación.
¿Qué significan estos resultados? Revelan que realmen-
te la voz humana tiene su propia huella de identificación.
Aunque existan voces muy parecidas con un timbre de voz
similar, la aplicación de estos coeficientes LPC nos permi-
te trabajar de manera experimental, con una aproximación
baste buena para los fines de esta practica. Esto significa
que si se implementara un código mucho mas robusto, y
se contara con unos dispositivos de grabación profesionales,
las aplicaciones que se podrı́an dar a este trabajo podrı́an
alcanzar un nivel industrial.
Aunque las aproximaciones de de los coeficientes LPC
mantuvieron un rango de error bajo, se esperaba que fueran
mejores. Este ı́ndice de error fue de aproximadamente 44.6 %
tal como se meconio en la anterior sección. Esto provoca que
Figura 6: Autocorrelación. en el momento de reconocimiento, el programa confunda
algunas letras, sobre todo las que tienen una pronunciación
mas parecida, como lo son la o y la u.
Es satisfactorio notar que el camino escogido para dar
solución al problema, resultó útil para este caso. Aunque
en anteriores trabajos no se habı́a implementado una red
neuronal, fue bastante interesante utilizar esta herramien-
ta y tratar de entender su funcionamiento. También se de
interés resaltar que la implementación de esta red neuronal
artificial tiene infinitas aplicaciones, ya que durante la inves-
tigación sobre los usos de esta herramienta computacional,
se descubrió que se emplea en el campo de la ingenierı́a, las
matemáticas, la medicina, la psicologı́a y hasta la sociologı́a.
¿Cuáles son los alcances de este trabajo? Me atreverı́a a
decir que aunque el objetivo de esta practica fue meramente
Figura 7: Autocorrelación. de carácter académico, se podrı́a implementar para realizar
una aplicación que permita identificar la voz de, por ejem-
En la siguiente figura se observa la autocorrelación ob- plo una persona que quiera desbloquear su computadora o

5
su celular, y luego de identificarla envié un comando de des- http://www2.ulpgc.es/hege/almacen/download/25/25296/
bloqueo. Si se desea extender a muchas mas aplicaciones, es apuntesextraccioncaracterisitcas.pdf.
necesario implementar otras pruebas que permitan obtener
un código de una gama mas alta.

5. Conclusiones
Si se realizan muchas mas grabaciones para cada vocal, y
muchas iteraciones para el entrenamiento de la red neuronal,
el ı́ndice de error de entrenamiento neuronal y la autocorre-
lación de las señales, se mejorar bastante, tal como se puede
apreciar en las figuras 5 y 8.
Al realizar grabaciones de mejor calidad, la red neuro-
nal tendrá datos mas asertivos de las grabaciones, lo que
permitirá que su entrenamiento sea mucho mejor. Esto se
menciona ya que para este caso, como se aprecia en la gráfi-
ca 1, algunos coeficientes LPC varı́an entre si. Lo ideal serı́a
que fueran iguales.
Una forma de obtener un mejor entrenamiento de la red
neuronal, consiste en grabar las vocales con diferentes ento-
naciones de pronunciación. Si se quiere ser mas asertivo, se
podrı́a hacer una grabación de 25 vocales a entonadas a una
frecuencia de una nota musical do. Luego otras 25 vocales a
entonadas a una frecuencia de una nota musical do. Luego
otras 25 entonadas en una nota re, y ası́ hasta completar una
octava. Prácticamente lo que estarı́amos haciendo, es EN-
SEÑARE A LA RED NEURONAL ARTIFICIAL CÓMO
UNA VOZ HUMANA ENTONA LAS VOCALES, y de esta
manera al pronunciar una vocal, sin importar su entonación,
la red reconocerı́a de cuál vocal se trata.
Es muy importante mencionar que como este programa
fue grabado por una sola voz, solamente funcionara correc-
tamente con la voz que hizo las grabaciones. Si otro usuario
deseara verificar el funcionamiento, tendrı́a que hacer sus
propias grabaciones y hacer un nuevo entrenamiento de la
red neuronal.

6. Referencias bibliográficas
[1] MathWorks.(Julio 20 de 2019) ¿Qué es una red neuro-
nal? Tres cosas que es necesario saber
[Online].https://es.mathworks.com

[2] Julieth Gómez Duran, José Simancas Garcı́a, Melisa Acos-


ta Coll, Farid Melendez Pertuz, Jaime Velez Zapata.
.Algoritmo de recocimiento de comandos voz basado en
técnicas no-lineales”. Vol. 38 (No 17) Año 2017.pág. 4.

[3] Katherine Garcı́a Cruz, Marcelo Herrera Martı́nez, An-


drea Lorena, Aldana Blanco. Reconocimiento de carac-
terı́sticas vocales enfocado a la identificación de hablan-
tes”. Ing. USBMed, Vol. 5, No. 2, Julio-Diciembre 2014.

[4] Juan Luis Navarro Mesa, Procesador Acústico: El Blo-


que de Extracción de Caracterı́sticas. Universidad de
Las Palmas de Gran Canaria. Rescatado de la página:

También podría gustarte