Está en la página 1de 5

Laboratorio #2

VOZ EN REDES DE PAQUETES


Camila Diosa Silva Cód: 2019373005
Eduardd Giovanny Rincón Cód: 20182373016
Ginna Liseth Diaz Cod: 20192373020
lcdiosas@correo.udistrital.edu.co, egrinconm@correo.udistrital.edu.co, gldiazd@correo.udistrital.edu.co.

Universidad Distrital Francisco José de Caldas


Tecnologías sobre IP

por el mismo medio.


- Uno de los utensilios para hacer una
Abstract— In the present laboratory we will
utilización correcta de las redes es los
observe the operation of the CODEC G729
CODECS.
VAD that can be found in MATLAB, this will be
done in order to understand the method to
conserve bandwidth in a transmission line with OBJETIVO GENERAL:
the least possible loss of information. - Explorar el funcionamiento y
Then a search was made on voice CODECS to características del VA y las diferentes
be able to make a confrontation between the clases más utilizadas de CODECS.
different classes that exist.
● Key words — CODEC. VAD OBJETIVOS ESPECÍFICOS:

Resumen— En el presente laboratorio - Analizar el comportamiento de las


observaremos el funcionamiento del CODEC señales ON y OFF después de atravesar
G729 VAD que se puede encontrar en por el VAD.
MATLAB, esto se realizará con el fin de - Explorar cada una de las líneas de código
comprender el método para conservar el del CODEC G729 y de esta manera
ancho de banda en una línea de transmisión descifrar su funcionamiento y
con la más mínima pérdida de información desempeño.
posible.
Luego se realizó una búsqueda sobre  MARCO TEÓRICO
CODECS de voz para poder hacer una
confrontación entre las distintas clases que DEFINICIÓN DE VOZ IP:
existen. Es una tecnología que permite realizar una
conversación oral haciendo uso de la red de
conmutación de paquetes mediante el empleo
Índice de Términos—
del protocolo IP y conjugándolo con el
● CODEC. VAD
protocolo RTP, el cual permite ejecutar
aplicaciones en tiempo real. Los pasos básicos
• INTRODUCCIÓN para la generación de una llamada telefónica a
través de Internet consisten en la conversión
de la voz analógica a un formato digital y la
En esta materia se ha venido tocando el
compresión y empaquetamiento de la señal
tema de las redes de conmutación de circuitos
obtenida para su transmisión. En el extremo
y de paquetes, así como su utilización para
opuesto se realiza el proceso inverso para
emitir comunicaciones por voz. También se
recuperar la señal vocal. En cuanto a los
han concretado algunos objetivos y diferencias
dispositivos necesarios para llevar a cabo este
importantes y estas son:
proceso pueden ser tanto un ordenador, un
- La utilización correcta de los canales de
teléfono VoIP como un teléfono tradicional con
comunicación para emplear un envío con
o sin adaptador, dependiendo del tipo de
una cantidad considerable de información
servicio deseado. Entre las funcionalidades eco. En esencia, el codec se puede aplicar en
aportadas podemos destacar la posibilidad de cualquier función que requiera digitalizar
realizar varias llamadas de forma simultánea, señales analógicas, por ejemplo, en el sistema
la inclusión de protocolos que permiten cifrar y de portadora PCM-TDM. [3]
autenticar la trama de datos (Secure RTP) [5],
la integración con otros servicios disponibles
en la red de Internet o el hecho de que la
movilidad es completamente transparente.
Además, desde el enfoque empresarial, se ha
verificado que el uso de la telefonía sobre IP
aumenta la productividad y ocasiona costes
operacionales más bajos. [1]

Figura #2 : CODECS.

METODOLOGÍA

1. DESARROLLO PRIMER PUNTO


Se hizo la búsqueda pertinente y se encontró
que para realizar la implementación del
programa de MATLAB se podían de 2 formas y
nosotros escogimos la implementación directa
del código.

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:

Figura #3: Gráfica G729

Al haber implementado el código directamente


vemos como se cumple el objetivo de ahorrar
ancho de banda al no transmitir silencios.

2. DESARROLLO SEGUNDO PUNTO

Para la realización de este punto se tomó


como punto de partida los CODECS de CISCO
pero también hay otros que se encontraron en
diferentes fuentes.
Esto fue elaborado para implementar troncales
SIP para obtener Voz IP y llamadas de vídeo a
nivel de empresas y compañías.
z(j)=y(i);
j=j+1;
end
end

disp(z)
sound(z,Fs);

Figura #4: Tabla CODECS

3. DESARROLLO TERCER PUNTO

Lo que se realiza es coger el mismo audio del


punto número 1 es decir, del VAD G729, este
audio se grabó previamente y es un audio de
prueba y el procedimiento es el siguiente:
1. Se guarda en una variable. Figura #4 : Gráfica con los datos de
2. Luego, se toma los valores que son muy activación del VAD.
mínimos y se dejan valores que sean
mayores a 0.0005.
3. Se guardan en otro vector y los que • CONCLUSIONES
sean mayores a 0.0005 es donde - En el código de MATLAB del VAD G729 es muy útil
deberá haber audio. a la hora de demostrar cuando hay una voz y cuando
esta en silencio.
4. Y este nuevo vector elimina todos los
- En cuanto a los CODECS los más utilizados son el
valores menores a 0.0005 G711 y el G722 ya que son los más apegados a la señal
5. Y con este nuevo arreglo se guarda ON y no hacen uso de la comprensión.
como un audio, se reproduce y - Vale la pena resaltar que porque un CODEC tenga un
efectivamente borra el espacio de los bajo ancho de banda no es el menos utilizado en la
que no tenían sonido. industria.

A continuación, adjuntamos el código REFERENCIAS


que se realizó y su respectiva gráfica ● [1] Definición Voz sobre IP:
mostrando todo el proceso que se http://bibing.us.es/proyectos/abreproy/12088/fichero/
realizó. 4+-+Estado+del+Arte.pdf
● [2]Mathworks, G729 Voice Activity Detection
ttps://la.mathworks.com/help/dsp/examples/g-729-
[y,Fs]=audioread('Sonido.wav');
voice-activity-detection.html
%sound(y,Fs);
j=1;
z=0;
for i=1:length(y)
a=abs(y(i));
if a >=0.0005

También podría gustarte