Está en la página 1de 6

Laboratorio de Procesamiento Digital de Voz

Practica 1. INTRODUCCION DE MATLAB Y MANEJO DE ARCHIVOS DE VOZ


Objetivo: Conocer las formas principales de archivar informacin correspondiente a seales de voz. Convertir los distintos formatos de archivos para ser usados en diversas aplicaciones de anlisis.

Introduccin a Matlab.
Matlab, Matrix laboratory, es un software con el cual se pueden realizar una gran cantidad de operaciones matemticas; se pueden realizar desde operaciones sencillas como suma, resta, multiplicacin, etc., hasta aplicar funciones para el manejo de filtros, transformada de Fourier, Procesamiento de Imgenes, Procesamiento de Voz, etc. Por ejemplo, se puede calcular una sencilla multiplicacin de la siguiente forma
>> 5*3 ans = 15

o se puede calcular la transformada de Fourier de una seal x(n) dada, utilizando el siguiente comando
>> y = fft(x) y = 1.0e+002 * 1.27225135155731 0.02526963248074 - 0.05726891721053i 0.01410269133890 + 0.04244480168186i -0.00209553328642 + 0.01159136563156i ...

En Matlab no es necesario declarar el tipo de variables, solo es necesario inicializar la variable con su valor y el tipo es automticamente asignado. Por ejemplo:
>> y = 4 >> m = -3.4 >> str = Hola Mundo

Todas las variables son almacenadas en el espacio de trabajo base (workspace base), por lo que despus de declarar una variable se puede hacer uso de su valor en clculos posteriores. Nota: Matlab crea un espacio de trabajo independiente para las llamadas a las funciones por los que las variables inicializadas en el espacio de trabajo base no se pueden visualizar dentro de una funcin (solo con funciones apropiadas por ej: evalin). Para mayor informacin consulte la ayuda de Matlab. Para visualizar las variables de entorno en el espacio de trabajo actual, se utiliza el comando who. Por ejemplo, el siguiente comando muestra las variables de entorno en el espacio de trabajo base.
>> who Your variables are: ans h x y

Laboratorio de Procesamiento de Voz

Ing. Oscar Navarrete Tolento Rev. M.I. Jaime Alfonso Reyes Corts

En este caso se tienen tres variables (h, x, y), la palabra reservada ans se toma como otra variable que almacenan el ltimo resultado de una operacin sin asignar a una variable, por ejemplo cuando multiplicamos >>5*3 ans = 15. Las variables numricas se pueden representar mediante escalares, vectores o matrices. De hecho, Matlab considera a las dos primeras tambin como matrices, e incluso tambin a las cadenas. A continuacin se muestra la forma de asignar estos valores:
>> s = 4 %escalar >> v = [-3.4, 2+i, 3, 1.2-0.2i] %Vactor >> m = [4, 3, 1; 3, 1.2, 0.2i] %Matrz

Matlab, tiene una sintaxis muy parecida a la de los lenguajes de programacin conocidos, por lo que su uso es muy fcil de entender una vez conocido otro lenguaje. Adems de las capacidades normales de los lenguajes de programacin estndar, Matlab tiene operadores, funciones y recursos apropiados para realizar clculos cientficos. Por ejemplo, para asignar un vector a una variable y graficarlo, con solo dos instrucciones se puede hacer:
>> v = [-3.4, 2, 3, 1.2,-0.2]; >> plot(v)

o, si desea sacar el logaritmo a este vector se escriben los siguientes comandos


>> v = [-3.4, 2, 3, 1.2,-0.2]; >> plot(log(v))

Una de las ventajas de Matlab es el poder escribir un programa en un editor de texto y despus correrlo en el prompt de la ventana de comandos. Para poder hacer esto debe seguir los siguientes pasos: 1. Abra el editor de Matlab, que viene incluido con la versin de Matlab. Se recomienda porque adems de ser un editor tambin cuenta con un debugger, sin embargo, se puede utilizar cualquier otro editor de textos como: el bloc de notas o el editor de MSDOS. 2. Escriba el programa correspondiente, como ejemplo puede ser el siguiente cdigo:
x = [-3.4, 2, 3, 1.2,-0.2]; y = 1:5 z = x .* y plot(z)

3. Guarde el programa con extensin .m (en el editor de Matlab es la extensin por default). Hay que cuidar que el nombre no contenga espacios ni caracteres extraos. Recuerde que el bloc de notas de Windows agrega la extensin txt al final de cada documento que se guarda, por lo que el nombre del archivo junto con la extensin se deber teclear entre comillas dobles ( ), de lo contrario ser necesario corregirlo. 4. Una vez almacenado el programa, regrese a la ventana de comandos de Matlab, cambie de directorio de trabajo con el comando cd, de la misma forma que MSDOS o utilizando el icono de cambio de directorio (este ltimo se encuentra disponible solo en versiones de Matlab superiores a la 6). Por ltimo ejecute el programa escribiendo el nombre del archivo sin extensin. Uno de los comandos mas usados es el comando de ayuda help, la forma de usar este comando es: se escribe el comando help, seguido por el nombre de la funcin a la que solicita pedir informacin. Por ejemplo: para solicitar la ayuda de la funcin sinc, se escribe. Laboratorio de Procesamiento de Voz 2 Ing. Oscar Navarrete Tolento Rev. M.I. Jaime Alfonso Reyes Corts

>> help sinc

En respuesta a dicho comando se despliega lo siguiente:


