ES2613492T3 - Supresión de eco - Google Patents

Supresión de eco Download PDF

Info

Publication number
ES2613492T3
ES2613492T3 ES14733860.2T ES14733860T ES2613492T3 ES 2613492 T3 ES2613492 T3 ES 2613492T3 ES 14733860 T ES14733860 T ES 14733860T ES 2613492 T3 ES2613492 T3 ES 2613492T3
Authority
ES
Spain
Prior art keywords
echo
model
audio signal
adaptive
accuracy
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
ES14733860.2T
Other languages
English (en)
Inventor
Per Ahgren
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Technology Licensing LLC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Technology Licensing LLC filed Critical Microsoft Technology Licensing LLC
Application granted granted Critical
Publication of ES2613492T3 publication Critical patent/ES2613492T3/es
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M9/00Arrangements for interconnection not involving centralised switching
    • H04M9/08Two-way loud-speaking telephone systems with means for conditioning the signal, e.g. for suppressing echoes for one or both directions of traffic
    • H04M9/082Two-way loud-speaking telephone systems with means for conditioning the signal, e.g. for suppressing echoes for one or both directions of traffic using echo cancellers

Landscapes

  • Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Cable Transmission Systems, Equalization Of Radio And Reduction Of Echo (AREA)
  • Telephone Function (AREA)
  • Circuit For Audible Band Transducer (AREA)

Abstract

Un método de quitar eco, incluyendo el método: enviar una señal audio (S404); y recibir una señal audio (S406), donde la señal audio recibida incluye eco resultante de dicha señal audio emitida; caracterizado por determinar (S408) una primera estimación de modelo adaptativo del eco en la señal audio recibida usando un primer modelo adaptativo en base a la señal audio emitida y la señal audio recibida, y determinar una segunda estimación de modelo adaptativo del eco en la señal audio recibida usando un segundo modelo en base a la señal audio emitida, donde los modelos adaptativos primero y segundo ejecutan un algoritmo incluyendo un parámetro de convergencia para determinar coeficientes de filtro y usan dichos coeficientes de filtro para filtrar la señal audio emitida para determinar la estimación de modelo adaptativo del eco; determinar (S412) un primer valor de exactitud del primer modelo adaptativo y un segundo valor de exactitud del segundo modelo adaptativo según una medición de la exactitud de modelo; determinar si el primer modelo adaptativo es más exacto que el segundo modelo adaptativo en base a una comparación del primer valor de exactitud y el segundo valor de exactitud; actualizar (S414) el parámetro de convergencia del primer modelo adaptativo de forma continua en base a dicho primer valor de exactitud y actualizar selectivamente el segundo modelo adaptativo en base a dicha comparación; y usar la segunda estimación de modelo adaptativo del eco para quitar el eco en la señal audio recibida.

Description

