Monografias.com > Computación
Descargar Imprimir Comentar Ver trabajos relacionados

Control mediante reconociiento remoto de voz comprimida sobre redes IP



  1. Resumen
  2. Introducción
  3. Materiales y
    métodos
  4. Resultados y
    discusión
  5. Conclusiones
  6. Referencias
  7. Anexos

Resumen

Este trabajo, que se presenta como culminación de
una línea de investigación continuada en el Dpto.
de Telecomunicaciones y Electrónica de la Universidad de
Pinar del Río. Presenta resultados en tres áreas
fundamentales: la compresión de voz, la simulación
de canales de transmisión y el reconocimiento del habla.
Estas tres áreas se abordan partiendo desde sus
generalidades hasta sus puntos de contacto en un enfoque del
procesamiento digital de la señal para brindar un
detallado marco teórico y contextual. Al final se integran
para lograr una aplicación que sea capaz de realizar un
reconocimiento del habla de forma remota mediante la
transmisión de voz comprimida, e insertando
pérdidas en el canal de transmisión para estudiar
su comportamiento. Como resultados se ofrecen valoraciones sobre
alternativas para realizar este reconocimiento remoto,
fundamentado sobre las características del modelo de
producción de la voz y de los esquemas de
compresión.

PALABRAS CLAVES:

Compresión de voz, codecs, canal IP,
reconocimiento remoto del habla.

CONTROL BY MEANS OF REMOTE RECOGNITION OF COMPRESSED VOICE ON
IP NETS

ABSTRACT

This work that is presented as culmination of a line
of continuous investigation in the Telecommunications and
Electronic Department. It presents results in three fundamental
areas: the voice compression, the simulation of transmission
channels and the recognition of the speech. These three areas are
approached leaving from their generalities until their contact
points in a focus of the digital prosecution of the sign to offer
a detailed theoretical and contextual mark. At the end they are
integrated to achieve an application that is able to carry out
recognition of the speech in a remote way by means of the
transmission of compressed voice, and inserting losses in the
transmission channel to study their behavior. As results they
offer valuations on alternatives to carry out this remote
recognition, based on the characteristics of the pattern of
production of the voice and of the compression
outlines.

Keywords: Voice compression, codecs, IP
channel, remote speech recognition.

Introducción

El desarrollo acelerado de la tecnología ha hecho
posible el acceso de los usuarios a los servicios cada vez de una
forma más cómoda. En este sentido cabe destacar el
marcado rápido en telefonía, los servicios a
discapacitados, la navegación en un menú con
sólo mencionar un dígito, entre otros. Estas
facilidades dependen de realizar un reconocimiento
automático del habla de forma remota, que en este
artículo se llamarán RAHR.

Por otra parte para transmitir las señales de
voz, históricamente se han empleado métodos que
permitan reducir la cantidad de información que se
necesita en el receptor para recuperar la señal de forma
más parecida a la que se codificó en el transmisor,
estos métodos se conocen como codecs de voz.
Entre los más eficientes se encuentran los que emplean
Predicción Lineal, o sea, aquellos que, en el codificador,
filtran la señal original por un filtro configurado con
algunos coeficientes LP (Lineal Prediction,
Predicción Lineal), y a la salida obtienen una
señal residual, y en el decodificador emplean esa
señal residual para pasarla por el mismo filtro del
transmisor pero inverso [4].

Esas transmisiones de voz se realizan en redes IP, que
normalmente no garantizan transmisiones ideales, en las que no
ocurren pérdidas de información, sino que trabajan
al mejor esfuerzo. Por eso, al trabajar con este tipo de sistemas
es preciso simular el comportamiento del canal de cierta manera.
En este sentido es necesario mencionar que los modelos de
Bernoulli y de Gilbert-Eliot son los que más se acercan al
modo real en que ocurren las colisiones de paquetes de
información en las redes IP.

Además, para el reconocimiento se emplean
diferentes métodos, pueden mencionarse las redes
neuronales, los modelos ocultos de Markov, los coeficientes
Cepstrales, Predicción Lineal, etc.

En este artículo se pretende mostrar los
resultados obtenidos en un trabajo en el que se conjugan los
codecs de voz LPC-10 y G.729 con modelos de simulación de
canal y métodos de reconocimiento del habla para definir
algoritmos de RAHR, en un conjunto de experimentos en que se
culmina con el reconocimiento y la ejecución de alguna
acción para demostrar la correcta identificación de
un comando, o sea, se simula el funcionamiento de un sistema
telemático de control por voz.

