0% encontró este documento útil (0 votos)
28 vistas63 páginas

Voz a Texto con Modulación ASK en MATLAB

Cargado por

Alegria Soriano
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)
28 vistas63 páginas

Voz a Texto con Modulación ASK en MATLAB

Cargado por

Alegria Soriano
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

UNIVERSIDAD ESTATAL PENÍNSULA DE SANTA ELENA

FACULTAD DE SISTEMAS Y TELECOMUNICACIONES

INTEGRANTES:
CRUZ BERNABE HEIDY

PRUDENTE DEL PEZO EDDIE

TUBAY LUCAS ALISSON

MATERIA:

PROCESAMIENTO DIGITAL DE SEÑALES /COMUNICACIONES DIGITALES

TEMA:

TRATAMIENTO, MUESTREO Y CODIFICACIÓN DE UNA SEÑAL DE VOZ A


TEXTO USANDO MODULACION ASK EN EL

SOFTWARE MATLAB

PROFESOR:

Ing. DANIEL JARAMILLO CHAMBA. [Link].

CURSO:

TELECOMUNICACIONES 6/1
CONTENIDO
INTRODUCCIÓN ............................................................................................................................................ 4

JUSTIFICACIÓN ............................................................................................................................................. 5

ALCANCE ....................................................................................................................................................... 7

OBJETIVO GENERAL .................................................................................................................................... 8

OBJETIVOS ESPECÍFICOS............................................................................................................................ 8

SUSTENTACIÓN TEÓRICA .......................................................................................................................... 9

LA VOZ DEL SER HUMANO Y SU FISIOLOGÍA................................................................................... 9

FRECUENCIA DE LA VOZ DEL SER HUMANO.................................................................................. 10

SEÑAL DE LA VOZ .................................................................................................................................. 10

CODIFICACIÓN DE LA VOZ .................................................................................................................. 11

Codificador de forma de onda..................................................................................................................... 12

Vocoders ..................................................................................................................................................... 13

Codificadores Híbridos ............................................................................................................................... 13

ELEMENTO DE UN SISTEMA DE COMUNICACIÓN DIGITAL ........................................................ 13

MODULADOR DIGITAL ......................................................................................................................... 16

MODULADOR PASA BANDA ................................................................................................................ 16

MODULACION ASK ................................................................................................................................ 16

METODOLOGÍA ........................................................................................................................................... 18

RECURSOS MATERIALES ..................................................................................................................... 20

RECURSOS HUMANOS........................................................................................................................... 20

RECURSOS TECNOLÓGICOS ................................................................................................................ 21

RESULTADOS .............................................................................................................................................. 23

INTERFAZ GRÁFICA PARA EL PROCESAMIENTO DE LA VOZ A TEXTO ................................... 23


CREACIÓN DE LA BASE DE DATOS................................................................................................ 25

TRANSFORMACIÓN DE UN NÚMERO ............................................................................................ 25

TRANSFORMACIÓN DE UNA VOCAL ............................................................................................. 26

TRANSFORMACIÓN DE UNA PALABRA ........................................................................................ 27

TRANSFORMACIÓN DE UNA ORACIÓN ........................................................................................ 28

INTERFAZ GRÁFICA PARA EL ANÁLISIS DE LA MODULACIÓN ASK ........................................ 28

EXTRACCIÓN DE LOS ARCHIVOS DE AUDIO DE LA BASE DE DATOS .................................. 30

RESULTADO DE LA MODULACIÓN ASK DE UNA ORACIÓN .................................................... 30

CONCLUSIONES .......................................................................................................................................... 32

RECOMENDACIONES ................................................................................................................................. 32

ANEXO A ...................................................................................................................................................... 34

CÓDIGO DEL PROGRAMA PARA LA PRIMERA INTERFAZ............................................................ 34

CÓDIGO DEL PROGRAMA PARA LA SEGUNDA INTERFAZ .......................................................... 45

ANEXO B ....................................................................................................................................................... 49

SIMULACIÓN DE LA TRANSFORMACIÓN DE VOZ A TEXTO ....................................................... 49

ANEXO C ....................................................................................................................................................... 60

SIMULACIÓN DE LA MODULACIÓN ASK EN LOS AUDIOS DE LA BASE DE DATOS .............. 60

BIBLIOGRAFÍA ............................................................................................................................................ 62
INTRODUCCIÓN

En la sociedad actual, se observa la evolución de las nuevas tecnologías y con ello grandes

posibilidades para mejorar y aportar con conocimiento al mundo moderno, el ser humano busca

desarrollar nuevos métodos de procesamiento de información cuyo fin es obtener la mayor

velocidad en cuanto al procesamiento y transferencia de información entre el ser humano y las

máquinas las cuales interactúan entre sí. La comunicación mediante la voz es un medio natural de

transmisión de información, sin embargo, para la interacción entre humano y máquina se ha creado

un lenguaje escrito único para lograr un entendimiento entre ambos involucrados y con ello, la

posibilidad de aportar a las investigaciones de las diferentes ramas de la ingeniería. (Pericas, 1993)

El procesamiento digital de la voz hace referencia a la combinación de tecnologías de

procesamiento de voz y esta se puede dividir en varias categorías, de las cuales sólo se hará énfasis

en la codificación ya que realiza técnicas de comprensión de las señales de voz, análisis de la voz

ya que estudia la entrada del sonido y el mejoramiento de la señal cuyo fin es usar técnicas para

mejorar la calidad en la percepción de las señales de voz mediante la modulación. (Processing),

2022)

Uno de los factores más importantes y de mayor prioridad en la parte de la tecnología y la

comunicación es la seguridad de que el mensaje llegue al receptor sin necesidad de que intervengan

terceros, al momento de realizar un intercambio de datos en este caso de mensajes de voz pueda

llegar al receptor sin ningún tipo de señal no deseada y no perjudique la información. El presente

proyecto busca la implementación del procesamiento de voz (Voice Processing) a texto,


mediante la codificación de las señales y realizando un tratamiento de la voz que consiste en

filtrar la señal y modular, para lograr una interpretación escrita de dichas señales mediante un

software, con el fin de crear un método de comunicación más interactivo, este proyecto abarcará

temas que buscan satisfacer y cumplir con las demandas de las materias de Procesamiento Digital

de Señales y Comunicaciones Digitales. (Aranda Mayoral Hersay, 2015)

En este informe se va a definir de manera puntual conceptos tales como modulación y que tipo de

modulación se va a aplicar en la señal filtrada, es decir, que la modulación es la modificación de

ciertos parámetros, puede ser su amplitud, frecuencia o el desfase.

JUSTIFICACIÓN

En la actualidad, las grandes industrias de las telecomunicaciones están reemplazando las

tecnologías tradicionales tales casos como las modulaciones AM (Modulación de Amplitud) y FM

(Modulación de Fase) con sistemas de comunicación digital.

Las comunicaciones digitales se caracterizan por compartir información de manera inmediata y en

tiempo real el cual permite la interacción, el intercambio y la colaboración de ideas, cumpliendo

con un rol muy importante entorno a las telecomunicaciones, esta a su vez permite la transmisión

de datos de una manera eficiente mediante información codificada dando como respuesta una

señal. El trabajo partirá de un análisis de códigos de prueba y error con el fin de cumplir la

funcionalidad del reconocimiento de voz pasando por ciertos procesos para mostrar como

resultado un texto , sin olvidar el evalúo que se hará a través de las ondas sonoras y se dará a
conocer en el programa creado, este programa será realizado en MATLAB el cual cuenta con las

librerías necesarias para su función y dicho proyecto será de gran ayuda debido a el aprendizaje

que se puede ganar estudiando el comportamiento de la voz mediante su modulación, y las

diferentes etapas que pasara la onda de estudio para una mejor compresión y se puede realizar

