Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Figura #2 : CODECS.
METODOLOGÍA
Código:
audioSource =
Figura #1: Voz IP.
dsp.AudioFileReader('SamplesPerFrame',80,...
VAD: 'Filename','speech_dft_8kH
La detección de actividad de voz (VAD) es un z.wav',...
problema crítico en muchas aplicaciones de 'OutputDataType', 'single');
voz / audio, incluida la codificación de voz, el scope = dsp.TimeScope(2, 'SampleRate',
reconocimiento de voz o la mejora de la voz. [8000/80 8000], ...
Por ejemplo, el estándar ITU-T G.729 utiliza 'BufferLength', 80000, ...
módulos VAD para reducir la velocidad de 'YLimits', [-0.3 1.1], ...
transmisión durante los períodos de silencio 'ShowGrid', true, ...
del habla. [2] 'Title','Decision speech and
speech data', ...
CODEC: 'TimeSpanOverrunAction','Scroll'
Un codec es un chip de circuito integrado en );
gran escala (LSI, de large scale integration)
diseñado para la industria de las VAD_cst_param = vadInitCstParams;
telecomunicaciones, para centrales de clear vadG729
abonado (PBX, de private branch exchanges), numTSteps = 1000;
conmutadoras de oficina central, equipos while(numTSteps)
digitales manuales, sistemas de voz de speech = audioSource();
almacenar y enviar y supresores digitales de
decision = vadG729(speech,
VAD_cst_param); Explicación del código:
scope(decision, speech);
numTSteps = numTSteps - 1; En la primera etapa, se extraen cuatro
end características paramétricas de la señal de
release(scope); entrada. Estos parámetros son las energías de
trama de banda completa y de banda baja, el
release(audioSource); conjunto de frecuencias espectrales de línea
(LSF) y la velocidad de cruce de trama cero. Si
codegen vadG729 -args {single(zeros(80,1)), el número de trama es inferior a 32, se lleva a
coder.Constant(VAD_cst_param)} cabo una etapa de inicialización de los
promedios a largo plazo, y la decisión de la
audioSource = actividad de voz se ve obligada a 1 si la
dsp.AudioFileReader('speech_dft_8kHz.wav', . energía de la trama del análisis LPC es
.. superior a 21 dB. De lo contrario, la decisión
'SamplesPerFrame', 80, ... de actividad de voz se fuerza a 0. Si el número
'OutputDataType', 'single'); de trama es igual a 32, se produce una etapa
clear vadG729 de inicialización para las energías
características del ruido de fondo.
VAD_cst_param = vadInitCstParams;
tic; En la siguiente etapa, se calcula un conjunto
while ~isDone(audioSource) de parámetros de diferencia. Este conjunto se
genera como una medida de diferencia entre
speech = audioSource(); los parámetros de cuadro actuales y los
decision = vadG729(speech, promedios de las características de ruido de
VAD_cst_param); fondo. Se calculan cuatro medidas de
end diferencia:
t1 = toc;
a) Una distorsión espectral
reset(audioSource); b) Una diferencia energética
c) Una diferencia de energía de banda baja
tic; d) Una diferencia de cruce por cero
while ~isDone(audioSource) La decisión de actividad de voz inicial se toma
speech = audioSource(); en la siguiente etapa, utilizando regiones de
decision = vadG729_mex(speech, decisión de múltiples límites en el espacio de
VAD_cst_param); las cuatro medidas de diferencia. La decisión
end de voz activa se da como la unión de las
t2 = toc; regiones de decisión y la decisión de voz no
activa es su decisión lógica complementaria.
disp('RESULTS:') Las consideraciones energéticas, junto con las
disp(['Time taken to run the MATLAB code: ', decisiones de marcos pasados vecinos, se
num2str(t1), ' seconds']); utilizan para suavizar las decisiones. Los
disp(['Time taken to run the MEX-File: ', promedios de ejecución deben actualizarse
num2str(t2), ' seconds']); solo en presencia de ruido de fondo y no en
disp(['Speed-up by a factor of ', presencia de voz. Se prueba un umbral
num2str(t1/t2),... adaptativo y la actualización se lleva a cabo
' is achieved by creating the MEX-File']); solo si se cumple el criterio del umbral.
displayEndOfDemoMessage(mfilename)
A continuación, observamos la imagen que
resulto después de implementar el código:
observamos cuando no hay audio:
disp(z)
sound(z,Fs);