Você está na página 1de 4

UNIVERSIDAD PILOTO DE

COLOMBIA
Laboratorio 1 Seales y Sistemas
Juan Sebastin Otlora Acevedo

Ideas aplicaciones de Seales y


Sistemas:

a) Reconocimiento de voz, espacio y


conduccin autnoma para coches.
b) Libros con realidad aumentada
c) Sistema de Autenticacin de voz
d) Reconocimiento y clasificacin de
imgenes
e) Sistemas de parqueo vehicular

Reconocimiento de voz y
conduccin autnoma.

En el caso de reconocimiento de voz


algunas empresas trabajaran esta
tecnologa la cual se integrar con el
almacenamiento en la nube lo que le
permite al sistema de reconocimiento,
buscar y filtrar informacin, adems
de ser ms veloz y exacto para
presentar informacin relevante sobre
cualquier contenido.
Un aspecto y quiz el ms importante
de los vehculos con conduccin que
no requiere de un usuario es que los
vehculos autnomos tienen el
potencial de reducir los accidentes
porque eliminan la falta de atencin
de los conductores y los errores que
provocan miles de choques, heridas y
muertes
Algunos
ejemplos
desarrollos son:

de

estos

AutoNOMOS
Sync de Ford
Prius de Google

La industria del automvil ya trabaja


en diferentes tecnologas para
incorporar
programas
de
reconocimiento de voz intuitivos que
permitan comunicarse con el vehculo
a travs del lenguaje natural.

F 015 Luxury in Motion Mercedes


Benz

Hoy en da, algunos fabricantes


trabajan en diferentes soluciones
para
incorporar
programas
de
reconocimiento de voz y diferentes
elementos para automatizar la
conduccin.

Se desarroll un algoritmo para


grabar voz durante 2 segundos, a
diferentes frecuencias, definidas por
el usuario.

INTRODUCCIN

OBJETIVOS
Elaborar un algoritmo de grabacin y
reproduccin de audio en matlab.
Poder reproducir en diferentes
rdenes cada segundo mediante la
concatenacin.
Aprender a desarrollar un programa
con guide en matlab la interfaz grafica
Compartir variables entre funciones.

MARCO TERICO

Cdigos Utilizados:
Global -> Nos permite compartir los
valores de las variables en otras
funciones, se uso debido a que se
necesitaba compartir la informacin
de la frecuenciade muestreo y los
valores del audio.
Audiorecorder -> Nos permite crear
un objeto para grabar audio.
Msgbox -> Crea un mensaje en una
ventana.

En este laboratorio usaremos el


comando guide, el cual nos permite
elaborar una interfaz grafica de
manera intuitiva.
Estas herramientas simplifican el
proceso de diseo y creacin del
interface grfico. En la ventana
grfica se pueden disponer paneles,
botones, cuadros de texto, barras de
desplazamiento,
etc.
Genera
automticamente, dos ficheros uno
con extensin .fig que contiene la
informacin sobre el aspecto visual
del interface y otro fichero .m en el
que se codifica la respuesta a las
acciones del usuario sobre los
controles.

Recordblocking -> Nos permite


controlar el objeto recorder, y
controlar el tiempo de grabacin en
segundos (largo del vector de audio).

Para desarrollar el algoritmo se


utilizaron diferentes cdigos para
poder compartir la informacin de las
variables internas de cada funcin
para graficar el sonido, grabar el
audio y escribirlo a un archivo.

Audioread-> Lee el archivo de audio


anteriormente creado.

Getaudiodata -> Almacena la


informacin del audio en un vector.
Disp -> Muestra una cadena de texto
o nmeros o ambos, el cual solo se
ve en el command window.
Audiowrite -> Escribe en un archivo
de audio la informacin grabada, en
este caso en formato wav.
Length -> Nos da el valor del largo del
vector del audio.

Get(handles,Menu_Repro, 'Value') ->


Podemos extraer los datos del objeto
pop up men, combinado con if
podemos reproducir el segundo que
queramos.
Sound(v,Fs) -> Convierte la
informacin de la matriz a sonido.