diversas funciones generadas por líneas de código, aplicando la modulación ASK, esto permitirá

analizar a través de las interfaces de grafica a qué velocidad, frecuencia y amplitud se está

transmitiendo la señal de voz.

Cuando se utiliza la modulación ASK, se trata de la modulación por desplazamiento de amplitud,

es decir, esta modulación representará los datos digitales como cambios en la amplitud de la

portadora según los datos que se transmiten. Este tipo de modulación se utiliza porque es una

modulación lineal y, por lo tanto, es sensible al ruido generado por los procesos atmosféricos

naturales o también conocido como ruido radioeléctrico.


ALCANCE

El tema planteado para este proyecto se centra en la codificación de una señal de voz a texto el

cual incluye un tiempo estimado para la culminación del proyecto, que según el calendario

académico del periodo 2022-2, la culminación y presentación del proyecto está prevista para las

dos últimas semanas antes de los exámenes finales, es decir que para el 18 de febrero del 2023 el

proyecto habrá finalizado. Para ello, se presenta un cronograma que se subdivide en avances por

bimestre, desde la primera semana hasta la octava semana del primer bimestre se deberá presentar

avances realizados del proyecto, el cual consta de:

• Tema, introducción y justificación.

• Alcance y Objetivos.

• Sustentación teórica.

Mientras que, para la primera semana hasta la octava semana del segundo bimestre abarcará los

últimos temas planteados:

• Metodología.

• Resultados.

• Conclusiones y Recomendaciones.

• Exposición.
La elaboración del proyecto se limita a entornos virtuales, es decir, que su implementación sólo

llegará a una simulación en el software de Matlab, por lo que no requiere de costos, esto quiere

decir que será accesible a ejecutar. Además, se realizará una descripción de cómo se realizó el

código y cuáles fueron las funciones o fórmulas que se utilizaron para llegar al resultado final.

Para la entrega final del proyecto se tendrá que considerar las correcciones realizadas a lo largo

del semestre previo a su finalización, el proyecto será considerado como finalizado cuando se

presente y se exponga ante la clase, contando con la aprobación del docente a cargo.

OBJETIVO GENERAL

Implementar un sistema con interfaz gráfica que permita introducir una señal de voz la cual va a

ser codificada y tratada para así obtener un texto mediante el programa Matlab que nos permita

analizar el comportamiento de una señal de voz.

OBJETIVOS ESPECÍFICOS

• Describir cada uno los procesos digitales y matemáticos para el proceso de codificación de voz

a texto.

• Diseñar un modelo gráfico e interactivo que nos permita visualizar la señal de voz que ingresa y

el texto como resultado.

• Analizar la modulación ASK y su importancia en este proceso de digitalización.


SUSTENTACIÓN TEÓRICA

LA VOZ DEL SER HUMANO Y SU FISIOLOGÍA

Se denomina a la señal de voz como una onda acústica de presión sonora el cual se origina por

algunos movimientos en la estructura de la anatomía humana, la cual realiza dichos movimientos

de manera voluntaria para establecer comunicación mediante el habla. Las ondas de la voz se

producen mediante una corriente de aire proveniente de los pulmones, la cual se modula

mediante los órganos que se encuentran en la laringe y el tracto vocal, por lo que, quien produce

la fonación es el órgano conocido como la glotis (figura 1).

Fig 1. Aparato Fonador y sistema respiratorio

El instrumento vocal se divide en tres segmentos, las cuales son:

• Aparato respiratorio. – sitio en donde circula y se almacena el aire para proporcionar el aire

requerido para la producción del sonido, está formado por la nariz, tráquea, pulmones y

diafragma.
• Aparato fonador. – el aire circula por las cuerdas vocales transformándolo en sonido, esta

es la función del aparato fonador, la cual la conforman la laringe y cuerdas vocales.

• Aparato resonador. – se encarga de amplificar y transformar el sonido adquiriendo las

características propias de cada voz, se conforma por la cavidad bucal, faringe, los

resonadores faciales como el paladar óseo, cavum, una región de la laringe y por las

cavidades óseas que están situadas en la parte trasera de la cara, se las denomina senos

maxilares y frontales. (preparadores de oposiciones)

FRECUENCIA DE LA VOZ DEL SER HUMANO

Para la medición de la frecuencia de la voz, se usan los hercios (Hz), por lo que, la voz humana

entra en un rango de frecuencia de los 250 y 3000 Hz, aunque ciertos fonemas se sitúan entre los

4000 a 8000 Hz.

Para el ser humano masculino, su rango de frecuencia se sitúa en 77 Hz hasta los 482 Hz, teniendo

una media de frecuencia de 106 Hz, mientras que, para el ser humano femenino, su rango de

frecuencia consta de 137 Hz hasta los 634 Hz, con una media de 193 HZ de su frecuencia habitual.

(Vozalia, 2020)

SEÑAL DE LA VOZ

La representación matemática de una señal de voz puede presentarse como la sumatoria de

sinusoides que constan de amplitudes, frecuencias y fases diferentes:


∑𝑁
𝑖=1 𝐴𝑖 (𝑡)sin⁡[2𝜋𝐹𝑖 (𝑡) + 𝜃𝑖 (𝑡)] (1)

Para lograr la extracción de la información de un segmento de voz, es necesario medir su amplitud,

frecuencia y fase que se encuentran contenidas dicho segmento.

Los sistemas de comunicaciones se forman principalmente de una fuente, un canal o medio de

transmisión y un receptor, teniendo esto en consideración, para realizar el modelado de un sistema

de comunicación usando las señales de voz, la fuente a utilizar es la voz de una persona, el medio

de transmisión será el software que queremos implementar y el receptor en este caso es otra

persona que tendrá acceso a la información.

CODIFICACIÓN DE LA VOZ

La codificación de voz es un proceso por el cual permite la transformación de las ondas sonoras

que representan la señal de voz hacia otro tipo de representación la cual puede considerarse

antinatural pero que satisface para las aplicaciones en ciertas tareas, al realizar dicha

transformación de la señal, la codificación estudia una forma de tratamiento para que la

información obtenida pueda ser óptima. (ulpgc)

En la actualidad, la codificación de voz consta con cierto número de procedimientos

estandarizados, de las cuales se clasifican en los siguientes grupos:

• Codificador de forma de onda

• Vocoders
• Codificador híbrido

Codificador de forma de onda

Este grupo encapsula a los codificadores que buscan reproducir la forma de la onda de una señal

de entrada sin tener en consideración la naturaleza de dicha señal, este codificador se subdivide en

función de su dominio (tiempo y frecuencia), otra de sus características es que proporciona una

calidad alta de voz a una media tasa de bits de 32kb/s, pero no son muy útiles cuando se requiere

una codificación de tasa de bits bajas.

Estos codificadores están diseñados usualmente para ser independientes de la señal para poder ser

utilizados para la codificación de otro gran número de señales y también presentan una aceptable

degradación con respecto al ruido y los errores de transmisión que pueda presentarse, pero para

que estos tipos de codificadores logren ser utilizables requieren necesariamente de hacer uso de

una tasa de bits medias, como se mencionó anteriormente, dicha codificación puede llevarse en el

dominio del tiempo y en el dominio de la frecuencia. (ulpgc)

Los codificadores dependientes del tiempo hacen uso de distintas redundancias de señal de voz las

cuales están la distribución de amplitud no uniforme, correlación de periodicidad y de muestra a

muestra, factores de la voz inactivas, entre otras.

Para los codificadores dependientes de la frecuencia, aplican una división de la señal de voz para

diferentes componentes de frecuencia para así codificar a cada una de manera independiente.

Gracias a esto, ciertas bandas de frecuencia son codificadas prioritariamente, en esta sección las
características de la señal de voz más implementadas son la densidad no uniforme espectral de la

frecuencia y seleccionados sonidos que muestran un nivel de energía bajo de densidad espectral.

