Está en la página 1de 8

Análisis y Sı́ntesis de voz humana mediante predicción

lineal
Correa Juan1 , Massolo Eugenio2 , Meza Martin3 , Reibold Emanuel4

Procesamiento Digital de Señales, Ingenierı́a de sonido


Universidad Nacional de Tres de Febrero , Buenos aires, Argentina.
1
juanrwco@gmail.com, 2 ugemassolo@gmail.com 3 camartinbu@gmail.com, 4 ema.reibold@gmail.com,

Resumen
El presente trabajo de investigación tiene como principal objetivo analizar el método de predicción “Linear Predic-
tive Coding” aplicado a señales del habla, tanto de manera teórica como práctica. Para esto se desarrolló un código en
lenguaje Python que sintetice un audio de voz humana. También se realizó un análisis de la incidencia de los parámetros
del modelo en el resultado de la sı́ntesis. Los resultados obtenidos se condicen con el marco teórico, por lo tanto se
concluye que la aplicación de este método para la sı́ntesis de audio es aplicable y efectivo. Cabe destacar que ciertos
comportamientos frecuenciales de las señales no pudieron ser explicados de la manera esperada.

1. INTRODUCCIÓN 2. MARCO TEÓRICO


En el presente informe se desarrollará el estudio de Con el fin llevar a cabo el método de predicción li-
sı́ntesis de voz humana mediante el método de predic- neal, es necesario partir de un modelo matemático que
ción lineal denominado Linear Predictive Coding. El exprese y defina las caracterı́sticas del sistema de ge-
LPC es una técnica utilizada en el procesamiento de neración del habla. El modelo se basa en considerar al
señales de audio (especialmente en voz humana) que tracto vocal como un tubo sin pérdidas compuesto por
permite transmitir una señal con una calidad tolerable un conjunto de secciones de distinto diámetro, en donde
en sistemas que posean un ancho de banda reducido a uno de los extremos del mismo corresponde a la glotis,
partir de la aplicación de altos grados de compresión en y el otro a los labios [2].
la misma [1]. La señal de excitación que se origina en la glotis
En este sentido, el objetivo principal del trabajo de a partir del aire que expulsan los pulmones hacia las
investigación es generar una señal sintetizada a partir de cuerdas vocales se transmite a través del tracto vocal, el
la premisa de reducir la profundidad de bits de un archi- cual actúa como un filtro enfatizando determinadas fre-
vo de audio, con la intención de lograr la transmisión de cuencias, las cuales caracterizan la voz del emisor. Las
dicha señal de una manera más eficiente y rápida. Es- frecuencias de resonancia del tracto vocal se denominan
to se lleva a cabo por medio de la implementación de formantes y surgen cada 1000 Hz, y se consideran in-
código mediante el lenguaje de programación Python. variantes en un lapso de aproximadamente 10 ms. Una
La estructura del presente informe consiste en tres vez transcurrido ese tiempo, el tracto vocal modifica sus
partes, en primer lugar se presenta un marco teórico que dimensiones y por ende, sus frecuencias de resonancia.
contenga todos los conceptos necesarios para la com- El modelo presenta dos tipos diferentes de excita-
prensión del método desarrollado, seguido de expre- ción: el voiced speech, el cual se define como un tren de
sar la aplicación del modelo de predicción lineal me- pulsos producido por la vibración de las cuerdas vocales
diante lenguaje de código. Por último se llevará a cabo en la glotis, o unvoiced speech, producido por una cons-
un análisis de los resultados obtenidos, seguido de una tricción del tracto vocal, forzando al aire a salir de ma-
conclusión a partir de experiencias y discusiones surgi- nera abrupta, por lo tanto se considera como una señal
das a partir de la puesta en marcha del código. de excitación aleatoria.

1
Análisis y Sı́ntesis de voz humana mediante LPC Procesamiento Digital de Señales

La Figura 1 muestra un diagrama del modelo de Debido a que ŝpnq es el valor predicho de spnq, el
producción del habla. error de predicción epnq se define a partir de la dife-
rencia entre la señal original y la señal resultante de la
predicción lineal:

p
ÿ
epnq “ spnq ´ ŝpnq “ spnq ´ αk spn ´ kq (4)
k“1

Considerando la naturaleza variable de la voz, los