5
10
15
20
25
30
35
40
45
50
55
60
65
DESCRIPCION
Supresion de eco Antecedentes
Un dispositivo puede tener un aparato de entrada audio que puede ser usado para recibir senales audio del entorno circundante. El dispositivo tambien puede tener un aparato de salida audio que puede ser usado para emitir senales audio al entorno circundante. Por ejemplo, un dispositivo puede tener uno o varios altavoces para enviar senales audio y uno o varios microfonos para recibir senales audio. Las senales audio que son emitidas por el o los altavoces del dispositivo pueden recibirse como “eco” en la senal audio recibida por el (los) microfono(s). Puede darse el caso de que este eco no sea deseable en la senal audio recibida. Por ejemplo, el dispositivo puede ser un dispositivo de usuario (tal como un telefono movil, tableta, ordenador portatil, PC, etc) que se usa en un evento de comunicacion, tal como una llamada audio o video, con otro dispositivo de usuario por una red. Las senales de extremo lejano de la llamada pueden ser emitidas por el altavoz del dispositivo de usuario y pueden ser recibidas como eco en las senales audio recibidas por el microfono en el dispositivo. Tal eco puede ser perturbador para los usuarios de la llamada, y la calidad percibida de la llamada se puede reducir debido al eco. En particular, el eco puede producir interferencia para senales audio de extremo proximo destinadas a ser recibidas por el microfono y transmitidas al extremo lejano en la llamada. Por lo tanto, se puede aplicar cancelacion de eco y/o supresion de eco a las senales audio recibidas para suprimir por ello el eco en la senal audio recibida. La potencia del eco en la senal audio recibida puede variar dependiendo de la disposicion del dispositivo de usuario. Por ejemplo, el dispositivo de usuario puede ser un telefono movil y, en ese caso, la potencia del eco en la senal audio recibida sena normalmente mas alta cuando el telefono movil este operando en un modo “manos libres” en comparacion con cuando el telefono movil no esta operando en un modo “manos libres”.
Las tecnicas de cancelacion de eco (o “supresion de eco”) tienen la finalidad de estimar una senal de eco incluida en la senal audio recibida en el microfono, en base a conocimiento de la senal audio que es emitida por el altavoz. La estimacion de la senal de eco se puede restar entonces de la senal audio recibida quitando por ello al menos parte del eco de la senal audio recibida. La supresion de eco se usa para aplicar supresion dependiente de frecuencia a la senal audio recibida para suprimir por ello el eco en la senal audio recibida.
US 6990195 B1 se refiere a un sistema de procesado de senal que discrimina entre senales de voz y senales de datos moduladas por una portadora de banda de voz. El sistema de procesado de senal incluye un intercambio de voz, un intercambio de datos y un discriminador de llamada. El intercambio de voz es capaz de intercambiar senales de voz entre una red de circuitos conmutados y una red basada en paquetes. El sistema de procesado de senal tambien incluye un intercambio de datos capaz de intercambiar senales de datos moduladas por una portadora de banda de voz en la red de circuitos conmutados con paquetes de datos de senales sin modular en la red basada en paquetes. El intercambio de datos se realiza desmodulando senales de datos de la red de circuitos conmutados para transmision en la red basada en paquetes, y modulando paquetes de senales de datos de la red basada en paquetes para transmision en la red de circuitos conmutados. El discriminador de llamada se usa para permitir selectivamente el intercambio de voz y el intercambio de datos.
Resumen
Este resumen se ofrece al objeto de presentar una seleccion de conceptos en una forma simplificada que se describen mejor mas adelante en la descripcion detallada. Este resumen no tiene la finalidad de identificar elementos clave o caractensticas esenciales de la materia reivindicada, ni tiene la finalidad de ser usado para limitar el alcance de la materia reivindicada.
Se facilita un metodo de quitar eco en una senal audio recibida. Como parte de la extraccion de eco, se determina una estimacion de modelo adaptativo del eco en la senal audio recibida usando un modelo adaptativo en base a una senal audio emitida y la senal audio recibida. El modelo adaptativo ejecuta un algoritmo incluyendo un parametro de convergencia para determinar coeficientes de filtro y usa dichos coeficientes de filtro para filtrar la senal audio emitida para determinar la estimacion de modelo adaptativo del eco. Se determina un valor de exactitud del modelo adaptativo segun una metrica de mejora de perdida de retorno de eco. El parametro de convergencia es actualizado en base al valor de exactitud. La estimacion de modelo adaptativo del eco se usa para quitar el eco en la senal audio recibida.
El metodo puede ser usado en una llamada (por ejemplo, una llamada que implementa protocolo de voz por Internet (VoIP) para transmitir datos audio entre dispositivos de usuario) en cuyo caso la senal audio emitida puede ser una senal de extremo lejano recibida del extremo lejano de la llamada, y la senal recibida incluye el eco resultante y una senal de extremo proximo para transmision al extremo lejano de la llamada.
Breve descripcion de los dibujos
Para una mejor comprension de las realizaciones descritas y para mostrar como la misma se puede llevar a cabo,
5
10
15
20
25
30
35
40
45
50
55
60
65
ahora se hara referencia, a modo de ejemplo, a los dibujos siguientes, en los que:
La figura 1 representa una ilustracion esquematica de un sistema de comunicaciones.
La figura 2 es un diagrama esquematico de bloques de un dispositivo de usuario.
La figura 3 es un diagrama funcional que representa modulos de un dispositivo de usuario para uso en extraccion de eco.
Y la figura 4 es un diagrama de flujo para un proceso de quitar eco.
Descripcion detallada
Ahora se describiran realizaciones a modo de ejemplo solamente.
La figura 1 representa un sistema de comunicaciones 100 incluyendo un primer usuario 102 (“Usuario A”) que esta asociado con un primer dispositivo de usuario 104 y un segundo usuario 108 (“Usuario B”) que esta asociado con un segundo dispositivo de usuario 110. En otras realizaciones, el sistema de comunicaciones 100 puede incluir cualquier numero de usuarios y dispositivos de usuario asociados. Los dispositivos de usuario 104 y 110 pueden comunicar por la red 106 en el sistema de comunicaciones 100, permitiendo por ello que los usuarios 102 y 108 comuniquen entre sf por la red 106. El sistema de comunicaciones 100 representado en la figura 1 es un sistema de comunicaciones basado en paquetes, pero se podna usar otros tipos de sistemas de comunicaciones. La red 106 puede ser, por ejemplo, Internet. Cada uno de los dispositivos de usuario 104 y 110 puede ser, por ejemplo, un telefono movil, una tableta, un ordenador portatil, un ordenador personal (“PC”) (incluyendo, por ejemplo, Windows™, Mac OSTM y LinuxTM PCs), un dispositivo de juego, una television, un asistente digital personal (“PDA”) u otro dispositivo embebido capaz de conectar a la red 106. El dispositivo de usuario 104 esta dispuesto para recibir y enviar informacion de/al usuario 102 del dispositivo de usuario 104. El dispositivo de usuario 104 incluye medios de salida tales como una pantalla y altavoces. El dispositivo de usuario 104 tambien incluye medios de entrada tales como un teclado, una pantalla tactil, un microfono para recibir senales audio y/o una camara para capturar imagenes de una senal video. El dispositivo de usuario 104 esta conectado a la red 106.
El dispositivo de usuario 104 ejecuta una instancia de un cliente de comunicacion, proporcionado por un proveedor de software asociado con el sistema de comunicaciones 100. El cliente de comunicacion es un programa de software ejecutado en un procesador local en el dispositivo de usuario 104. El cliente realiza el procesado requerido en el dispositivo de usuario 104 para que el dispositivo de usuario 104 transmita y reciba datos por el sistema de comunicaciones 100.
El dispositivo de usuario 110 corresponde al dispositivo de usuario 104 y ejecuta, en un procesador local, un cliente de comunicacion que corresponde al cliente de comunicacion ejecutado en el dispositivo de usuario 104. El cliente en el dispositivo de usuario 110 realiza el procesado requerido para que el usuario 108 pueda comunicar por la red 106 de la misma forma que el cliente en el dispositivo de usuario 104 realiza el procesado requerido para que el usuario 102 pueda comunicar por la red 106. Los dispositivos de usuario 104 y 110 son puntos finales en el sistema de comunicaciones 100. La figura 1 representa solamente dos usuarios (102 y 108) y dos dispositivos de usuario (104 y 110) para claridad, pero se puede incluir muchos mas usuarios y dispositivos de usuario en el sistema de comunicaciones 100, y pueden comunicar por el sistema de comunicaciones 100 usando respectivos clientes de comunicacion ejecutados en los respectivos dispositivos de usuario.
La figura 2 ilustra una vista detallada del dispositivo de usuario 104 en el que se ejecuta una instancia de cliente de comunicacion 206 para comunicar por el sistema de comunicaciones 100. El dispositivo de usuario 104 incluye una unidad central de proceso (“CPU”) o “modulo de procesado” 202, al que estan conectados: dispositivos de salida tales como una pantalla 208, que puede implementarse como una pantalla tactil, y un altavoz (o “parlante”) 210 para enviar senales audio; dispositivos de entrada tales como un microfono 212 para recibir senales audio, una camara 216 para recibir datos de imagen, y un teclado 218; una memoria 214 para almacenar datos; y una interfaz de red 220 tal como un modem para comunicacion con la red 106. El dispositivo de usuario 104 puede incluir otros elementos distintos de los representados en la figura 2. La pantalla 208, el altavoz 210, el microfono 212, la memoria 214, la camara 216, el teclado 218 y la interfaz de red 220 pueden estar integrados en el dispositivo de usuario 104 como se representa en la figura 2. En dispositivos de usuario alternativos uno o varios de la pantalla 208, el altavoz 210, el microfono 212, la memoria 214, la camara 216, el teclado 218 y la interfaz de red 220 pueden no ser integrados en el dispositivo de usuario 104 y pueden estar conectados a la CPU 202 mediante interfaces respectivas. Un ejemplo de tal interfaz es una interfaz USB. Si la conexion del dispositivo de usuario 104 a la red 106 mediante la interfaz de red 220 es una conexion inalambrica, entonces la interfaz de red 220 puede incluir una antena para transmitir de forma inalambrica senales a la red 106 y recibir de forma inalambrica senales de la red 106.
La figura 2 tambien ilustra un sistema operativo (“OS”) 204 ejecutado en la CPU 202. Sobre el OS 204 se ejecuta el software de la instancia de cliente 206 del sistema de comunicaciones 100. El sistema operativo 204 gestiona los
5
10
15
20
25
30
35
40
45
50
55
60
65
recursos de hardware del ordenador y maneja datos que son transmitidos a y de la red 106 mediante la interfaz de red 220. El cliente 206 comunica con el sistema operativo 204 y gestiona las conexiones por el sistema de comunicaciones. El cliente 206 tiene una interfaz de usuario cliente que se usa para presentar informacion al usuario 102 y para recibir informacion del usuario 102. De esta forma, el cliente 206 realiza el procesado requerido para que el usuario 102 pueda comunicar por el sistema de comunicaciones 100.
En cancelacion de eco acustico la finalidad es quitar la senal de eco s(t) en la senal de microfono y(t) que se origina a partir de la senal de altavoz x(t). Esto se debera hacer lo mas exactamente posible y de la forma menos obstrusiva posible con el fin de tener el mmimo impacto en la percepcion de cualquier senal de extremo proximo v(t). La senal de microfono puede escribirse como y(t) = s(t) + v(t). La senal de eco es una funcion de la senal de altavoz como s(t) = F(x(t)).
Hay dos formas principales de lograr lo anterior, siendo una la sustraccion de eco y siendo la otra la supresion de eco. A menudo se combinan estos dos acercamientos.
Tanto en supresion de eco como en sustraccion de eco, se usa un modelo AF(x(t)) para estimar el eco, o algunas propiedades del eco tales como la potencia de eco, en la senal de microfono.
Una opcion comun en cancelacion de eco es usar un algoritmo de gradiente estocastico para actualizar el modelo. En el pasado se propusieron multiples esquemas de seleccion de tasa de adaptacion la mayor parte de los cuales tiene el inconveniente de que requieren que el modelo sea conocido en general con el fin de elegir la velocidad de adaptacion. Ademas, muchos de ellos requieren que la exactitud de las estimaciones de parametro de modelo (estimaciones de coeficiente de filtro) sea conocida.
Con referencia a las figuras 3 y 4 ahora se describe un metodo de quitar eco. La figura 3 es un diagrama funcional de una parte del dispositivo de usuario 104 que representa como se implementa un proceso de extraccion de eco.
Como se representa en la figura 3, el dispositivo de usuario 104 incluye el altavoz 210, el microfono 212, un modulo de modelado 302, y un modulo de extraccion de eco 314. El modulo de modelado 302 incluye un modulo filtro 304, un modulo de determinacion de exactitud de modelo 306, y un modulo de seleccion de parametro de convergencia 308. El modulo de extraccion de eco 314 se describe con referencia a la figura 3 como un modulo de supresion de eco 314.
La figura 4 es un diagrama de flujo para el proceso de supresion del eco.
Una senal x(t) a emitir por el altavoz 210 esta acoplada a una entrada del altavoz 210. Se debera indicar que en las realizaciones aqrn descritas solo hay un altavoz (indicado con el numero de referencia 210 en las figuras), pero en otras realizaciones puede haber mas de un altavoz al que se acopla la senal a emitir (para salida de el). Igualmente, en las realizaciones aqrn descritas solo hay un microfono (indicado con el numero de referencia 212 en las figuras), pero en otras realizaciones puede haber mas de un microfono que reciba senales audio del entorno circundante. La senal a emitir por el altavoz 210 tambien esta acoplada al modulo de modelado 302. En particular, la senal a emitir por el altavoz 210 esta acoplada a una primera entrada del modulo filtro 304. Una salida del microfono 212 esta acoplada al modulo de modelado 302. En particular, la salida del microfono 212 esta acoplada a una segunda entrada del modulo filtro 304 y a una primera entrada del modulo de determinacion de exactitud de modelo 306. La salida del microfono 212 tambien esta acoplada a una primera entrada del modulo de supresion de eco 314. Una salida del modulo de modelado 302 esta acoplada a una segunda entrada del modulo de supresion de eco 314. En particular, la salida del modulo filtro 304 esta acoplada a la segunda entrada del modulo de supresion de eco 314. Se usa una salida del modulo de supresion de eco 314 para proporcionar la senal recibida (con supresion de eco que se ha aplicado) para procesado adicional en el dispositivo de usuario 104. La salida del modulo filtro 304 tambien esta acoplada a una segunda entrada del modulo de determinacion de exactitud de modelo 306. Una salida del modulo de determinacion de exactitud de modelo 306 esta acoplada a una entrada del modulo de seleccion de parametro de convergencia 308. Una salida del modulo de seleccion de parametro de convergencia 308 esta acoplada a una tercera entrada del modulo filtro 304.
En el paso S402 se recibe una senal que ha de ser emitida por el altavoz 210. Por ejemplo, la senal a emitir puede ser una senal de extremo lejano que se ha recibido en el dispositivo de usuario 104 del dispositivo de usuario 110 durante una llamada entre los usuarios 102 y 108 por el sistema de comunicaciones 100. Cualquier procesado que haya que realizar en la senal recibida (por ejemplo, decodificacion usando un codec de voz, despaquetizacion, etc) se lleva a cabo como es conocido en la tecnica (por ejemplo, por el cliente 206) para llegar a la senal x(t) que sea adecuada para ser emitida por el altavoz 210. La senal x(t) es una senal digital. Al menos parte del procesado de la senal en el dispositivo de usuario 104 antes de emitir la senal por el altavoz 210 se realiza en el dominio digital. Como es conocido en la tecnica, se aplica un convertidor digital a analogico (DAC) a la senal digital x(t) antes de la reproduccion por el altavoz 210. Igualmente, se aplica un convertidor analogico a digital (ADC) a la senal capturada por el microfono 212 para llegar a la senal digital y(t).
En otras realizaciones, la senal a emitir puede ser recibida de algun lugar distinto de por el sistema de
5
10
15
20
25
30
35
40
45
50
55
60
comunicaciones 100 en una llamada. Por ejemplo, la senal a emitir puede haber sido almacenada en la memoria 214 y el paso S402 puede incluir recuperar la senal de la memoria 214.
En el paso S404, la senal audio x(t) es emitida por el altavoz 210. De esta forma, la senal audio x(t) es enviada al usuario 102.
En el paso S406, el microfono 212 recibe una senal audio. Como se representa en la figura 3, la senal audio recibida puede incluir una senal de extremo proximo que es una senal deseada o “senal primaria”. La senal de extremo proximo es la senal que el usuario 102 intenta que reciba el microfono 212. Sin embargo, la senal audio recibida tambien incluye una senal de eco resultante de las senales audio emitidas por el altavoz 210 en el paso S404. La senal audio recibida tambien puede incluir ruido, tal como ruido de fondo. Por lo tanto, la senal audio recibida total y(t) puede darla la suma de la senal de extremo proximo, el eco y el ruido. El eco y el ruido actuan como interferencia para la senal de extremo proximo.
El modulo filtro 304 toma como entradas la senal audio emitida x(t) y la senal audio recibida y(t). En el paso S408, el modulo filtro 304 se usa para modelar el eco en la senal audio recibida y(t). En particular, el modulo filtro 304 puede operar para determinar una estimacion del componente de eco en la senal de extremo proximo y(t) usando la senal audio emitida x(t) y la senal audio recibida y(t).
El recorrido de eco describe los efectos de los recorridos acusticos por los que pasa la senal de extremo lejano desde el altavoz 210 al microfono 212. La senal de extremo lejano puede ir directamente desde el altavoz 210 al microfono 212, o puede ser reflejada por varias superficies en el entorno del terminal de extremo proximo. El recorrido de eco atravesado por la senal de extremo lejano emitida por el altavoz 210 puede ser considerado como un sistema que tiene una frecuencia y una respuesta de fase que pueden variar con el tiempo.
Con el fin de quitar el eco acustico s(t) de la senal y(t) registrada en el microfono de extremo proximo 212 hay que estimar como el recorrido de eco cambia la senal de salida de altavoz de extremo lejano deseada x(t) a un componente de eco indeseado en la senal de entrada.
Para un recorrido de eco aproximadamente lineal, el recorrido de eco h(t) describe como el eco en la senal audio recibida y(t) se refiere a la senal audio x(t) salida del altavoz 210, por ejemplo, segun la ecuacion:
s(t) = Zn=oe hn(t)x(t - 7l),
donde s(t) es el eco en la senal audio recibida y(t), Ntrue es un numero suficientemente grande para cubrir las partes no despreciables de la respuesta de impulso (teoricamente Ntrue es infinito), y hn(t) son los coeficientes de la respuesta de impulso que describe el recorrido de eco h(t). El recorrido de eco h(t) puede variar tanto en el tiempo como en la frecuencia y se puede denominar aqrn h(t) o h(t,f). El recorrido de eco h(t) puede depender de (i) las condiciones medioambientales actuales que rodean el altavoz 210 y el microfono 212 (por ejemplo, si hay obstrucciones ffsicas en el paso de la senal audio desde el altavoz 210 al microfono 212, la presion de aire, la temperatura, el viento, etc), y (ii) caractensticas del altavoz 210 y/o el microfono 212 que pueden alterar la senal enviada y/o recibida.
El modulo filtro 304 modela el recorrido de eco h(t) del eco en la senal audio recibida y(t) determinando una suma ponderada del actual y un numero finito (N) de valores previos de la senal audio emitida x(t). Por lo tanto, el modulo filtro 304 implementa un filtro de orden enesimo que tiene una longitud finita (en el tiempo) sobre la que considera los valores de la senal audio emitida x(t) al determinar la estimacion del recorrido de eco h(t). De esta forma, el modulo filtro 304 adapta dinamicamente la estimacion de filtro del recorrido de eco h(t). La operacion se describe por la ecuacion siguiente, que define el eco en la serial audio recibida y(t) en terminos de la serial audio salida x(t):
imagen1
Por lo tanto, se usan N+1 muestras de la senal audio emitida x(t), con unos respectivos pesos N+1 hn(t). El conjunto de N+1 pesos hn(t) se denomina aqrn simplemente la estimacion del recorrido de eco h(t). En otros terminos, la estimacion del recorrido de eco h(t) es un vector que tiene N+1 valores donde el modulo filtro 304 implementa un filtro de orden enesimo, tomando en cuenta N+1 valores (por ejemplo, N+1 cuadros) de la senal x(t).
Se puede apreciar que es mas facil adaptar la estimacion de filtro del recorrido de eco h(t) cuando el eco es una parte dominante de la senal audio recibida, que es cuando y(t) = s(t). Sin embargo, puede ser posible adaptar la estimacion de filtro del recorrido de eco h(t) incluso cuando el eco no es una parte dominante de la senal audio recibida y(t) si el eco s(t) es independiente de los otros componentes de senal de y(t).
Los expertos en la tecnica apreciaran que la estimacion del recorrido de eco h(t) no tiene que ser calculada explfcitamente, sino que se podna representar por medio de coeficientes de filtro obtenidos de algoritmos de
5
10
15
20
25
30
35
40
45
50
55
60
65
gradiente estocastico tales como medias de cuadrados mmimos (LMS), medias de cuadrados mmimos normalizados (NLMS), proyeccion afm rapida (FAP) y cuadrados mmimos recursivos (RLS).
El modulo filtro 304 incluye un componente de algoritmo de adaptacion 310. El componente de algoritmo de adaptacion 310 del modulo filtro 304 ejecuta un algoritmo de gradiente estocastico para identificar los coeficientes del modulo filtro 304 que minimiza una senal de error e(t).
Los coeficientes de filtro actualizados para el modulo filtro 304 son generados en respuesta a la senal de error e(t), la senal de entrada x(t) y los coeficientes de filtro previos.
El componente de algoritmo de adaptacion 310 del modulo filtro 304 opera de forma recursiva en el tiempo. Esto significa que no se adapta de forma instantanea a cambios en el sistema, en cambio el algoritmo converge iterativamente a una aproximacion del sistema en un intervalo de tiempo finito. Independientemente del algoritmo concreto usado, los coeficientes de filtro del modulo filtro 304 son actualizados con cada iteracion del algoritmo, asf los coeficientes del modulo filtro 302 son actualizados continuamente con el tiempo independientemente de las condiciones de senal disponibles.
Los coeficientes de filtro del modulo filtro 304 filtran la senal de extremo lejano x(t) para generar una estimacion del componente de eco en la senal de extremo proximo y(t). Aunque la descripcion anterior se refiere al uso de un modelo FIR de dominio de tiempo del recorrido de eco para estimar el componente de eco en la senal de extremo proximo y(t), los expertos en la tecnica apreciaran que este es solamente un ejemplo y no una limitacion de ninguna forma. Es decir, el primer modulo filtro 304 puede operar para determinar una estimacion del recorrido de eco h(t) y asf una estimacion s-i(t) del componente de eco en la senal de extremo proximo y(t) en el dominio de tiempo o en el dominio de frecuencia.
La senal de error e(t) la obtiene un sustractor 312 que resta la estimacion del componente de eco en la senal de extremo proximo y(t) a partir de la senal de extremo proximo y(t) y suministra la senal de error e(t) al modulo filtro 304. Se apreciara que es deseable que la senal de error e(t) sea pequena. Por ejemplo, cuando no hay senal de extremo proximo v(t) en la senal de microfono, idealmente la senal de error es igual a cero.
Los algoritmos de gradiente estocastico tienen un parametro de convergencia en forma de un tamano de paso para la actualizacion de los parametros de modelo. Este se puede elegir como fijo en algunas aplicaciones, pero en muchos casos se logra un mejor rendimiento si se elige en dependencia de la senal. El tamano de paso controla la sensibilidad de la actualizacion al ruido en la senal de microfono y(t). Si se elige de modo que sea pequeno, la velocidad de actualizacion es lenta, pero es menos insensible al ruido, pero si se elige de modo que sea grande la velocidad de actualizacion es en cambio rapida, pero mas sensible al ruido. La referencia a “velocidad de actualizacion” o “velocidad de adaptacion” se usa aqu para hacer referencia a la rapidez con la que el modelo es capaz de adaptarse a las condiciones de senal disponibles en el sistema. Es decir, la utilizacion de un tamano de paso mas pequeno dara lugar a una senal de error eventual mas pequena e(t), sin embargo, la convergencia a una aproximacion del sistema sera mas lenta debido al mayor numero de pasos de iteracion requeridos (menor tasa de convergencia), y el uso de un tamano de paso mas grande dara lugar a una senal de error eventual mas grande e(t), sin embargo, la convergencia a una aproximacion del sistema sera mas rapida debido al menor numero de pasos de iteracion requeridos (tasa de convergencia mas rapida).
Con el fin de lograr estimaciones de exactitud muy alta, el tamano de paso tiene que ser pequeno con el fin de evitar el rebasamiento de las verdaderas estimaciones debido a un tamano de paso demasiado alto.
En algunas realizaciones, la estimacion del componente de eco se pasa desde el modulo filtro 304 al modulo de supresion de eco 314 (como se representa en la figura 3). En estas realizaciones, la estimacion del componente de eco tambien es suministrada al modulo de determinacion de exactitud de modelo 306.
En otras realizaciones, en el paso S408, la estimacion del componente de eco se pasa desde el modulo filtro 304 a un modulo de estimacion de potencia (no representado en la figura 3). El modulo de estimacion de potencia estima la potencia de eco en la senal audio recibida en base a la estimacion de filtro (determinada por el modulo filtro 304) y la senal de extremo lejano x(t). Hay muchas formas de hacerlo que son conocidas por los expertos en la tecnica y el alcance de esta descripcion no se limita a ningun metodo concreto de determinar una estimacion de potencia de eco. El modulo de estimacion de potencia esta dispuesto para enviar su estimacion de potencia de eco correspondiente al modulo de supresion de eco 314.
El modulo de supresion de eco 314 toma como entrada una estimacion del componente de eco salida del primer modulo filtro 304 o una estimacion de potencia de eco salida del primer modulo de estimacion de potencia, y en el paso S410 usa esta entrada para aplicar supresion de eco a la senal audio recibida y(t), suprimiendo por ello el eco en la senal audio recibida. La supresion de eco realizada en el paso S410 se describe mas adelante.
El modulo de determinacion de exactitud de modelo 306 toma como entrada una primera estimacion s-i(t). La
5
10
15
20
25
30
35
40
45
50
55
primera estimacion s i(t) puede ser una estimacion del componente de eco salido de el modulo filtro 304. En una realizacion, la estimacion error (y-s) salida del sustractor 312 es suministrada a un modulo de estimacion de potencia (no representado en la figura 3). En esta realizacion, la primera estimacion si(t) puede ser la potencia del error de estimacion (y-s) salida del modulo de estimacion de potencia. El modulo de determinacion de exactitud de modelo 306 tambien toma como entrada la serial audio recibida y(t).
En el paso S412, el modulo de determinacion de exactitud de modelo 306 puede operar para determinar la exactitud de la estimacion si(t).
Una metrica usada para medir la exactitud del modulo filtro 304 es la mejora de perdida de retorno de eco (ERLE), la metrica ERLE se define como:
ERLEk{t) =
E\y(t)]2 E[sk(t) - y(t)]2
La metrica ERLE se puede medir en decibelios (dB), segun la ecuacion siguiente (suponiendo que se use un logaritmo de base 10, es decir, log10):
ERLEk(t) = 10 log
ELKO]2
E[sk(t) - y(t)]2
En las ecuaciones anteriores, E[] es el operador de expectacion. La medicion ERLE se puede aplicar, y se aplica tfpicamente, a senales no estacionarias. Por lo tanto, en la practica, los valores de expectacion son evaluados usando valores medios de tiempo corto:
SfcoV(t-fc)
- fc) - y(t - k-))2
La metrica ERLE es una medida de la capacidad de la estimacion de modelo de modelar la senal de microfono y(t). La metrica ERLE es limitada en el sentido de que solamente evalua la exactitud de modelo cuando la senal de microfono consta principalmente de eco. Si ese no es el caso, la medicion ERLE puede ser baja aunque el modelo sea exacto. Sin embargo, si la medicion ERLE es alta, solamente se puede deber a que el modelo es exacto.
El valor de exactitud de la estimacion s1(t) puede ser determinado periodicamente. Por ejemplo, el valor de exactitud de la estimacion s1(t) puede ser promediado sobre un numero predeterminado de muestras de la senal audio x(t) y la senal audio recibida y(t) en un periodo de tiempo dado para llegar al valor de exactitud. Es decir, el valor de exactitud puede ser determinado para cada cuadro de la senal audio recibida y(t); sin embargo, este es simplemente un ejemplo, y el respectivo valor de exactitud puede ser determinado menos o mas a menudo que para cada cuadro.
Una vez que la exactitud de la estimacion s1(t) ha sido determinada en el paso S412, el proceso pasa al paso S414.
En el paso S414, el modulo de seleccion de parametro de convergencia 308 determina un valor para un parametro de convergencia (tamano de paso) usado en un algoritmo ejecutado por el componente de algoritmo de adaptacion 310 del modulo filtro 304 en base a la exactitud de la estimacion s1(t) determinada en el paso S412. El parametro de convergencia es dependiente de algoritmo, pero puede ser cuantificado para un cierto algoritmo. Tomando como ejemplo el algoritmo NLMS, un parametro de convergencia de 0,5 proporcionana tfpicamente un tamano de paso razonablemente rapido (velocidad de actualizacion rapida) y un parametro de convergencia de 0,01 daria tfpicamente un tamano de paso muy pequeno (velocidad de actualizacion lenta).
En particular, el modulo de seleccion de parametro de convergencia 308 selecciona el parametro de convergencia para controlar la velocidad de adaptacion del modulo filtro 304 como una funcion no creciente de la medicion de la mejora de perdida de retorno de eco realizada en el paso S412.
En el paso S414, la medicion de la mejora de perdida de retorno de eco realizada en el paso S412 puede compararse con un valor umbral, y el modulo de seleccion de parametro de convergencia 308 regula el parametro de convergencia en base a esta comparacion. El valor umbral puede ser un umbral predeterminado, por ejemplo, 10dB. Sin embargo, se apreciara que este valor para el umbral predeterminado es simplemente un ejemplo y se puede poner de forma diferente segun los requisitos del sistema.
Es decir, si la medicion de la mejora de perdida de retorno de eco tomada en el paso S412 es menor que el valor umbral (es decir, cuando el valor ERLE es bajo), el modulo de seleccion de parametro de convergencia 308
ERLEAt)
5
10
15
20
25
30
35
40
45
50
55
60
65
selecciona un valor de parametro de convergencia para aumentar la velocidad de adaptacion del modulo filtro 304.
La decision de aumentar la velocidad de adaptacion del modulo filtro 304 se puede hacer solamente si la medicion de la mejora de perdida de retorno de eco ha sido menor que el valor umbral en un penodo de tiempo predeterminado, es decir, cuando la medicion de la mejora de perdida de retorno de eco ha sido menor que el valor umbral durante todo el penodo de tiempo predeterminado. Tambien se podna usar otros esquemas relacionados, por ejemplo la decision de aumentar la velocidad de adaptacion del modulo filtro 304 se puede hacer si la medicion de la mejora de perdida de retorno de eco ha sido menor que el valor umbral durante una proporcion predeterminada de un penodo de tiempo predeterminado. Estableciendo consiguientemente la proporcion predeterminada, en un ejemplo, la velocidad de adaptacion se incrementa cuando el ERLE ha sido menor que el umbral casi todo el penodo de tiempo predeterminado, aparte de unas pocas muestras donde supero el umbral.
Dependiendo del algoritmo ejecutado por el componente de algoritmo de adaptacion 310, el aumento de la velocidad de adaptacion del modulo filtro 304 se puede implementar de varias formas. Es decir, el aumento de la velocidad de adaptacion del modulo filtro 304 se puede implementar disminuyendo el parametro de convergencia una cantidad predeterminada o a un valor predeterminado. Alternativamente, el aumento de la velocidad de adaptacion del modulo filtro 304 se puede implementar incrementando el parametro de convergencia una cantidad predeterminada o a un valor predeterminado.
Si la medicion de la mejora de perdida de retorno de eco tomada en el paso S412 es igual o mayor que el valor umbral (es decir, cuando el valor ERLE es alto), el modulo de seleccion de parametro de convergencia 308 selecciona un valor de parametro de convergencia para disminuir la velocidad de adaptacion del modulo filtro 304.
La decision de disminuir la velocidad de adaptacion del modulo filtro 304 se puede hacer solamente si la medicion de la mejora de perdida de retorno de eco ha sido igual o mayor que el valor umbral en un penodo de tiempo predeterminado, es decir, cuando la medicion de la mejora de perdida de retorno de eco ha sido igual o mayor que el valor umbral durante todo el penodo de tiempo predeterminado. Tambien se podna usar otros esquemas relacionados, por ejemplo la decision de disminuir la velocidad de adaptacion del modulo filtro 304 se puede hacer si la medicion de la mejora de perdida de retorno de eco ha sido igual o mayor que el valor umbral durante una proporcion predeterminada de un penodo de tiempo predeterminado. Estableciendo consiguientemente la
proporcion predeterminada, en un ejemplo, la velocidad de adaptacion se baja cuando el ERLE ha sido igual o
mayor que el umbral durante casi todo el penodo de tiempo predeterminado, aparte de unas pocas muestras donde ha cafdo por debajo del umbral.
Dependiendo del algoritmo ejecutado por el componente de algoritmo de adaptacion 310, la disminucion de la velocidad de adaptacion del modulo filtro 304 se puede implementar de varias formas. Es decir, la disminucion de la velocidad de adaptacion del modulo filtro 304 se puede implementar disminuyendo el parametro de convergencia una cantidad predeterminada o a un valor predeterminado. Alternativamente, la disminucion de la velocidad de adaptacion del modulo filtro 304 se puede implementar incrementando el parametro de convergencia una cantidad predeterminada o a un valor predeterminado.
En realizaciones descritas anteriormente, se puede usar mas de un umbral. Se toma como ejemplo la
implementacion por la que el aumento/disminucion de la velocidad de adaptacion del modulo filtro 304 se
implementa aumentando/disminuyendo el parametro de convergencia a un valor predeterminado. Un ejemplo podna ser que, si el ERLE < 2 dB, el parametro de convergencia se pone a 0,5; si 2 dB < ERLE < 4 dB, el parametro de convergencia se pone a 0,2; y si el ERLE > 4 dB, el parametro de convergencia se pone a 0,05. Se apreciara que estos valores espedficos para el parametro de convergencia se utilizan simplemente a efectos de ilustracion. Los valores elegidos para el parametro de convergencia son dependientes de la aplicacion.
En realizaciones descritas anteriormente, el modulo de seleccion de parametro de convergencia 308 puede implementar control de histeresis para variar mas lentamente el parametro de convergencia. Por ejemplo, se puede seleccionar un umbral superior y un umbral inferior centrados en el valor umbral, y la disminucion de la velocidad de adaptacion del modulo filtro 304 descrita anteriormente solamente se puede implementar cuando la medicion de la mejora de perdida de retorno de eco tomada en el paso S412 es igual o mayor que el umbral superior, y el incremento de la velocidad de adaptacion del modulo filtro 304 descrita anteriormente solamente se puede implementar cuando la medicion de la mejora de perdida de retorno de eco tomada en el paso S412 es menor que el umbral inferior. Esto evita rapidas variaciones en el parametro de convergencia cuando la medicion de la mejora de perdida de retorno de eco deriva en torno al valor umbral.
Dado que la medicion de la mejora de perdida de retorno de eco tiene la propiedad de que la exactitud de modelo siempre es alta cuando la medicion de la mejora de perdida de retorno de eco es alta, se puede usar para ralentizar la velocidad de adaptacion cuando la medicion de la mejora de perdida de retorno de eco sea alta con el fin de lograr estimaciones cada vez mas exactas, y aumentar la velocidad de adaptacion cuando la medicion de la mejora de perdida de retorno de eco es baja con el fin de rastrear rapidamente los cambios en los parametros de modelo.
Las realizaciones eligen la velocidad de adaptacion en funcion de la exactitud del modelo, pero esta exactitud se
5
10
15
20
25
30
35
40
45
50
55
60
65
estima de forma implfcita como parte del esquema de seleccion.
Las realizaciones descritas anteriormente aseguran que se logre una rapida adaptacion cuando la exactitud del modelo sea desconocida (mediante la alta velocidad de actualizacion cuando la medicion de la mejora de perdida de retorno de eco sea baja), y que se logren estimaciones cada vez mas exactas cuando se sepa que el modelo es exacto (mediante la disminucion de la velocidad de actualizacion cuando la medicion de la mejora de perdida de retorno de eco sea alta).
El esquema de adaptacion en las realizaciones descritas anteriormente es especialmente util al actualizar esquemas donde el modelo es actualizado de forma continua y donde es de primario interes asegurar que las estimaciones de modelo en algunos puntos (conocidos) en el tiempo sean altamente exactas, mas bien que las estimaciones de modelo sean bastante exactas todo el tiempo.
Ahora se describen arquitecturas ejemplares en las que un modelo es actualizado de forma continua y donde se puede usar el esquema de adaptacion anterior.
En una arquitectura ejemplar, el modulo de modelado esta configurado para determinar una primera estimacion de modelo del eco en la senal audio recibida usando un primer modelo en base a la senal audio emitida x(t) y la senal audio recibida y(t), y determinar una segunda estimacion de modelo del eco en la senal audio recibida usando un segundo modelo en base a la senal audio emitida. El primer modelo es actualizado continuamente en el tiempo. El modulo de modelado esta configurado para determinar un primer valor de exactitud del primer modelo segun una medicion de la exactitud de modelo, determinar un segundo valor de exactitud del segundo modelo segun la medicion de la exactitud de modelo, y determinar si el primer modelo es mas exacto que el segundo modelo en base a una comparacion del primer valor de exactitud y el segundo valor de exactitud y actualizar selectivamente el segundo modelo en base a la comparacion. Es decir, el segundo modelo es actualizado si el primer modelo es mas exacto que el segundo modelo, y el segundo modelo no es actualizado si el primer modelo no es mas exacto que el segundo modelo. En esta arquitectura, un modulo de extraccion de eco esta configurado para usar solamente la segunda estimacion de modelo del eco para quitar el eco en la senal audio recibida. Asf, se usan dos modelos adaptativos para producir estimaciones de modelo en la sombra. En esta arquitectura, el esquema de ajuste de tamano de paso descrito anteriormente puede ser usado para variar el tamano de paso del algoritmo usado al actualizar el primer modelo. Es decir, la medicion de la mejora de perdida de retorno de eco puede ser usada para ralentizar la velocidad de adaptacion del primer modelo cuando la medicion de la mejora de perdida de retorno de eco del primer modelo es alta con el fin de lograr estimaciones cada vez mas exactas, y aumentar la velocidad de adaptacion cuando la medicion de la mejora de perdida de retorno de eco es baja.
En otra arquitectura ejemplar, el modulo de modelado esta configurado para modelar un recorrido de eco del eco en la senal audio recibida usando un primer modelo en base a la senal audio emitida y la senal audio recibida para determinar una primera estimacion de modelo del eco en la senal audio recibida, usar la primera estimacion de modelo para determinar un primer valor de rendimiento segun una metrica de rendimiento, comparar el primer valor de rendimiento con un valor umbral y determinar si el recorrido de eco puede ser considerado lineal en base a la comparacion. El modulo de modelado esta configurado ademas para modelar selectivamente el recorrido de eco del eco en la senal audio recibida usando un segundo modelo en base a la senal audio emitida y la senal audio recibida, en base a dicha comparacion, para determinar una segunda estimacion de modelo del eco. En esta arquitectura, un modulo de extraccion de eco esta configurado para usar selectivamente la primera estimacion de modelo o la segunda estimacion de modelo del eco para quitar el eco en la senal audio recibida en base a la comparacion. Es decir, la primera estimacion de modelo del eco se usa para quitar el eco en la senal audio recibida si se determina que el recorrido de eco puede considerarse lineal, y la segunda estimacion de modelo del eco se usa para quitar la supresion de eco en la senal audio recibida, si se determina que el recorrido de eco no puede ser considerado lineal. En esta arquitectura, el primer modelo es actualizado continuamente en el tiempo. Asf, el esquema de ajuste de tamano de paso descrito anteriormente puede ser usado para variar el tamano de paso del algoritmo usado al actualizar el primer modelo. Es decir, la medicion de la mejora de perdida de retorno de eco puede ser usada para ralentizar la velocidad de adaptacion del primer modelo cuando la medicion de la mejora de perdida de retorno de eco del primer modelo es alta con el fin de lograr estimaciones cada vez mas exactas, y aumentar la velocidad de adaptacion cuando la medicion de la mejora de perdida de retorno de eco es baja.
Ahora se describe la supresion de eco realizada en el paso S410. La finalidad del supresor de eco 314 es suprimir el eco de altavoz presente en la senal de microfono, por ejemplo, en un cliente VoIP, a un nivel suficientemente bajo para no ser observable/perturbador en presencia de los sonidos de extremo proximo (sonidos no eco) captados por el microfono 212. El modulo de supresion de eco 314 esta disenado para aplicar supresion dependiente de senal que vana tanto en el tiempo como en la frecuencia con respecto a la senal audio recibida y(t). Los metodos de supresion de eco son conocidos en la tecnica. Ademas, el metodo de supresion de eco aplicado por el modulo de supresion de eco 314 puede implementarse de formas diferentes. Como tal, los detalles exactos del metodo de supresion de eco no se describen por lo tanto aqrn en detalle.
El modulo de supresion de eco 314 envfa la senal recibida, con el eco que ha sido suprimido, para procesado adicional en el dispositivo de usuario 104. Por ejemplo, la senal salida del modulo de supresion de eco 314 puede
5
10
15
20
25
30
35
40
45
50
55
60
65
ser procesada por el cliente 206 (por ejemplo, codificada y paquetizada) y luego transmitida por la red 106 al dispositivo de usuario 110 en una llamada entre los usuarios 102 y 108. Adicional o alternativamente, la senal salida del modulo de supresion de eco 314 puede ser usada para otros fines por el dispositivo de usuario 104, por ejemplo, la senal puede ser almacenada en la memoria 214 o usada como una entrada a una aplicacion que se ejecuta en el dispositivo de usuario 104.
El modulo filtro 304 puede utilizar cualquier filtro que implemente un algoritmo de gradiente estocastico. El modulo filtro 304 puede ser lineal para modelar el recorrido de eco del eco en la senal audio recibida (por ejemplo, un filtro de respuesta finita al impulso (FIR) o un filtro de respuesta infinita al impulso (IIR)) o alternativamente puede utilizar un filtro no lineal.
En las realizaciones descritas anteriormente, la extraccion de eco se implementa en un sistema VoIP (por ejemplo, la senal audio recibida puede incluir voz del usuario 102 para transmision al dispositivo de usuario 110 durante una llamada entre los usuarios 102 y 108 por el sistema de comunicaciones 100). Sin embargo, los metodos de extraccion de eco aqrn descritos pueden aplicarse en cualquier sistema adecuado en el que se haya de aplicar extraccion de eco.
En las realizaciones descritas anteriormente, y representadas en las figuras, el modulo de extraccion de eco 314 implementa supresion de eco.
En las realizaciones descritas anteriormente, y representadas en las figuras, no se aplica cancelacion de eco (o “supresion de eco”) a la senal audio recibida y(t). Es decir, no hay modulo de cancelacion de eco en el dispositivo de usuario 104 y la supresion de eco se aplica a la senal audio recibida y(t) sin un paso anterior de aplicar cancelacion de eco a la senal audio recibida y(t).
Sin embargo, en otras realizaciones, la cancelacion de eco puede ser aplicada, por un modulo de cancelacion de eco, a la senal audio recibida y(t). En particular, la supresion de eco aplicada por el modulo de supresion de eco 314 puede ser aplicada hacia abajo (es decir, despues) de la cancelacion de eco en el procesado de la senal audio recibida y(t). El modulo de cancelacion de eco restana una estimacion de la senal de eco de la senal audio recibida, pero debido a inexactitudes en la estimacion de la senal de eco, quedana muy probablemente un eco residual en la senal audio recibida. El eco residual es el que sena suprimido entonces por el modulo de supresion de eco 314. Esta supresion de eco podna aplicarse de la misma forma que la aqrn descrita en las realizaciones en las que no se aplica cancelacion de eco. Si se usa sustraccion de eco, su efecto puede tomarse en cuenta en la supresion de eco.
En otras realizaciones, el modulo de extraccion de eco 314 implementa cancelacion de eco (en el paso S410). Es decir, el modulo de extraccion de eco 314 esta dispuesto para restar una estimacion de la senal de eco s-i(t) de la senal audio recibida y(t).
Los metodos aqrn descritos pueden implementarse como el unico mecanismo para ajustar el tamano de paso del algoritmo usado al actualizar el modelo adaptativo. Alternativamente, los metodos aqrn descritos pueden implementarse como un componente de un esquema de ajuste de tamano de paso donde se hacen otras consideraciones al ajustar el tamano de paso del algoritmo.
Los metodos aqrn descritos pueden implementarse ejecutando un producto de programa de ordenador (por ejemplo, el cliente 206) en el dispositivo de usuario 104. Es decir, un producto de programa de ordenador puede estar configurado para quitar eco en la senal audio recibida y(t), donde el producto de programa de ordenador se realiza en un medio de almacenamiento legible por ordenador (por ejemplo, almacenado en la memoria 214) y configurado de modo que, cuando sea ejecutado en la CPU 202, realice las operaciones de alguno de los metodos descritos aqrn.
En general, cualquiera de las funciones aqrn descritas (por ejemplo, los modulos funcionales representados en la figura 3 y los pasos funcionales representados en la figura 4) pueden implementarse usando software, microprogramas, hardware (por ejemplo,, circuitena logica fija), o una combinacion de estas implementaciones. Los modulos y pasos representados por separado en las figuras 3 y 4 pueden implementarse o no como modulos o pasos separados. Por ejemplo, el modulo filtro 304 puede realizar la funcion del modulo de determinacion de exactitud de modelo 306, el modulo de seleccion de parametro de convergencia 308 y del sustractor 312. Los terminos “modulo”, “funcionalidad”, “componente” y “logica” en el sentido en que se usan aqrn indican en general software, microprogramas, hardware, o su combinacion. En el caso de una implementacion de software, el modulo, la funcionalidad o la logica representa un codigo de programa que realiza tareas especificadas cuando se ejecuta en un procesador (por ejemplo, CPU o CPUs). El codigo de programa puede almacenarse en uno o varios dispositivos de memoria legibles por ordenador. Las caractensticas de las tecnicas aqrn descritas son independientes de plataforma, lo que quiere decir que las tecnicas pueden implementarse en una variedad de plataformas informaticas comerciales que tengan una variedad de procesadores. Por ejemplo, los dispositivos de usuario tambien pueden incluir una entidad (por ejemplo, software) que haga que el hardware de los dispositivos de usuario realice operaciones, por ejemplo, bloques funcionales de procesador, etc. Por ejemplo, los dispositivos de usuario pueden incluir un medio legible por ordenador que puede estar configurado para mantener instrucciones que hagan que los
dispositivos de usuario, y mas en concreto el sistema operativo y el hardware asociado de los dispositivos de usuario, realice operaciones. Asf, las instrucciones sirven para configurar el sistema operativo y el hardware asociado para realizar las operaciones y de esta forma resultado en transformacion del sistema operativo y el hardware asociado para realizar funciones. Las instrucciones pueden ser suministradas por el medio legible por 5 ordenador a los dispositivos de usuario a traves de varias configuraciones diferentes.
Una configuracion de un medio legible por ordenador es un medio de soporte de senal y por ello esta configurado para transmitir las instrucciones (por ejemplo, como una onda portadora) al dispositivo informatico, tal como mediante una red. El medio legible por ordenador tambien puede estar configurado como un medio de 10 almacenamiento legible por ordenador y por ello no es un medio de soporte de senal. Los ejemplos de un medio de almacenamiento legible por ordenador incluyen una memoria de acceso aleatorio (RAM), una memoria de lectura solamente (ROM), un disco optico, memoria flash, memoria de disco duro, y otros dispositivos de memoria que pueden usar tecnicas magneticas, opticas y otras para almacenar instrucciones y otros datos.
15 Aunque la materia se ha descrito en lenguaje espedfico de caractensticas estructurales y/o hechos metodologicos, se ha de entender que la materia definida en las reivindicaciones anexas no se limita necesariamente a las caractensticas espedficas o hechos descritos anteriormente. Mas bien, las caractensticas espedficas y los hechos descritos anteriormente se describen como formas ejemplares de implementar las reivindicaciones.