Vocoders

En la sección de los vocoders se encuentran los codificadores que, a diferencia de los codificadores

de forma de onda, éstas si consideran la naturaleza de la señal que se requiere codificar que en esta

ocasión es la voz humana, de la cual se pueden adaptar sus características para poder aumentar la

eficiencia para intentar producir una señal similar a la voz original siendo indiferente si su forma

de onda es similar o no.

Este tipo de codificadores pueden trabajar con tasas de bits muy bajas, sin embargo, la señal

producida tiende a ser muy sintética y son algo complejos a comparación de los codificadores de

forma de onda desarrollando una mejor economía en la transmisión del bit-rate. (ulpgc)

Codificadores Híbridos

Como último tenemos al grupo de los codificadores híbridos la cual suma las características

positivas de los dos grupos anteriores, es decir que combina las ventajas de las técnicas de los

codificadores de la forma de la onda y la de vocoders, logrando así una calidad alta de transmisión

de voz a una baja tasa de bits. (ulpgc)

ELEMENTO DE UN SISTEMA DE COMUNICACIÓN DIGITAL

Una correcta transmisión de señales digitales tiene procesos indispensables para poder procesar la
señal deseada, con el objetivo de que se puede transmitir la mayor cantidad de bits en otras

palabras, sin estos procesos la señal transmitida puede que no sea del todo coherente o a su vez

puede tener pérdidas o interferencias. La figura 2 muestra el bloque de los elementos básicos de

una transmisión digital.

Fig 2. Elementos básicos de una señal digital

En la figura 2 se muestra los elementos de la transmisión digital en un diagrama de bloques donde

el primer bloque es la fuente de información pudiendo ser cualquier señal digital por ejemplo la

señal de una TV.

En el siguiente bloque se tiene al codificador de fuente en donde transforma la señal en bits para

que después sea representada con la menor cantidad posibles de bits, en este bloque se elimina la

redundancia de la señal de origen, a esto también se le puede decir compresión de información en

este caso los bits que conforman la señal de entrada.

A los bloques que están de un color diferente se los llama procesadores de señal digital debido que

a partir de aquí la señal se transforma a bits los cuales pasan un codificador de canal con el objetivo

de proteger los bits que quedaron de la compresión en el codificador de fuente, debido que en el
canal pueden existir errores.

Durante este proceso se obtiene una secuencia de bits partiendo del codificador de canal para ser

transformada nuevamente a una señal adaptada a las nuevas características de ese canal, para ello

se hace uso de un modulador digital el cual construye las ondas en base a una secuencia de bits,

en este proceso es fundamental escoger y adecuar de mejor manera la forma de onda para poder

enviar la mayor cantidad de bits por cada forma de onda.

Los bloques denominados demodulador digital, decodificador de canal y decodificador de fuente

realizar los procesos inversos al modulador digital y los codificadores de canal y fuente, es decir,

si en modulador digital se construye la forma de onda en base a la secuencia de bits en el

demodulador se va a obtener una secuencia de bits en base a la forma de onda que se ha obtenido

previamente. Los bloques de codificador de fuente, canal y el demodulador corresponden a la

parte de transmisión, mientras que en los decodificadores y el demodulador correspondes a la

parte del receptor. De esta manera se lleva a cabo una transmisión digital, sin embargo, existen

factores que impiden que la transmisión sea vea distorsionada y con señales no deseadas, para

ello se hace uso de otros elementos que son muy útiles para que la señal llegue al receptor lo más

factible posible. En todo sistema de comunicaciones digitales se ejercen dos importantes

funciones de procesado que transforman las señales.

• La digitalización de la señal

• La modulación de la señal.
MODULADOR DIGITAL

Su función es mapear la secuencia de bits provenientes del codificador de canal y convertirlos en

una señal continua en el tiempo, que se manifiesta como una señal eléctrica, o diferencia de

potencial entre dos puntos, y varía con el tiempo.

Fig 3. Bloque del modulador digital

MODULADOR PASA BANDA

Realiza la conversión de la señal de banda base a una determinada frecuencia mediante un

modulador. La frecuencia portadora es el parámetro más importante del modulador, ya que

representa la localización espectral de la señal modulada transmitida.

Fig 4. Bloque del modulador pasa banda

MODULACION ASK
En los tipos de modulación se encuentran las analógicas y las digitales en la cual este proyecto se

va a centrar en la digital, se le denomina modulaciones digitales porque ahora la información en

la cual se va a transmitir no van a ser voz ni videos si no que más bien van a ser ceros y unos en

este caso pasa lo mismo que la analógica que la información no se la podía mandar de manera

directa a la antera sino más bien que tiene que pasar por una alta frecuencia que se la conoce como

portadora en la cual en la portadora se le manipulaba algunas de sus características en AM ocurría

con la amplitud y en FM con su frecuencia. (Wila Espinoza, 2019).

En las modulaciones digitales va a ocurrir lo mismo en este caso la modulación ASK llamada así

por sus siglas en ingles Amplitude-shift keying, lo cual significa modulación por desplazamiento

de amplitud en el cual cuando se requiere de enviar un cero tiene cierta amplitud y cuando es un

uno tiene una distinta, este tipo de modulación es tan parecida a AM que matemática y físicamente

tienen los mismos comportamientos, sin embargo, ASK fue una de las primeras técnicas de

modulación empleadas y antecede a los sistemas analógicos de comunicación.

La modulación Ask consiste en poder conmutar una señal sinusoidal continua que a su vez es la

portadora con una alta frecuencia mediante el encendido y apagado a través de una señal que sea

binaria y cumpla con la característica de ser unipolar, debido que la modulación Ask es un caso

particular de la AM, los moduladores que sirven para la modulación AM también sirven para la

modulación Ask, por lo que por esta razón van a existir dos métodos eficientes y más usados en

estas modulaciones como lo son los demoduladores de detección síncrona y de detección

envolvente. (Caicedo Chávez, 2016)


METODOLOGÍA

La metodología que se va a emplear en el proyecto es la investigación cuantitativa ya que permite

analizar cómo se comunican las propuestas de código a través del proyecto, modificando

subcódigos que pueden formar parte del diagrama maestro mediante el análisis de relaciones de

prueba y error, lo que confirma nuestro objetivo principal.

Para lograr la implementación usaremos el método cuantitativo tales como:

• Observación estandarizada, utilizada para obtener los datos necesarios para una

recopilación completa de bibliografías que aporten de manera positiva a los resultados

esperados.

• Los resultados se desean obtener en el software Matlab mediante la experimentación y

examen de diferentes subcódigos relacionados con el tema propuesto para el respectivo

análisis.

Con el fin de conseguir el objetivo general, se realizará un estudio basado en la búsqueda de

diferentes códigos que nos ayuden con las modificaciones que se desea realizar en la señal de audio

ingresada.

Esta metodología constará de varias etapas, lo que indica que, dependiendo del desempeño de cada

etapa, se podrá iniciar con la siguiente, y de no ser así, se ajustará la etapa hasta obtener un

resultado positivo del proyecto.

FASE 1.- RECOPILACIÓN DE LA BIBLIOGRAFÍA NECESARIA.


Con el fin de analizar correctamente cada parámetro a implementar en el código se prevé revisar la

información necesaria, analizando así cada variable que intervenga en la señal y modificándola de

ser necesario.

FASE 2.- ANÁLISIS DE PRUEBAS Y ERRORES.

Revisión de los códigos para formar la estructura de un código principal, este se realizará en

Matlab, y de una forma interactiva en GUIDE, mostrando resultados intuitivos y de fácil

compresión.

FASE 3.- ANÁLISIS DE LOS RESULTADOS ESPERADOS.

Con el respectivo código, ya formado y con un correcto funcionamiento, se procede a denotar los