coeficientes de predicción deben estimarse mediante un
procedimiento de análisis a corto plazo [2]. Para ello
se puede utilizar una ventana rectangular o una ventana
de Hamming. El error de predicción tiende a ser mayor
en los extremos de la ventana rectangular respecto de la
de Hamming. Esto se debe al método implementado, en
donde se predicen muestras a partir de las anteriores. Al
Figura 1: Diagrama de bloques del modelo simplificado predecir una muestra distinta de cero al comienzo del
para la producción del habla. intervalo, se utilizan muestras pasadas que son nulas,
mientras que al predecir una muestra igual a cero al fi-
nal, se utilizan muestras pasadas con un valor diferente
En la Figura 1 es posible apreciar que el sistema es
de cero. Por esta causa la ventana de Hamming resul-
excitado por los dos tipos de señales que posteriormen-
ta mas eficaz ya que produce una atenuación en dichos
te atraviesan una etapa de ganancia, para finalmente ser
extremos, generando un menor error de predicción.
procesadas por el filtro del tracto vocal H(Z), (aunque
En la ecuación 5, se expresa el error de predicción
también incide la radiación en los labios y la glotis, pero
cuadrático medio a corto plazo:
se desestima para simplificar el modelo), modificando
su respuesta en el espectro frecuencial. En la ecuación N
ÿ
1 se expresa la relación de las muestras del habla spnq E“ epnq2 (5)
con la excitación upnq. n“1