Claims (10)

  1. 5
    10
    15
    20
    25
    30
    35
    40
    45
    50
    55
    60
    65
    REIVINDICACIONES
    1. Un metodo de quitar eco, incluyendo el metodo: enviar una senal audio (S404); y
    recibir una senal audio (S406), donde la senal audio recibida incluye eco resultante de dicha senal audio emitida;
    caracterizado por determinar (S408) una primera estimacion de modelo adaptativo del eco en la senal audio recibida usando un primer modelo adaptativo en base a la senal audio emitida y la senal audio recibida, y determinar una segunda estimacion de modelo adaptativo del eco en la senal audio recibida usando un segundo modelo en base a la senal audio emitida, donde los modelos adaptativos primero y segundo ejecutan un algoritmo incluyendo un parametro de convergencia para determinar coeficientes de filtro y usan dichos coeficientes de filtro para filtrar la senal audio emitida para determinar la estimacion de modelo adaptativo del eco;
    determinar (S412) un primer valor de exactitud del primer modelo adaptativo y un segundo valor de exactitud del segundo modelo adaptativo segun una medicion de la exactitud de modelo;
    determinar si el primer modelo adaptativo es mas exacto que el segundo modelo adaptativo en base a una comparacion del primer valor de exactitud y el segundo valor de exactitud;
    actualizar (S414) el parametro de convergencia del primer modelo adaptativo de forma continua en base a dicho primer valor de exactitud y actualizar selectivamente el segundo modelo adaptativo en base a dicha comparacion; y
    usar la segunda estimacion de modelo adaptativo del eco para quitar el eco en la senal audio recibida.
  2. 2. El metodo de la reivindicacion 1, donde el segundo modelo es actualizado si el primer modelo es mas exacto que el segundo modelo, y el segundo modelo no es actualizado si el primer modelo no es mas exacto que el segundo modelo.
  3. 3. El metodo de cualquier reivindicacion 1 o 2, donde el parametro de convergencia se selecciona para controlar una velocidad de adaptacion de cualquiera de los modelos adaptativos primero y segundo como una funcion no creciente de alguno del primero y el segundo valor de exactitud.
  4. 4. El metodo de la reivindicacion 3, incluyendo:
    comparar alguno del primero y el segundo valor de exactitud con un valor umbral; y
    actualizar el parametro de convergencia para controlar la velocidad de adaptacion del alguno del primer y el segundo modelo adaptativo en base a dicha comparacion.
  5. 5. El metodo de la reivindicacion 4, donde dicha actualizacion incluye seleccionar un valor de parametro de convergencia para disminuir la velocidad de adaptacion de alguno del primer y el segundo modelo adaptativo si:
    alguno del primer y el segundo valor de exactitud es igual o mayor que el valor umbral; o alguno del primer y el segundo valor de exactitud es igual o mayor que el valor umbral durante un penodo de tiempo predeterminado; o
    alguno del primer y el segundo valor de exactitud es igual o mayor que el valor umbral durante una proporcion predeterminada de un penodo de tiempo predeterminado.
  6. 6. El metodo de la reivindicacion 4 o 5, donde dicha actualizacion incluye seleccionar un valor de parametro de convergencia para aumentar la velocidad de adaptacion de alguno del primer y el segundo modelo adaptativo si:
    alguno del primer y el segundo valor de exactitud es menor que el valor umbral; o
    alguno del primer y el segundo valor de exactitud es menor que el valor umbral predeterminado durante un penodo de tiempo predeterminado; o
    alguno del primer y el segundo valor de exactitud es menor que el valor umbral predeterminado durante una proporcion predeterminada de un penodo de tiempo predeterminado.
  7. 7. El metodo de cualquiera de las reivindicaciones 4 a 6, donde dicha actualizacion incluye: disminuir el parametro de convergencia una cantidad predeterminada o a un valor predeterminado; o incrementar el parametro de convergencia una cantidad predeterminada o a un valor predeterminado.
    5
    10
    15
    20
    25
    30
    35
    40
    45
    50
  8. 8. El metodo de cualquier reivindicacion precedente, donde el parametro de convergencia es un parametro de tamano de paso.
  9. 9. El metodo de cualquier reivindicacion precedente, donde alguno del primer y el segundo modelo adaptativo actualiza los coeficientes de filtro en base a dicha senal audio emitida, los coeficientes de filtro previos y una senal de error, donde la senal de error se obtiene restando la estimacion de modelo adaptativo del eco de la senal audio recibida. 10. Un dispositivo (104) incluyendo: Un aparato de salida audio (210) configurado para enviar una senal audio;
    un aparato de entrada audio (212) configurado para recibir una senal audio, donde la senal audio recibida incluye un eco resultante de dicha senal audio emitida;
    caracterizado por un modulo de modelado (302) configurado para determinar una primera estimacion de modelo adaptativo del eco en la senal audio recibida usando un primer modelo adaptativo en base a la senal audio emitida y la senal audio recibida, y una segunda estimacion de modelo adaptativo del eco en la senal audio recibida usando un segundo modelo en base a la senal audio emitida, donde el primer y el segundo modelo adaptativo ejecutan un algoritmo incluyendo un parametro de convergencia para determinar coeficientes de filtro y usan dichos coeficientes de filtro para filtrar la senal audio emitida para determinar la estimacion de modelo adaptativo del eco, el modulo de modelado esta configurado ademas para determinar un primer valor de exactitud del primer modelo adaptativo y un segundo valor de exactitud del segundo modelo adaptativo segun una metrica de mejora de perdida de retorno de eco, y determinar si el primer modelo adaptativo es mas exacto que el segundo modelo adaptativo en base a una comparacion del primer valor de exactitud y el segundo valor de exactitud, y actualizar el parametro de convergencia del primer modelo adaptativo de forma continua en base a dicho primer valor de exactitud y actualizar selectivamente el segundo modelo adaptativo en base a dicha comparacion; y
    un modulo de extraccion de eco (314) configurado para usar la segunda estimacion de modelo adaptativo del eco para quitar el eco en la senal audio recibida.
  10. 11. Un producto de programa de ordenador configurado para quitar eco en una senal audio recibida, resultando dicho eco de una senal audio emitida, realizandose el producto de programa de ordenador en un medio de almacenamiento legible por ordenador,
    caracterizado porque el producto de programa de ordenador esta configurado de modo que, cuando sea ejecutado en un procesador (202):
    determine (S408) una primera estimacion de modelo adaptativo del eco en la senal audio recibida usando un primer modelo adaptativo en base a la senal audio emitida y la senal audio recibida, y una segunda estimacion de modelo adaptativo del eco en la senal audio recibida usando un segundo modelo en base a la senal audio emitida, donde el primer y el segundo modelo adaptativo ejecutan un algoritmo incluyendo un parametro de convergencia para determinar coeficientes de filtro y usan dichos coeficientes de filtro para filtrar la senal audio emitida para determinar la estimacion de modelo adaptativo del eco;
    determinar (S412) un primer valor de exactitud del primer modelo adaptativo y un segundo valor de exactitud del segundo modelo adaptativo segun una metrica de mejora de perdida de retorno de eco; y
    determinar si el primer modelo adaptativo es mas exacto que el segundo modelo adaptativo en base a una comparacion del primer valor de exactitud y el segundo valor de exactitud, actualizar (S414) el parametro de convergencia del primer modelo adaptativo continuamente en base a dicho primer valor de exactitud y actualizar selectivamente el segundo modelo adaptativo en base a dicha comparacion, y
    usar la segunda estimacion de modelo adaptativo del eco para quitar el eco en la senal audio recibida.