resultados esperados mediante el análisis obtenido a partir de la simulación e interpretación de las

gráficas resultantes.

Para la grabación, análisis y comparación de las señales introducidas, el formato de los datos de la

voz grabada que se encuentran en la base de datos están en un archivo tipo “.wav” ya que es la

extensión que el programa Matlab reconoce y puede usarlo para el procesamiento de la señal.

Para poder obtener los datos se crearon varios programas e interfaces de prueba que permitan

obtener la información a través de dos vías: grabando una nueva muestra de voz o cargando una

señal de voz previamente grabada.

Se realiza el procesamiento digital requerido a los datos obtenidos en el subsistema anterior y


además se aplica los algoritmos correspondientes para así llegar a la determinación de los

parámetros que se necesita.

Se puede mencionar que se obtiene como resultados la interfaz gráfica para el despliegue de los

resultados como también los valores de los parámetros deseados y dar como reporte la salida de

texto de la voz introducida.

RECURSOS MATERIALES

El proyecto está delimitado a una simulación, por lo que no se requiere un presupuesto para su

ejecución, el material usado en este proyecto es una laptop que cuenta con las siguientes

especificaciones:

• Procesador AMD Ryzen 3 3250U with Radeon Graphics 2.60 GHz.

• Memoria RAM instalada de 8.00 GB

• Sistema operativo de 64 bits, procesador x64

• Windows 11 Pro

• Audio y micrófono predeterminado del dispositivo (laptop)

RECURSOS HUMANOS

El recurso humano es indispensable en una investigación ya que así se puede distribuir el trabajo

que se va a realizar. Para este proyecto se dividió de la siguiente manera:


• Implementación del código en MATLAB para poder demostrar la conversión de una señal

de voz a texto y poder visualizar la modulación ASK de la señal de voz ingresada a cargo

de Prudente del Pezo Eddie Josue.

• Redacción e investigación de la parte teórica del documento a cargo de Cruz Bernabe Heidy

Yudith.

• Deducción y explicación del código creado en el software de MATLAB a cargo de Alisson

Yiroko Tubay Lucas.

Es así como se organiza la documentación e implementación del proyecto.

RECURSOS TECNOLÓGICOS

Este proyecto se desarrollará en el software MATLAB versión 9.8.0.1323502 (R2020a) ejecutado

en un equipo bajo el sistema operativo “Microsoft Windows 11 Pro Version 10.0”.

Matlab es conocida como una plataforma de programación el cual fue diseñada para ser utilizada

por ingenieros y científicos para la realización de muchas aplicaciones ya sea en el ámbito

académico para el aprendizaje o en la industria, diseñando sistemas y analizando productos que

transformen el mundo de la tecnología. El lenguaje de programación que usa este software es el

MATLAB como su mismo nombre ya que está basado en matrices permitiendo una interpretación

natural de las matemáticas en el ámbito computacional. (MathWorks, s.f.)

En este mismo software, se hará uso del MATLAB GUIDE, el cual servirá para la creación de apps

con interfaces gráficas de usuario, y permitirá un control más sencillo en el programa a realizar.
Gracias a estas herramientas que son incluidas en el software y a la posibilidad de una

programación orientada a objeto, se ha podido emplear varias scripts que permitirá obtener una

base de datos y que servirá como base para comparar las señales de audio introducidas cumpliendo

con la función de procesado donde se han integrado los algoritmos facilitando su ejecución en

tiempo real para así permitir que a través de una interfaz se pueda manipular los parámetros y

escuchar las modificaciones que se le han realizado al audio original en este caso serían los tipos de

filtros. Para el análisis de los resultados se requerirá de una base de datos para almacenar lo

siguiente:

• Todas las vocales

• Palabras y oraciones

• Números enteros del 0 al 9

Los archivos de audio (.wav) se almacenarán en una carpeta en donde sea factible extraerse, la

interfaz gráfica principal se encargará de extraer dichos archivos y empezar a realizar la

comparación entre la voz introducida con las voces que se encuentran almacenada y también nos

permitirá visualizar las gráficas de todas las señales de audio como lo son:

• Señal de voz filtrada

• Señal de voz almacenada en la base de datos usando FFT

• Señal de voz del usuario FFT


También existe un código que nos permite analizar la señal de un audio introducida para aplicarle

la modulación ASK usando la misma base de datos y presentando las gráficas, este código será

introducido en la interfaz gráfica principal.

El programa se encuentra estructurado de la siguiente manera:

• Almacenamiento y edición de audios.

• Demostración gráfica de la modulación ASK de la señal de voz.

• Conversión de la señal de audio a texto.

RESULTADOS

Para la realización de este proyecto se procedió a dividir los resultados en dos secciones haciendo

uso del GUI de Matlab, en donde se crearon dos interfaces gráficas:

• Interfaz gráfica para el procesamiento de la voz a texto orientado a la materia de

Procesamiento Digital de Señales.

• Interfaz gráfica para el análisis de la modulación ASK orientado a la materia de

Comunicaciones Digitales.

En el anexo A se presenta el código usado para la realización del proyecto y para ambas interfaces

en Matlab.

INTERFAZ GRÁFICA PARA EL PROCESAMIENTO DE LA VOZ A TEXTO


El diseño para la primera interfaz se muestra en la figura 5. En donde se puede observar que consta

de 6 botones y 3 Axes los cuales deben cumplir las siguientes funciones:

• Agregar voz. - Le permite al usuario agregar nuevos audios para la base de datos y

almacenar nuevas palabras para su procesamiento con una extensión “.wav”.

• Grabar. - Como su mismo nombre lo indica, graba la voz del usuario y grafica el espectro

de la señal en el primer Axes en donde se indica la señal filtrada.

• Reproducir. - Reproduce la voz grabada del usuario a la cuál se le aplicó un filtro.

• Transformar. - Transforma el audio ingresado a texto y presenta las gráficas de la base de

datos y la voz del usuario en FFT en el segundo y tercer Axes.

• Ask. - Este botón permite ingresar a una segunda interfaz de usuario en donde se analizan

los audios grabados mediante una modulación ASK.

• Salir. - Cierra la interfaz de usuario actual.

Fig 5. Interfaz para el procesamiento de la voz


CREACIÓN DE LA BASE DE DATOS

Para poder crear la base de datos, se escribe el nombre del audio a grabar en la barra de texto “edit

text” respetando la extensión del archivo y se da click al botón “Agregar Nueva Voz”. En la figura

6 se muestra un ejemplo en donde se grabó el número 9 con el nombre “[Link]” para almacenarse

en la base de datos.

Fig 6. Nueva voz para la base de datos

Para el análisis y demostración de los resultados se grabaron todas las vocales, todos los números,

3 palabras aleatorias y 3 oraciones como se puede observar en la figura 7.

Fig 7. Base de datos

TRANSFORMACIÓN DE UN NÚMERO
En la figura 8 se muestra el ejemplo de la transformación de un número grabado por el usuario. En

este caso la simulación se realizó correctamente ya que al grabar el número 4 y realizar la

respectiva transformación, el programa logró reconocerlo, esto sucede debido a que en la base de

datos ya se encuentra un archivo de audio con ese mismo número, por lo que el programa procede a

comparar la voz expresada en ese momento con la que la base de datos encontrando así una

similitud entre sus parámetros. Cabe recalcar que los números expresados de manera oral tienen

mayor tendencia a sufrir confusión en el programa ya que la pronunciación puede tener similitud a

otros fonemas, ya sean vocales, letras, palabras o hasta incluso con las oraciones.

Fig 8. Ejemplo de la transformación del número 4

TRANSFORMACIÓN DE UNA VOCAL

En la figura 9 se muestra la transformación de la señal de voz de una vocal a texto siguiendo el

mismo procedimiento que el anterior.


Fig 9. Ejemplo de la transformación de la vocal A