p
ÿ Siendo N la cantidad de muestras de la señal en ca-
spnq “ Ak spn ´ kq ` Gupnq (1) da intervalo de tiempo y epnq el error de predicción.
k“1 Con el fin de minimizar el error de predicción, a
El filtro digital se define a partir de la ecuación 2: partir de derivar parcialmente la ecuación (9) e igualar-
la a cero, es posible hallar los valores de αk tal que se
SpZq G cumple dicha condición. A continuación se expresa en
HpZq “ “ p (2)
U pZq ÿ la ecuación 6, el resultado de la derivada:
1´ Ak Z ´k
k“1
p N N
Se define a U pZq como la excitación proveniente de ÿ ÿ ÿ
αk spn ´ kqsp´iq “ spnqspn ´ iq (6)
la glotis, G el parámetro de ganancia, SpZq la señal fil- n“1 n“1
k“1
trada, Ak los coeficientes que caracterizan al filtro y p
el orden del mismo. Este modelo resulta mas eficaz en i = 1, 2, 3, ... , p.
señales pertenecientes al tipo voiced speech, sin embar- La igualdad anterior puede ser expresada utilizando
go, es posible aplicarlo para todo tipo de señales si se los términos de autocorrelación como muestra la ecua-
implementa un filtro de un orden mayor a 10. ción 7:
Para obtener dichos coeficientes y ası́ construir el p
filtro que caracterice el tracto vocal, es necesario apli- ÿ
αk Rpk ´ iq “ Rpiq (7)
car un modelo de predicción lineal, cuya salida del pre- k“1
dictor se detalla en la ecuación 3:
Siendo R(i) los coeficientes de la matriz de autoco-
p
ÿ rrelación, la cual se caracteriza por ser una matriz de
ŝpnq “ αk spn ´ kq (3) Toeplitz [3]. Para obtener los coeficientes αk se utili-
k“1 za el método de Levinson-Durbin, el cual consiste en
Se considera a ŝpnq como una aproximación del au- calcular en forma recursiva la solución de una ecuación
dio original a través de la combinación lineal de los co- que involucra una matriz de Toeplitz. Dicho método po-
eficientes de predicción αk y muestras pasadas de la see la ventaja de ser computacionalmente más rápido
señal spnq. que otros.

2
Análisis y Sı́ntesis de voz humana mediante LPC Procesamiento Digital de Señales

Una vez obtenidos los coeficientes, solo queda ob-


tener la señal sintetizada a partir de la ecuación 3. En
este caso seria imprescindible el hecho de tener que en-
viar la señal original en conjunto con los coeficientes,
situación en la cual no se estarı́a mejorando el méto-
do de transmisión de la señal. Por esto, se debe realizar
otro enfoque para la reconstrucción del audio en la par-
te receptiva. Analizando la Figura 2, se observa que es
posible recrear la señal original a partir de aplicarle un
cierto filtro a la señal equivalente del error de predic-
ción.

Figura 2: Reconstrucción de la señal.

Si la señal de voz obedece y cumple las condiciones


que plantea la ecuación 2 en su totalidad, es decir que la
salida del modelo spnq es igual a la señal de voz mues-
treada, lo que a su vez implica que si Ak equivale a αk
para todo valor de k, entonces el error tiene la siguiente
estructura:

Figura 3: Comparación de la señal sintetizada al variar


el orden de polos.
epnq “ Gupnq (8)

Sumando a lo dicho anteriormente, cabe destacar


que el espectro frecuencial de la señal sintetizada se ve-
Por lo tanto, considerando el error de predicción,
ra afectado por el largo de la ventana implementada, ya
como la señal de excitación que se obtiene aplicando el
sea de Hamming o rectangular. Esto se debe a que el
filtro inverso FIR de todo ceros A(Z) a la señal original,
largo definido para cada bloque posee una relación in-
se puede reconstruir s(n) aplicando a epnq un filtro IIR
versamente proporcional al ancho del lóbulo principal,
de todos polos H(Z) como se define en la ecuación 2
el cual se destaca en la respuesta en frecuencia del filtro
(con ganancia igual a 1 para simplificar los cálculos).
pasa bajos generado al utilizar la ventana.
Los coeficientes se transmiten junto a la señal de
error e[n], siendo trabajo del receptor decodificar esos
datos para reconstruir la señal. Esto se logra procesando 3. DESARROLLO EXPERI-
el error a través del filtro de todos polos H(z), construi-
do a partir de los coeficientes αk .
MENTAL
Es importante destacar que según los fundamentos Para implmentar de manera práctica el método
teóricos planteados en [2], a medida que se incrementa LPC, se utiliza la plataforma de programación Pyt-
el numero de polos de la función H(Z), el espectro de hon, desarrollando un código que permita sintetizar una
la señal estimada tiende a ser cada vez mas similar a la señal de voz. Dicha tarea se realiza por por medio de
señal original, de tal manera que si el orden de los polos una notebook marca Dell, con un micropocesador Intel
tiende a infinito, la señal estimada va a ser equivalente a Core i7. Las bibliotecas utilizadas para el desarrollo del
la original. Esto se debe a que, a medida que se aumen- código son, numpy, matplotlib, scipy y math.
ta la cantidad de polos, a su vez se esta aumentando la Se comienza con la grabación de un audio mono
cantidad de cambios de sección del tubo que modeli- a una frecuencia de muestreo de 44100 Hz, configura-
za al tracto vocal, de una manera cada vez mas similar da para que el mismo tenga una resolución de 16 bits.
al tubo ideal. Esto es posible observarlo en la siguiente Luego de esto, se procesa la grabación por medio de un
figura 3: filtro pasa-altos (Pre-énfasis), con el propósito de con-

3
Análisis y Sı́ntesis de voz humana mediante LPC Procesamiento Digital de Señales

trarrestar el efecto que produce la glotis durante el pro- resultantes, la señal de error y la señal de predicción. La
ceso del habla, y de esta manera obtener los coeficientes señal de error nos sirve para poder transmitir la señal
de predicción lineal que caractericen únicamente el fun- de una manera mas eficiente. Esta señal, al ser mas pe-
cionamiento del tracto vocal. La expresión que define al queña que la original (si se realizo una buena predic-
filtro antes mencionado, se presenta a continuación en ción) nos permite procesarla con una menor cantidad
la ecuación 9: de bits por segundo sin perder la información necesaria
para comprender el mensaje.
spre´enf pnq “ spnq ´ 0,95spn ´ 1q (9)
Entonces, podemos transmitir solamente esta señal
Siendo s(n) la señal de voz y spre´enf pnq la señal mas el conjunto de coeficientes αk y el receptor podrı́a
filtrada. Una vez aplicado el filtro, se procede a dividir reconstruir la señal original a partir de filtrar esta señal
la señal en segmentos de tiempo discreto, también de- de error mediante un filtro formado con los coeficientes
nominados frames. Estos se definen con una longitud mencionados, el cual se detalla en la ecuación 2. Luego
tal que nos permita asumir que las condiciones de for- de esto solo resta aplicar un filtro pasa-bajos (De-énfa-
ma del tracto vocal se mantienen constantes (lapsos de sis), para lograr reunir los efectos que generan el filtro
entre 10 y 20 ms). Estos segmentos se obtienen apli- del tracto vocal en conjunto con la glotis y los labios.
cando ventanas a la señal. La determinación del tipo de Dicho filtro se encuentra dado por la ecuación en dife-
ventana a utilizar repercute en el resultado final del pro- rencias 10:
ceso. En esta ocasión se evaluara el uso de una ventana
rectangular, y de una ventana Hamming.Esto se reali-
za porque nos interesa ver el efecto que se logra con la
ventana Hamming sobre los extremos de la ventana. Es
sde´enf pnq “ spnq ` 0,95sde´enf pn ´ 1q (10)
importante, ya que las primeras y las ultimas muestras
de la señal de predicción se calculan a partir de mues-
tras nulas, siendo estas muestras no nulas. Es aquı́ don-
de la ventana Hamming nos favorece atenuando la in- Siendo s(n) la señal de voz y sde´enf pnq la señal
fluencia de estos valores en contraposición a la ventana filtrada.
rectangular. Por otro lado, la señal de predicción la obtuvimos a
Posteriormente, se determinan los coeficientes del partir de combinaciones lineales de muestras anteriores
filtro digital variable en el tiempo αk para cada frame. y los coeficientes de LPC obtenidos. En esta señal pode-
Para obtenerlos, se parte de realizar la función de auto- mos observar como la calidad de la predicción aumenta
correlación de la señal en cuestión. De esta misma se conforme aumentamos el numero de coeficientes, o lo
obtienen los valores para formar la matriz de coeficien- que es equivalente, el numero de polos del filtro con el
tes de autocorrelación que se observa en la Figura 4, que modelizamos el funcionamiento del tracto vocal.
la cual por sus caracterı́sticas resulta ser una matriz de
Toeplitz (matriz cuadrada en la que los elementos de sus Por ultimo, se procede a realizar una serie de com-
diagonales son constantes)[3] . Esta matriz, junto con el paraciones gráficas y numéricas entre resultados con di-
vector de las primeras P autocorrelaciones y el vector ferentes parámetros de cálculo, para esto se implemen-
de coeficientes, conforman un sistema de ecuaciones, taron funciones como freqz, la cual devuelve la respues-
el cual se resuelve mediante el método de Levinson- ta en frecuencia de un filtro a partir de los vectores co-
Durbin. rrespondientes a sus coeficientes del numerador y de-
nominador, o la FFT para realizar la transformada dis-
creta de Fourier y ası́ analizar una señal en su espectro
frecuencial.