CODIGO DEL ALGORITMO


function varargout =
Laboratorio_1b(varargin)
gui_Singleton = 1;
gui_State = struct('gui_Name',
mfilename, ...
'gui_Singleton',
gui_Singleton, ...
'gui_OpeningFcn',
@Laboratorio_1b_OpeningFcn, ...
'gui_OutputFcn',
@Laboratorio_1b_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
function
Laboratorio_1b_OpeningFcn(hObject,
eventdata, handles, varargin)
handles.output = hObject;
guidata(hObject, handles);
function varargout =
Laboratorio_1b_OutputFcn(hObject,
eventdata, handles)
varargout{1} = handles.output;
function
Frecuencia_In_CreateFcn(hObject,
eventdata, handles)
if ispc &&
isequal(get(hObject,'BackgroundColor'
),
get(0,'defaultUicontrolBackgroundColo
r'))
set(hObject,'BackgroundColor','white'
);
end
function
Frecuencia_In_Callback(hObject,
eventdata, handles)
global Fs
input =
str2double(get(hObject,'string'));
if isnan(input)
errordlg('You must enter a numeric
value','Invalid Input','modal')
uicontrol(hObject)
return

else
display(input);
end
Fs = input;
function
Boton_grabar_Callback(hObject,
eventdata, handles)
global Fs
global v
y = audiorecorder(Fs, 16, 2);
msgbox('Grabando....')
y = audiorecorder(Fs, 16, 2);
recordblocking(y, 2);
v= getaudiodata(y);
disp('Finalizada la grabacion.');
filename = 'Grabacion.wav';
audiowrite(filename, v, Fs);
plot(v);
function
Boton_Reproduccion_Callback(hObject,
eventdata, handles)
global Fs
global v
c = length(v);
y1 = v(1:c/2);
y2 = v(c/2:c);
v1 = [y2 y1];
v2 = [y1 y1];
v3 = [y2 y2];
[v,Fs] = audioread('Grabacion.wav');
w = get(handles.Menu_Repro,'Value');
if w == 1
sound(v,Fs);
elseif w == 2
sound(v1,Fs);
elseif w == 3
sound(v(1:c/2),Fs);
elseif w == 4
sound(v2,Fs);
elseif w == 5
sound(v(c/2:c),Fs);
elseif w == 5
sound(v3,Fs);
end
function Menu_Repro_Callback(hObject,
eventdata, handles)
.
function
Menu_Repro_CreateFcn(hObject,
eventdata, handles)
if ispc &&
isequal(get(hObject,'BackgroundColor'
),
get(0,'defaultUicontrolBackgroundColo
r'))
set(hObject,'BackgroundColor','white'
);
end

Este algoritmo permite grabar,


graficar, y reproducir el sonido; Se
puede reproducir completo, o por
cada segundo.
Para poder cambiar el orden de
reproduccin de los segundos se
concateno en diferentes rdenes
cada segundo.

CONCLUSIONES

Para poder grabar y luego reproducir


el audio se observa que es posible
lograrlo mediante el uso de la funcin
global, o escribiendo la informacin
en un archivo y luego cargndolo en
la seccin reproduccin, obteniendo
la informacin de cada segundo para
luego concatenar y reproducir de la
manera deseada.
Podemos observar que matlab
ejecuta ciertas partes de los scripts
de acuerdo a la ventana que esta
seleccionada, en este caso ploteo la
grfica en el espacio designado y en
la ventana de mensaje de grabacin.
Al seleccionar una frecuencia de
muestreo menor, la cantidad de
informacin con un mismo sonido,
disminuye, se puede escuchar que
con frecuencias en el orden de
2500Hz hacia abajo es muy difcil
escuchar la voz y da la apariencia de
que se estuviera hablando desde
lejos
Y al contrario al usar frecuencias
altas desde 33000Hz podemos

escuchar mltiples sonidos en el


ambiente, la voz es mucho ms clara,
fuerte y aguda.

Você também pode gostar