Materiales y
métodos

Entre los métodos empleados en este trabajo se
encuentra la modelación, por cuanto ha sido conveniente
modelar el proceso de producción de la voz para el
funcionamiento de los codecs, y simular los modelos que describen
el comportamiento de los canales IP.

Los materiales empleados en este trabajo han sido
simplemente una computadora y un equipo de audio que consta
solamente de un par de bocinas y un micrófono. Las
simulaciones correspondientes se llevaron a cabo empleando
Matlab, que es un asistente matemático muy poderoso para
el análisis de señales de cualquier
tipo.

Como materiales adicionales se han empleado los
códigos en Matlab de los codecs LPC-10 y G.729, "estos
codecs trabajan con señales digitales obtenidas mediante
un muestreo de 8KHz y analizados en tramas de 20ms y 10ms
respectivamente" [1]. Ambos emplean de algún modo la
Predicción Lineal, con la diferencia de que el LPC-10
envía al receptor un conjunto de 10 coeficientes de
Predicción Lineal por cada trama analizada en intervalos
de 20ms [5], tiempo en el que se considera la señal de voz
como cuasi estacionaria, por su parte el G.729 envía
sólo 18 bit en representación de Pares del
Espectro Lineal, LSP(Line Espectrum Pairs)
por cada trama en
intervalos de 10ms.

Además, en los casos en que el reconocimiento se
realiza sobre la voz ya sintetizada, se emplea el método
de los coeficientes cepstrales, y cuando se realiza sobre la voz
aún comprimida se emplea el método de
Predicción Lineal.

Para la simulación del canal de
transmisión, o sea, para tener en cuenta de forma
cuantitativa la ocurrencia de pérdidas de
información por las colisiones de los paquetes en redes
IP, se emplearon dos modelos posibles, el modelo de Bernoulli y
el modelo de Gilbert-Eliot. En esta investigación se
decidió emplear el modelo de Gilbert-Eliot de dos estados
(Véase Figura 1), "ya que logra capturar la dependencia
temporal de la ocurrencia de las pérdidas de
información" [2]. En otras palabras, este modelo logra
simular la medida en que la probabilidad de que un paquete de
información se pierda, dependa de que el paquete anterior
se haya perdido o no. Este es uno de los Modelos Ocultos de
Markov, pero de los más sencillos por la pequeña
cantidad de estados que contempla.

Monografias.com

Figura 1: Modelo de Gilbert –
Eliot.

Este modelo consiste en contemplar dos posibles estados
de la información, S0 correcto, y S1 pérdida, las
probabilidades de transitar de un estado a otro o de quedarse en
ellos mismos.

Para el reconocimiento del habla, se emplea el
método de Predicción Lineal, que ya ha sido
explicado en la introducción del artículo, y los
coeficientes cepstrales, que consisten en llevar a una escala
logarítmica la transformada inversa de Fourier que se
aplica a una señal de voz.

El RAHR que se propone consiste básicamente en la
realización de ocho experimentos. Estos experimentos
consisten en aplicar las siguientes variantes:

  • Emplear el codec LPC-10 o el G.729 para la
    compresión.

  • Insertar o no pérdidas de información
    en el canal de transmisión.

  • Realizar el reconocimiento sobre la voz ya
    sintetizada o aún comprimida.

Resultados y
discusión

Se explicará la realización de ocho
experimentos, los cuales consisten en la realización de
cuatro procesos fundamentales: codificación,
decodificación, inserción de pérdidas y
reconocimiento. La realización de estos experimentos
basados en esos procesos se describirá realizando algunas
variaciones las cuales definirán las alternativas de un
reconocimiento remoto del habla de forma
automática.