Figura 4: Sistema de ecuaciones de coeficientes de au- 4. RESULTADOS Y ANÁLISIS


tocorrelación.
En primera instancia, se realizó una sı́ntesis a par-
Ası́ se obtienen los coeficientes αk . A partir de es-
tir de un ventaneo de un lapso de 10 ms y un filtro de
tos coeficientes y de muestras pasadas podemos ”prede-
orden 12, considerados como parámetros estándar en el
cir”la señal como se indica en la ecuación 3. Luego,se
modelo LPC.
puede obtener una señal que llamaremos error a partir
de la resta entre la señal original y su aproximación li- La Figura 5 explicita una comparación entre la señal
neal realizada. De aquı́ tendremos entonces dos señales original y la aproximación lineal de la misma.

4
Análisis y Sı́ntesis de voz humana mediante LPC Procesamiento Digital de Señales

Figura 5: Comparativa entre la señal original y la señal


de predicción.

Figura 6: Intersección de dos frames segmentados por


Se puede observar que se obtiene una señal de pre- ventana Hamming y ventana rectangular.
dicción muy similar a la señal original, lo cual es es-
perable sabiendo que se construye a partir de muestras
pasadas de la señal original.
Se procede a variar la configuración de los paráme- No solo la forma de la ventana tiene importancia,
tros del método de predicción para determinar su in- sino que el numero de muestras que encuadran también
fluencia en el resultado final. Los factores que resultan incide en su respuesta en frecuencia, ya que cada ven-
determinantes en el cálculo son los siguientes: tana impone un filtro pasa bajos cuyo lóbulo principal
varı́a su ancho en función de la cantidad de muestras de
la ventana. A raı́z de esto, los transitorios van a ser me-
jor representados en ventanas mas cortas mientras que
Tipo de ventana implementada al aumentar la cantidad de muestras la señal se suaviza.

