Está en la página 1de 3

PROGRAMA DE GRABACION DE VOZ EN MATLAB

Este programa consta de una interfaz simple con cuatro botones, un recuadro donde se muestra la
gráfica de la señal, y un texto editable donde se introduce el tiempo en segundos que va a durar la
grabación.

El botón grabar sirve para empezar la grabación del audio; antes de empezar a grabar hay que
ingresar el tiempo en segundos que va a durar la grabación. En el código de Matlab, la grabación
está configurada con una frecuencia de muestreo igual a 44100, el audio se graba a 24 bits y el
número de canales de grabación es 1.

Una vez grabado el audio, viene el botón reproducir, que tiene la función de reproducir el audio
grabado anteriormente y también grafica la señal de audio en el recuadro para las gráficas.

El botón guardar tiene la función de guardar el archivo de audio en el computador, pero antes hay
que introducir el nombre con el que se va a guardar este archivo en un cuadro de texto, este
archivo se guarda con extensión .WAV, y se guarda en la dirección donde estén los archivos del
programa de Matlab.

Y por último el botón salir, que tiene la función de cerrar el programa.

El código del botón de grabación es el siguiente:


function pushbutton1_Callback(hObject, eventdata, handles)
% grabar audio
global recObj hola filename
recObj = audiorecorder(44100, 24, 1);
tiempo= str2double(get(handles.edit1,'String'));
S = get(handles.edit1, 'String');
if isempty(str2num(S)) || isempty(S)
msgbox('Ingrese un valor en segundos');
else
msgbox('Inició la grabación');
recordblocking(recObj, tiempo);
msgbox('finalizó la grabación');
hola = getaudiodata (recObj,'double') ;
plot(handles.axes3,hola);
grid;
end

Primero que todo se define una variable llamada “rec0bj” que es igual a la función de Matlab
“audiorecorder” que se encarga de hacer la grabación, para esta función la definimos con una
frecuencia de muestreo de 44100 Hz, 24 Bits, 1 canal de audio.

El tiempo se introduce por medio de un edit text en la interfaz, y crea una variable llamada
tiempo.
Se Crea un condicional de que si el cuadro del edit text está en blanco, o tiene algún dato que no
sea un número, se muestra un mensaje diciendo que ingrese un valor en segundos.
La función “recordblocking” inicia la grabación con los parámetros que ya se habían configurado
anteriormente, esta función está definida por la variable “rec0bj” y el tiempo introducido
anteriormente.
Luego de haber terminado la grabación, se crea una variable llamada “hola”, que es igual a la
función “getaudiodata”, que tiene como función extraer la información del audio ya grabado.
La función “plot” es para hacer la gráfica del audio ya grabado anteriormente, en este caso hace la
gráfica de la variable “hola” ya creada. Esta grafica se muestra por medio de un “axes” definido en
la interfaz del programa.

El código del botón de reproducir es el siguiente:


function pushbutton3_Callback(hObject, eventdata, handles)
global recObj hola filename
sound(hola,44100)

El código de este botón está conformado por la función “sound” que cumple con la función de
reproducir un audio ya grabado anteriormente, en este caso la variable es “hola”, y se reproduce a
una frecuencia de muestreo de 44100 Hz.

El código del botón de guardar es el siguiente:


global recObj hola filename
G = get(handles.edit2, 'String');
if isempty(G)
msgbox('Ingrese el nombre del archivo');
else
filename=[G,'.wav'];
audiowrite(filename,hola,44100); %Graba en archivo .wav el audio q
pronunciamos
msgbox('Archivo guardado');
end

Este botón recoge la información que se introduzca en el edit text llamado “edit2”, y con esa
información crea una variable llamada “filename”, para luego ser usada por la función
“audiowrite”, que sirve para guardar en un archivo el audio grabado, esta función contiene el
nombre con el que se va a guardar el archivo, la variable “hola” de la grabación, y la frecuencia de
muestreo de 44100 Hz.

El código del botón de salir es el siguiente:


function pushbutton2_Callback(hObject, eventdata, handles)
ans=questdlg('¿Desea salir del programa?','SALIR','Si','No','No');
if strcmp(ans,'No')
return;
else
close(grabarvoz);
end

el botón salir se compone de un cuadro de confirmación que se muestra al presionar este botón;
en el código, por medio de el comando “strcmp”, que si detecta que presionan el botón “no”, se
devuelve a la interfaz, pero si la respuesta es “si”, el comando cierra la interfaz”

Se adjunta una captura de pantalla del programa.

También podría gustarte