Se describirá el proceso de codificación y
decodificación empleando como variantes al LPC-10 y al
G.729. Por otra parte la simulación del canal IP para la
inserción de pérdidas se realizará usando
los modelos ocultos de Markov, específicamente el modelo
de Gilbert-Eliot de dos estados. Particularmente, las variaciones
en este proceso ocurrirán en los valores de probabilidad
de pérdida. Y por último, el reconocimiento se
realizará invariantemente empleando los coeficientes
cepstrales como algoritmo, en los casos en que este proceso sea
realizado directamente sobre la señal de voz sintetizada;
cuando el reconocimiento se realiza sobre la voz comprimida,
simplemente se empleará las distancias euclidianas para la
toma de decisiones del reconocimiento. En todos los casos se
emplea las distancias euclidianas, unas veces calculada sobre los
coeficientes cepstrales, y otras sobre algún
parámetro de codificación en la trama. Estas
distancias consisten en aplicar la ecuación (1) [3] sobre
la información que se compara para la toma de decisiones
en el reconocimiento:

Monografias.com

Para una mejor ilustración, véase en el
Anexo I, la programación en Matlab de dicha
ecuación.

Resultando de esta manera los ocho experimentos que se
describen en la Tabla 1:

Tabla 1 Descripción de los
experimentos.

Experimento

Codec empleado

Inserción de
pérdidas

Información empleada para el
reconocimiento.

1

G.729

No

Voz sintetizada.

2

G.729

No

Voz comprimida

3

G.729

Si

Voz sintetizada.

4

G.729

Si

Voz comprimida

5

LPC-10

No

Voz sintetizada.

6

LPC-10

No

Voz comprimida

7

LPC-10

Si

Voz sintetizada.

8

LPC-10

Si

Voz comprimida

Y para ofrecer una visión gráfica de todo
esto véase Anexos del II al V, que corresponden al empleo
del G.729 como compresor, los cuatro experimentos restantes
tienen un esquema casi idéntico, sólo cambia el
codec que es el LPC-10.

3.1 DESCRIPCIÓN DE LOS
EXPERIMENTOS

  • I. En este experimento, como se ha dicho, se
    corresponde a la primera variante descrita anteriormente en
    el que se emplea el códec G.729, este trabaja con una
    señal de voz muestreada a 8Khz. Por tanto en el
    sistema que se destine al reconocimiento deberá
    realizarse un entrenamiento con esa misma frecuencia. Esta es
    una consideración que deberá aplicarse a cada
    uno de los experimentos.

En este caso se hace un reconocimiento sobre la voz
sintetizada, o sea, se emplea un análisis de los
coeficientes cepstrales a partir de dicha señal, y
posteriormente se aplica una medida de la distancia euclidiana de
estos coeficientes cepstrales calculados, con respecto a los
coeficientes cepstrales de los comandos que fueron determinados
en el entrenamiento.

En este caso se precisa de una velocidad de
transmisión de 8Kbps, o sea, la velocidad de
transmisión del G.729.

  • II. En este segundo experimento no varía
    el códec utilizado, se mantiene el G.729, pero no se
    realiza en ningún momento el proceso de
    decodificación. Con respecto a la ocurrencia de
    pérdidas, se mantiene un experimento ideal, o sea, con
    probabilidad cero de ocurrencia de pérdidas o cambio
    de estado en los parámetros del modelo. La diferencia
    con respecto al primer experimento, además de que no
    es necesario realizar la decodificación, en este caso
    la medida de las distancias se realiza sobre los coeficientes
    LSP que constituyen los parámetros dentro del formato
    de la trama que contienen la información de
    Predicción Lineal, o sea, no se realiza el
    reconocimiento sobre toda la voz codificada, sino sólo
    sobre una parte de ella. Por tanto, pudiera decirse que en
    este caso se emplea, con algunas variantes, el algoritmo de
    Predicción Lineal. Por supuesto, incluyendo el ya
    mencionado método de determinación de la medida
    empleada para el reconocimiento, o sea, la distancias
    euclidiana.

En este caso pudiera emplearse una velocidad de
transmisión de 1.8kbps, teniendo en cuenta que para el
reconocimiento solamente se necesita cuatro bits de la trama que
se envía cada 10ms, o sea, los LSP.

  • III. En este experimento el procedimiento es
    parecido al realizado en el primer experimento, con la
    diferencia de que en este caso se insertan pérdidas en
    las transmisiones. Teniendo en cuenta que las pérdidas
    en las transmisiones de paquetes en canales IP ocurren en
    ráfagas y que se pueden describir de una forma muy
    eficiente con el modelo de Gilbert de dos estados, se
    realizan pruebas para varias probabilidades de ocurrencia de
    esas pérdidas.