El ancho de la ventana también afecta a la señal


Cantidad de muestras de la ventana temporalmente, ya que al concatenar la totalidad de los
frames, la señal se escucha mas entrecortada a medi-
da que se toman ventanas de mayor longitud. Cuando
el lapso temporal que abarca una ventana supera los 20
Orden del filtro
ms, las hipótesis planteadas para realizar el modelo de
predicción lineal pierden validez ya que se asume que
el tracto vocal permanece invariante durante menos de
Voiced o unvoiced speech 20 ms.

4.1. Ventana implementada

El primer parámetro a analizar es el tipo de ventana 4.2. Orden del filtro H(z)
que se utiliza a la hora de seccionar la señal en frag-
mentos para un análisis puntual. La ventana rectangular
ocasiona un recorte abrupto de la señal, ocasionando un Tal como se asevera en el marco teórico, un mayor
aumento del error debido a que se representan muestras detalle en la representación del filtro producido por el
no nulas a partir de muestras nulas y viceversa, en cam- tracto vocal implica una mayor cantidad de coeficientes
bio la ventana Hamming atenúa la amplitud del frame a calcular. Se logró corroborar que al incrementar el nu-
en sus extremos, produciendo una disminución de esta mero de polos del filtro (P), la respuesta en frecuencia
incertidumbre. Se puede apreciar en la Figura 6 como es del mismo resalta las formantes correspondientes a ese
la intersección entre de frames, segmentados tanto por lapso de tiempo, llegando a enfatizar los armónicos de
una ventana Hamming como rectangular. En esta se ve estas cuando se implementa un numero excesivo de co-
en la parte central del gráfico, sobre la muestra numero eficientes. La Figura 7 detalla la respuesta frecuencial
220, la unión entre dos frames. del filtro H(z) para tres ordenes distintos.

5
Análisis y Sı́ntesis de voz humana mediante LPC Procesamiento Digital de Señales

Figura 7: Respuesta en frecuencia de H(z) con distintos


ordenes.

Figura 9: Mapeo de polos y ceros del filtro H(z) con


P=13.
Es menester analizar los polos y ceros del filtro
ya que permite obtener información acerca del mismo.
Uno de los parámetros mas importantes a determinar
es la estabilidad del sistema, que se deduce a partir de
la ubicación de los polos respecto al circulo unidad del
plano z. Tomando como ejemplo los filtros expresados
en la Figura 7, se puede afirmar que el sistema es esta-
ble para la cantidad de coeficientes que se implementó
en el filtro ya que la totalidad de los polos se encontra-
ron siempre dentro de la circunferencia de radio uno, tal
como se aprecia en la Figura . Esto es un requisito ne-
cesario para que el modelo teórico pueda ser coherente
con lo que esta ocurriendo fı́sicamente [4].

Figura 10: Mapeo de polos y ceros del filtro H(z) con


P=18.

La teorı́a nos indica que una mejor predicción se


obtiene a partir de implementar un mayor numero de
coeficientes, es decir, al aumentar el orden de los fil-
tros utilizados para describir el modelo. Sin embargo,
al graficar la respuesta en frecuencia de la señal predi-
cha a partir de distintas cantidades de coeficientes, no se
observaron variaciones significativas en frecuencias co-
mo se esperaban. Esto lo podemos apreciar en la figura
12. A pesar de esto, a medida que se aumenta el nume-
Figura 8: Mapeo de polos y ceros del filtro H(z) con ro de coeficientes, se constató que la señal predicha se
P=7. aproxima paulatinamente a la señal original.

6
Análisis y Sı́ntesis de voz humana mediante LPC Procesamiento Digital de Señales

En esta ultima imagen se puede observar como el


error es menor a lo largo de toda la señal cuando se
realiza el proceso calculando 50 coeficientes de predic-
ción lineal. También se destaca la acentuación de cier-
tos picos de la señal, que permite una representación
mas exacta del periodo de la señal de excitación. A pe-
sar de ello, se esperaba un cambio mas notable ante el
aumento de la cantidad de coeficientes implementado
como en el caso de la respuesta en frecuencia observa-
da en la Figura 7.

4.4. Voiced o unvoiced speech