SINC Sin(pi*x)/(pi*x) function. SINC(X) returns a matrix whose elements are the sinc of the elements of X, i.e. y = sin(pi*x)/(pi*x) if x ~= 0 = 1 if x == 0 ...

Nota: Observe que Matlab en la ayuda despliega el nombre de la funcin en maysculas para resaltar su uso, sin embargo, se debe tomar en cuenta que la sintaxis de todas las funciones definidas en Matlab es con minsculas. Matlab utiliza las sentencias de control tradicionales como if, while, switch, for, etc. El uso de estas funciones es muy similar a como se da en los lenguajes de programacin convencionales, por lo que no es necesario describirlos, para obtener mayor informacin acerca de ellos utilice el comando de ayuda de Matlab. Tambin es posible usar el comando doc, seguido del nombre de la funcin o comando del que se desee obtener mayor informacin. Este comando abre una ventana que muestra la informacin dada en la ayuda junto con informacin ms detallada acerca del comando que se quiere consultar.

Manejo de archivos de voz.


Conceptos bsicos: En las prcticas del laboratorio se maneja diferentes tipos de archivos como son: los archivos con formato RAW, archivos en cdigo ASCII, archivos con formato RSM y archivos con formato WAV, todos ellos son archivos de sonido utilizados por diversos sistemas y programas. 1. Archivos RAW: La informacin proveniente de un cuantizador de 16 bits con formato little endian es almacenada en este tipo de archivos. Los datos se guardan sin encabezado y en un formato de nmeros enteros en binario, cuya longitud es de 16 bits. Por ejemplo, la siguiente figura muestra el contenido del archivo 1an.raw en forma binaria (el primer valor seleccionado corresponde al primer valor de la seal y as sucesivamente).

Laboratorio de Procesamiento de Voz

Ing. Oscar Navarrete Tolento Rev. M.I. Jaime Alfonso Reyes Corts

2. Formato RSM o D10: Las aplicaciones en DSPs de Texas Instruments, utilizan este tipo de formato. La informacin que se almacena en este archivo, consta de un encabezado de 512 bytes, seguido por muestras de un cuantizador de 16 bits con formato Big-Endian. La siguiente figura muestra el archivo 1an.d10 en formato binario en donde los primeros 512 (seleccionados) son el encabezado.

3. Formato ASC: Este formato es utilizado por Matlab. Son archivos de texto donde se almacenan las muestras de audio en forma secuencial, estos archivo no tiene encabezado y los nmeros son representados como nmeros arbigos en formato ASCII. Este archivo se puede observar en cualquier editor de texto. 4. Formato WAV: Es el formato de archivos de audio creado para la versin Windows 3.1 y posteriores, este formato consta de un encabezado seguido por las muestras de la seal, las cuales con ayuda de una aplicacin Windows pueden variar en la forma en que se almacenan.

Desarrollo.
En el directorio c:\labvoz se encuentran varios archivos con extensin *.RSM, *.ASC y *.RAW. Estos archivos son las pronunciaciones en ingles del cero al diez, muestreados con una frecuencia de muestreo de 11025 Hz. Utilice estos archivos para realizar lo siguiente. 1. Abra un archivo para cada uno de las extensiones, use el editor de Visual C++ o el equivalente proporcionado por el profesor y anote sus observaciones. Nota: En caso de no contar con un editor de Visual C++ omita este paso. Laboratorio de Procesamiento de Voz 4 Ing. Oscar Navarrete Tolento Rev. M.I. Jaime Alfonso Reyes Corts

2. Use la siguiente instruccin para leer los archivos con extensin ASC en Matlab. >> x = load(nombreArchivo.asc); Para visualizar las variables actuales, escriba el comando: >> who 3. Grafique la seal resultante, usando la siguiente instruccin >> plot(x) 4. Escuche la seal usando la siguiente instruccin >> soundsc(x, Fs) donde FS: es la frecuencia de muestreo. 5. Para el mismo archivo pero con formato raw: >>fid=fopen('1an.raw', 'r') >>y=fread(fid, inf, 'int16'); >>fclose(fid) 6. Despliega la grfica con la instruccin: >>plot(y) 7. De igual forma escuche la seal usando la siguiente instruccin >> soundsc(y, Fs) donde FS: es la frecuencia de muestreo. 8. Utilice la siguiente instruccin para observar el espectrograma de la seal >>spectrogram(y). 9. Para aislar segmentos de nuestra seal de voz: >>s=y(inicio:fin) graficar el segmento. 10. Usa la instruccin help para conocer los parmetros de las siguientes instrucciones: load, soundsc, fopen, fread, specgram. 11. Usar la siguiente instruccin de Matlab, para ver el potencial de este en las distintas disciplinas y especialmente en el rea de procesamiento de seales. >>demo

Laboratorio de Procesamiento de Voz

Ing. Oscar Navarrete Tolento Rev. M.I. Jaime Alfonso Reyes Corts

Proyecto.
1) El proyecto consiste en realizar un programa que convierta los archivos d10 (o RSM) a formatos ASC y RAW con sus respectivas extensiones. Consulte la documentacin de esta prctica y la dada por el profesor. 2) Realizar un programa que convierta archivos RAW a formato d10 y a formato ASC, con sus respectivas extensiones. 3) Realiza un programa que convierta archivo con formato ASC a formato d10 y RAW, con sus repectivas extensiones. Nota: Realice los programas como funciones ya que sern necesarios para las prcticas subsecuentes.

Laboratorio de Procesamiento de Voz

Ing. Oscar Navarrete Tolento Rev. M.I. Jaime Alfonso Reyes Corts

También podría gustarte