Documente Academic
Documente Profesional
Documente Cultură
Procesamiento
del sonido
En MATLAB
Integrantes del grupo:
Jael Mnica Mancilla Rivas
CI.6148335
Gersy Veimar Dvila Suarez
CI.8324996
Materia:
Electroacstica
NDICE
1.
INTRODUCCIN.. 3
2.
OBJETIVOS.. 4
2.1.
OBJETIVO GENERAL...
2.2.
OBJETIVOS ESPECFICOS....
3.
MARCO TERICO..... 5
3.1.
SONIDO.... 5
3.2.
3.3.
MATLAB. 10
3.4.
SEAL DE VOZ. 11
3.5.
FORMANTES. 14
3.6.
4.
MARCO PRCTICO..... 19
5.
CONCLUSIONES.. 39
6. BIBLIOGRAFIA.. 40
PROCESAMIENTO DE
SONIDO EN MATLAB
RECONOCIMIENTO DE VOZ
1. Introduccin
El habla es una de las partes ms importantes de la expresin humana, es algo
que nos diferencia del resto de seres vivos en planeta, ya que sin el habla el
pensamiento mismo del hombre no sera posible.
4
2. OBJETIVOS
2.1.
OBJETIVO GENERAL
2.2.
OBJETIVOS ESPECFICOS
Obtener la
3. MARCO TERICO
3.1. SONIDO
La voz es una seal que lleva informacin consciente, inteligente, producida por
los humanos para que las personas que la escuchan obtengan informacin
directa, sin la necesidad de otra fuente adicional como imgenes o texto.
El lenguaje es la frontera que limita el captar la informacin que se emite. Es la
forma universal de comunicacin entre las personas.
3.2.
COMPONENTES DEL SISTEMA
Micrfono
Es un transductor electroacstica, que tiene como funcin transformar o traducir la
presin acstica ejercida sobre su capsula por las ondas sonoras en energa
elctrica.
La calidad de cada micrfono viene dada por sus caractersticas, las cuales se
describen a continuacin:
Sensibilidad:
Es la eficiencia del micrfono, la relacin entre la presin sonora que incide
(expresada en Pascales) y la tensin elctrica de salida (expresada en voltios).
O sea, expresa que tan bien convierte el micrfono la presin acstica en voltaje
de salida. La sensibilidad se expresa en milivoltios por Pascal.
Al utilizar el milivoltio, la sensibilidad puede ser representada en un voltmetro de
la siguiente manera: a mayor voltaje, mayor sensibilidad.
Fidelidad:
Indica la variacin de sensibilidad con respecto a la frecuencia.
8
El ruido de fondo debe estar en torno a los 60dB, pero mientras ms bajo sea,
mejor calidad ofrece el micrfono.
9
Las dos maneras son validas, por lo que generalmente los fabricantes incluyen la
referencia de salida mxima y la referencia de nivel de pico en las
especificaciones del micrfono. Para aclarar mejor esta caracterstica nos
referiremos a los siguientes dos trminos.
10
3.3.
direcciones.
MATLAB
Pero la razn principal para la eleccin de este lenguaje de programacin son las
herramientas que proporciona para el procesamiento de seales, y el conjunto de
funciones para el procesamiento digital.
Adems, para crear entornos grficos se puede utilizar el GUIDE de
MATLAB, que provee herramientas para crear GUIs, Graphical User Interface,
con lo cual se puede crear la forma del entorno grafico as como asociar funciones
a los elementos del GUI. MATLAB tambin incluye funciones para
manipular
archivos.
3.4.
SEAL DE VOZ
nasal y una serie de elementos articulatorios: los labios, los dientes, el alveolo, el
paladar, el velo del paladar y la lengua.
.
Cuando las cuerdas vocales se encuentran separadas la glotis adopta una forma
triangular. El aire pasa libremente y casi no se produce sonido; este es el caso de
12
El filtrado acta modificando el espectro del sonido. Tiene lugar en las cuatro
cavidades supragloticas principales: la faringe, la cavidad nasal, la cavidad oral y
la cavidad labial.
Las mismas constituyen resonadores acsticos que enfatizan determinadas
bandas frecuenciales del espectro generado por las cuerdas vocales, conduciendo
al concepto de formantes, es decir que se refuerza la amplitud de grupos de
armnicos situados alrededor de una determinada frecuencia.
En resumen, en el habla los formantes se determinan por el proceso de filtrado
que se produce en el tracto vocal por la configuracin de los articuladores.
Dada la anterior explicacin es necesaria una clasificacin acstica, como la que
se resume en la tabla I.:
Tabla I. Resumen de la clasificacin acstica de los sonidos.
3.5.
FORMANTES
Los formantes son elementos que sirven para distinguir componentes del habla
humana, principalmente, las vocales y sonidos sonantes. El formante con la
frecuencia ms baja se llama F1, el segundo F2, el tercero F3, etc.
14
Normalmente slo los dos primeros son necesarios para caracterizar una vocal,
aunque la pueden caracterizar ms formantes. Generalmente, los formantes
posteriores determinan propiedades acsticas como el timbre.
Los dos primeros formantes se determinan principalmente por la posicin de la
lengua. Sucediendo que F1 tiene una frecuencia ms alta cuanto mas baja esta la
lengua, es decir una mayor abertura. Para el F2 tiene mayor frecuencia cuanto
mas hacia delante esta posicionada la lengua.
No todos los sonidos se componen de formantes definidos. Solamente aparecen
en sonantes, que incluyen los sonidos pulmonares: vocales, aproximantes y
nasales. Las nasales tienen un formante adicional F3, en torno a los 1500 Hz.
Si la frecuencia fundamental es mayor que la frecuencia de los formantes,
entonces el carcter del sonido se pierde y se vuelven difciles de distinguir, por lo
cual son difciles de reconocer.
Aqu estn algunos anchos de banda entre los cuales se localizan las vocales:
Tabla II. Formantes Voclicos
3.6.
16
3.7.
17
4. MARCO PRCTICO
18
PROCESO1
Seal de
entrada
Seal
almacenada
Base de
datos
PROCESO 2
Seal de
entrada
Comparacin
con la sea de
la base de datos
19
Nombre del
usuario
GUI PRINCIPAL
ARCHIVO .FIG
ARCHIVO CORRIENDO
20
21
22
if nargout
[varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});
else
gui_mainfcn(gui_State, varargin{:});
end
% End initialization code - DO NOT EDIT
% --- Outputs from this function are returned to the command line.
function varargout = DataBaseAccess_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} = handles.output;
23
EDIT
mfilename, ...
gui_Singleton, ...
@db_manage_OpeningFcn, ...
@db_manage_OutputFcn, ...
[] , ...
[]);
24
% --- Outputs from this function are returned to the command line.
function varargout = db_manage_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} = handles.output;
25
%
contents{get(hObject,'Value')} returns selected item from
list_name
26
index_selected = get(handles.list_name,'Value');
delete_name = list_entries(index_selected(1),:);
index=index_selected(1);
selection = questdlg(strcat('Borrar la voz de nombre:',delete_name),...
'Close Request Function',...
'Si','No','Si');
switch selection,
case 'Si',
name(index,:)=[];
fea(index,:)=[];
no_of_fe=no_of_fe-1;
save(mfcc_file,'no_of_fe','name','fea');
if(no_of_fe==0)
set(handles.list_name,'String',' ');
else
set(handles.list_name,'String',name);
end
case 'No'
return
end
27
28
FUNCIN COMPARACIN
% intial copy modified on 21-01-08
%to extract wavelet SBC feature and save into a file
%
function MFCC_feat_inject(sig,features_mfcc_file,na)
No_of_Gaussians=12;
load(features_mfcc_file);
% no_of_fe will have the no of saved feature
% fe matrix will have the feature
no_of_fe=no_of_fe+1;
LEN=length(na);
name(no_of_fe,1:LEN)=char(na);
f=statusbar('Injecting MFCC');
fe=melcepst(sig,8000);
[mu_train,sigma_train,c_train]=gmm_estimate(fe(:,5:12)',No_of_Gaussians,
20);
fea{no_of_fe,1}=mu_train;
fea{no_of_fe,2}=sigma_train;
fea{no_of_fe,3}=c_train;
save(features_mfcc_file,'no_of_fe','name','fea');
delete(statusbar);
function MFCC_feat_inject(sig,features_mfcc_file,na)
No_of_Gaussians=12;
29
load(features_mfcc_file);
% no_of_fe will have the no of saved feature
% fe matrix will have the feature
no_of_fe=no_of_fe+1;
LEN=length(na);
name(no_of_fe,1:LEN)=char(na);
f=statusbar('Injecting MFCC');
fe=melcepst(sig,8000);
[mu_train,sigma_train,c_train]=gmm_estimate(fe(:,5:12)',No_of_Gaussians,
20);
fea{no_of_fe,1}=mu_train;
fea{no_of_fe,2}=sigma_train;
fea{no_of_fe,3}=c_train;
save(features_mfcc_file,'no_of_fe','name','fea');
delete(statusbar);
30
one
%
instance to run (singleton)".
%
% See also: GUIDE, GUIDATA, GUIHANDLES
% Edit the above text to modify the response to help gui
% Last Modified by GUIDE v2.5 19-Nov-2012 21:40:55
31
% --- Outputs from this function are returned to the command line.
function varargout = gui_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} = handles.output;
% this code sets the max time for recordin
% --- Executes on button press in bt_record.
function bt_record_Callback(hObject, eventdata, handles)
global mfcc_file
global signal
R_samp_len = str2num(get(handles.tx_sec,'string'));
if isempty(R_samp_len)
warndlg('Seleccione Tiempo adecuado para Grabacin','Error');
else
set(handles.tx_msg,'ForegroundColor',[1 0 0],'string','Recording..');
32
% hObject
% eventdata
% handles
=
=
=
=
RECT(1);
RECT(1) + RECT(3);
RECT(2);
RECT(2) + RECT(4);
33
=
=
=
=
RECT(1);
RECT(1) + RECT(3);
RECT(2);
RECT(2) + RECT(4);
34
end
end
35
36
37
function plot_sig()
global signal
samp_len = length(signal)/8000;
delta_t = 1/8000;
t = 0:delta_t:(samp_len-delta_t);
% display the signal
38
39
% handles
structure with handles and user data (see GUIDATA)
global recording_duration;
recording_duration=recording_duration+10;
set(handles.tx_sec,'String',num2str(recording_duration));
40
%
str2double(get(hObject,'String')) returns contents of tx_sec as
a double
5. CONCLUSIONES
Esta tcnica hace posible el uso de la voz del hablante para verificar su
identidad y control de acceso a servicios tales como la marcacin por voz,
banca por telfono, ir de compras telefnicas, servicios de base de datos de
acceso, servicios de informacin, correo de voz, control de seguridad para
las reas de informacin confidencial, y la distancia acceso a las
computadoras.
42
6. Bibliografa
http://es.123rf.com/similarimages/7698469
http://www.youtube.com/watch?v=kcMRNq6HGk
http://es.scribd.com/doc/71767500/Practic
a-4-Reconocimiento-de-Voz-Matlab
http://biblioteca.usac.edu.gt/tesis/08/08_0
223_EO.pdf
43
44