Está en la página 1de 5

1

DE CANALES DE AUDIO CON ANULACION MATLAB


Daniel Cevallos, Cristobal Juan Carlos Calderon, Canarte Escuela Politecnica Nacional Software de Simulacion

a N (2) Si N es un vector de dos elementos. Y = mp3read (nombre.mp3, FMT) o Y = mp3read (nombre.mp3, N, FMT). Con FMT como declaraciones de nativosque retorna Int16 muestras en lugar de dobles; FMT puede ser doble para el comportamiento por defecto (para reejar exactamente la sintaxis de wavread). de nuestro En nuestro caso para la realizacion 1. INTRODUCCI ON de nuestro programa pri- programa utilizaremos la siguiente sintaxis: Para la realizacion mero debemos denir y ver la utilidad de cada una de las funciones y Toolbox que vamos a [Y, Fs] = mp3read (nombre.mp3); utilizar como son: Donde ya concluimos que Y es un vector en el cual se almacena el formato de audio el cual 1.1. Toolbox mp3readwrite var a entre valores de -1 a 1 y para reproducir Este Toolbox se compone de dos carpetas las nuestro archivo a la velocidad normal en la que a denido este, utilizamos Fs el cual es la cuales son mp3read y mp3write pero nosotros est mas nos enfocaremos en el funcionamiento de frecuencia de muestreo del mismo sin realizar alguna. mp3read que presenta este toolbox. modicacion la funcion nos permite alma mp3read lee un archivo de audio Esta sintaxis de la funcion La funcion cenar nuestro archivo de audio en una matriz mp3 a trav es del uso de un codigo binario en la cual podemos realizar varias operaciones externo. Donde la sintaxis general es: Y = mp3read (nombre.mp3) en esta con esta como reproducir el audio, cambiar su se lee un archivo de audio frecuencia ,etc. especicacion en un vector al igual que mp3 con codicacion Audioread wavread lee un archivo wav codicado (un 1.2. Funcion de sonido junto .mp3 se Nos permite obtener la senal canal por columna). La extension con la frecuencia del archivo a leer, soporta anade si el archivo no tiene ninguna estension. tambi Esta funcion en acepta otros formatos formatos: .ogg, .mp3, .wav,.ac,.au,.mp4,.m4a. que nos retorna Sin embargo no es la funcion como: del archivo le de manera directa la senal do, Y = mp3read (nombre.mp3, N) para leer solo que utililos primeros marcos de muestreo N (donde N sino que dependiendo de la extension para que obtenga a a otra funcion es un escalar), o tambi en los marcos de N (1) cemos llamar
ResumenEn el siguiente art culo desarrollaremos un programa realizado en MatLab en el cual consiste en extraer cualquier formato de audio y mediante codigos de programacion suprimir canales de audio donde el usuario decinos permita cual estara activo ya sean los dos canales, el canal derecho dira izquierdo, para esto utilizaremos algunos Toolbox donde estos o se detallaran en el transcurso del programa.

y la frecuencia de la senal. la senal Para los mp3read de archivos mp3 llamar a a la funcion anteriormente. la que se trato Sintaxis: >>[y Fs]=audioread(nombre.extension); Donde de sonido. y: es la senal Fs: es la frecuencia. Entre las comillas simples es necesario colocar el nombre exacto del archivo si se encuentra de Current Folder en la que se en la direccion est a trabajando, caso contrario entre las comi completa del lugar llas deber a ir la direccion en el que se encuentra el archivo, por ejemplo: >>[y Fs]=audioread( C : \U sers\P C \Desktop \audio.mp3 ); Aunque para nuestro proposito basta con co del archivo a nocer la frecuencia y la senal audioread tambi analizar, la funcion en puede en un intervalo as obtener una senal : >>[y Fs]=audioread(nombre.extension, intervalo); Donde intervalo necesariamente debe ser un vector de la manera: [valor inicial, valor nal] del archivo La variable y almacenar a la senal le do en forma de matriz de dos columnas por n las (n debido a que el numero de valores var a dependiendo del tiempo que dure el archivo de audio). Donde a la primera columna monof le corresponde la senal asica derecha, y izquierda. la segunda columna a la senal