El hecho de que un determinado frame pertenezca al
voiced speech(es decir que actúan las cuerdas vocales)
o al unvoiced speech(compresión del aire por parte del
tracto vocal) es de suma relevancia a la hora de realizar
la predicción lineal, ya que el modelo se basa en el pri-
mer tipo de señales y por lo tanto responde con un me-
nor error ante estas, exceptuando en los instantes don-
de se produce la excitación. Esto permite determinar el
perı́odo de excitación del sistema mediante la autoco-
rrelación de la señal del error. En cuanto al unvoiced
speech, es necesario implementar un mayor numero de
Figura 12: FFT de la señal aproximada linealmente con coeficientes (más de 10) para que el modelo sea viable,
dos P distintos. aunque produce un error constante de baja amplitud.
La Figura 14 detalla un fragmento de voiced speech
4.3. Error de la predicción lineal donde se puede apreciar la periodicidad de la señal y la
similitud de su error con un tren de pulsos periódico,
Teniendo en cuenta que el error de la predicción li- mientras que la Figura 15 muestra un fragmento corres-
neal se determina a partir de la diferencia entre la señal pondiente al unvoiced speech, acompañado de su error
original y su aproximación lineal, es pertinente anali- con variación de la amplitud constante.
zar el comportamiento del error al variar la cantidad de
polos implementada. La Figura 13 muestra la compara-
ción entre dos señales de error correspondientes a orde-
nes distintos del filtro inverso.

Figura 13: Error de predicción lineal. La imagen supe-


rior se obtiene con un orden igual a 5,y la inferior con Figura 14: Fragmento de voiced speech con su error co-
un orden igual a 50. rrespondiente.

7
Análisis y Sı́ntesis de voz humana mediante LPC Procesamiento Digital de Señales

autocorrelacion. Los resultados obtenidos se correspon-


dieron con lo analizado en la teorı́a, ası́ como también la
repercusión de los parámetros y variables crı́ticas men-
cionados y estudiadas. En cuanto a la sı́ntesis de la señal
(que llamamos señal de predicción, la cual se obtuvo
a partir de muestras anteriores de la señal original) se
observaron resultados acordes a lo esperado, como una
mayor aproximación a la señal original a medida que se
aumenta la cantidad de coeficientes calculados, o lo que
es equivalente, la disminución de la señal de error. A
pesar de esto, algunos resultados no pudieron ser expli-
cados con la teorı́a de trasfondo, como la casi instancia
de la respuesta en frecuencia de la señal a medida que se
variaban la cantidad de coeficientes de predicción cal-
culados. Esto puede deberse tanto como a una falla en
la interpretación de los resultados ası́ como también a
un posible defecto o error en el código realizado para la
obtención de estas curvas.
Respecto al método de sı́ntesis, queda pendiente el
estudio y la implementación del proceso de compresión
de la señal de error para poder finalmente manipular la
información de audio de maneara mas eficiente a partir
de bloques de datos mas sencillos de transmitir (menor
Figura 15: Fragmento de unvoiced speech con su error densidad de bits por segundo), además de incorporar la
correspondiente. detección de parámetros como la energı́a, el Zero Cros-
sing Count o el Pitch period con el fin de lograr un sis-
tema de sı́ntesis mas sofisticado.
4.5. Compresión del audio
Para determinar la compresión, se utiliza la relación
entre el número de muestras por ventana de la señal ori- Referencias
ginal, respecto del número de coeficientes que se ob-
[1] Jeremy Bradbury. Linear predictive coding. 2005.
tuvieron por ventana. A partir de un largo de ventana
igual a 10 ms, correspondiente a 441 muestras en el do- [2] Lawrence R. Rabiner and Ronald W. Schafer.
minio discreto, y un número de coeficientes igual a 12, Theory and Applications of Digital Speech Proces-
el orden de magnitud de compresión es de 36,75 veces. sing. Pearson, 2011.

[3] Jean Francois Frigon and Vladislav Teplitsky. Im-


5. CONCLUSIONES plementation of linear Predictive Coding. Spring,
2011.
Como conclusión principal se puede afirmar que se
pudo aplicar correctamente el método de calculo de los [4] Christopher Felton. Python Zplane Function. DS-
coeficientes de predicción lineal a partir del método de PRELATED.com, 2011.

También podría gustarte