Aquí la ocurrencia de pérdidas de
información tiene una implicación directa en la
calidad de la voz recuperada en el proceso de
decodificación lo cual significa que se han atenuado o
amplificado componentes de frecuencia que estaban contenidas en
la voz original. Por tanto, es de esperar de antemano un aumento
de las distancias calculadas entre el conjunto de coeficientes
cepstrales del segmento de voz que se está reconociendo y
los coeficientes de la base de datos que se emplean como
patrones. La velocidad que se precisa es la misma que en el
primer experimento.

  • IV. En este experimento el procedimiento es
    parecido al realizado en el experimento número II.
    Aquí las pérdidas que se imprimen en la
    transmisión tienen una mayor influencia en el ahora
    deficiente proceso de reconocimiento, puesto que una
    determinación de distancias euclidianas
    arrojará valores mayores cuando se ha realizado
    cambios sobre la información de Predicción
    Lineal de cada trama contenida en tan sólo dieciocho
    bits, o sea, los LSP.

Si lo que se transmite es la trama del G.729
íntegramente entonces para cualquier valor de probabilidad
de pérdida los LSP se verán menos afectados que si
lo que se transmitiera fueran sólo los LSP. Si así
fuera, la velocidad de transmisión necesaria sería
1.8 Kbps.

  • V. En este experimento la primera variante
    ocurre en la utilización de un códec diferente,
    el LPC-10. Este códec trabaja a una tasa de 2.4Kbps, o
    sea, representa una reducción considerable con
    respecto al G.729. Lo cual tiene como consecuencia una
    reducción de la calidad de la voz
    sintetizada.

La transmisión se hace sin pérdidas y el
reconocimiento se realiza empleando los coeficientes cepstrales
calculados sobre la voz recuperada después de la
decodificación. Aquí la velocidad que se necesita
en la transmisión es la misma que la del
códec.

  • VI. En este caso se procede de forma similar el
    experimento anterior pero sobre la voz comprimida, y al igual
    que en el experimento número II, no se realiza sobre
    toda la voz comprimida, sino sobre uno de los
    parámetros que conforman la trama, o sea, los
    coeficientes de Predicción Lineal ak que
    representan los LPC. Lo cual, teniendo en cuenta que el
    códec LPC-10 normalmente tiene un pobre rendimiento en
    cuanto a la calidad de la voz sintetizada, significa empeorar
    considerablemente las condiciones para el reconocimiento.
    Aquí se puede extraer de la trama que codifica el
    LPC-10, los coeficientes de predicción, o bien pudiera
    transmitirse solamente dicho parámetro en cuyo caso se
    necesitaría solamente una velocidad de
    transmisión de 2Kbps.

  • VII. Para esta variante el proceso de
    codificación se realiza con el LPC-10 de forma muy
    similar al experimento V con la diferencia de que se insertan
    pérdidas en la transmisión, se sintetiza la voz
    con la decodificación y posteriormente se realiza el
    reconocimiento sobre la voz sintetizada. O sea, se realiza
    una medida de las distancias euclidianas sobre las muestras
    de voz recuperadas en el proceso de síntesis con
    respecto a los patrones. Lo cual, si se tiene en cuenta que
    el LPC-10 no sintetiza con suficiente calidad, arroja como
    resultado un reconocimiento deficiente.

  • VIII. En este experimento el proceso de
    codificación se realiza con el LPC-10 pero no se hace
    un proceso de decodificación puesto que el
    reconocimiento es sobre la voz comprimida. Pero no sobre toda
    la voz comprimida, sino teniendo en cuenta solamente los
    coeficientes de Predicción Lineal que se utilizan para
    configurar el filtro que modela el tracto bocal.
    Además se insertan pérdidas en la
    transmisión, lo cual dificulta aún más
    el proceso de reconocimiento.

Al igual que en el experimento número VI, pudiera
emplearse una velocidad de 2kbps, en el caso en que se decida
reducir la velocidad al enviar solamente los LPC y no toda la
trama.

3.2 DISCUSIÓN DE LOS
RESULTADOS

Los dos elemento que deben tenerse en cuenta a la hora
de exponer los resultados de la realización de estos ocho
experimentos descritos hasta aquí, son: en primer lugar la
eficacia del reconocimiento de los comandos elegidos como
expresión de los aciertos y desaciertos, y en segundo
lugar, el coste computacional de los algoritmos
matemáticos que se definen como resultados de las
distintas variantes de cada experimento.