ES14733860.2T 2013-05-31 2014-05-29 Supresión de eco Active ES2613492T3 (es)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
GB201309779 2013-05-31
GBGB1309779.5A GB201309779D0 (en) 2013-05-31 2013-05-31 Echo removal
US201314012786 2013-08-28
US14/012,786 US9521264B2 (en) 2013-05-31 2013-08-28 Echo removal
PCT/US2014/039869 WO2014194009A1 (en) 2013-05-31 2014-05-29 Echo removal

Publications (1)

Publication Number Publication Date
ES2613492T3 true ES2613492T3 (es) 2017-05-24

Family

ID=48805576

Family Applications (1)

Application Number Title Priority Date Filing Date
ES14733860.2T Active ES2613492T3 (es) 2013-05-31 2014-05-29 Supresión de eco

Country Status (7)

Country Link
US (1) US9521264B2 (es)
EP (1) EP2982102B1 (es)
KR (1) KR102111185B1 (es)
CN (1) CN105379239B (es)
ES (1) ES2613492T3 (es)
GB (1) GB201309779D0 (es)
WO (1) WO2014194009A1 (es)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB201309771D0 (en) 2013-05-31 2013-07-17 Microsoft Corp Echo removal
GB201309777D0 (en) 2013-05-31 2013-07-17 Microsoft Corp Echo suppression
GB201309773D0 (en) 2013-05-31 2013-07-17 Microsoft Corp Echo removal
US9613634B2 (en) * 2014-06-19 2017-04-04 Yang Gao Control of acoustic echo canceller adaptive filter for speech enhancement
EP3800639B1 (en) 2015-03-27 2022-12-28 Dolby Laboratories Licensing Corporation Adaptive audio filtering
US10594869B2 (en) * 2017-08-03 2020-03-17 Bose Corporation Mitigating impact of double talk for residual echo suppressors
US10542153B2 (en) 2017-08-03 2020-01-21 Bose Corporation Multi-channel residual echo suppression
EP3692704B1 (en) 2017-10-03 2023-09-06 Bose Corporation Spatial double-talk detector
CN109831733B (zh) * 2019-02-26 2020-11-24 北京百度网讯科技有限公司 音频播放性能的测试方法、装置、设备和存储介质
US10803881B1 (en) * 2019-03-28 2020-10-13 Samsung Electronics Co., Ltd. System and method for acoustic echo cancelation using deep multitask recurrent neural networks
US10964305B2 (en) 2019-05-20 2021-03-30 Bose Corporation Mitigating impact of double talk for residual echo suppressors
EP3864383A4 (en) * 2019-07-10 2021-12-22 Vibrant Corporation DIGITAL TWIN MODEL INVERSION FOR TEST