Dentro de la base de datos ya se encuentra un archivo con el cual el programa procede a comparar,

se analizan con toda la base de datos y dependiendo del que mantenga el error mínimo o que

encuentre mayor similitud se presentará el texto en la parte inferior.

TRANSFORMACIÓN DE UNA PALABRA

En la figura 10 se observa la transformación de voz a texto de una palabra que el usuario expresa,

el procesamiento que realiza el programa lo hace de manera correcta ya que presenta como

resultado el texto de la palabra. Como dato importante dichas palabras deben expresarse con

claridad ya que así se evita confundir al programa para que no muestre un resultado erróneo.
Fig 10. Ejemplo de la transformación de la palabra Navidad

TRANSFORMACIÓN DE UNA ORACIÓN

En la figura 11 se muestra que el programa ejecuta correctamente la transformación de voz a texto

presentando en el resultado la voz digitada por el usuario de manera textual, se puede decir que

para las oraciones el programa no presenta errores de reconocimiento debido a la longitud del

mensaje, aunque esto no quiere decir que esté libre de errores ya que en ocasiones se pudo observar

cómo algunas palabras adoptaban el texto de la oración.

Fig 11. Ejemplo de la transformación de la oración “Buenos días”

En el anexo B se encuentran las simulaciones de todas las transformaciones realizadas, tanto de

números, vocales, palabras y oraciones realizadas.

INTERFAZ GRÁFICA PARA EL ANÁLISIS DE LA MODULACIÓN ASK

Continuando con obtención de los resultados, ahora se presenta la segunda interfaz en donde se

muestra el comportamiento de los audios de la base de datos al ser sometidos a una modulación
ASK. En la interfaz anterior se mencionó la existencia de un botón llamado “ASK”, este botón

sirve para conectar ambas interfaces por lo que, al accionar dicho botón, se procede a cerrar la

primera interfaz para abrir la segunda en donde se presenta el diseño realizado para esta segunda

parte como se puede observar en la figura 12. Aquí se puede observar que consta solo de 3 botones

y 3 Axes, los cuales cumplen las siguientes funciones:

• Regresar. - Este botón permite al usuario regresar a la primera interfaz.

• Graficar. - Aquí se realiza el proceso de presentación de las gráficas, al digitar el nombre

del archivo de audio de la base de datos se procede a presionar este botón en donde se

presenta en el primer Axes la gráfica de la señal de entrada, posteriormente la señal a

analizar es sometida a un proceso de transformación para convertir a la señal en

información binaria en donde su gráfica se presenta en el segundo Axes y para finalizar el

mismo botón realiza el procedimiento de modulación ASK el cual tendrá a su gráfica en el

tercer Axes.

• Salir. - el botón salir permitirá al usuario cerrar la segunda interfaz.


Fig 12. Interfaz gráfica para la modulación ASK

EXTRACCIÓN DE LOS ARCHIVOS DE AUDIO DE LA BASE DE DATOS

Para empezar el procedimiento es sencillo, ya que solo se requiere de ingresar el nombre del

archivo de audio que se requiere presentar en la barra de texto “edit text” como se observa en la

figura 13.

Fig 13. Extracción de los audios

RESULTADO DE LA MODULACIÓN ASK DE UNA ORACIÓN

Para un mejor análisis, se opta por presentar la modulación de una oración ya que presenta mayor

variación en señal. En la figura 14 se observa la transformación que sufre la señal original a bits en

donde tomará valores de 0 y 1 respectivamente.

Fig 14. Transformación de la señal de entrada a bits


Una vez obtenida la gráfica de la señal en bits se genera la gráfica de la modulación ASK, como se

ha visto en clase el comportamiento de la señal sigue un orden, en donde los bits que son 0 se

mantiene una sinusoidal que lleva una amplitud “x”, mientras que cuando el bit cambia a 1 la

sinusoidal aumenta su amplitud, esto se lo observa en la figura 15. Cabe recalcar que los valores no

son ideales por lo que su gráfica toma la forma de una figura “llena” en términos informales, pero

al realizar un zoom se puede observar las sinusoidales que las conforman.

Fig 15. Modulación ASK de una oración

En el anexo C se presenta la simulación de todas las oraciones que se encuentran en la base de

datos.
CONCLUSIONES

• Referente a los resultados obtenidos, se puede concluir que la implementación de

algoritmos para obtener los parámetros seleccionados, conciben al programa implementado

como una herramienta eficiente, sencilla y confiable al momento de analizar una señal de

voz para poderla convertir a un texto que va a ser de gran utilidad en diferentes áreas de

estudio.

• Es de gran importancia los procesos matemáticos ya que a través de la transformada rápida

de Fourier, que es una herramienta útil para poder realizar el desarrollo del programa. Los

datos generados en el programa dependerán siempre de la vocalización de la persona ya que

al codificar las señales de voz a texto el filtro empleado trabaja de manera de que la señal

introducida no contenga mucho ruido.

• El software de Matlab consta con una gran variedad de funciones que permiten crear

diferentes programas, en este caso se obtuvo una interfaz gráfica en donde da como

resultado la señal ingresada y que a través de un proceso se refleja la señal binaria y la señal

modulada en este caso una modulación ASK.

RECOMENDACIONES

• Para generar la base de datos se recomienda que el locutor vocalice con claridad las

palabras o fonemas que se tomaran como muestra en el programa.


• Para realizar una prueba de evidencia se sugiere que al momento de tomar la muestra de

voz nos encontremos en un ambiente de libre ruido, con el objetivo de poder obtener una

señal pura.

• Si la transformación de la señal de voz no se realiza de manera correcta, es recomendable

volver a pronunciarlo de una mejor manera.

• Es recomendable realizar siempre un plan piloto para tener como evidencia cada paso que

se hace dentro de la modificación del código.


ANEXO A
CÓDIGO DEL PROGRAMA PARA LA PRIMERA INTERFAZ
function varargout = PROGRAMA(varargin)
% PROGRAMA MATLAB code for [Link]
% PROGRAMA, by itself, creates a new PROGRAMA or raises the existing
% singleton*.
%
% H = PROGRAMA returns the handle to a new PROGRAMA or the handle to
% the existing singleton*.
%
% PROGRAMA('CALLBACK',hObject,eventData,handles,...) calls the local
% function named CALLBACK in PROGRAMA.M with the given input arguments.
%
% PROGRAMA('Property','Value',...) creates a new PROGRAMA or raises the
% existing singleton*. Starting from the left, property value pairs are
% applied to the GUI before PROGRAMA_OpeningFcn gets called. An
% unrecognized property name or invalid value makes property application
% stop. All inputs are passed to PROGRAMA_OpeningFcn via varargin.
%
% *See GUI Options on GUIDE's Tools menu. Choose "GUI allows only one
% instance to run (singleton)".
%
% See also: GUIDE, GUIDATA, GUIHANDLES

% Edit the above text to modify the response to help PROGRAMA

% Last Modified by GUIDE v2.5 25-Jan-2023 [Link]

% Begin initialization code - DO NOT EDIT


gui_Singleton = 1;
gui_State = struct('gui_Name', mfilename, ...
'gui_Singleton', gui_Singleton, ...
'gui_OpeningFcn', @PROGRAMA_OpeningFcn, ...
'gui_OutputFcn', @PROGRAMA_OutputFcn, ...
'gui_LayoutFcn', [] , ...
'gui_Callback', []);
if nargin && ischar(varargin{1})
gui_State.gui_Callback = str2func(varargin{1});
end

if nargout
[varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});
else
gui_mainfcn(gui_State, varargin{:});
end
% End initialization code - DO NOT EDIT

% --- Executes just before PROGRAMA is made visible.


function PROGRAMA_OpeningFcn(hObject, eventdata, handles, varargin)
% This function has no output args, see OutputFcn.
% hObject handle to figure
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% varargin command line arguments to PROGRAMA (see VARARGIN)