Para mostrar el comportamiento de estos dos elementos,
se ofrece a continuación la tabla 2 con los resultados
obtenidos en cada caso para cinco comandos elegidos, y la
efectividad en porcentaje de su reconocimiento para diez pruebas,
y el análisis posterior.

Tabla 2 Por ciento de efectividad del
reconocimiento por comandos y por experimentos.

Monografias.com

La efectividad del reconocimiento depende en todos los
casos, primero del tipo de esquema que se haya empleado. Por
supuesto, para el experimento número uno se observa un
reconocimiento muy bueno puesto que la calidad de síntesis
del G.729 es muy buena, y si se tiene en cuenta además que
no se insertan pérdidas pues es lógico el
resultado. Aunque es comparable con el obtenido en el segundo
experimento, ya que los LSP representan la información de
Predicción Lineal cuantificada y se presentan como una
buena variante para el reconocimiento.

Es necesario aclarar que la diferencia en cuanto a
eficiencia, entre los experimentos uno y dos, está dada
por la razón de que, aunque los LSP empleados en el
segundo experimento, representan de una forma muy fiel la
información de Predicción Lineal, estos vienen
cuantificados, lo cual provoca notables diferencias entre los
vectores que contienen estos parámetros.

En cuanto al coste computacional, se nota que el
experimento uno requiere, ligeramente, más tiempo que el
dos, ya que en el dos no se realiza la decodificación,
porque basta con recibir los LSP.

Tanto para la eficiencia como para el coste
computacional, los experimentos tres y cuatro presentan una menor
eficiencia que el uno y el dos, por la presencia de las
pérdidas, y mayor coste computacional ya que es necesario
hacer un procesamiento para logar el efecto del comportamiento
del canal, lo que se traduce en la inserción de
pérdidas en la información que se recibe en el
receptor.

Con respecto a los últimos cuatro experimentos,
que son realizados con el LPC-10, el experimento cinco y seis
presentan, como se puede observar en la Tabla 2, una notable
diferencia en cuanto a la eficiencia ya que al realizar el
reconocimiento sobre los coeficientes de Predicción
Lineal, se obtiene una eficiencia del 100%, no así en el
experimento cinco, en el cual se realiza el reconocimiento sobre
la voz decodificada por el LPC-10, que como se ha dicho
anteriormente tiene una pobre calidad en la voz que sintetiza. Y
por su parte el coste computacional del experimento seis es menor
que el del cinco ya que no debe realizar la
decodificación.

Los experimentos siete y ocho son muy similares al cinco
y seis respectivamente, con la diferencia de que se tienen en
cuenta las condiciones del canal en la inserción de
pérdidas.

Las pérdidas que se insertaron en los
experimentos tres, cuatro, siete y ocho estuvieron siempre del
15% al 20%. En este sentido es necesario aclarar que sólo
en las condiciones del experimento ocho se obtuvo un 100% de
efectividad.

De forma general para los dos códec se evidencia
una disminución de la eficiencia con la ocurrencia de
pérdidas de información.

Por su parte, el coste computacional expresado como
tiempo de ejecución, es similar para ambos codecs, la
diferencia radica en los casos en que el reconocimiento se hace
empleando la información de voz comprimida, puesto que, en
algunos casos la función destinada a calcular la distancia
euclidiana (ver anexo número 1) debe trabajar con
parámetros de entrada que ahora son matrices de
dimensiones relativamente grandes, y en otros esto significa no
tener que realizar la decodificación.

Teniendo en cuenta que la respuesta al problema
planteado en la introducción de este trabajo, debiera
estar dirigida a la realización de algún tipo de
acción que complete el proceso de control remoto, pues se
ha asociado a cada uno de los comandos de la tabla anterior una
acción desde Matlab que permita comprobar de forma clara
la eficacia del proceso de reconocimiento.

Así, Configurar, permite realizar configuraciones
del registro de Windows; Matlab ejecuta el programa Matlab;
Apagar, reinicia o apaga la computadora; Block, abre el editor de
notas de Windows, y por último Archivos, abre "Mis
Documentos".