Family Cites Families (74)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3787645A (en) 1971-05-19 1974-01-22 Nippon Electric Co Echo canceller having two echo path models
US4918727A (en) * 1988-06-09 1990-04-17 Tellabs Incorporated Double talk detector for echo canceller and method
US4977591A (en) 1989-11-17 1990-12-11 Nynex Corporation Dual mode LMS nonlinear data echo canceller
US5157653A (en) 1990-08-03 1992-10-20 Coherent Communications Systems Corp. Residual echo elimination with proportionate noise injection
US5305307A (en) 1991-01-04 1994-04-19 Picturetel Corporation Adaptive acoustic echo canceller having means for reducing or eliminating echo in a plurality of signal bandwidths
JPH0739968B2 (ja) 1991-03-25 1995-05-01 日本電信電話株式会社 音響伝達特性模擬方法
US5307405A (en) 1992-09-25 1994-04-26 Qualcomm Incorporated Network echo canceller
JP3395388B2 (ja) * 1994-08-16 2003-04-14 ソニー株式会社 信号適応処理装置及びエコー抑圧装置
SE516835C2 (sv) 1995-02-15 2002-03-12 Ericsson Telefon Ab L M Ekosläckningsförfarande
US5852661A (en) 1995-02-17 1998-12-22 Advanced Micro Devices, Inc. Adaptive echo cancellation used with echo suppression to reduce short and long duration echoes
US5587998A (en) 1995-03-03 1996-12-24 At&T Method and apparatus for reducing residual far-end echo in voice communication networks
DE19540170C2 (de) 1995-10-27 1998-01-29 Endress Hauser Gmbh Co Verfahren und Anordnung zur Unterdrückung von Festzielechos bei der Abstandsmessung nach dem Impulslaufzeitprinzip
US5631900A (en) * 1995-09-29 1997-05-20 Crystal Semiconductor Double-Talk detector for echo canceller
US5796819A (en) 1996-07-24 1998-08-18 Ericsson Inc. Echo canceller for non-linear circuits
US6028929A (en) 1997-11-14 2000-02-22 Tellabs Operations, Inc. Echo canceller employing dual-H architecture having improved non-linear echo path detection
US6563803B1 (en) * 1997-11-26 2003-05-13 Qualcomm Incorporated Acoustic echo canceller
US6212273B1 (en) * 1998-03-20 2001-04-03 Crystal Semiconductor Corporation Full-duplex speakerphone circuit including a control interface
US7423983B1 (en) * 1999-09-20 2008-09-09 Broadcom Corporation Voice and data exchange over a packet based network
US6415029B1 (en) 1999-05-24 2002-07-02 Motorola, Inc. Echo canceler and double-talk detector for use in a communications unit
DE19935808A1 (de) 1999-07-29 2001-02-08 Ericsson Telefon Ab L M Echounterdrückungseinrichtung zum Unterdrücken von Echos in einer Sender/Empfänger-Einheit
US7920697B2 (en) * 1999-12-09 2011-04-05 Broadcom Corp. Interaction between echo canceller and packet voice processing
US6606382B2 (en) 2000-01-27 2003-08-12 Qualcomm Incorporated System and method for implementation of an echo canceller
US7139342B1 (en) 2000-05-12 2006-11-21 National Semiconductor Corporation System and method for cancelling signal echoes in a full-duplex transceiver front end
US6928161B1 (en) * 2000-05-31 2005-08-09 Intel Corporation Echo cancellation apparatus, systems, and methods
JP3693588B2 (ja) 2000-11-01 2005-09-07 富士通株式会社 エコー抑制システム
GB0027238D0 (en) 2000-11-08 2000-12-27 Secr Defence Adaptive filter
US20020054685A1 (en) 2000-11-09 2002-05-09 Carlos Avendano System for suppressing acoustic echoes and interferences in multi-channel audio systems
KR20040019339A (ko) 2001-07-20 2004-03-05 코닌클리케 필립스 일렉트로닉스 엔.브이. 반향 억제기 및 확성기 빔 형성기를 구비한 사운드 보강시스템
US6836547B2 (en) 2001-12-20 2004-12-28 Motorol, Inc. Protecting an echo canceller against random transitions in echo paths
US6961422B2 (en) 2001-12-28 2005-11-01 Avaya Technology Corp. Gain control method for acoustic echo cancellation and suppression
US20030185402A1 (en) 2002-03-27 2003-10-02 Lucent Technologies, Inc. Adaptive distortion manager for use with an acoustic echo canceler and a method of operation thereof
US7388954B2 (en) * 2002-06-24 2008-06-17 Freescale Semiconductor, Inc. Method and apparatus for tone indication
JP4161628B2 (ja) 2002-07-19 2008-10-08 日本電気株式会社 エコー抑圧方法及び装置
US6944289B2 (en) 2002-10-01 2005-09-13 Motorola, Inc. Delay insertion for echo cancellation, with echo supression, in a communication network
US7003099B1 (en) 2002-11-15 2006-02-21 Fortmedia, Inc. Small array microphone for acoustic echo cancellation and noise suppression
GB2395878A (en) * 2002-11-29 2004-06-02 Mitel Knowledge Corp Method of capturing constant echo path information using default coefficients
US7420937B2 (en) 2002-12-23 2008-09-02 Broadcom Corporation Selectively adaptable far-end echo cancellation in a packet voice system
GB2397990A (en) * 2003-01-31 2004-08-04 Mitel Networks Corp Echo cancellation/suppression and double-talk detection in communication paths
US6947549B2 (en) 2003-02-19 2005-09-20 The Hong Kong Polytechnic University Echo canceller
US7054437B2 (en) 2003-06-27 2006-05-30 Nokia Corporation Statistical adaptive-filter controller
US7599432B2 (en) * 2003-12-08 2009-10-06 Freescale Semiconductor, Inc. Method and apparatus for dynamically inserting gain in an adaptive filter system
GB2410661A (en) * 2004-01-30 2005-08-03 Mitel Networks Corp Narrow band tone detection in echo cancelling system
US20060018460A1 (en) 2004-06-25 2006-01-26 Mccree Alan V Acoustic echo devices and methods
CN1716798B (zh) * 2004-07-02 2011-03-02 朗迅科技公司 通信网络中消除回波的方法
US7433463B2 (en) 2004-08-10 2008-10-07 Clarity Technologies, Inc. Echo cancellation and noise reduction method
US7778408B2 (en) 2004-12-30 2010-08-17 Texas Instruments Incorporated Method and apparatus for acoustic echo cancellation utilizing dual filters
DE602005003643T2 (de) * 2005-04-01 2008-11-13 Mitel Networks Corporation, Ottawa Verfahren zur Beschleunigung des Trainings eines akustischen Echokompensators in einem Vollduplexaudiokonferenzsystem durch akustische Strahlbildung
JP4256363B2 (ja) 2005-05-27 2009-04-22 株式会社東芝 ボイススイッチ
GB2427332B (en) * 2005-06-16 2007-05-16 Trinity Convergence Inc Systems and methods for adaptive echo cancellation
US7773743B2 (en) 2006-04-28 2010-08-10 Microsoft Corporation Integration of a microphone array with acoustic echo cancellation and residual echo suppression
US8275120B2 (en) * 2006-05-30 2012-09-25 Microsoft Corp. Adaptive acoustic echo cancellation
US7817797B2 (en) * 2006-06-07 2010-10-19 Mitel Networks Corporation Method and apparatus for detecting echo path changes in an acoustic echo canceller
US8014519B2 (en) * 2007-04-02 2011-09-06 Microsoft Corporation Cross-correlation based echo canceller controllers
GB2448201A (en) 2007-04-04 2008-10-08 Zarlink Semiconductor Inc Cancelling non-linear echo during full duplex communication in a hands free communication system.
JPWO2009051197A1 (ja) 2007-10-19 2011-03-03 日本電気株式会社 エコー抑圧方法及び装置
KR101225556B1 (ko) 2008-08-25 2013-01-23 돌비 레버러토리즈 라이쎈싱 코오포레이션 프리-화이트닝을 사용한 lms 알고리즘에 의해 적응된 적응형 필터의 갱신된 필터 계수를 결정하기 위한 방법
EP2221983B1 (en) 2009-02-20 2011-08-31 Harman Becker Automotive Systems GmbH Acoustic echo cancellation
US8750491B2 (en) 2009-03-24 2014-06-10 Microsoft Corporation Mitigation of echo in voice communication using echo detection and adaptive non-linear processor
US8687797B2 (en) * 2009-05-28 2014-04-01 Broadcom Corporation Method and system for a dual echo canceller
FR2946486B1 (fr) * 2009-06-09 2012-04-20 Parrot Procede de detection d'une situation de double parole pour dispositif telephonique "mains libres"
US8625775B2 (en) * 2009-08-06 2014-01-07 Hti Ip, L.L.C. Method and system for reducing echo and noise in a vehicle passenger compartment environment
JP5321372B2 (ja) * 2009-09-09 2013-10-23 沖電気工業株式会社 エコーキャンセラ
US8571231B2 (en) 2009-10-01 2013-10-29 Qualcomm Incorporated Suppressing noise in an audio signal
EP2561624A4 (en) 2010-04-22 2013-08-21 Ericsson Telefon Ab L M ECHO CANCER AND CORRESPONDING METHOD
US8787561B2 (en) * 2010-04-27 2014-07-22 Freescale Semiconductor, Inc. Techniques for implementing adaptation control of an echo canceller to facilitate detection of in-band signals
US8619970B2 (en) * 2010-06-16 2013-12-31 Lectrosonics, Inc. Echo cancellers and echo cancelling methods
EP2673778B1 (en) 2011-02-10 2018-10-10 Dolby Laboratories Licensing Corporation Post-processing including median filtering of noise suppression gains
US8644522B2 (en) * 2011-03-31 2014-02-04 Broadcom Corporation Method and system for modeling external volume changes within an acoustic echo canceller
US8924337B2 (en) 2011-05-09 2014-12-30 Nokia Corporation Recursive Bayesian controllers for non-linear acoustic echo cancellation and suppression systems
EP2716023B1 (en) 2011-05-27 2016-11-09 Google, Inc. Control of adaptation step size and suppression gain in acoustic echo control
US9088336B2 (en) * 2012-09-06 2015-07-21 Imagination Technologies Limited Systems and methods of echo and noise cancellation in voice communication
GB201309773D0 (en) 2013-05-31 2013-07-17 Microsoft Corp Echo removal
GB201309771D0 (en) 2013-05-31 2013-07-17 Microsoft Corp Echo removal
GB201309777D0 (en) 2013-05-31 2013-07-17 Microsoft Corp Echo suppression

Also Published As

Publication number Publication date
CN105379239B (zh) 2019-02-19
GB201309779D0 (en) 2013-07-17
EP2982102B1 (en) 2017-01-04
US9521264B2 (en) 2016-12-13
KR102111185B1 (ko) 2020-05-14
US20140357324A1 (en) 2014-12-04
KR20160016880A (ko) 2016-02-15
WO2014194009A1 (en) 2014-12-04
CN105379239A (zh) 2016-03-02
EP2982102A1 (en) 2016-02-10

Similar Documents

Publication Publication Date Title
ES2613492T3 (es) Supresión de eco
ES2619563T3 (es) Extracción de eco
ES2613494T3 (es) Reducción de ruido
US9449593B2 (en) Detecting nonlinear amplitude processing
US9591123B2 (en) Echo cancellation
US20190110121A1 (en) Headset on ear state detection
EP2920950A1 (en) Echo suppression
JP6422885B2 (ja) エコー抑圧
KR102190833B1 (ko) 에코 억제
KR102194165B1 (ko) 에코 제거기
JP6422884B2 (ja) エコー抑圧