% Choose default command line output for PROGRAMA


axes(handles.axes4);
[x,map]=imread('[Link]');
image(x);
colormap(map);
axis off
hold on

axes(handles.axes5);
[x,map]=imread('[Link]');
image(x);
colormap(map);
axis off
hold on

[Link] = hObject;

% Update handles structure


guidata(hObject, handles);

% UIWAIT makes PROGRAMA wait for user response (see UIRESUME)


% uiwait(handles.figure1);

% --- Outputs from this function are returned to the command line.
function varargout = PROGRAMA_OutputFcn(hObject, eventdata, handles)
% varargout cell array for returning output args (see VARARGOUT);
% hObject handle to figure
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)

% Get default command line output from handles structure


varargout{1} = [Link];

% --- Executes on button press in grabar.


function grabar_Callback(hObject, eventdata, handles)
% hObject handle to grabar (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
clc; %limpia la pantalla
%clear all;
global y fs; %Establecer variables globales
fs=11025; %frecuencia de muestreo
ts=1/fs;
tiempograb=3; %Tiempo de grabacion
y=audiorecorder;
recordblocking(y,tiempograb);
myRecording=getaudiodata(y);
myRecording=myRecording';
%soundsc(y,fs); %Reproduce grabación
t=0:ts:tiempograb-ts;
b=[0.1 -0.95];
a=[1 -0.99];
yf=filter(b,a,myRecording); %Proceso de filtrado
len = length(myRecording); %longitud del vector
avg_e = sum(myRecording.*myRecording)/len; %promedio señal entera
THRES = 0.2;
audiowrite('[Link]',yf,fs); %Graba en archivo .wav
soundsc(yf)
%---- Grafica señal grabada
% figure(1);
% plot(t,y);grid on;
set(handles.axes1); % Establece los ejes de graficación
axes(handles.axes1);
plot(yf);grid on; % Grafica en los axes

%----- Mensaje Fin de Grabacion


[Link]=yf;
msgbox('Grabación Terminada');
guidata(hObject, handles);

% --- Executes on button press in reproducir.


function reproducir_Callback(hObject, eventdata, handles)
% hObject handle to reproducir (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
[y,fs]=audioread('[Link]');
soundsc(y,fs);

function sonidoN=normalizar(sonido)
maximo=max(sonido);
n=length(sonido);
sonidoN=zeros(1,n);
for i=[Link]n
sonidoN(i)=sonido(i)/maximo;
end

% --- Executes on button press in transformar.


function transformar_Callback(hObject, eventdata, handles)
% hObject handle to transformar (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)

v1=audioread('[Link]');
v2=audioread('[Link]');
v3=audioread('[Link]');
v4=audioread('[Link]');
v5=audioread('[Link]');

n0= audioread('[Link]');
n1= audioread('[Link]');
n2= audioread('[Link]');
n3= audioread('[Link]');
n4= audioread('[Link]');
n5= audioread('[Link]');
n6= audioread('[Link]');
n7= audioread('[Link]');
n8= audioread('[Link]');
n9= audioread('[Link]');

p1=audioread('[Link]');
p2=audioread('[Link]');
p3=audioread('[Link]');

o1=audioread('[Link]');
o2=audioread('[Link]');
o3=audioread('[Link]');

% Uso de la función Normalizar


vocala=normalizar(v1);
vocale=normalizar(v2);
vocali=normalizar(v3);
vocalo=normalizar(v4);
vocalu=normalizar(v5);

numero0 = normalizar(n0);
numero1 = normalizar(n1);
numero2 = normalizar(n2);
numero3 = normalizar(n3);
numero4 = normalizar(n4);
numero5 = normalizar(n5);
numero6 = normalizar(n6);
numero7 = normalizar(n7);
numero8 = normalizar(n8);
numero9 = normalizar(n9);

palabra1=normalizar(p1);
palabra2=normalizar(p2);
palabra3=normalizar(p3);
oracion1=normalizar(o1);
oracion2=normalizar(o2);
oracion3=normalizar(o3);

%Transformada de las letras y números


transvocala=abs(fft(vocala));
transvocale=abs(fft(vocale));
transvocali=abs(fft(vocali));
transvocalo=abs(fft(vocalo));
transvocalu=abs(fft(vocalu));

transnumero0 = abs(fft(numero0));
transnumero1 = abs(fft(numero1));
transnumero2 = abs(fft(numero2));
transnumero3 = abs(fft(numero3));
transnumero4 = abs(fft(numero4));
transnumero5 = abs(fft(numero5));
transnumero6 = abs(fft(numero6));
transnumero7 = abs(fft(numero7));
transnumero8 = abs(fft(numero8));
transnumero9 = abs(fft(numero9));

transpalabra1=abs(fft(palabra1));
transpalabra2=abs(fft(palabra2));
transpalabra3=abs(fft(palabra3));

transoracion1=abs(fft(oracion1));
transoracion2=abs(fft(oracion2));
transoracion3=abs(fft(oracion3));

%Proceso de reconocimiento
voz_usuario=audioread('[Link]');
usuario=normalizar(voz_usuario);
transusuario=abs(fft(usuario));

error(1)=mean(abs(transvocala-transusuario));
error(2)=mean(abs(transvocale-transusuario));
error(3)=mean(abs(transvocali-transusuario));
error(4)=mean(abs(transvocalo-transusuario));
error(5)=mean(abs(transvocalu-transusuario));

error(6)=mean(abs(transnumero0-transusuario));
error(7)=mean(abs(transnumero1-transusuario));
error(8)=mean(abs(transnumero2-transusuario));
error(9)=mean(abs(transnumero3-transusuario));
error(10)=mean(abs(transnumero4-transusuario));
error(11)=mean(abs(transnumero5-transusuario));
error(12)=mean(abs(transnumero6-transusuario));
error(13)=mean(abs(transnumero7-transusuario));
error(14)=mean(abs(transnumero8-transusuario));
error(15)=mean(abs(transnumero9-transusuario));

error(16)=mean(abs(transpalabra1-transusuario));
error(17)=mean(abs(transpalabra2-transusuario));
error(18)=mean(abs(transpalabra3-transusuario));

error(19)=mean(abs(transoracion1-transusuario));
error(20)=mean(abs(transoracion2-transusuario));
error(21)=mean(abs(transoracion3-transusuario));

min_error=min(error);%Almacena el menor error


display(error)%Muestra el vector error
display(min_error)%Muestra el menor error

% Proceso de comparaciones para identificar las palabras


fs=11025;
N=length(voz_usuario);
f=(0:N-1)*fs/N;
%Vocal A
if(min_error == error(1))
set(handles.axes2);
axes(handles.axes2);
plot(f(1:N/2), transvocala(1:N/2)); grid on;
set([Link], 'string', 'A');
set(handles.axes3);
axes(handles.axes3);
plot(f(1:N/2), transusuario(1:N/2)); grid on;
end
%Vocal E
if(min_error == error(2))
set(handles.axes2);
axes(handles.axes2);
plot(f(1:N/2), transvocale(1:N/2)); grid on;
set([Link], 'string', 'E');
set(handles.axes3);
axes(handles.axes3);
plot(f(1:N/2), transusuario(1:N/2)); grid on;
end
%Vocal I
if(min_error == error(3))
set(handles.axes2);
axes(handles.axes2);
plot(f(1:N/2), transvocali(1:N/2)); grid on;
set([Link], 'string', 'I');
set(handles.axes3);
axes(handles.axes3);
plot(f(1:N/2), transusuario(1:N/2)); grid on;
end
%Vocal O
if(min_error == error(4))
set(handles.axes2);
axes(handles.axes2);
plot(f(1:N/2), transvocalo(1:N/2)); grid on;
set([Link], 'string', 'O');
set(handles.axes3);
axes(handles.axes3);
plot(f(1:N/2), transusuario(1:N/2)); grid on;
end
%Vocal U
if(min_error == error(5))
set(handles.axes2);
axes(handles.axes2);
plot(f(1:N/2), transvocalu(1:N/2)); grid on;
set([Link], 'string', 'U');
set(handles.axes3);
axes(handles.axes3);
plot(f(1:N/2), transusuario(1:N/2)); grid on;
end
%Número 0
if(min_error == error(6))
set(handles.axes2);
axes(handles.axes2);
plot(f(1:N/2), transnumero0(1:N/2)); grid on;
set([Link], 'string', 'Cero');
set(handles.axes3);
axes(handles.axes3);
plot(f(1:N/2), transusuario(1:N/2)); grid on;
end
%Número 1
if(min_error == error(7))
set(handles.axes2);
axes(handles.axes2);
plot(f(1:N/2), transnumero1(1:N/2)); grid on;
set([Link], 'string', 'Uno');
set(handles.axes3);
axes(handles.axes3);
plot(f(1:N/2), transusuario(1:N/2)); grid on;
end
%Número 2
if(min_error == error(8))
set(handles.axes2);
axes(handles.axes2);
plot(f(1:N/2), transnumero2(1:N/2)); grid on;
set([Link], 'string', 'Dos');
set(handles.axes3);
axes(handles.axes3);
plot(f(1:N/2), transusuario(1:N/2)); grid on;
end
%Número 3
if(min_error == error(9))
set(handles.axes2);
axes(handles.axes2);
plot(f(1:N/2), transnumero3(1:N/2)); grid on;
set([Link], 'string', 'Tres');
set(handles.axes3);
axes(handles.axes3);
plot(f(1:N/2), transusuario(1:N/2)); grid on;
end
%Número 4
if(min_error == error(10))
set(handles.axes2);
axes(handles.axes2);
plot(f(1:N/2), transnumero4(1:N/2)); grid on;
set([Link], 'string', 'Cuatro');
set(handles.axes3);
axes(handles.axes3);
plot(f(1:N/2), transusuario(1:N/2)); grid on;
end
%Número 5
if(min_error == error(11))
set(handles.axes2);
axes(handles.axes2);
plot(f(1:N/2), transnumero5(1:N/2)); grid on;
set([Link], 'string', 'Cinco');
set(handles.axes3);
axes(handles.axes3);
plot(f(1:N/2), transusuario(1:N/2)); grid on;
end
%Número 6
if(min_error == error(12))
set(handles.axes2);
axes(handles.axes2);
plot(f(1:N/2), transnumero6(1:N/2)); grid on;
set([Link], 'string', 'Seis');
set(handles.axes3);
axes(handles.axes3);
plot(f(1:N/2), transusuario(1:N/2)); grid on;
end
%Número 7
if(min_error == error(13))
set(handles.axes2);
axes(handles.axes2);
plot(f(1:N/2), transnumero7(1:N/2)); grid on;
set([Link], 'string', 'Siete');
set(handles.axes3);
axes(handles.axes3);
plot(f(1:N/2), transusuario(1:N/2)); grid on;
end
%Número 8
if(min_error == error(14))
set(handles.axes2);
axes(handles.axes2);
plot(f(1:N/2), transnumero8(1:N/2)); grid on;
set([Link], 'string', 'Ocho');
set(handles.axes3);
axes(handles.axes3);
plot(f(1:N/2), transusuario(1:N/2)); grid on;
end
%Número 9
if(min_error == error(15))
set(handles.axes2);
axes(handles.axes2);
plot(f(1:N/2), transnumero9(1:N/2)); grid on;
set([Link], 'string', 'Nueve');
set(handles.axes3);
axes(handles.axes3);
plot(f(1:N/2), transusuario(1:N/2)); grid on;
end
%Palabra 1
if(min_error == error(16))
set(handles.axes2);
axes(handles.axes2);
plot(f(1:N/2), transpalabra1(1:N/2)); grid on;
set([Link], 'string', 'Navidad');
set(handles.axes3);
axes(handles.axes3);
plot(f(1:N/2), transusuario(1:N/2)); grid on;
end
%Palabra 2
if(min_error == error(17))
set(handles.axes2);
axes(handles.axes2);
plot(f(1:N/2), transpalabra2(1:N/2)); grid on;
set([Link], 'string', 'Lunes');
set(handles.axes3);
axes(handles.axes3);
plot(f(1:N/2), transusuario(1:N/2)); grid on;
end
%Palabra 3
if(min_error == error(18))
set(handles.axes2);
axes(handles.axes2);
plot(f(1:N/2), transpalabra3(1:N/2)); grid on;
set([Link], 'string', 'Gato');
set(handles.axes3);
axes(handles.axes3);
plot(f(1:N/2), transusuario(1:N/2)); grid on;
end
%Oración 1
if(min_error == error(19))
set(handles.axes2);
axes(handles.axes2);
plot(f(1:N/2), transoracion1(1:N/2)); grid on;
set([Link], 'string', 'Buenos días');
set(handles.axes3);
axes(handles.axes3);
plot(f(1:N/2), transusuario(1:N/2)); grid on;
end
%Oración 2
if(min_error == error(20))
set(handles.axes2);
axes(handles.axes2);
plot(f(1:N/2), transoracion2(1:N/2)); grid on;
set([Link], 'string', 'Hola cómo estás');
set(handles.axes3);
axes(handles.axes3);
plot(f(1:N/2), transusuario(1:N/2)); grid on;
end
%Oración 3
if(min_error == error(21))
set(handles.axes2);
axes(handles.axes2);
plot(f(1:N/2), transoracion3(1:N/2)); grid on;
set([Link], 'string', 'Esta es una prueba para dsp');
set(handles.axes3);
axes(handles.axes3);
plot(f(1:N/2), transusuario(1:N/2)); grid on;
end

% --- Executes on button press in salir.


function salir_Callback(hObject, eventdata, handles)
% hObject handle to salir (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
close;

% --- Executes on button press in Bnuevavoz.


function Bnuevavoz_Callback(hObject, eventdata, handles)
% hObject handle to Bnuevavoz (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
fs=11025; %frecuencia de muestreo
tiempograb=3.0; %Tiempo de grabacion
leer=get([Link],'String');
myRecording=audiorecorder;
recordblocking(myRecording,tiempograb);
mR=getaudiodata(myRecording);
play(myRecording);
b=[0.1 -0.95];
a=[1 -0.99];
yf=filter(b,a,mR);
audiowrite(leer,yf,fs);
soundsc(yf,fs);
msgbox('Se ha completado con éxito');
guidata(hObject, handles);

function leer_Callback(hObject, eventdata, handles)


% hObject handle to leer (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)

% Hints: get(hObject,'String') returns contents of leer as text


% str2double(get(hObject,'String')) returns contents of leer as a double

% --- Executes during object creation, after setting all properties.


function leer_CreateFcn(hObject, eventdata, handles)
% hObject handle to leer (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles empty - handles not created until after all CreateFcns called

% Hint: edit controls usually have a white background on Windows.


% See ISPC and COMPUTER.
if ispc && isequal(get(hObject,'BackgroundColor'),
get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end

% --- Executes on button press in Bask.


function Bask_Callback(hObject, eventdata, handles)
% hObject handle to Bask (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
close(PROGRAMA);
MODULACION_ASK;
CÓDIGO DEL PROGRAMA PARA LA SEGUNDA INTERFAZ
function varargout = MODULACION_ASK(varargin)
% MODULACION_ASK MATLAB code for MODULACION_ASK.fig
% MODULACION_ASK, by itself, creates a new MODULACION_ASK or raises the
existing
% singleton*.
%
% H = MODULACION_ASK returns the handle to a new MODULACION_ASK or the
handle to
% the existing singleton*.
%
% MODULACION_ASK('CALLBACK',hObject,eventData,handles,...) calls the local
% function named CALLBACK in MODULACION_ASK.M with the given input
arguments.
%
% MODULACION_ASK('Property','Value',...) creates a new MODULACION_ASK or
raises the
% existing singleton*. Starting from the left, property value pairs are
% applied to the GUI before MODULACION_ASK_OpeningFcn gets called. An
% unrecognized property name or invalid value makes property application
% stop. All inputs are passed to MODULACION_ASK_OpeningFcn via varargin.
%
% *See GUI Options on GUIDE's Tools menu. Choose "GUI allows only one
% instance to run (singleton)".
%
% See also: GUIDE, GUIDATA, GUIHANDLES

% Edit the above text to modify the response to help MODULACION_ASK

% Last Modified by GUIDE v2.5 15-Feb-2023 [Link]

% Begin initialization code - DO NOT EDIT


gui_Singleton = 1;
gui_State = struct('gui_Name', mfilename, ...
'gui_Singleton', gui_Singleton, ...
'gui_OpeningFcn', @MODULACION_ASK_OpeningFcn, ...
'gui_OutputFcn', @MODULACION_ASK_OutputFcn, ...
'gui_LayoutFcn', [] , ...
'gui_Callback', []);
if nargin && ischar(varargin{1})
gui_State.gui_Callback = str2func(varargin{1});
end

if nargout
[varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});
else
gui_mainfcn(gui_State, varargin{:});
end
% End initialization code - DO NOT EDIT
% --- Executes just before MODULACION_ASK is made visible.
function MODULACION_ASK_OpeningFcn(hObject, eventdata, handles, varargin)
% This function has no output args, see OutputFcn.
% hObject handle to figure
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% varargin command line arguments to MODULACION_ASK (see VARARGIN)

% Choose default command line output for MODULACION_ASK


axes(handles.axes4);
[x,map]=imread('[Link]');
image(x);
colormap(map);
axis off
hold on

axes(handles.axes5);
[x,map]=imread('[Link]');
image(x);
colormap(map);
axis off
hold on

[Link] = hObject;

% Update handles structure


guidata(hObject, handles);

% UIWAIT makes MODULACION_ASK wait for user response (see UIRESUME)


% uiwait(handles.figure1);

% --- Outputs from this function are returned to the command line.
function varargout = MODULACION_ASK_OutputFcn(hObject, eventdata, handles)
% varargout cell array for returning output args (see VARARGOUT);
% hObject handle to figure
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)

% Get default command line output from handles structure


varargout{1} = [Link];

% --- Executes on button press in Bexit.


function Bexit_Callback(hObject, eventdata, handles)
% hObject handle to Bexit (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
close;

function ASK(g,f)
if nargin > 2
error('Demasiados argumentos de entrada')
elseif nargin==1
f=1;
end

if f<1;
error('Frecuencia debe ser mayor que 1');
end

% --- Executes on button press in Bgraficar.


function Bgraficar_Callback(hObject, eventdata, handles)
% hObject handle to Bgraficar (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
leer=get([Link],'String');
g=audioread(leer);
set(handles.axes1); % Establece los ejes de graficación
axes(handles.axes1);
plot(g);grid on;
f=11025;

ASK(g,f);
t=0:2*pi/99:2*pi;
cp=[];sp=[];
mod=[];mod1=[];bit=[];

for n=1:length(g);
if g(n)==0;
die=ones(1,100);
se=zeros(1,100);
else g(n)==1;
die=2*ones(1,100);
se=ones(1,100);
end

c=sin(f*t);
cp=[cp die];
mod=[mod c];
bit=[bit se];
end
ask=cp.*mod;

set(handles.axes2);
axes(handles.axes2);
plot(bit,'LineWidth',1.5); grid on;
axis([0 100*length(g) -3 3]);
set(handles.axes3);
axes(handles.axes3);
plot(ask,'Linewidth',1.5);grid on;
axis([0 100*length(g) -3 3]);

function leer_Callback(hObject, eventdata, handles)


% hObject handle to leer (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)

% Hints: get(hObject,'String') returns contents of leer as text


% str2double(get(hObject,'String')) returns contents of leer as a double

% --- Executes during object creation, after setting all properties.


function leer_CreateFcn(hObject, eventdata, handles)
% hObject handle to leer (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles empty - handles not created until after all CreateFcns called

% Hint: edit controls usually have a white background on Windows.


% See ISPC and COMPUTER.
if ispc && isequal(get(hObject,'BackgroundColor'),
get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end

% --- Executes on button press in BRegresar.


function BRegresar_Callback(hObject, eventdata, handles)
% hObject handle to BRegresar (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
close(MODULACION_ASK);
PROGRAMA;
ANEXO B

SIMULACIÓN DE LA TRANSFORMACIÓN DE VOZ A TEXTO

• Vocal A

• Vocal E
• Vocal I

• Vocal O
• Vocal U

• Número 0
• Número 1

• Número 2
• Número 3

• Número 4
• Número 5

• Número 6
• Número 7

• Número 8
• Número 9

• Palabra 1
• Palabra 2

• Palabra 3
• Oración 1

• Oración 2
• Oración 3
ANEXO C

SIMULACIÓN DE LA MODULACIÓN ASK EN LOS AUDIOS DE LA BASE DE DATOS

• Oración 1

• Oración 2
• Oración 3
BIBLIOGRAFÍA

Aranda Mayoral Hersay, B. P. (25 de Noviembre de 2015). El Procesamiento de Voz. Obtenido de


[Link]: [Link]
Caicedo Chávez, V. F. (2016). GUÍA PRÁCTICA DE APOYO ACADÉMICO PARA LA
REALIZACIÓN DE MODULADORES DIGITALES ASK FSK Y PSK CONTENIDOS EN EL
SILABO DE LA ASIGNATURA COMUNICACIONES II DE LA CARRERA ELECTRÓNICA
DIGITAL Y TELECOMUNICACIONES DE LA UNIVERSIDAD TECNOLÓGICA ISRAEL.
Obtenido de Master's thesis, Quito: Universidad Israel:
[Link]
m/+Modulaci%C3%B3n+y+demodulaci%C3%B3n+tipo+ask,+fsk+y+psk+como+equipo+
de+laboratorio+para+la+asignatura+sistemas+de+comunicaciones.&hl=es&as_sdt=0,5
MathWorks. (s.f.). ¿Qué es MATLAB? Obtenido de [Link]:
[Link]
Pericas, F. J. (Mayo de 1993). TECNICAS DE PROCESADO Y REPRESENTACION DE LA
SEÑAL DE VOZ PARA EL RECONOCIMIENTO DEL HABLA EN AMBIENTES
RUIDOSOS. Barcelona. Obtenido de
[Link]
nce=3
preparadores de oposiciones. (s.f.). La voz humana: Características, clasificación y fisiología.
Obtenido de preparadores de oposiciones: [Link]
Processing), P. d.–(. (11 de Octubre de 2022). Procesamiento de voz - (Voice Processing).
Obtenido de IMT: [Link]
ulpgc. (s.f.). Características estadísticas de la señal de voz. Obtenido de TeoriaVocoderLPC:
[Link]
Vozalia. (10 de Enero de 2020). La voz humana. Decibelios y su frecuencia de la voz humana.
Obtenido de [Link]: [Link]
frecuencia-de-la-voz-humana/
Wila Espinoza, H. A. (2019). Implementación en software de los sistemas de modulaciones
digitales . Obtenido de (Doctoral dissertation, Universidad de Guayaquil. Facultad de
Ingeniería Industrial. Carrera de Ingeniería en Teleinformática.).:
[Link]
+Implementaci%C3%B3n+en+software+de+los+sistemas+de+modulaciones+digitales+&h
l=es&as_sdt=0,5

También podría gustarte