Por otra parte, las velocidades de transmisión
pueden ser reducidas considerablemente en los casos en que se
hace un reconocimiento sobre la voz comprimida, enviando
solamente los parámetros de interés. Para el LPC-10
serían los LPC lográndose una reducción
hasta 2kbps, y para el G.729 serían los pares de espectro
lineal LSP reduciendo la velocidad hasta 1.8kbps.

Conclusiones

Como conclusión inicial debe decirse que para
realizar un reconocimiento de voz de forma remota, la fidelidad
de la voz que se recupera en el lado del receptor es fundamental,
puesto que la información espectral debe conservarse en la
mayor medida posible para que la aplicación reconocedora
tenga una información más precisa a la hora de la
identificación.

En ese sentido, el codec G.729 ofrece mayores
facilidades que el LPC-10 a la hora de realizar un reconocimiento
en el que un esquema de compresión esté de por
medio entre el transmisor y el receptor, ya que logra conservar
con mayor fidelidad la información espectral al sintetizar
la voz, o sea, cuando el reconocimiento se realiza sobre la voz
sintetizada, es más eficiente el G.729. Esto se debe
fundamentalmente a que este codec emplea segmentos de voz que son
mucho más pequeños que los empleados por el LPC-10,
logrando aprovechar con mayor eficiencia la estacionariedad de la
señal de voz.

No así, puede extenderse esta idea al esquema de
reconocimiento en que el algoritmo reconocedor trabaje con la voz
comprimida, puesto que el LPC-10 captura un considerable volumen
de información espectral en los LPC, o sea, en este caso
es más eficiente el LPC-10 que el G.729.

Referencias

  • 1. Modelado de la señal de Voz, Grupo
    PAS. Universidad de Deusto, España.

  • 2. Peinado, A.M.; Sánchez, V.;
    Perez-Cordoba, J., et al., HMM-based channel error mitigation
    and its application to distributed speech recognition, Speech
    Communication.

  • 3. Lawrence, R., Fundamentals of speech
    recognition.

  • 4. UIT-T, Recomendación G.729,
    CS-ACELP.

  • 5. Norma FS1015, LPC-10, Lineal Prediction
    Coefficients.

Anexos

Anexo I: Código en Matlab de la función
distancia.

function diag = distancia(ftr_a,ftr_b)

[m_a,n_a]=size(ftr_a);

[m_b,n_b]=size(ftr_b);

if(m_a < m_b )

guide = ftr_a; slave = ftr_b;

m = m_b; n = m_a;

else

guide = ftr_b; slave = ftr_a;

m = m_a; n = m_b;

end;

dist = zeros(m,n);

for i = 1:m

for j = 1:n

dist(i,j) =
sqrt(sum(((guide(j,:)-slave(i,:)).*(guide(j,:)-slave(i,:))).^2));

end;

end;

tot_dist = dist; [a,b] = size (tot_dist);

if a>b

dim = b;

else

dim = a;

end

diag=[];

for i=1:dim

diag = [diag,tot_dist(i,i)];

end

Anexo II. Experimento I.

Monografias.com

Anexo III. Experimento II.

Monografias.com

Anexo IV. Experimento III.

Monografias.com

Anexo V. Experimento IV.

Monografias.com

 

 

Autor:

Gallego Martínez, Elieser Ernesto.

Universidad de Pinar del Río, Cuba, Martí 270,
final.

Departamento de Telecomunicaciones y Electrónica.

Correa Fernández, Angel.

Universidad de Pinar del Río, Cuba, Martí 270,
final.

Departamento de Telecomunicaciones y Electrónica.

Blanco Ortiz, Alexei.

Universidad de Pinar del Río, Cuba, Martí 270,
final.

Departamento de Telecomunicaciones y Electrónica.

 

Nota al lector: es posible que esta página no contenga todos los componentes del trabajo original (pies de página, avanzadas formulas matemáticas, esquemas o tablas complejas, etc.). Recuerde que para ver el trabajo en su versión original completa, puede descargarlo desde el menú superior.

Todos los documentos disponibles en este sitio expresan los puntos de vista de sus respectivos autores y no de Monografias.com. El objetivo de Monografias.com es poner el conocimiento a disposición de toda su comunidad. Queda bajo la responsabilidad de cada lector el eventual uso que se le de a esta información. Asimismo, es obligatoria la cita del autor del contenido y de Monografias.com como fuentes de información.

Categorias
Newsletter