sound(Y,Fs), esto es gracias a que la funcion se puede asignar una variable a la funcion audioplayer, de la siguiente manera: Audio2 = audioplayer(Y,Fs) Esta funcion permite playback, es de de audio en segundo cir, la reproduccion plano, mientras se realizan otras actividades en matlab e incluso despu es de haber terminado la del script en el que se uso la funcion. ejecucion Otra caracter stica muy importante es que la audioplayer una vez asignado su valor funcion a una variable, puede ser manipulada por otras funciones, como play(), stop(), resume(), esto permite que cuando se reproduzca el audio play()), luego de un tiempo se (con la funcion y lo pueda pausar, continuar su reproduccion, terminar totalmente la reproduccion. 1.4. play Funcion

>>play(var) Donde var es la variable audioplayer que con y la frecuencia del audio analizatiene la senal do. Adem as de que nos permite reproducir la senal almacenada en var desde un punto de preferencia hasta un punto nal. Es decir: >>play(var, inicio) Donde inicio, es una variable escalar, es decir una matriz de uno por uno, que representa la desde la cual se iniciar posicion a la reproduc Audioplayer 1.3. Funcion del sonido. cion Es una de las funciones m as importantes >>play(var,[inicio n]) usadas en el proyecto, de la forma usada en el Donde ahora el segundo argumento es un vec nos permite crear un objeto script, la funcion desde una tor que permite reproducir la senal que va a tener dos caracter sticas o par ametros: inicio hasta una posicion n. posicion Y que puede ser un vector o matriz de dos elementos conteniendo datos de matlab de un archivo de audio previamente denido. Fs que es la frecuencia del audio importado. 1.5. Stop() Funcion

de matlab que permite deteEs una funcion ner un proceso, que es el par ametro de entrada en nuestro caso, se desea detener de la funcion, del audio que fue asignado a la reproduccion Es la sintaxis m as sencilla, pero se pueden una variable usando la funcion audioplayer. agregar m as par ametros como por ejemplo los Por ejemplo, la sintaxis usada en el script del bits del audio ingresado, etc. proyecto fue: viene La importancia del uso de esta funcion dada ya que es mucho m as manejable que Stop(audio2)

deseada % variable que almacena la opcion o=input(Escoja la opcion requerida ); % condiciones para romper el lazo if o >= 1 & & o <= 4 aux3=2; else disp(ingrese una opcion v alida ) pause() 1.6. Funcion end a diferencia de la anterior end Esta funcion Stop(),se utiliza m funcion as en los scripts % Control del menu animados en los cuales nos permite unicamente pausar el script durante n segundos para switch o que el usuario digite alguna otra orden o simplemente para ejecutar de manera pausada % primer caso codigos que son muy r apidos, la sintaxis de la case 1 es: siguiente funcion % ingreso del nombre de la cancion, la ,ssirve para que no sea necesario notacion el ingreso de comillas con el nombre de la pause(n); cancion nombre=input(ingrese el nombre de la resume() 1.7. Funcion cancion: ,s); de matlab que nos % uso del toolbox mencionado anteriormente. Esta es una funcion o de [Y Fs] = mp3read(nombre); permite resumir una pausa de grabacion de algun script, la sintaxis de esta % una variable dim va a almacenar el tamano la ejecucion es la siguiente: funcion de Y para poder usarlo en el lazo for dim=size(Y); % realizamos un lazo for hasta la dimension resume (obj) de la matriz Y, en este caso en la columna 1 registrando desde la ubi- por ser el canal derecho Donde esta continua en pausa. cacion for i=1:dim(1) % se llena de ceros la primera la de Y para anular el canal DEL P ROGRAMA 2. R EALIZACI ON Y(i,1)=0; 2.1. Estructura basica del script end clc; % a una variable audio2 se le asigna la funcion clear all; audioplayer con los valores de Y y Fs close all; audio2=audioplayer(Y,Fs); % lazo y auxiliar que nos permite hacer % se reproduce audio2 mediante la funcion repetitivo al programa play(audio2) aux=1; play(audio2); inicial para el lazo repetitivo while aux==1 % condicion % Despliegue del menu o2=1; disp(1.- Reproducir canal derecho ); % lazo repetitivo para detener el audio disp(2.- Reproducir canal izquierdo ); while o2==1 inicial disp(3.- Reproducir los dos canales ); % condicion disp(4.- Salir ); aux2=1; del segundo % lazo repetitivo para solicitar la opcion de %lazo y variable inicial (condicion lazo repetitivo) detener el audio aux3=1; while aux2==1 while aux3==1 % una variable o2 que almacena el valor para

resume(), la funcion A diferencia de la funcion del stop(), detiene totalmente la reproduccion audio as haya estado en segundo plano, puede ser ejecutada en el script tanto como en el comand window.

interpretarlo si desea detener el audio o2=input(si desea detener el audio presione 1: ); para romper el lazo % condicion if o2==1 % romper el lazo aux2=2; o2=2; else ingresada es incorrecta, se % si la opcion despliega el mensaje solicitando otra disp(ingrese una opcion valida) end end % una vez que salga de los lazos signica que solicito detener el audio, por lo que se usa la stop(audio2) funcion stop(audio2) end case 2 % en el caso 2 el procedimiento es igual que el anterior, solo var a en el lazo for, al llenar una columna con cero ser a la numero 2 en lugar de la primera nombre=input(ingrese el nombre de la cancion: ,s); [Y Fs] = mp3read(nombre); dim=size(Y); for i=1:dim(1); % se anula la segunda columna Y(i,2)=0; end audio2=audioplayer(Y,Fs); play(audio2); o2=1; while o2==1 aux2=1; while aux2==1 o2=input(si desea detener el audio presione 1: ); if o2==1 aux2=2; o2=2; else disp(ingrese una opcion v alida) end end stop(audio2) end

case 3 % en este caso, el proceso es el mismo, lo unico que var a es que no es necesario implementar el lazo for, ya que no se va a canal del audio ingresado anular ningun nombre=input(ingrese el nombre de la cancion: ,s); [Y Fs] = mp3read(nombre); dim=size(Y); audio2=audioplayer(Y,Fs); play(audio2); o2=1; while o2==1 aux2=1; while aux2==1 o2=input(si desea detener el audio presione 1: ); if o2==1 aux2=2; o2=2; else disp(ingrese una opcion v alida) end end stop(audio2) end case 4 para terminar el lazo repetitivo del % condicion menu aux=2; otherwise % mensaje en el caso de que ingrese una opcion fuera del rango del menu disp(La opcion ingresada no es correcta, por favor ingrese una opcion v alida: ); % termino del switch end % simplemente es un espacio en blanco para por separado diferenciar mejor cada ejecucion disp( ) % termino del lazo repetitivo del menu end 2.2. Vista del programa ejecutado Aqu podemos observa como el programa en el cual el usuario denos presenta el menu y esta ejecutar ber a escojer una opcion a segun lo programado anteriormente.

Se podr a encriptar y desencriptar el sonido obtenido, simplemente variando la frecuencia y realizando operaciones a cada obtenida. muestra de senal

5.

BIBLIOGRAFIA
http://www.mathworks.com/matlabcentral/ leexchange/32894-audioread-uniedaudio-le-input-function http://www.mathworks.com/matlabcentral/ leexchange/13852-mp3read-andmp3write/content/mp3readwrite/html/ demo mp3readwrite.html Herramienta Help en la interfaz Comand Window de matlab.

3.

C ONCLUSIONES

En el transcurso del proyecto realizado podemos citar las siguientes conclusiones: del archivo en Para realizar la impotacion formato .mp3 a Matlab normalmente no denidida nos proporciona una funcion por lo que para realizar dicha exportacion tenemos que descargar el Toolbox e instalarlo para poder ejecutar el programa. Todo archivo que va a ser exportado a matlab debe estar en el Current Folder en el cual estamos trabajando. de lazos innitos en el modo La utilizacion fue necesario para introde programacion ducir los comandos para pausar, detener y volver a reproducir el audio exportado. de los canales de audio Para la supresion lo unico que se realiza es llenar de ceros los valores del canal ya que matlab trabaja con matrices y al momento de llenarlo con ceros se suprimir an todos estos valores.

6.

BIOGRAF I AS

en Sierra Nacio Juan Carlos Calderon Quito-Ecuador el 10 de Octubre de 1992. Estudios secundarios realizados en el Colegio Instituto Nacional Mej a actualmente estudiante de la Escuela Politecnica Nacional cursando el 4to semestre en Ingenier a en Electronica y Control.

4.

A PLICACIONES
Gracias al toolbox instalado podemos no de un archivo de solo obtener la senal sonido en un solo formato sino tambi en, de otros tipos de archivos. obtener la senal digitalizada podemos modiCon la senal sta contega, car cualquier par ametro que e sta opcion suele ser muy util en cuanto a e de efectos especiales. creacion m En cuanto a una aplicacion as profesional, se renan los sonidos muestreados para crear un sonido claro y sin distorsio de nes, como es el caso de la grabacion en un estudio. una cancion

Daniel Alejandro Cevallos Zambonino el 27 de septiembre de 1993 en Nacio la ciudad de Salcedo-Cotopaxi en Ecua sus estudios Secundarios en la dor, realizo Unidad educativa Hermano Miguel Latacunga, actualmente se encuentra estu diando Ingenier a en Electronica y Control en la Escuela Politecnica Nacional.

en Cristobal El as Canarte Allauca Nacio la ciudad de Quito- Ecuador el 09 de no sus estudios seviembre de 1993. Realizo cundarios en el Colegio Borja No 3 Cavanis, actualmente se encuentra estudiando Ingenier a en Electronica y Control en la Escuela Politecnica Nacional.

También podría gustarte