ES2350494T3 - Procedimiento y aparatos para codificar y decodificar una parte de banda alta de una señal de habla. - Google Patents
Procedimiento y aparatos para codificar y decodificar una parte de banda alta de una señal de habla. Download PDFInfo
- Publication number
- ES2350494T3 ES2350494T3 ES06740355T ES06740355T ES2350494T3 ES 2350494 T3 ES2350494 T3 ES 2350494T3 ES 06740355 T ES06740355 T ES 06740355T ES 06740355 T ES06740355 T ES 06740355T ES 2350494 T3 ES2350494 T3 ES 2350494T3
- Authority
- ES
- Spain
- Prior art keywords
- signal
- high band
- gain
- envelope
- band
- 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
Links
Landscapes
- Compression, Expansion, Code Conversion, And Decoders (AREA)
- Digital Transmission Methods That Use Modulated Carrier Waves (AREA)
- Analogue/Digital Conversion (AREA)
- Transmitters (AREA)
- Measurement And Recording Of Electrical Phenomena And Electrical Characteristics Of The Living Body (AREA)
Abstract
Un procedimiento de codificación de una parte (S30) de banda alta de una señal (S10) de habla que tiene una parte (S20) de banda baja y la parte (S30) de banda alta, comprendiendo dicho procedimiento: calcular una pluralidad de parámetros (S60a) de filtro que caracterizan una envolvente espectral de la parte de banda alta; calcular una señal (S160) extendida espectralmente extendiendo el espectro de una señal (S50, S80) de excitación derivada de la parte de banda baja; sumar la señal (S160) extendida espectralmente con ruido (S170) modulado según una envolvente derivada de la parte (S50, S80) de banda baja, para proporcionar una señal (S120) de excitación de banda alta; y calcular una envolvente (S60b) de ganancia basándose en una relación entre la parte (S30) de banda alta y una señal (S50, S80, S120, S130) basada en la parte de banda baja.
Description
La presente invención se refiere a procesamiento de señales.
Las comunicaciones de voz a través de la red telefónica conmutada pública (PSTN) se han limitado tradicionalmente en ancho de banda al intervalo de frecuencia de 300-3400 kHz. Las nuevas redes para comunicaciones de voz, tales como telefonía celular y voz sobre IP (protocolo de Internet, VoIP), pueden no tener los mismos límites de ancho de banda, y puede ser deseable transmitir y recibir comunicaciones de voz que incluyan un intervalo de frecuencia de banda ancha a través de tales redes. Por ejemplo, puede ser deseable soportar un intervalo de frecuencia de audio que se extiende desde 50 Hz y/o hasta 7 kHz u 8 kHz. También puede ser deseable soportar otras aplicaciones, tales como conferencia de audio o audio/vídeo de alta calidad, que pueden tener contenido de habla de audio en intervalos fuera de los límites de PSTN tradicionales.
La extensión del intervalo soportado por un codificador de habla a frecuencias superiores puede mejorar la inteligibilidad. Por ejemplo, la información que diferencia fricativas tales como ‘s’ y ‘f’ está en gran parte en las frecuencias altas. La extensión de banda alta también puede mejorar otras cualidades del habla, tal como la presencia. Por ejemplo, incluso una vocal vocalizada puede tener energía espectral muy por encima del límite de PSTN.
Un enfoque con respecto a la codificación de habla de banda ancha implica ajustar a escala una técnica de codificación de habla de banda estrecha (por ejemplo, una configurada para codificar el intervalo de 0-4 kHz) para cubrir el espectro de banda ancha. Por ejemplo, una señal de habla puede muestrearse a una tasa superior para incluir componentes a frecuencias altas, y una técnica de codificación de banda estrecha puede volver a configurarse para usar más coeficientes de filtro para representar esta señal de banda ancha. Las técnicas de codificación de banda estrecha tales como CELP (predicción lineal excitada por libro de códigos) son intensivas desde un punto de vista computacional, sin embargo, y un codificador CELP de banda ancha puede consumir demasiados ciclos de procesamiento para ser práctico para muchas aplicaciones móviles y otras aplicaciones integradas. La codificación de todo el espectro de una señal de banda ancha a una calidad deseada usando una técnica de este tipo también puede conducir a un aumento inaceptablemente grande en el ancho de banda. Además, se requeriría la transcodificación de una señal codificada de este tipo antes incluso de que su parte de banda estrecha pueda transmitirse hacia y/o decodificarse por un sistema que sólo soporta codificación de banda estrecha.
Otro enfoque con respecto a la codificación de habla de banda ancha implica extrapolar la envolvente espectral de banda alta a partir de la envolvente espectral de banda estrecha codificada. Aunque puede implementarse un enfoque de este tipo sin ningún aumento en el ancho de banda y sin necesidad de transcodificación, la envolvente espectral aproximada o estructura formante de la parte de banda alta de una señal de habla generalmente no puede predecirse con precisión a partir de la envolvente espectral de la parte de banda estrecha.
Según el documento EP1498873 A1 se conoce que se genera una señal de excitación extendida espectralmente al volver a muestrear la señal de excitación proporcionada por un codificador de banda baja. Se usa un selector según una indicación de vocalización para proporcionar la excitación extendida espectralmente o bien una excitación aleatoria (ruido) a un filtro de síntesis con el fin de generar una señal de audio de banda alta sintetizada. Además, se determina una señal de ganancia para alinear la energía de la señal de banda alta sintetizada con la de la señal de audio de banda alta original.
Según el documento WO03044777 A1, se conoce un procedimiento para extender el ancho de banda de una señal de audio recibida añadiendo un ruido modulado con la envolvente de la señal de audio recibida plegada espectralmente a la señal plegada espectralmente.
Puede ser deseable implementar la codificación de habla de banda ancha de tal manera que al menos la parte de banda estrecha de la señal codificada puede enviarse a través de un canal de banda estrecha (tal como un canal de PSTN) sin transcodificación u otra modificación significativa. También puede ser deseable la eficacia de la extensión de codificación de banda ancha, por ejemplo, para evitar una reducción significativa en el número de usuarios a los que puede darse servicio en aplicaciones tales como telefonía celular inalámbrica y difusión a través de canales inalámbricos y por cable.
La presente invención se define por un procedimiento de codificación según la reivindicación 1, un procedimiento de decodificación según la reivindicación 10, un aparato según la reivindicación 13 y un decodificador según la reivindicación 23.
La figura 1a muestra un diagrama de bloques de un codificador A100 de habla de banda ancha según una realización.
La figura 1b muestra un diagrama de bloques de una implementación A102 de codificador A100 de habla de banda ancha.
La figura 2a muestra un diagrama de bloques de un decodificador B100 de habla de banda ancha según una realización.
La figura 2b muestra un diagrama de bloques de una implementación B102 de decodificador B100 de habla de banda ancha.
La figura 3a muestra un diagrama de bloques de una implementación A112 de banco A110 de filtros.
La figura 3b muestra un diagrama de bloques de una implementación B122 de banco B120 de filtros.
La figura 4a muestra cobertura de ancho de banda de las bandas alta y baja para un ejemplo de banco A110 de filtros.
La figura 4b muestra cobertura de ancho de banda de las bandas alta y baja para otro ejemplo de banco A110 de filtros.
La figura 4c muestra un diagrama de bloques de una implementación A114 de banco A112 de filtros.
La figura 4d muestra un diagrama de bloques de una implementación B124 de banco B122 de filtros.
La figura 5a muestra un ejemplo de una representación gráfica de logaritmo de amplitud frente a frecuencia para una señal de habla.
La figura 5b muestra un diagrama de bloques de un sistema de codificación de predicción lineal básica.
La figura 6 muestra un diagrama de bloques de una implementación A122 de codificador A120 de banda estrecha.
La figura 7 muestra un diagrama de bloques de una implementación B112 de codificador B110 de banda estrecha.
La figura 8a muestra un ejemplo de una representación gráfica de logaritmo de amplitud frente a frecuencia para una señal residual para habla vocalizada.
La figura 8b muestra un ejemplo de una representación gráfica de logaritmo de amplitud frente a tiempo para una señal residual para habla vocalizada.
La figura 9 muestra un diagrama de bloques de un sistema de codificación de predicción lineal básica que también lleva a cabo predicción a largo plazo.
La figura 10 muestra un diagrama de bloques de una implementación A202 de codificador A200 de banda alta.
La figura 11 muestra un diagrama de bloques de una implementación A302 de generador A300 de excitación de banda alta.
La figura 12 muestra un diagrama de bloques de una implementación A402 de extensor A400 de espectro.
La figura 12a muestra representaciones gráficas de espectros de señal en diversos puntos en un ejemplo de una operación de extensión espectral.
La figura 12b muestra representaciones gráficas de espectros de señal en diversos puntos de otro ejemplo de una operación de extensión espectral.
La figura 13 muestra un diagrama de bloques de una implementación A304 de generador A302 de excitación de banda alta.
La figura 14 muestra un diagrama de bloques de una implementación A306 de generador A302 de excitación de banda alta.
La figura 15 muestra un diagrama de flujo para una tarea T100 de cálculo de envolvente.
La figura 16 muestra un diagrama de bloques de una implementación 492 de combinador 490.
La figura 17 ilustra un enfoque para calcular una medida de periodicidad de señal S30 de banda alta.
La figura 18 muestra un diagrama de bloques de una implementación A312 de generador A302 de excitación de banda alta.
La figura 19 muestra un diagrama de bloques de una implementación A314 de generador A302 de excitación de banda alta.
La figura 20 muestra un diagrama de bloques de una implementación A316 de generador A302 de excitación de banda alta.
La figura 21 muestra un diagrama de flujo para una tarea T200 de cálculo de ganancia.
La figura 22 muestra un diagrama de flujo para una implementación T210 de tarea T200 de cálculo de ganancia.
La figura 23a muestra un diagrama de una función ventana.
La figura 23b muestra una aplicación de una función ventana tal como se muestra en la figura 23a a subtramas de una señal de habla.
La figura 24 muestra un diagrama de bloques para una implementación B202 de decodificador B200 de banda alta.
La figura 25 muestra un diagrama de bloques de una implementación AD10 de codificador A100 de habla de banda ancha.
La figura 26a muestra un diagrama esquemático de una implementación D122 de línea D120 de retardo.
La figura 26b muestra un diagrama esquemático de una implementación D124 de línea D120 de retardo.
La figura 27 muestra un diagrama esquemático de una implementación D130 de línea D120 de retardo.
La figura 28 muestra un diagrama de bloques de una implementación AD12 de codificador AD10 de habla de banda ancha.
La figura 29 muestra un diagrama de flujo de un procedimiento de procesamiento MD100 de señal según una realización.
La figura 30 muestra un diagrama de flujo para un procedimiento M100 según una realización.
La figura 31a muestra un diagrama de flujo para un procedimiento M200 según una realización.
La figura 31b muestra un diagrama de flujo para una implementación M210 de procedimiento M200.
La figura 32 muestra un diagrama de flujo para un procedimiento M300 según una realización.
En las figuras y la descripción adjunta, las mismas etiquetas de referencia se refieren a los mismos elementos o señales o análogos.
Las realizaciones tal como se describen en el presente documento incluyen sistemas, procedimientos y aparatos que pueden configurarse para proporcionar una extensión a un codificador de habla de banda estrecha para soportar transmisión y/o almacenamiento de señales de habla de banda ancha en un aumento de ancho de banda de sólo aproximadamente 800 a 1000 bps (bits por segundo). Las ventajas potenciales de tales implementaciones incluyen codificación integrada para soportar compatibilidad con sistemas de banda estrecha, asignación y reasignación relativamente fácil de bits entre los canales de codificación banda estrecha y de banda alta, evitando una operación de síntesis de banda ancha intensiva desde un punto de vista computacional, y manteniendo una tasa de muestreo baja para señales que van a procesarse mediante rutinas de codificación de forma de onda intensivas desde un punto de vista computacional.
A menos que se limite expresamente por su contexto, el término “calcular” se usa en el presente documento para indicar cualquiera de sus significados ordinarios, tales como computar, generar y seleccionar de una lista de valores. Cuando la expresión “que comprende” se usa en la presente descripción y las reivindicaciones, no excluye otros elementos u operaciones. La expresión “A se basa en B” se usa para indicar cualquiera de sus significados habituales, incluyendo los casos (i) “A es igual a B” y (ii) “A se basa en al menos B.” La expresión “protocolo de Internet” incluye la versión 4, tal como se describe en RFC (Petición de comentarios) 791de IETF (Grupo de Trabajo en Ingeniería de Internet), y versiones posteriores tal como la versión 6.
La figura 1a muestra un diagrama de bloques de un codificador A100 de habla de banda ancha según una realización. El banco A110 de filtros está configurado para filtrar una señal S10 de habla de banda ancha para producir una señal S20 de banda estrecha y una señal S30 de banda alta. El codificador A120 de banda estrecha está configurado para codificar la señal S20 de banda estrecha para producir parámetros S40 de filtro de banda estrecha (NB) y una señal S50 residual de banda estrecha. Tal como se describe con mayor detalle en el presente documento, el codificador A120 de banda estrecha está configurado normalmente para producir parámetros S40 de filtro de banda estrecha y la señal S50 de excitación de banda estrecha codificada como índices de libro de códigos o en otra forma cuantificada. El codificador A200 de banda alta está configurado para codificar la señal S30 de banda alta según información en la señal S50 de excitación de banda estrecha codificada para producir parámetros S60 de codificación de banda alta. Tal como se describe con mayor detalle en el presente documento, el codificador A200 de banda alta está configurado normalmente para producir parámetros S60 de codificación de banda alta como índices de libro de códigos o en otra forma cuantificada. Un ejemplo particular del codificador A100 de habla de banda ancha está configurado para codificar la señal S10 de habla de banda ancha a una tasa de aproximadamente 8,55 kbps (kilobits por segundo), usándose aproximadamente 7,55 kbps para parámetros S40 de filtro de banda estrecha y la señal S50 de excitación de banda estrecha codificada, y usándose aproximadamente 1 kbps para parámetros S60 de codificación de banda alta.
Puede desearse combinar las señales de banda alta y banda estrecha codificadas en una corriente de bits única. Por ejemplo, puede desearse multiplexar las señales codificadas entre sí para transmisión (por ejemplo, a través de un canal de transmisión por cable, óptico o inalámbrico), o para almacenamiento, como una señal de habla de banda ancha codificada. La figura 1b muestra un diagrama de bloques de una implementación A102 de codificador A100 de habla de banda ancha que incluye un multiplexor A130 configurado para combinar parámetros S40 de filtro de banda estrecha, señal S50 de excitación de banda estrecha codificada y parámetros S60 de filtro de banda alta en una señal S70 multiplexada.
Un aparato que incluye el codificador A102 también puede incluir un conjunto de circuitos configurado para transmitir la señal S70 multiplexada en un canal de transmisión tal como un canal por cable, óptico o inalámbrico. Un aparato de este tipo también puede estar configurado para llevar a cabo una o más operaciones de codificación de canal en la señal, tal como codificación de corrección de errores (por ejemplo, codificación convolucional de tasa compatible) y/o codificación de detección de errores (por ejemplo, codificación de redundancia cíclica), y/o una o más capas de codificación de protocolo de red (por ejemplo, Ethernet, TCP/IP, cdma 2000).
Puede ser deseable que el multiplexor A130 esté configurado para integrar la señal de banda estrecha codificada (incluyendo parámetros S40 de filtro de banda estrecha y señal S50 de excitación de banda estrecha codificada) como una subcorriente separable de la señal S70 multiplexada, de tal manera que pueda recuperarse la señal de banda estrecha codificada y decodificarse independientemente de otra parte de la señal S70 multiplexada tal como una señal de banda alta y/o de banda baja. Por ejemplo, puede disponerse la señal S70 multiplexada de tal manera que pueda recuperarse la señal de banda estrecha codificada eliminando los parámetros S60 de filtro de banda alta. Una ventaja potencial de una característica de este tipo es evitar la necesidad de transcodificar la señal de banda ancha codificada antes de pasarla a un sistema que soporta decodificación de la señal de banda estrecha pero no soporta decodificación de la parte de banda alta.
La figura 2a es un diagrama de bloques de un decodificador B100 de habla de banda ancha según una realización. El decodificador B110 de banda estrecha está configurado para decodificar parámetros S40 de filtro de banda estrecha y la señal S50 de excitación de banda estrecha codificada para producir una señal S90 de banda estrecha. El decodificador B200 de banda alta está configurado para decodificar parámetros S60 de codificación de banda alta según una señal S80 de excitación de banda estrecha, basándose en la señal S50 de excitación de banda estrecha codificada, para producir una señal S100 de banda alta. En este ejemplo, el decodificador B110 de banda estrecha está configurado para proporcionar la señal S80 de excitación de banda estrecha al decodificador B200 de banda alta. El banco B120 de filtros está configurado para combinar la señal S90 de banda estrecha y la señal S100 de banda alta para producir una señal S110 de habla de banda ancha.
La figura 2b es un diagrama de bloques de una implementación B102 de decodificador B100 de habla de banda ancha que incluye un demultiplexor B130 configurado para producir señales S40, S50 y S60 codificadas a partir de la señal S70 multiplexada. Un aparato que incluye un decodificador B102 puede incluir un conjunto de circuitos configurado para recibir la señal S70 multiplexada de un canal de transmisión tal como un canal por cable, óptico o inalámbrico. Un aparato de este tipo también puede estar configurado para llevar a cabo una o más operaciones de decodificación de canal en la señal, tal como decodificación de corrección de errores (por ejemplo, decodificación convolucional de tasa compatible) y/o decodificación de detección de errores (por ejemplo, decodificación de redundancia cíclica), y/o una o más capas de decodificación de protocolo de red (por ejemplo, Ethernet, TCP/IP, cdma 2000).
El banco A110 de filtros está configurado para filtrar una señal de entrada según un esquema de banda dividida para producir una subbanda de baja frecuencia y una subbanda de alta frecuencia. Dependiendo de los criterios de diseño para la aplicación particular, las subbandas de salida pueden tener anchos de banda iguales o desiguales y pueden superponerse o no superponerse. También es posible una configuración de banco A110 de filtros que produce más de dos subbandas. Por ejemplo, un banco de filtros de este tipo puede estar configurado para producir una o más señales de banda baja que incluyen componentes en un intervalo de frecuencia por debajo del de la señal S20 de banda estrecha (tal como el intervalo de 50-300 Hz). También es posible que un banco de filtros de este tipo esté configurado para producir una o más señales de banda alta adicionales que incluyen componentes en un intervalo de frecuencia por encima del de la señal S30 de banda alta (tal como un intervalo de 14-20 kHz, 16-20 kHz o 16-32 kHz). En tal caso, puede implementarse el codificador A100 de habla de banda ancha para codificar esta señal o señales por separado, y el multiplexor A130 puede estar configurado para incluir la señal o señales codificadas adicionales en la señal S70 multiplexada (por ejemplo, como una parte separable).
La figura 3a muestra un diagrama de bloques de una implementación A112 de banco A110 de filtros que está configurado para producir dos señales de subbanda que tienen tasas de muestreo reducidas. El banco A110 de filtros está dispuesto para recibir una señal S10 de habla de banda ancha que tiene una parte de alta frecuencia (o banda alta) y una parte de baja frecuencia (o banda baja). El banco A112 de filtros incluye un trayecto de procesamiento de banda baja configurado para recibir la señal S10 de habla de banda ancha y para producir la señal S20 de habla de banda estrecha, y un trayecto de procesamiento de banda alta configurado para recibir la señal S10 de habla de banda ancha y para producir la señal S30 de habla de banda alta. El filtro 110 de paso bajo filtra la señal S10 de habla de banda ancha para pasar una subbanda de baja frecuencia seleccionada, y el filtro 130 de paso alto filtra la señal S10 de habla de banda ancha para pasar una subbanda de alta frecuencia seleccionada. Debido a que ambas señales de subbanda tienen más anchos de banda estrechos que la señal S10 de habla de banda ancha, pueden reducirse sus tasas de muestreo hasta cierto punto sin pérdida de información. El submuestreador 120 reduce la tasa de muestreo de la señal de paso bajo según un factor de decimación deseado (por ejemplo, eliminando muestras de la señal y/o sustituyendo muestras con valores promedio), y asimismo el submuestreador 140 reduce la tasa de muestreo de la señal de paso alto según otro factor de decimación deseado.
La figura 3b muestra un diagrama de bloques de una implementación B122 correspondiente de banco B120 de filtros. El sobremuestreador 150 aumenta la tasa de muestreo de la señal S90 de banda estrecha (por ejemplo, rellenando con ceros y/o duplicando muestras), y el filtro 160 de paso bajo filtra la señal sobremuestreada para pasar sólo una parte de banda baja (por ejemplo, para prevenir solapamiento). Asimismo, el sobremuestreador 170 aumenta la tasa de muestreo de la señal S100 de banda alta y el filtro 180 de paso alto filtra la señal sobremuestrada para pasar sólo una parte de banda alta. Entonces las dos señales de banda de paso se suman para formar la señal S110 de habla de banda ancha. En algunas implementaciones de decodificador B100, el banco B120 de filtros está configurado para producir una suma ponderada de las dos señales de banda de paso según uno o más pesos recibidos y/o calculados por el decodificador B200 de banda alta. También se contempla una configuración de banco B120 de filtros que combina más de dos señales de banda de paso.
Puede implementarse cada uno de los filtros 110, 130, 160, 180 como un filtro de respuesta al impulso finita (FIR) o como un filtro de respuesta al impulso infinita (IIR). Las respuestas de frecuencia de los filtros 110 y 130 de codificador pueden tener regiones de transición conformadas de manera simétrica o no similar entre la banda de parada y la banda de paso. Asimismo, las respuestas de frecuencia de los filtros 160 y 180 de decodificador pueden tener regiones de transición conformadas de manera simétrica o no similar entre la banda de parada y la banda de paso. Puede ser deseable aunque no estrictamente necesario que el filtro 110 de paso bajo tenga la misma respuesta que el filtro 160 de paso bajo, y que el filtro 130 de paso alto tenga la misma respuesta que el filtro 180 de paso alto. En un ejemplo, los dos pares 110, 130 y 160, 180 de filtros son bancos de filtros de espejo en cuadratura (QMF), teniendo el par 110, 130 de filtros los mismos coeficientes que el par 160, 180 de filtros.
En un ejemplo típico, el filtro 110 de paso bajo tiene una banda de paso que incluye el intervalo de PSTN limitado de 300-3400 Hz (por ejemplo, la banda desde 0 kHz hasta 4 kHz). Las figuras 4a y 4b muestran anchos de banda relativos de la señal S10 de habla de banda ancha, la señal S20 de banda estrecha y la señal S30 de banda alta en dos ejemplos de implementación diferentes. En ambos de estos ejemplos particulares, la señal S10 de habla de banda ancha tiene una tasa de muestreo de 16 kHz (que representa componentes de frecuencia dentro del intervalo de 0 kHz a 8 kHz), y la señal S20 de banda estrecha tiene una tasa de muestreo de 8 kHz (que representa componentes de frecuencia dentro del intervalo de 0 kHz a 4 kHz).
En el ejemplo de la figura 4a, no hay superposición significativa entre las dos subbandas. Puede obtenerse una señal S30 de banda alta tal como se muestra en este ejemplo usando un filtro 130 de paso alto con una banda de paso de 4-8 kHz. En tal caso, puede ser deseable reducir la tasa de muestreo a 8 kHz submuestreando la señal filtrada en un factor de dos. Una operación de este tipo, que puede esperarse que reduzca significativamente la complejidad computacional de operaciones de procesamiento adicionales en la señal, moverá la energía de banda de paso hasta el intervalo de 0 kHz a 4 kHz sin pérdida de información.
En el ejemplo alternativo de la figura 4b, las subbandas superior e inferior tienen una superposición apreciable, de tal manera que la región de 3,5 kHz a 4 kHz se describe mediante ambas señales de subbanda. Puede obtenerse una señal S30 de banda alta como en este ejemplo usando un filtro 130 de paso alto con una banda de paso de 3,5-7 kHz. En tal caso, puede ser deseable reducir la tasa de muestreo a 7 kHz submuestreando la señal filtrada en un factor de 16/7. Una operación de este tipo, que puede esperarse que reduzca significativamente la complejidad computacional de operaciones de procesamiento adicionales en la señal, moverá la energía de banda de paso hasta el intervalo de 0 kHz a 3,5 kHz sin pérdida de información.
En un microteléfono típico para comunicación telefónica, uno o más de los transductores (es decir, el microteléfono y el auricular o altavoz) carece de una respuesta apreciable sobre el intervalo de frecuencia de 7-8 kHz. En el ejemplo de la figura 4b, la parte de la señal S10 de habla de banda ancha entre 7 kHz y 8 kHz no se incluye en la señal codificada. Otros ejemplos particulares del filtro 130 de paso alto tienen bandas de paso de 3,5-7,5 kHz y 3,5-8 kHz.
En algunas implementaciones, proporcionar una superposición entre subbandas como en el ejemplo de la figura 4b permite el uso de un filtro de paso bajo y/o de paso alto que tiene unas atenuaciones progresivas suaves sobre la región superpuesta. Normalmente, tales filtros son más fáciles de diseñar, menos complejos computacionalmente y/o introducen menos retardo que los filtros con respuestas más agudas o de “pared”. Los filtros que tienen regiones de transición agudas tienden a tener lóbulos laterales más altos (que pueden provocar solapamiento) que los filtros de orden similar que tienen atenuaciones progresivas suaves. Los filtros que tienen regiones de transición agudas también pueden tener respuestas de impulso largas que pueden provocar artefactos de llamada. Para las implementaciones de banco de filtros que tienen uno o más filtros de IIR, permitir una atenuación progresiva suave sobre la región superpuesta puede permitir el uso de un filtro o filtros cuyos polos están más alejados del círculo unitario, que pueden ser importantes para garantizar una implementación de punto fijado estable.
La superposición de subbandas permite un mezclado suave de banda baja y banda alta que puede conducir a menos artefactos audibles, solapamiento reducido y/o una transición menos perceptible desde una banda a la otra. Además, la eficacia de codificación del codificador A120 de banda estrecha (por ejemplo, un codificador de forma de onda) puede caer con una frecuencia creciente. Por ejemplo, puede reducirse la calidad de codificación del codificador de banda estrecha a bajas tasas de transmisión de bits, especialmente en presencia de ruido de fondo. En tales casos, proporcionar una superposición de las subbandas puede aumentar la calidad de los componentes de frecuencia reproducidos en la región superpuesta.
Además, la superposición de subbandas permite un mezclado suave de banda baja y banda alta que puede conducir a menos artefactos audibles, solapamiento reducido y/o una transición menos perceptible de una banda a la otra. Tal característica puede ser especialmente deseable para una implementación en la que el codificador A120 de banda estrecha y el codificador A200 de banda alta operan según metodologías de codificación diferentes. Por ejemplo, técnicas de codificación diferentes pueden producir señales que suenan bastante diferentes. Un codificador que codifica una envolvente espectral en forma de índices de libro de códigos puede producir una señal que tiene un sonido diferente que un codificador que codifica, en cambio, el espectro de amplitud. Un codificador en el dominio del tiempo (por ejemplo, una modulación por impulsos codificados o codificador de MIC) puede producir una señal que tiene un sonido diferente que un codificador en el dominio de la frecuencia. Un codificador que codifica una señal con una representación de la envolvente espectral y la señal residual correspondiente puede producir una señal que tiene un sonido diferente que un codificador que codifica una señal con sólo una representación de la envolvente espectral. Un codificador que codifica una señal como una representación de su forma de onda puede producir una salida que tiene un sonido diferente que el de un codificador sinusoidal. En tales casos, el uso de filtros que tienen regiones de transición agudas para definir subbandas no superpuestas puede conducir a una transición abrupta y perceptible entre las subbandas en la señal de banda ancha sintetizada.
Aunque, a menudo se usan bancos de filtros QMF que tienen respuestas de frecuencia de superposición complementarias en técnicas de subbanda, tales filtros son inadecuados para al menos algunas de las implementaciones de codificación de banda ancha descritas en el presente documento. Un banco de filtros QMF en el codificador está configurado para crear un grado significativo de solapamiento que se cancela en el banco de filtros QMF correspondiente en el decodificador. Una disposición de este tipo puede no ser apropiada para una aplicación en la que la señal experimenta una cantidad significativa de distorsión entre los bancos de filtros, ya que la distorsión puede reducir la efectividad de la propiedad de cancelación de solapamiento. Por ejemplo, las aplicaciones descritas en el presente documento incluyen implementaciones de codificación configuradas para operar a tasas de transmisión de bits muy bajas. Como consecuencia de la tasa de transmisión de bits muy baja, es probable que la señal decodificada aparezca significativamente distorsionada en comparación con la señal original, de tal manera que el uso de bancos de filtros QMF puede conducir a un solapamiento no cancelado. Las aplicaciones que usan bancos de filtros QMF tienen normalmente tasas de transmisión de bits superiores (por ejemplo, por encima de 12 kbps para AMR, y 64 kbps para G.722).
Adicionalmente, un codificador puede estar configurado para producir una señal sintetizada que es perceptiblemente similar a la señal original pero que en realidad difiere significativamente de la señal original. Por ejemplo, un codificador que deriva la excitación de banda alta a partir del resto de banda estrecha tal como se describe en el presente documento puede producir una señal de este tipo, ya que el resto de banda alta real puede estar completamente ausente de la señal decodificada. El uso de bancos de filtros QMF en tales aplicaciones puede conducir a un grado significativo de distorsión provocado por solapamiento no cancelado.
Puede reducirse la cantidad de distorsión provocada por solapamiento de QMF si la subbanda afectada es estrecha, ya que el efecto del solapamiento se limita a un ancho de banda igual al ancho de la subbanda. Para ejemplos tal como se describen en el presente documento en los que cada subbanda incluye aproximadamente la mitad del ancho de banda de banda ancha, sin embargo, la distorsión provocada por solapamiento no cancelado podría afectar a una parte significativa de la señal. También puede verse afectada la calidad de la señal por la ubicación de la banda de frecuencia sobre la que se produce el solapamiento no cancelado. Por ejemplo, la distorsión creada cerca del centro de una señal de habla de banda ancha (por ejemplo, entre 3 kHz y 4 kHz) puede ser mucho más inaceptable que la distorsión que se produce cerca de un borde de la señal (por ejemplo, por encima de 6 kHz).
Aunque las respuestas de los filtros de un banco de filtros QMF están relacionadas estrictamente entre sí, pueden configurarse los trayectos de banda baja y banda alta de los bancos A110 y B120 de filtros para tener espectros que no tienen relación ninguna aparte de la superposición de las dos subbandas. Se define la superposición de las dos subbandas como la distancia desde el punto en el que la respuesta de frecuencia del filtro de banda alta cae a -20 dB hasta el punto en el que la respuesta de frecuencia del filtro de banda baja cae a -20 dB. En diversos ejemplos del banco A110 y/o B120 de filtros, esta superposición oscila desde aproximadamente 200 Hz hasta aproximadamente 1 kHz. El intervalo de aproximadamente 400 Hz a aproximadamente 600 Hz puede representar un equilibrio deseado entre la eficacia de codificación y la suavidad de percepción. En un ejemplo particular tal como se mencionó anteriormente, la superposición es aproximadamente 500 Hz.
Puede ser deseable implementar el banco A112 y/o B122 de filtros para llevar a cabo operaciones tal como se ilustra en las figuras 4a y 4b en varias etapas. Por ejemplo, la figura 4c muestra un diagrama de bloques de una implementación A114 de banco A112 de filtros que lleva a cabo un equivalente funcional de operaciones de submuestreo y filtrado de paso alto usando una serie de operaciones de interpolación, realización de nuevo muestreo, decimación y otras. Puede ser más fácil de diseñar una implementación de este tipo y/o puede permitir la reutilización de bloques funcionales de lógica y/o código. Por ejemplo, puede usarse el mismo bloque funcional para llevar a cabo las operaciones de decimación a 14 kHz y decimación a 7 kHz tal como se muestra en la figura 4c. Puede implementarse la operación de inversión espectral multiplicando la señal por la función einπ o la secuencia (-1)n, cuyos valores alternan entre +1 y -1. Puede implementarse la operación de conformación espectral como un filtro de paso bajo configurado para conformar la señal para obtener una respuesta de filtro global deseada.
Se observa que como una consecuencia de la operación de inversión espectral, se invierte el espectro de la señal S30 de banda alta. Pueden configurarse operaciones posteriores en el codificador y el decodificador correspondiente, en consecuencia. Por ejemplo, el generador A300 de excitación de banda alta tal como se describe en el presente documento puede estar configurado para producir una señal S120 de excitación de banda alta que también tiene una forma invertida espectralmente.
La figura 4d muestra un diagrama de bloques de una implementación B124 de banco B122 de filtros que lleva a cabo un equivalente funcional de operaciones de filtrado de paso alto y sobremuestreo usando una serie de operaciones de interpolación, realización de nuevo muestreo y otras. El banco B124 de filtros incluye una operación de inversión espectral en la banda alta que invierte una operación similar tal como se lleva a cabo, por ejemplo, en un banco de filtros del codificador tal como banco A114 de filtros. En este ejemplo particular, el banco B124 de filtros también incluye filtros de ranura en la banda baja y la banda alta que atenúan un componente de la señal a 7100 Hz, aunque tales filtros son opcionales y no necesitan incluirse. La solicitud de patente “SYSTEMS, METHODS, AND APPARATUS FOR SPEECH SIGNAL FILTERING” presentada con el presente documento, ahora publicación de patente estadounidense n. o 2007/0088558, incluye una descripción y figuras adicionales relativos a respuestas de elementos de implementaciones particulares de los bancos A110 y B120 de filtros, y este material se incorpora al presente documento por referencia.
Se implementa el codificador A120 de banda estrecha según un modelo de filtro de fuente que codifica la señal de habla de entrada como (A) un conjunto de parámetros que describen un filtro y (B) una señal de excitación que hace que el filtro descrito produzca una reproducción sintetizada de la señal de habla de entrada. La figura 5a muestra un ejemplo de una envolvente espectral de una señal de habla. Los picos que caracterizan esta envolvente espectral representan resonancias del tracto vocal y se denominan formantes. La mayoría de codificadores de habla codifican al menos esta estructura espectral aproximada como un conjunto de parámetros tales como coeficientes de filtro.
La figura 5b muestra un ejemplo de una disposición de filtro de fuente básica tal como se aplica para la codificación de la envolvente espectral de la señal S20 de banda estrecha. Un módulo de análisis calcula un conjunto de parámetros que caracterizan un filtro que corresponde a un sonido de habla durante un periodo de tiempo (normalmente 20 ms). Un filtro blanqueador (también denominado un filtro de análisis o de error de predicción) configurado según esos parámetros de filtro elimina la envolvente espectral para aplanar espectralmente la señal. La señal blanqueada resultante (también denominada un resto) tiene menos energía y por tanto menos varianza y es más fácil de codificar que la señal de habla original. También pueden propagarse los errores resultantes de la codificación de la señal residual más uniformemente a través del espectro. Los parámetros de filtro y el resto se cuantifican normalmente para su transmisión eficaz a través del canal. En el decodificador, un filtro de síntesis configurado según los parámetros de filtro se excita por una señal basada en el resto para producir una versión sintetizada del sonido de habla original. Normalmente, el filtro de síntesis está configurado para tener una función de transferencia que es la inversa de la función de transferencia del filtro blanqueador.
La figura 6 muestra un diagrama de bloques de una implementación A122 básica del codificador A120 de banda estrecha. En este ejemplo, un módulo 210 de análisis de codificación de predicción lineal (LPC) codifica la envolvente espectral de la señal S20 de banda estrecha como un conjunto de coeficientes de predicción lineal (LP) (por ejemplo, coeficientes de un filtro de todos los polos 1/A(z)). Normalmente, el módulo de análisis procesa la señal de entrada como una serie de tramas no superpuestas, calculándose un nuevo conjunto de coeficientes para cada trama. Generalmente, el periodo de trama es un periodo durante el que puede esperarse que la señal sea estacionaria localmente; un ejemplo común es 20 milisegundos (equivalente a 160 muestras a una tasa de muestreo de 8 kHz). En un ejemplo, el módulo 210 de análisis de LPC está configurado para calcular un conjunto de diez coeficientes de filtro de LP para caracterizar la estructura formante de cada trama de 20 milisegundos. También es posible implementar el módulo de análisis para procesar la señal de entrada como una serie de tramas superpuestas.
El módulo de análisis puede estar configurado para analizar las muestras de cada trama directamente, o pueden ponderarse las muestras primero según una función ventana (por ejemplo, una ventana de Hamming). También puede llevarse a cabo el análisis a través de una ventana que es más grande que la trama, tal como una ventana de 30 ms. Esta ventana puede ser simétrica (por ejemplo 5-20-5, de tal manera que incluye los 5 milisegundos inmediatamente anteriores y posteriores a la trama de 20 milisegundos) o asimétrica (por ejemplo 10-20, de tal manera que incluye los últimos 10 milisegundos de la trama anterior). Normalmente, un módulo de análisis de LPC está configurado para calcular los coeficientes de filtro de LP usando una recursión de Levinson-Durbin o el algoritmo de Leroux-Gueguen. En otra implementación, el módulo de análisis puede estar configurado para calcular un conjunto de coeficientes cepstrales para cada trama en lugar de un conjunto de coeficientes de filtro de LP.
La velocidad de salida del codificador A120 puede reducirse significativamente, con relativamente poco efecto sobre la calidad de reproducción, cuantificando los parámetros de filtro. Los coeficientes de filtro de predicción lineal son difíciles de cuantificar eficazmente y habitualmente se correlacionan con otra representación, tal como pares espectrales de línea (LSP) o frecuencias espectrales de línea (LSF), para cuantificación y/o codificación de entropía. En el ejemplo de la figura 6, la transformada 220 de coeficiente de filtro de LP a LSF transforma el conjunto de coeficientes de filtro de LP en un conjunto correspondiente de las LSF. Otras representaciones uno a uno de coeficientes de filtro de LP incluyen coeficientes parcor; valores de logaritmo de relación de área; pares espectrales de inmitancia (ISP); y frecuencias espectrales de inmitancia (ISF), que se usan en el códec de AMR-WB (ancho de banda de tasa múltiple adaptativa) de GSM (Sistema general para las comunicaciones móviles). Normalmente una transformada entre un conjunto de coeficientes de filtro de LP y un conjunto correspondiente de las LSF es reversible, pero las realizaciones también incluyen implementaciones de codificador A120 en las que la transformada no es reversible sin error.
El cuantificador 230 está configurado para cuantificar el conjunto de las LSF de banda estrecha (u otra representación de coeficiente), y el codificador A122 de banda estrecha está configurado para emitir el resultado de esta cuantificación como los parámetros S40 de filtro de banda estrecha. Normalmente, un cuantificador de este tipo incluye un cuantificador de vector que codifica el vector de entrada como un índice con respecto a una entrada de vector correspondiente en una tabla o libro de códigos.
Tal como se observa en la figura 6, el codificador A122 de banda estrecha también genera una señal residual pasando la señal S20 de banda estrecha a través de un filtro 260 blanqueador (también denominado un filtro de análisis o de error de predicción) que está configurado según el conjunto de coeficientes de filtro. En este ejemplo particular, se implementa el filtro 260 blanqueador como un filtro de FIR, aunque también pueden usarse implementaciones de IIR. Normalmente, esta señal residual contendrá información importante en cuanto a la percepción de la trama de habla, tal como la estructura a largo plazo relativa a la altura tonal, que no se representa en los parámetros S40 de filtro de banda estrecha. El cuantificador 270 está configurado para calcular una representación cuantificada de esta señal residual para su emisión como la señal S50 de excitación de banda estrecha codificada. Normalmente, un cuantificador de este tipo incluye un cuantificador de vector que codifica el vector de entrada como un índice con respecto a una entrada de vector correspondiente en una tabla o libro de códigos. Como alternativa, un cuantificador de este tipo puede estar configurado para enviar uno o más parámetros a partir de los cuales puede generarse el vector dinámicamente en el decodificador, en lugar de recuperarse del almacenamiento, como en un procedimiento de libro de códigos disperso. Se usa un procedimiento de este tipo en esquemas de codificación tales como CELP algebraica (predicción lineal de excitación por libro de códigos) y códecs tales como 3GPP2 (Asociación de tercera generación 2) EVRC (Códec de tasa variable mejorada).
Es deseable que el codificador A120 de banda estrecha genere la señal de excitación de banda estrecha codificada según los mismos valores de parámetros de filtro que estarán disponibles para el decodificador de banda estrecha correspondiente. De esta manera, la señal de excitación de banda estrecha codificada resultante ya puede representar en cierta medida las no idealidades en los valores de parámetros, tales como el error de cuantificación. Por consiguiente, es deseable configurar el filtro blanqueador usando los mismos valores de coeficiente que estarán disponibles en el decodificador. En el ejemplo básico del codificador A122 tal como se muestra en la figura 6, el cuantificador 240 inverso descuantifica los parámetros S40 de codificación de banda estrecha, la transformada 250 de coeficiente de filtro de LSF a LP correlaciona los valores resultantes de nuevo con un conjunto correspondiente de coeficientes de filtro de LP, y este conjunto de coeficientes se usa para configurar el filtro 260 blanqueador para generar la señal residual que se cuantifica por el cuantificador 270.
Algunas implementaciones del codificador A120 de banda estrecha están configuradas para calcular la señal S50 de excitación de banda estrecha codificada identificando uno entre un conjunto de vectores de libro de códigos que mejor se ajusta a la señal residual. Sin embargo, se observa, que también puede implementarse el codificador A120 de banda estrecha para calcular una representación cuantificada de la señal residual sin generar en realidad la señal residual. Por ejemplo, el codificador A120 de banda estrecha puede estar configurado para usar un número de vectores de libro de códigos para generar señales sintetizadas correspondientes (por ejemplo, según un conjunto real de parámetros de filtro), y para seleccionar el vector de libro de códigos asociado con la señal generada que mejor se ajusta a la señal S20 de banda estrecha original en un dominio ponderado en cuanto a la percepción.
La figura 7 muestra un diagrama de bloques de una implementación B112 de decodificador B110 de banda estrecha. El cuantificador 310 inverso descuantifica los parámetros S40 de filtro de banda estrecha (en este caso, a un conjunto de LSF), y la transformada 320 de coeficiente de filtro de LP a LSF transforma las LSF en un conjunto de coeficientes de filtro (por ejemplo, tal como se describió anteriormente con referencia al cuantificador 240 inverso y la transformada 250 del codificador A122 de banda estrecha). El cuantificador 340 inverso descuantifica la señal S50 de excitación de banda estrecha codificada para producir una señal S80 de excitación de banda estrecha. Basándose en los coeficientes de filtro y la señal S80 de excitación de banda estrecha, el filtro 330 de síntesis de banda estrecha sintetiza la señal S90 de banda estrecha. En otras palabras, el filtro 330 de síntesis de banda estrecha está configurado para conformar espectralmente la señal S80 de excitación de banda estrecha según los coeficientes de filtro descuantificados para producir la señal S90 de banda estrecha. El decodificador B112 de banda estrecha también proporciona la señal S80 de excitación de banda estrecha al codificador A200 de banda alta, que la usa para derivar la señal S120 de excitación de banda alta tal como se describe en el presente documento. En algunas implementaciones tal como se describe a continuación, puede estar configurado el decodificador B110 de banda estrecha para proporcionar información adicional al decodificador B200 de banda alta que se relaciona con la señal de banda estrecha, tal como inclinación espectral, ganancia y retraso de altura tonal, y modo de habla.
El sistema de codificador A122 de banda estrecha y decodificador B112 de banda estrecha es un ejemplo básico de un códec de habla de análisis por síntesis. La codificación de predicción lineal de excitación de libro de códigos (CELP) es una familia popular de la codificación de análisis por síntesis, y las implementaciones de tales codificadores pueden llevar a cabo la codificación de forma de onda del resto, incluyendo tales operaciones como selección de entradas a partir de libros de códigos adaptativos y fijos, operaciones de minimización de error y/u operaciones de ponderación perceptual. Otras implementaciones de codificación de análisis por síntesis incluyen codificación de predicción lineal de excitación mezclada (MELP), CELP algebraica (ACELP), CELP de relajación (RCELP), excitación de impulso regular (RPE), CELP de impulsos múltiples (MPE), y predicción lineal excitada por suma de vectores (VSELP). Los procedimientos de codificación relacionados incluyen codificación de excitación de bandas múltiples (MBE) e interpolación de forma de onda de prototipo (PWI). Los ejemplos de códecs de habla de análisis por síntesis estandarizados incluyen el códec de tasa completa de GSM (GSM 06.10) del ETSI (Instituto Europeo de Normas de Telecomunicaciones), que usa predicción lineal excitada residual (RELP); el códec de tasa completa mejorada de GSM (ETSI-GSM 06.60); el codificador del anexo E G.729 de 11,8 kb/s de la norma de ITU (Unión Internacional de Telecomunicaciones); los códecs de IS (Norma provisional)-641 para IS-136 (un esquema de acceso múltiple por división de tiempo); los códecs de velocidades múltiples adaptativas de GSM (GSM-AMR); y el códec de 4GV™ (Vocodificador de cuarta generación) (QUALCOMM Incorporated, San Diego, CA). Pueden implementarse el codificador A120 de banda estrecha y el decodificador B110 correspondiente según cualquiera de estas tecnologías, o cualquier otra tecnología de codificación de habla (o bien conocida o bien que vaya a desarrollarse) que representa una señal de habla como (A) un conjunto de parámetros que describe un filtro y (B) una señal de excitación usada para hacer que el filtro descrito reproduzca la señal de habla.
Incluso después de que el filtro blanqueador ha eliminado la envolvente espectral aproximada de la señal S20 de banda estrecha, puede permanecer una cantidad considerable de estructura armónica fina, especialmente para habla vocalizada. La figura 8a muestra una representación gráfica espectral de un ejemplo de una señal residual, tal como puede producirse mediante un filtro blanqueador, para una señal vocal tal como una vocal. La estructura periódica visible en este ejemplo se refiere a la altura tonal, y diferentes sonidos vocalizados hablados por el mismo orador pueden tener diferentes estructuras formantes pero estructuras de altura tonal similar. La figura 8b muestra una representación gráfica en el dominio del tiempo de un ejemplo de una señal residual de este tipo que muestra una secuencia de impulsos de altura tonal en el tiempo.
Puede aumentarse la eficacia de codificación y/o calidad de habla usando uno o más valores de parámetro para codificar características de la estructura de altura tonal. Una característica importante de la estructura de altura tonal es la frecuencia del primer armónico (también denominada la frecuencia fundamental), que normalmente está en el intervalo de 60 Hz a 400 Hz. Normalmente, esta característica se codifica como la inversa de la frecuencia fundamental, también denominada el retraso de altura tonal. El retraso de altura tonal indica el número de muestras en un periodo de altura tonal y puede codificarse como uno o más índices de libro de códigos. Las señales de habla de oradores tienden a tener retrasos de altura tonal más grandes que las señales de habla de oradoras.
Otra característica de la señal en relación con la estructura de altura tonal es la periodicidad, que indica la fuerza de la estructura armónica o, en otras palabras, el grado en el que la señal es armónica o no armónica. Dos indicadores típicos de periodicidad son cruces por cero y funciones de autocorrelación normalizadas (NACF). También puede indicarse la periodicidad mediante la ganancia de altura tonal, que se codifica comúnmente como una ganancia de libro de códigos (por ejemplo, una ganancia de libro de códigos adaptativa cuantificada).
El codificador A120 de banda estrecha puede incluir uno o más módulos configurados para codificar la estructura armónica a largo plazo de la señal S20 de banda estrecha. Tal como se muestra en la figura 9, un paradigma de CELP típico que puede usarse incluye un módulo de análisis de LPC de bucle abierto, que codifica las características a corto plazo o la envolvente espectral aproximada, seguido por una etapa de análisis de predicción a largo plazo de bucle cerrado, que codifica la altura tonal fina o estructura armónica. Las características a corto plazo se codifican como coeficientes de filtro, y las características a largo plazo se codifican como valores para parámetros tales como retraso de altura tonal y ganancia de altura tonal. Por ejemplo, el codificador A120 de banda estrecha puede estar configurado para emitir la señal S50 de excitación de banda estrecha codificada en una forma que incluye uno o más índices de libro de códigos (por ejemplo, un índice de libro de código fijo y un índice de libro de código adaptativo) y valores de ganancia correspondientes. El cálculo de esta representación cuantificada de la señal residual de banda estrecha (por ejemplo, por el cuantificador 270) puede incluir seleccionar tales índices y calcular tales valores. La codificación de la estructura de altura tonal también puede incluir la interpolación de una forma de onda de prototipo de altura tonal, cuya operación puede incluir calcular una diferencia entre impulsos de altura tonal sucesivos. El modelado de la estructura a largo plazo puede desactivarse para tramas correspondientes a habla no vocalizada, que normalmente es de tipo ruido y no estructurada.
Una implementación del decodificador B 110 de banda estrecha según un paradigma tal como se muestra en la figura 9 puede estar configurada para emitir la señal S80 de excitación de banda estrecha al decodificador B200 de banda alta tras haberse restaurado la estructura a largo plazo (estructura armónica o de altura tonal). Por ejemplo, un decodificador de este tipo puede estar configurado para emitir la señal S80 de excitación de banda estrecha como una versión descuantificada de la señal S50 de excitación de banda estrecha codificada. Naturalmente, también es posible implementar el decodificador B 110 de banda estrecha de tal manera que el decodificador B200 de banda alta lleva a cabo la descuantificación de la señal S50 de excitación de banda estrecha codificada para obtener la señal S80 de excitación de banda estrecha.
En una implementación del codificador A100 de habla de banda ancha según un paradigma tal como se muestra en la figura 9, el codificador A200 de banda alta puede estar configurado para recibir la señal de excitación de banda estrecha tal como se produjo mediante el análisis a largo plazo o filtro blanqueador. En otras palabras, el codificador A120 de banda estrecha puede estar configurado para emitir la señal de excitación de banda estrecha al codificador A200 de banda alta antes de la codificación de la estructura a largo plazo. Sin embargo, es deseable, que el codificador A200 de banda alta reciba del canal de banda estrecha la misma información de codificación que recibirá el decodificador B200 de banda alta, de tal manera que los parámetros de codificación producidos por el codificador A200 de banda alta ya pueden representar en cierta medida las no idealidades en esa información. Por tanto, puede ser preferible que el codificador A200 de banda alta reconstruya la señal S80 de excitación de banda estrecha a partir de la misma señal S50 de excitación de banda estrecha codificada cuantificada y/o parametrizada que el codificador A100 de habla de banda ancha va emitirse. Una ventaja potencial de este enfoque es el cálculo más preciso de los factores S60b de ganancia de banda alta que se describen a continuación.
Además de los parámetros que caracterizan la estructura a corto plazo y/o largo plazo de la señal S20 de banda estrecha, el codificador A120 de banda estrecha puede producir valores de parámetros que se relacionan con otras características de la señal S20 de banda estrecha. Estos valores, que pueden cuantificarse adecuadamente para emitirse mediante el codificador A100 de habla de banda ancha, pueden incluirse entre los parámetros S40 de filtro de banda estrecha o emitirse por separado. El codificador A200 de banda alta también puede estar configurado para calcular parámetros S60 de codificación de banda alta según uno o más de estos parámetros adicionales (por ejemplo, tras la descuantificación). En el decodificador B100 de habla de banda ancha, un decodificador B200 de banda alta puede estar configurado para recibir los valores de parámetro por medio del decodificador B110 de banda estrecha (por ejemplo, tras la descuantificación). Como alternativa, el decodificador B200 de banda alta puede estar configurado para recibir (y posiblemente para descuantificar) los valores de parámetro directamente.
En un ejemplo de parámetros de codificación de banda estrecha adicionales, el codificador A120 de banda estrecha produce valores para inclinación espectral y parámetros de modo de habla para cada trama. La inclinación espectral se refiere a la forma de la envolvente espectral sobre la banda de paso y se representa normalmente por el primer coeficiente de reflexión cuantificado. Para la mayoría de los sonidos vocalizados, la energía espectral disminuye con la frecuencia de aumento, de tal manera que el primer coeficiente de reflexión es negativo y puede aproximarse a -1. La mayoría de los sonidos no vocalizados tienen un espectro que es plano, de tal manera que el primer coeficiente de reflexión se aproxima a cero,
o bien tiene más energía en frecuencias altas, de tal manera que el primer coeficiente de reflexión es positivo y puede aproximarse a +1.
El modo de habla (también denominado modo de vocalización) indica si la trama real representa habla vocalizada o no vocalizada. Este parámetro puede tener un valor binario basándose en una o más medidas de periodicidad (por ejemplo, cruces por cero, NACF, ganancia de altura tonal) y/o actividad de voz para la trama, tal como una relación entre una medida de este tipo y un valor umbral. En otras implementaciones, el parámetro de modo de habla tiene uno o más estados adicionales para indicar modos tales como silencio o ruido de fondo, o una transición entre silencio y habla vocalizada.
El codificador A200 de banda alta está configurado para codificar la señal de S30 banda alta según un modelo de filtro de fuente, con la excitación para este filtro que se basa en la señal de excitación de banda estrecha codificada. La figura 10 muestra un diagrama de bloques de una implementación A202 del codificador A200 de banda alta que está configurado para producir una corriente de parámetros S60 de codificación de banda alta incluyendo parámetros S60a de filtro de banda alta y factores S60b de ganancia de banda alta. El generador A300 de excitación de banda alta deriva una señal S120 de excitación de banda alta de la señal S50 de excitación de banda estrecha codificada. El módulo A210 de análisis produce un conjunto de valores de parámetro que caracterizan la envolvente espectral de la señal S30 de banda alta. En este ejemplo particular, el módulo A210 de análisis está configurado para llevar a cabo el análisis de LPC para producir un conjunto de coeficientes de filtro de LP para cada trama de señal S30 de banda alta. La transformada 410 de coeficiente de filtro de predicción lineal a LSF transforma el conjunto de coeficientes de filtro de LP en un conjunto correspondiente de las LSF. Tal como se observó anteriormente con referencia al módulo 210 de análisis y la transformada 220, el módulo A210 de análisis y/o la transformada 410 pueden estar configurados para usar otros conjuntos de coeficientes (por ejemplo, coeficientes cepstrales) y/o representaciones de coeficientes (por ejemplo, ISP).
El cuantificador 420 está configurado para cuantificar el conjunto de las LSF de banda alta (u otra representación de coeficiente, tal como las ISP), y el codificador A202 de banda alta está configurado para emitir el resultado de esta cuantificación como los parámetros S60a de filtro de banda alta. Normalmente, un cuantificador de este tipo incluye un cuantificador de vector que codifica el vector de entrada como un índice con respecto a una entrada de vector correspondiente en una tabla o libro de códigos.
El codificador A202 de banda alta también incluye un filtro A220 de síntesis configurado para producir una señal S130 de banda alta sintetizada según la señal S120 de excitación de banda alta y la envolvente espectral codificada (por ejemplo, el conjunto de coeficientes de filtro de LP) producidas por el módulo A210 de análisis. Normalmente, el filtro A220 de síntesis se implementa como un filtro de IIR, aunque también pueden usarse implementaciones de FIR. En un ejemplo particular, se implementa el filtro A220 de síntesis como un filtro autorregresivo lineal de sexto orden.
El calculador A230 del factor de ganancia de banda alta calcula una o más diferencias entre los niveles de la señal S30 de banda alta original y la señal S130 de banda alta sintetizada para especificar una envolvente de ganancia para la trama. El cuantificador 430, que puede implementarse como un cuantificador de vector que codifica el vector de entrada como un índice con respecto a una entrada de vector correspondiente en una tabla o libro de códigos, cuantifica el valor o los valores que especifican la envolvente de ganancia, y el codificador A202 de banda alta está configurado para emitir el resultado de esta cuantificación como factores S60b de ganancia de banda alta.
En una implementación tal como se muestra en la figura 10, se dispone el filtro A220 de síntesis para recibir los coeficientes de filtro a partir del módulo A210 de análisis. Una implementación alternativa del codificador A202 de banda alta incluye un cuantificador inverso y una transformada inversa configurados para decodificar los coeficientes de filtro de parámetros S60a de filtro de banda alta, y en este caso se dispone el filtro A220 de síntesis para recibir, en cambio, los coeficientes de filtro decodificados. Una disposición alternativa de este tipo puede soportar un cálculo más preciso de la envolvente de ganancia por el calculador A230 de ganancia de banda alta.
En un ejemplo particular, el módulo A210 de análisis y el calculador A230 de ganancia de banda alta emiten un conjunto de seis LSF y un conjunto de cinco valores de ganancia por trama, respectivamente, de tal manera que puede lograrse una extensión de banda ancha de la señal S20 de banda estrecha con sólo once valores adicionales por trama. El oído tiende a ser menos sensible a errores de frecuencia en frecuencias altas, de tal manera que la codificación de banda alta en un orden de LPC bajo puede producir una señal que tiene una calidad de percepción comparable con respecto a codificación de banda estrecha en un orden de LPC más alto. Una implementación típica de codificador A200 de banda alta puede estar configurada para emitir de 8 bits a 12 bits por trama para la reconstrucción de alta calidad de la envolvente espectral y otros 8 a 12 bits por trama para la reconstrucción de alta calidad de la envolvente temporal. En otro ejemplo particular, el módulo A210 de análisis emite un conjunto de ocho LSF por trama.
Algunas implementaciones del codificador A200 de banda alta están configuradas para producir la señal S120 de excitación de banda alta generando una señal de ruido aleatoria que tiene componentes de frecuencia de banda alta y modulando en amplitud la señal de ruido según la envolvente de dominio del tiempo de la señal S20 de banda estrecha, la señal S80 de excitación de banda estrecha o la señal S30 de banda alta. Aunque un procedimiento a base de ruido de este tipo puede producir resultados adecuados para sonidos no vocalizados, sin embargo, puede ser no deseable para sonidos vocalizados, cuyos restos son habitualmente armónicos y por consiguiente tienen alguna estructura periódica.
El generador A300 de excitación de banda alta está configurado para generar la señal S120 de excitación de banda alta extendiendo el espectro de la señal S80 de excitación de banda alta en el intervalo de frecuencia de banda alta. La figura 11 muestra un diagrama de bloques de una implementación A302 del generador A300 de excitación de banda alta. El cuantificador 450 inverso está configurado para descuantificar la señal S50 de excitación de banda estrecha codificada para producir la señal S80 de excitación de banda estrecha. El extensor A400 de espectro está configurado para producir una señal S160 extendida armónicamente basándose en la señal S80 de excitación de banda estrecha. El combinador 470 está configurado para combinar una señal de ruido aleatoria generada por el generador 480 de ruido y una envolvente de dominio del tiempo calculada por el calculador 460 de la envolvente para producir una señal S170 de ruido modulado. El combinador 490 está configurado para mezclar la señal S160 extendida armónicamente y la señal S170 de ruido modulado para producir la señal S120 de excitación de banda alta.
En un ejemplo, el extensor A400 de espectro está configurado para llevar a cabo una operación de plegado espectral (también denominada reflejo) en la señal S80 de excitación de banda estrecha para producir la señal S160 extendida armónicamente. Puede llevarse a cabo el plegado espectral rellenando con ceros la señal S80 de excitación y después aplicando un filtro de paso alto para conservar el solapamiento. En otro ejemplo, el extensor A400 de espectro está configurado para producir la señal S160 extendida armónicamente trasladando espectralmente la señal S80 de excitación de banda estrecha hacia la banda alta (por ejemplo, por medio de sobremuestreo seguido por multiplicación por una señal de coseno de frecuencia constante).
Los procedimientos de traslación y plegado espectral pueden producir señales extendidas espectralmente cuya estructura armónica es discontinua con la estructura armónica original de la señal S80 de excitación de banda estrecha en fase y/o frecuencia. Por ejemplo, tales procedimientos pueden producir señales que tienen picos que no están ubicados generalmente en múltiplos de la frecuencia fundamental, lo que puede provocar artefactos con sonido metálico en la señal de habla reconstruida. Estos procedimientos también tienden a producir armónicos de alta frecuencia que tienen características tonales fuertes de manera no natural. Además, debido a que una señal de PSTN puede muestrearse a 8 kHz pero limitarse en banda a no más de 3400 Hz, el espectro superior de la señal S80 de excitación de banda estrecha puede contener poco o nada de energía, de tal manera que una señal extendida generada según una operación de plegado espectral o traslación espectral puede tener un agujero espectral por encima de 3400 Hz.
Otros procedimientos de generación de la señal S160 extendida armónicamente incluyen identificar una o más frecuencias fundamentales de la señal S80 de excitación de banda estrecha y generar tonos armónicos según esa información. Por ejemplo, la estructura armónica de una señal de excitación puede caracterizarse por la frecuencia fundamental junto con información de amplitud y de fase. Otra implementación del generador A300 de excitación de banda alta genera una señal S160 extendida armónicamente basándose en la frecuencia y la amplitud fundamental (tal como se indica, por ejemplo, por el retraso de altura tonal y la ganancia de altura tonal). Sin embargo, a menos que la señal extendida armónicamente sea coherente en fase con la señal S80 de excitación de banda estrecha, la calidad del habla decodificada resultante puede no ser aceptable.
Puede usarse una función no lineal para crear una señal de excitación de banda alta que es coherente en fase con la excitación de banda estrecha y preserva la estructura armónica sin discontinuidad de fase. Una función no lineal también puede proporcionar un nivel de ruido aumentado entre armónicos de alta frecuencia, que tiende a sonar más natural que los armónicos de alta frecuencia tonal producidos mediante procedimientos tales como plegado espectral y traslación espectral. Las funciones no lineales sin memoria típicas que pueden aplicarse por diversas implementaciones del extensor A400 de espectro incluyen la función de valor absoluto (también denominada rectificación de onda completa), rectificación de onda media, elevación al cuadrado, elevación al cubo y recorte. Otras implementaciones del extensor A400 de espectro pueden estar configuradas para aplicar una función no lineal que tiene memoria.
La figura 12 es un diagrama de bloques de una implementación A402 del extensor A400 de espectro que está configurado para aplicar una función no lineal para extender el espectro de la señal S80 de excitación de banda estrecha. El sobremuestreador 510 está configurado para sobremuestrear la señal S80 de excitación de banda estrecha. Puede ser deseable sobremuestrear la señal lo suficiente para minimizar el solapamiento tras la aplicación de la función no lineal. En un ejemplo particular, el sobremuestreador 510 sobremuestrea la señal en un factor de ocho. El sobremuestreador 510 puede estar configurado para llevar a cabo la operación de sobremuestreo rellenando con ceros la señal de entrada y filtrando paso bajo el resultado. El calculador 520 de función no lineal está configurado para aplicar una función no lineal a la señal sobremuestreada. Una ventaja potencial de la función de valor absoluto con respecto a otras funciones no lineales para extensión espectral, tal como elevación al cuadrado, es que no se necesita la normalización de energía. En algunas implementaciones, puede aplicarse eficazmente la función de valor absoluto eliminando o quitando el bit de signo de cada muestra. El calculador 520 de función no lineal también puede estar configurado para llevar a cabo un alineamiento de amplitud de la señal extendida espectralmente o sobremuestreada.
El submuestreador 530 está configurado para submuestrear el resultado extendido espectralmente de la aplicación de la función no lineal. Puede ser deseable que el submuestreador 530 lleve a cabo una operación de filtrado de paso de banda para seleccionar una banda de frecuencia deseada de la señal extendida espectralmente antes de reducir la tasa de muestreo (por ejemplo, para reducir o evitar el solapamiento o la corrupción por una imagen no deseada). También puede ser deseable que el submuestreador 530 reduzca la tasa de muestreo en más de una etapa.
La figura 12a es un diagrama que muestra los espectros de señal en diversos puntos en un ejemplo de una operación de extensión espectral, donde la escala de frecuencia es la misma en las diversas representaciones gráficas. La representación gráfica (a) muestra el espectro de un ejemplo de la señal S80 de excitación de banda estrecha. La representación gráfica (b) muestra el espectro tras haberse sobremuestreado la señal S80 en un factor de ocho. La representación gráfica (c) muestra un ejemplo del espectro extendido tras la aplicación de una función no lineal. La representación gráfica (d) muestra el espectro tras el filtrado paso bajo. En este ejemplo, la banda de paso se extiende hasta el límite de frecuencia superior de la señal S30 de banda alta (por ejemplo, 7 kHz u 8 kHz).
La representación gráfica (e) muestra el espectro tras una primera etapa de submuestreo, en el que la tasa de muestreo se reduce en un factor de cuatro para obtener una señal de banda ancha. La representación gráfica (f) muestra el espectro tras una operación de filtrado paso alto para seleccionar la parte de banda alta de la señal extendida, y la representación gráfica (g) muestra el espectro tras una segunda etapa de submuestreo, en la que la tasa de muestreo se reduce en un factor de dos. En un ejemplo particular, el submuestreador 530 lleva a cabo el filtrado de paso alto y la segunda etapa de submuestreo haciendo pasar la señal de banda ancha a través del filtro 130 de paso alto y el submuestreador 140 del banco A112 de filtros (u otras estructuras o rutinas que tienen la misma respuesta) para producir una señal extendida espectralmente que tiene el intervalo de frecuencia y la tasa de muestreo de la señal S30 de banda alta.
Tal como puede observarse en la representación gráfica (g), el submuestreo de la señal
de paso alto mostrada en la representación gráfica (f) provoca una inversión de su espectro. En este ejemplo, también está configurado el submuestreador 530 para llevar a cabo una operación de cambio espectral en la señal. La representación gráfica (h) muestra un resultado de la aplicación de la operación de cambio espectral, que puede llevarse a cabo multiplicando la señal por la función ejnπ o la secuencia (-1)n, cuyos valores alternan entre +1 y -1. Una operación de este tipo es equivalente a desplazar el espectro digital de la señal en el dominio de la frecuencia en una distancia de π. Se observa que el mismo resultado también puede obtenerse aplicando las operaciones de submuestreo y cambio espectral en un orden diferente. También pueden configurarse las operaciones de sobremuestreo y/o submuestreo para incluir un nuevo muestreo para obtener una señal extendida espectralmente que tiene la tasa de muestreo de la señal S30 de banda alta (por ejemplo, 7 kHz).
Tal como se observó anteriormente, pueden implementarse bancos A110 y B120 de filtros de tal manera que una o ambas de las señales S20, S30 de banda estrecha y banda alta tengan una forma invertida espectralmente a la salida del banco A110 de filtros, se codifiquen y decodifiquen en la forma invertida espectralmente, y se inviertan espectralmente de nuevo en el banco B120 de filtros antes de que se emitan en la señal S110 de habla de banda ancha. Por supuesto, en tal caso, una operación de cambio espectral tal como se muestra en la figura 12a no será necesaria, puesto que también será deseable que la señal S120 de excitación de banda alta tenga una forma invertida espectralmente.
Pueden configurarse y disponerse las diversas tareas de sobremuestreo y submuestreo de una operación de extensión espectral tal como lleva a cabo el extensor A402 de espectro de muchas maneras diferentes. Por ejemplo, la figura 12b es un diagrama que muestra los espectros de señal en diversos puntos en otro ejemplo de una operación de extensión espectral, donde la escala de frecuencia es la misma en las diversas representaciones gráficas. La representación gráfica (a) muestra el espectro de un ejemplo de la señal S80 de excitación de banda estrecha. La representación gráfica (b) muestra el espectro tras haberse sobremuestreado la señal S80 en un factor de dos. La representación gráfica (c) muestra un ejemplo del espectro extendido tras la aplicación de una función no lineal. En este caso, se acepta el solapamiento que puede producirse en las frecuencias superiores.
La representación gráfica (d) muestra el espectro tras una operación de inversión espectral. La representación gráfica (e) muestra el espectro tras una única etapa de submuestreo, en la que la tasa de muestreo se reduce en un factor de dos para obtener la señal extendida espectralmente deseada. En este ejemplo, la señal está en forma invertida espectralmente y puede usarse en una implementación del codificador A200 de banda alta que procesa la señal S30 de banda alta en una forma de este tipo.
La señal extendida espectralmente producida por el calculador 520 de función no lineal es probable que tenga una caída pronunciada en amplitud a medida que aumenta la frecuencia. El extensor A402 espectral incluye un aplanador 540 espectral configurado para llevar a cabo una operación de blanqueo en la señal submuestreada. El aplanador 540 espectral puede estar configurado para llevar a cabo una operación de blanqueo fijo o para llevar a cabo una operación de blanqueo adaptativo. En un ejemplo particular de blanqueo adaptativo, el aplanador 540 espectral incluye un módulo de análisis de LPC configurado para calcular un conjunto de cuatro coeficientes de filtro de la señal submuestreada y un filtro de análisis de cuarto orden configurado para blanquear la señal según esos coeficientes. Otras implementaciones del extensor A400 de espectro incluyen configuraciones en las que el aplanador 540 espectral opera en la señal extendida espectralmente antes del submuestreador
530.
Puede implementarse el generador A300 de excitación de banda alta para emitir la señal S160 extendida armónicamente como señal S120 de excitación de banda alta. Sin embargo, en algunos casos, el uso de sólo una señal extendida armónicamente como la excitación de banda alta puede dar como resultado artefactos audibles. La estructura armónica del habla generalmente es menos pronunciada en la banda alta que en la banda baja, y el uso de demasiada estructura armónica en la señal de excitación de banda alta puede dar como resultado un sonido de zumbido. Este artefacto puede ser especialmente perceptible en señales de habla de oradoras.
Las realizaciones incluyen implementaciones del generador A300 de excitación de banda alta que están configuradas para mezclar la señal S160 extendida armónicamente con una señal de ruido. Tal como se muestra en la figura 11, el generador A302 de excitación de banda alta incluye un generador 480 de ruido que está configurado para producir una señal de ruido aleatoria. En un ejemplo, el generador 480 de ruido está configurado para producir una señal de ruido pseudoaleatoria blanca de varianza unitaria, aunque en otras implementaciones la señal de ruido no necesita ser blanca y puede tener una densidad de potencia que varía con la frecuencia. Puede ser deseable que el generador 480 de ruido esté configurado para emitir la señal de ruido como una función determinística de tal manera que pueda duplicarse su estado en el decodificador. Por ejemplo, el generador 480 de ruido puede estar configurado para emitir la señal de ruido como una función determinística de información codificada previamente dentro de la misma trama, tal como los parámetros S40 de filtro de banda estrecha y/o la señal S50 de excitación de banda estrecha codificada.
Antes de mezclarse con la señal S160 extendida armónicamente, la señal de ruido aleatoria producida por el generador 480 de ruido puede modularse en amplitud para que tenga una envolvente en el dominio del tiempo que se aproxime a la distribución de la energía en el tiempo de la señal S20 de banda estrecha, señal S30 de banda alta, señal S80 de excitación de banda estrecha o señal S160 extendida armónicamente. Tal como se muestra en la figura 11, el generador A302 de excitación de banda alta incluye un combinador 470 configurado para modular en amplitud la señal de ruido producida por el generador 480 de ruido según una envolvente en el dominio del tiempo calculada por el calculador 460 de envolvente. Por ejemplo, puede implementarse el combinador 470 como un multiplicador dispuesto para ampliar a escala la salida del generador 480 de ruido según la envolvente en el dominio del tiempo calculada por el calculador 460 de envolvente para producir la señal S170 de ruido modulado.
En una implementación A304 de generador A302 de excitación de banda alta, tal como se muestra en el diagrama de bloques de la figura 13, se dispone el calculador 460 de envolvente para calcular la envolvente de la señal S160 extendida armónicamente. En una implementación A306 del generador A302 de excitación de banda alta, tal como se muestra en el diagrama de bloques de la figura 14, se dispone el calculador 460 de envolvente para calcular la envolvente de la señal S80 de excitación de banda estrecha. Pueden configurarse de otro modo otras implementaciones del generador A302 de excitación de banda alta para añadir ruido a la señal S160 extendida armónicamente según las ubicaciones de los impulsos de altura tonal de banda estrecha en el tiempo.
El calculador 460 de envolvente puede estar configurado para llevar a cabo un cálculo de envolvente como una tarea que incluye una serie de subtareas. La figura 15 muestra un diagrama de flujo de un ejemplo T100 de una tarea de este tipo. La subtarea T110 calcula el cuadrado de cada muestra de la trama de la señal cuya envolvente debe modelarse (por ejemplo, la señal S80 de excitación de banda estrecha o la señal S160 extendida armónicamente) para producir una secuencia de valores al cuadrado. La subtarea T120 lleva a cabo una operación de suavizado en la secuencia de valores al cuadrado. En un ejemplo, la subtarea T120 aplica un filtro de paso bajo IIR de primer orden a la secuencia según la expresión
en la que x es la entrada de filtro, y es la salida de filtro, n es un índice en el dominio del tiempo, y a es un coeficiente de suavizado que tiene un valor entre 0,5 y 1. El valor del coeficiente de suavizado a puede ser fijo o, en una implementación alternativa, puede ser adaptativo según una indicación de ruido en la señal de entrada, de tal manera que a se aproxima más a 1 en ausencia de ruido y más a 0,5 en presencia de ruido. La subtarea T130 aplica una función de raíz cuadrada a cada muestra de la secuencia suavizada para producir la envolvente en el dominio del tiempo.
Una implementación de este tipo del calculador 460 de envolvente puede configurarse para llevar a cabo las diversas subtareas de la tarea T100 en serie y/o paralelo. En implementaciones adicionales de la tarea T100, la subtarea T110 puede estar precedida por una operación de paso de banda configurada para seleccionar una parte de frecuencia deseada de la señal cuya envolvente debe modelarse, tal como el intervalo de 3-4 kHz.
El combinador 490 está configurado para mezclar la señal S160 extendida armónicamente y la señal S170 de ruido modulado para producir la señal S120 de excitación de banda alta. Pueden configurarse implementaciones de combinador 490, por ejemplo, para calcular la señal S120 de excitación de banda alta como una suma de la señal S160 extendida armónicamente y la señal S170 de ruido modulado. Una implementación de este tipo de combinador 490 puede configurarse para calcular la señal S120 de excitación de banda alta como una suma ponderada aplicando un factor de ponderación a la señal S160 extendida armónicamente y/o a la señal S170 de ruido modulado antes de la suma. Cada factor de ponderación de este tipo puede calcularse según uno o más criterios y puede ser un valor fijo o, como alternativa, un valor adaptativo que se calcula trama por trama o subtrama por subtrama.
La figura 16 muestra un diagrama de bloques de una implementación 492 de combinador 490 que está configurado para calcular la señal S120 de excitación de banda alta como una suma ponderada de la señal S160 extendida armónicamente y la señal S170 de ruido modulado. El combinador 492 está configurado para ponderar la señal S160 extendida armónicamente según el factor S180 de ponderación de armónicos, para ponderar la señal S170 de ruido modulado según el factor S190 de ponderación de ruidos, y para emitir la señal S120 de excitación de banda alta como una suma de las señales ponderadas. En este ejemplo, el combinador 492 incluye un calculador 550 de factor de ponderación que está configurado para calcular el factor S180 de ponderación de armónicos y el factor S190 de ponderación de ruidos.
El calculador 550 de factor de ponderación puede estar configurado para calcular los factores S180 y S190 de ponderación según una relación deseada de contenido de armónicos a contenido de ruido en la señal S120 de excitación de banda alta. Por ejemplo, puede ser deseable que el combinador 492 produzca la señal S120 de excitación de banda alta para tener una relación de energía de armónicos a energía de ruido similar a la de la señal S30 de banda alta. En algunas implementaciones del calculador 550 de factor de ponderación, se calculan los factores S180, S190 de ponderación según uno o más parámetros relativos a una periodicidad de la señal S20 de banda estrecha o de la señal residual de banda estrecha, tal como ganancia de altura tonal y/o modo de habla. Una implementación de este tipo del calculador 550 de factor de ponderación puede configurarse para asignar un valor al factor S180 de ponderación de armónicos que es proporcional a la ganancia de altura tonal, por ejemplo, y/o para asignar un valor superior al factor S190 de ponderación de ruidos para señales de habla no vocales que para señales de habla vocales.
En otras implementaciones, el calculador 550 de factor de ponderación está configurado para calcular valores para el factor S180 de ponderación de armónicos y/o el factor S190 de ponderación de ruidos según una medida de periodicidad de la señal S30 de banda alta. En un ejemplo de este tipo, el calculador 550 de factor de ponderación calcula el factor S180 de ponderación de armónicos como el valor máximo del coeficiente de autocorrelación de la señal S30 de banda alta para la trama o subtrama actual, donde se lleva a cabo la autocorrelación por un intervalo de búsqueda que incluye un retardo de un retraso de altura tonal y no incluye un retardo de muestras cero. La figura 17 muestra un ejemplo de un intervalo de búsqueda de este tipo de muestras de longitud n que se centra sobre un retardo de un retraso de altura tonal y tiene un ancho no mayor que un retraso de altura tonal.
La figura 17 también muestra un ejemplo de otro enfoque en el que el calculador 550 de factor de ponderación calcula una medida de periodicidad de la señal S30 de banda alta en varias etapas. En una primera etapa, se divide la trama actual en una serie de subtramas, y se identifica por separado para cada subtrama el retardo para el que el coeficiente de autocorrelación es máximo. Tal como se mencionó anteriormente, la autocorrelación se lleva a cabo por un intervalo de búsqueda que incluye un retardo de un retraso de altura tonal y no incluye un retardo de muestras cero.
En una segunda etapa, se construye una trama retardada aplicando el retardo identificado correspondiente a cada subtrama, concatenando las subtramas resultantes para construir una trama retardada óptimamente, y calculando el factor S180 de ponderación de armónicos como el coeficiente de correlación entre la trama original y la trama retardada óptimamente. En otra alternativa, el calculador 550 de factor de ponderación calcula el factor S180 de ponderación de armónicos como un promedio de los coeficientes de autocorrelación máximos obtenidos en la primera etapa para cada subtrama. También pueden configurarse implementaciones del calculador 550 de factor de ponderación para ajustar a escala el coeficiente de correlación, y/o combinarlo con otro valor, para calcular el valor para el factor S180 de ponderación de armónicos.
Puede ser deseable que el calculador 550 de factor de ponderación calcule una medida de periodicidad de la señal S30 de banda alta sólo en los casos en los que se indique de otro modo una presencia de periodicidad en la trama. Por ejemplo, el calculador 550 de factor de ponderación puede estar configurado para calcular una medida de periodicidad de la señal S30 de banda alta según una relación entre otro indicador de periodicidad de la trama actual, tal como ganancia de altura tonal, y un valor umbral. En un ejemplo, el calculador 550 de factor de ponderación está configurado para llevar a cabo una operación de autocorrelación en la señal S30 de banda alta sólo si la ganancia de altura tonal de la trama (por ejemplo, la ganancia del libro de códigos adaptativo del resto de banda estrecha) tiene un valor de más de 0,5 (como alternativa, al menos 0,5). En otro ejemplo, el calculador 550 de factor de ponderación está configurado para llevar a cabo una operación de autocorrelación en la señal S30 de banda alta sólo para las tramas que tengan estados particulares de modo de habla (por ejemplo, sólo para señales vocales). En tales casos, el calculador 550 de factor de ponderación puede estar configurado para asignar un factor de ponderación por defecto para tramas que tengan otros estados de modo de habla y/o valores inferiores de ganancia de altura tonal.
Las realizaciones incluyen otras implementaciones del calculador 550 de factor de ponderación que están configuradas para calcular factores de ponderación según características diferentes de o además de la periodicidad. Por ejemplo, una implementación de este tipo puede estar configurada para asignar un valor superior al factor S190 de ganancia de ruido para señales de habla que tengan un retraso de altura tonal grande que para señales de habla que tengan un retraso de altura tonal pequeño. Otra implementación de este tipo del calculador 550 de factor de ponderación está configurada para determinar una medida de armonicidad de la señal S10 de habla de banda ancha, o de la señal S30 de banda alta, según una medida de la energía de la señal en componentes múltiples de la frecuencia fundamental en relación con la energía de la señal en otras componentes de frecuencia.
Algunas implementaciones del codificador A100 de habla de banda ancha están configuradas para emitir una indicación de periodicidad o armonicidad (por ejemplo una bandera de un bit que indica si la trama es armónica o no armónica) basándose en la ganancia de altura tonal y/u otra medida de periodicidad o armonicidad tal como se describe en el presente documento. En un ejemplo, un decodificador B100 de habla de banda ancha correspondiente usa esta indicación para configurar una operación tal como el cálculo del factor de ponderación. En otro ejemplo, se usa una indicación de este tipo en el codificador y/o decodificador en el cálculo de un valor para un parámetro de modo de habla.
Puede ser deseable que el generador A302 de excitación de banda alta genere la señal S120 de excitación de banda alta de tal manera que la energía de la señal de excitación no se vea afectada sustancialmente por los valores particulares de los factores S180 y S190 de ponderación. En tal caso, el calculador 550 de factor de ponderación puede configurarse para calcular un valor para el factor S180 de ponderación de armónicos o para el factor S190 de ponderación de ruidos (o para recibir un valor de este tipo del almacenamiento u otro elemento del codificador A200 de banda alta) y para derivar un valor para el otro factor de ponderación según una expresión tal como
en la que Warmónicos indica el factor S180 de ponderación de armónicos y Wruidos el indica el factor S190 de ponderación de ruidos. Como alternativa, el calculador 550 de factor de ponderación puede configurarse para seleccionar, según un valor de una medida de periodicidad para la trama o subtrama actual, uno correspondiente entre una pluralidad de pares de factores S180, S190 de ponderación, donde los pares se calculan previamente para satisfacer una relación de energía constante tal como la expresión (2). Para una implementación del calculador 550 de factor de ponderación en la que se observa la expresión (2), los valores típicos para el factor S180 de ponderación de armónicos oscilan entre aproximadamente 0,7 y aproximadamente 1,0, y los valores típicos para el factor S190 de ponderación de ruidos oscilan entre aproximadamente 0,1 y aproximadamente 0,7. Otras implementaciones del calculador 550 de factor de ponderación pueden configurarse para operar según una versión de la expresión (2) que se modifica según una ponderación de referencia deseada entre la señal S160 extendida armónicamente y la señal S170 de ruido modulado.
Pueden producirse artefactos en una señal de habla sintetizada cuando se ha usado un libro de códigos disperso (uno cuyas entradas son en su mayoría valores cero) para calcular la representación cuantificada del resto. La dispersión del libro de códigos se produce especialmente cuando se codifica la señal de banda estrecha a una tasa de transmisión de bits baja. Los artefactos provocados por la dispersión del libro de códigos son normalmente casi periódicos en el tiempo y se producen en su mayoría por encima de 3 kHz. Debido a que el oído humano tiene una mejor resolución temporal a frecuencias superiores, estos artefactos pueden ser más perceptibles en la banda alta.
Las realizaciones incluyen implementaciones del generador A300 de excitación de banda alta que están configuradas para llevar a cabo un filtrado de antidispersión. La figura 18 muestra un diagrama de bloques de una implementación A312 de un generador A302 de excitación de banda alta que incluye un filtro 600 de antidispersión dispuesto para filtrar la señal de excitación de banda estrecha descuantificada producida por el cuantificador 450 inverso. La figura 19 muestra un diagrama de bloques de una implementación A314 del generador A302 de excitación de banda alta que incluye un filtro 600 de antidispersión dispuesto para filtrar la señal extendida espectralmente producida por el extensor A400 de espectro. La figura 20 muestra un diagrama de bloques de una implementación A316 del generador A302 de excitación de banda alta que incluye un filtro 600 de antidispersión dispuesto para filtrar la salida del combinador 490 para producir la señal S120 de excitación de banda alta. Por supuesto, se contemplan implementaciones del generador A300 de excitación de banda alta que combinan las características de cualquiera de las implementaciones A304 y A306 con las características de cualquiera de las implementaciones A312, A314 y A316 y se dan a conocer expresamente por el presente documento. El filtro 600 de antidispersión también puede disponerse dentro del extensor A400 de espectro: por ejemplo, tras cualquiera de los elementos 510, 520, 530 y 540 en el extensor A402 de espectro. Se indica expresamente que el filtro 600 de antidispersión también puede usarse con implementaciones del extensor A400 de espectro que lleven a cabo plegado espectral, traslación espectral o extensión armónica.
El filtro 600 de antidispersión puede configurarse para alterar la fase de su señal de entrada. Por ejemplo, puede ser deseable que el filtro 600 de antidispersión esté configurado y dispuesto de tal manera que la fase de la señal S120 de excitación de banda alta sea aleatoria,
o de otro modo se distribuya más uniformemente, a través del tiempo. También puede ser deseable que la respuesta del filtro 600 de antidispersión sea espectralmente plana de tal manera que no se cambie de manera apreciable el espectro de magnitud de la señal filtrada. En un ejemplo, el filtro 600 de antidispersión se implementa como un filtro de todo paso que tiene una función de transferencia según la siguiente expresión:
Un efecto de un filtro de este tipo puede ser expandir la energía de la señal de entrada de tal manera que ya no se concentre en sólo unas pocas muestras.
Los artefactos provocados por la dispersión del libro de códigos son habitualmente más perceptibles para señales de tipo ruido, en las que el resto incluye menos información de altura tonal, y también para el habla en ruido de fondo. La dispersión provoca normalmente menos artefactos en casos en los que la excitación tiene una estructura a largo plazo, y de hecho la modificación de fase puede provocar ruido en señales vocales. Por tanto, puede ser deseable configurar el filtro 600 de antidispersión para filtrar señales no vocales y para dejar pasar al menos algunas señales vocales sin alteración. Las señales no vocales se caracterizan por una baja ganancia de altura tonal (por ejemplo ganancia de libro de códigos adaptativo de banda estrecha cuantificada) y una inclinación espectral (por ejemplo primer coeficiente de reflexión cuantificado) cercana a cero o positiva, lo que indica una envolvente espectral plana o inclinada hacia arriba con una frecuencia creciente. Las implementaciones típicas del filtro 600 de antidispersión están configuradas para filtrar sonidos no vocalizados (por ejemplo, tal como se indica por el valor de la inclinación espectral), para filtrar sonidos vocalizados cuando la ganancia de altura tonal está por debajo de un valor umbral (como alternativa, no mayor que el valor umbral), y de otro modo para dejar pasar la señal sin alteración.
Otras implementaciones del filtro 600 de antidispersión incluyen dos o más filtros que se configuran para tener diferentes ángulos de modificación de fase máximos (por ejemplo, hasta 180 grados). En tal caso, el filtro 600 de antidispersión puede configurarse para seleccionar entre estos filtros de componentes según un valor de la ganancia de altura tonal (por ejemplo, la ganancia de LTP o libro de códigos adaptativo cuantificada), de tal manera que se use un ángulo de modificación de fase máximo mayor para tramas que tengan valores de ganancia de altura tonal inferiores. Una implementación del filtro 600 de antidispersión también puede incluir diferentes filtros de componentes que estén configurados para modificar la fase por una mayor
o menor medida del espectro de frecuencia, de tal manera que se use un filtro configurado para modificar la fase por un intervalo de frecuencia más amplio de la señal de entrada para tramas que tengan valores de ganancia de altura tonal inferiores.
Para una reproducción precisa de la señal de habla codificada, puede ser deseable que la relación entre los niveles de las partes de banda alta y banda estrecha de la señal S100 de habla de banda ancha sintetizada sea similar a la de la señal S10 de habla de banda ancha original. Además de una envolvente espectral tal como se representa por los parámetros S60a de codificación de banda alta, el codificador A200 de banda alta puede configurarse para caracterizar la señal S30 de banda alta especificando una envolvente de ganancia o temporal. Tal como se muestra en la figura 10, el codificador A202 de banda alta incluye un calculador A230 de factor de ganancia de banda alta que está configurado y dispuesto para calcular uno o más factores de ganancia según una relación entre la señal S30 de banda alta y la señal S130 de banda alta sintetizada, tal como una diferencia o relación entre las energías de las dos señales por una trama o alguna parte de la misma. En otras implementaciones del codificador A202 de banda alta, el calculador A230 de ganancia de banda alta puede estar configurado de la misma manera pero estar dispuesto en cambio para calcular la envolvente de ganancia según una relación que varía en el tiempo de este tipo entre la señal S30 de banda alta y la señal S80 de excitación de banda estrecha o la señal S120 de excitación de banda alta.
Es probable que las envolventes temporales de la señal S80 de excitación de banda estrecha y la señal S30 de banda alta sean similares. Por tanto, la codificación de una envolvente de ganancia que se base en una relación entre la señal S30 de banda alta y la señal S80 de excitación de banda estrecha (o una señal derivada de la misma, tal como la señal S120 de excitación de banda alta o la señal S130 de banda alta sintetizada) será en general más eficaz que la codificación de una envolvente de ganancia basada sólo en la señal S30 de banda alta. En una implementación típica, el codificador A202 de banda alta está configurado para emitir un índice cuantificado de ocho a doce bits que especifica cinco factores de ganancia para cada trama.
El calculador A230 de factor de ganancia de banda alta puede configurarse para llevar a cabo el cálculo del factor de ganancia como una tarea que incluye una o más series de subtareas. La figura 21 muestra un diagrama de flujo de un ejemplo T200 de una tarea de este tipo que calcula un valor de ganancia para una subtrama correspondiente según las energías relativas de la señal S30 de banda alta y la señal S130 de banda alta sintetizada. Las tareas 220a y 220b calculan las energías de las subtramas correspondientes de las señales respectivas. Por ejemplo, las tareas 220a y 220b pueden configurarse para calcular la energía como una suma de los cuadrados de las muestras de la subtrama respectiva. La tarea T230 calcula un factor de ganancia para la subtrama como la raíz cuadrada de la relación de esas energías. En este ejemplo, la tarea T230 calcula el factor de ganancia como la raíz cuadrada de la relación de la energía de la señal S30 de banda alta a la energía de la señal S130 de banda alta sintetizada a través de la subtrama.
Puede ser deseable que el calculador A230 de factor de ganancia de banda alta se configure para calcular las energías de subtrama según una función ventana. La figura 22 muestra un diagrama de flujo de una implementación T210 de este tipo de una tarea T200 de cálculo de factor de ganancia. La tarea T215a aplica una función ventana a la señal S30 de banda alta, y la tarea T215b aplica la misma función ventana a la señal S130 de banda alta sintetizada. Las implementaciones 222a y 222b de las tareas 220a y 220b calculan las energías de las ventanas respectivas, y la tarea T230 calcula un factor de ganancia para la subtrama como la raíz cuadrada de la relación de las energías.
Puede ser deseable aplicar una función ventana que superponga subtramas adyacentes. Por ejemplo, una función ventana que produzca factores de ganancia que pueda aplicarse en un modo de adición de superposición puede ayudar a reducir o evitar una discontinuidad entre subtramas. En un ejemplo, el calculador A230 de factor de ganancia de banda alta está configurado para aplicar una función ventana trapezoidal tal como se muestra en la figura 23a, en la que la ventana superpone cada una de las dos subtramas adyacentes en un milisegundo. La figura 23b muestra una aplicación de esta función ventana a cada una de las cinco subtramas de una trama de 20 milisegundos. Otras implementaciones del calculador A230 de factor de ganancia de banda alta pueden configurarse para aplicar funciones ventana que tengan diferentes periodos de superposición y/o diferentes formas de ventana (por ejemplo, rectangular, Hamming) que pueden ser simétricas o asimétricas. También es posible que una implementación del calculador A230 de factor de ganancia de banda alta se configure para aplicar diferentes funciones ventana a diferentes subtramas dentro de una trama y/o que una trama incluya subtramas de diferentes longitudes.
Sin limitación, se presentan los siguientes valores como ejemplos para implementaciones particulares. Se supone una trama de 20 ms para estos casos, aunque puede usarse cualquiera otra duración. Para una señal de banda alta muestreada a 7 kHz, cada trama tiene 140 muestras. Si se divide una trama de este tipo en cinco subtramas de igual longitud, cada subtrama tendrá 28 muestras, y la ventana tal como se muestra en la figura 23a tendrá un ancho de 42 muestras. Para una señal de banda alta muestreada a 8 kHz, cada trama tiene 160 muestras. Si se divide una trama de este tipo en cinco subtramas de igual longitud, cada subtrama tendrá 32 muestras, y la ventana tal como se muestra en la figura 23a tendrá un ancho de 48 muestras. En otras implementaciones, pueden usarse subtramas de cualquier ancho, e incluso es posible que una implementación del calculador A230 de ganancia de banda alta se configure para producir un factor de ganancia diferente para cada muestra de una trama.
La figura 24 muestra un diagrama de bloques de una implementación B202 del decodificador B200 de banda alta. El decodificador B202 de banda alta incluye un generador B300 de excitación de banda alta que está configurado para producir la señal S120 de excitación de banda alta basándose en la señal S80 de excitación de banda estrecha. Dependiendo de las opciones de diseño de sistema particulares, el generador B300 de excitación de banda alta puede implementarse según cualquiera de las implementaciones del generador A300 de excitación de banda alta tal como se describe en el presente documento. Normalmente es deseable implementar el generador B300 de excitación de banda alta para que tenga la misma respuesta que el generador de excitación de banda alta del codificador de banda alta del sistema de codificación particular. Puesto que el decodificador B110 de banda estrecha llevará a cabo normalmente la descuantificación de la señal S50 de excitación de banda estrecha codificada, sin embargo, en la mayoría de los casos el generador B300 de excitación de banda alta puede implementarse para recibir la señal S80 de excitación de banda estrecha del decodificador B110 de banda estrecha y no es necesario que incluya un cuantificador inverso configurado para descuantificar la señal S50 de excitación de banda estrecha codificada. También es posible que el decodificador B110 de banda estrecha se implemente para incluir una instancia de filtro 600 de antidispersión dispuesto para filtrar la señal de excitación de banda estrecha descuantificada antes de su entrada en un filtro de síntesis de banda estrecha tal como el filtro 330.
El cuantificador 560 inverso está configurado para descuantificar los parámetros S60a de filtro de banda alta (en este ejemplo, para dar un conjunto de LSF), y la transformada 570 de coeficiente de filtro de LSF a LP está configurada para transformar las LSF en un conjunto de coeficientes de filtro (por ejemplo, tal como se describió anteriormente con referencia al cuantificador 240 inverso y la transformada 250 del codificador A122 de banda estrecha). En otras implementaciones, tal como se mencionó anteriormente, pueden usarse diferentes conjuntos de coeficientes (por ejemplo, coeficientes cepstrales) y/o representaciones de coeficiente (por ejemplo, ISP). El filtro B204 de síntesis de banda alta está configurado para producir una señal de banda alta sintetizada según la señal S120 de excitación de banda alta y el conjunto de coeficientes de filtro. Para un sistema en el que el codificador de banda alta incluye un filtro de síntesis (por ejemplo, como en el ejemplo del codificador A202 descrito anteriormente), puede ser deseable implementar el filtro B204 de síntesis de banda alta para que tenga la misma respuesta (por ejemplo, la misma función de transferencia) que la del filtro de síntesis.
El decodificador B202 de banda alta también incluye un cuantificador 580 inverso configurado para descuantificar los factores S60b de ganancia de banda alta, y un elemento 590 de control de ganancia (por ejemplo, un multiplicador o amplificador) configurado y dispuesto para aplicar los factores de ganancia descuantificados a la señal de banda alta sintetizada para producir la señal S100 de banda alta. Para un caso en el que se especifica la envolvente de ganancia de una trama en más de un factor de ganancia, el elemento 590 de control de ganancia puede incluir una lógica configurada para aplicar los factores de ganancia a las subtramas respectivas, posiblemente según una función ventana que puede ser la misma o una función ventana diferente tal como se aplica por un calculador de ganancia (por ejemplo, el calculador A230 de ganancia de banda alta) del codificador de banda alta correspondiente. En otras implementaciones del decodificador B202 de banda alta, el elemento 590 de control de ganancia está configurado de manera similar pero está dispuesto en cambio para aplicar los factores de ganancia descuantificados a la señal S80 de excitación de banda estrecha o a la señal S120 de excitación de banda alta.
Tal como se mencionó anteriormente, puede ser deseable obtener el mismo estado en el codificador de banda alta y el decodificador de banda alta (por ejemplo, usando valores descuantificados durante la codificación). Por tanto, puede ser deseable en un sistema de codificación según una implementación de este tipo garantizar el mismo estado para los generadores de ruido correspondientes en los generadores A300 y B300 de excitación de banda alta. Por ejemplo, los generadores A300 y B300 de excitación de banda alta de una implementación de este tipo pueden configurarse de tal manera que el estado del generador de ruido sea un función determinística de información ya codificada dentro de la misma trama (por ejemplo, los parámetros S40 de filtro de banda estrecha o una parte de los mismos y/o la señal S50 de excitación de banda estrecha codificada o una parte de la misma).
Uno o más de los cuantificadores de los elementos descritos en el presente documento (por ejemplo, el cuantificador 230, 420 ó 430) pueden configurarse para llevar a cabo una cuantificación de vectores clasificada. Por ejemplo, un cuantificador de este tipo puede configurarse para seleccionar uno de un conjunto de libros de códigos basándose en información que ya se ha codificado dentro de la misma trama en el canal de banda estrecha y/o en el canal de banda alta. Una técnica de este tipo proporciona normalmente un aumento de la eficacia de codificación a expensas del almacenamiento de libro de códigos adicional.
Tal como se trató anteriormente con referencia a, por ejemplo, las figuras 8 y 9, una cantidad considerable de estructura periódica puede permanecer en la señal residual tras la eliminación de la envolvente espectral aproximada de la señal S20 de habla de banda estrecha. Por ejemplo, la señal residual puede contener una secuencia de picos o pulsos aproximadamente periódicos a través del tiempo. Es especialmente probable que tal estructura, que se relaciona normalmente con la altura tonal, se produzca en señales de habla vocales. El cálculo de una representación cuantificada de la señal residual de banda estrecha puede incluir la codificación de esta estructura de altura tonal según un modelo de periodicidad a largo plazo tal como se representa, por ejemplo, por uno o más libros de códigos.
La estructura de altura tonal de una señal residual real puede no adaptarse exactamente al modelo de periodicidad. Por ejemplo, la señal residual puede incluir pequeñas fluctuaciones en la regularidad de las ubicaciones de los pulsos de altura tonal, de tal manera que las distancias entre pulsos de altura tonal sucesivos en una trama no sean exactamente iguales y la estructura no sea muy regular. Estas irregularidades tienden a reducir la eficacia de codificación.
Algunas implementaciones del codificador A120 de banda estrecha están configuradas para llevar a cabo una regularización de la estructura de altura tonal aplicando un alineamiento de tiempo adaptativo al resto antes o durante la cuantificación, o incluyendo de otro modo un alineamiento de tiempo adaptativo en la señal de excitación codificada. Por ejemplo, un codificador de este tipo puede configurarse para seleccionar o calcular de otro modo un grado de alineamiento en el tiempo (por ejemplo, según uno o más criterios de minimización de errores y/o ponderación perceptual) de tal manera que la señal de excitación resultante se ajuste óptimamente al modelo de periodicidad a largo plazo. La regularización de la estructura de altura tonal se lleva a cabo mediante un subconjunto de codificadores CELP denominados codificadores de predicción lineal excitada por códigos de relajación (RCELP).
Un codificador RCELP está configurado normalmente para llevar a cabo el alineamiento de tiempo como un desplazamiento de tiempo adaptativo. Este desplazamiento de tiempo puede ser un retardo que oscile entre unos pocos milisegundos negativos y unos pocos milisegundos positivos, y habitualmente se varía suavemente para evitar discontinuidades audibles. En algunas implementaciones, un codificador de este tipo está configurado para aplicar la regularización por partes, en el que cada trama o subtrama se alinea por un desplazamiento de tiempo fijo correspondiente. En otras implementaciones, el codificador está configurado para aplicar la regularización como una función de alineamiento continua, de tal manera que una trama o subtrama se alinee según un contorno de altura tonal (también denominado trayectoria de altura tonal). En algunos casos (por ejemplo, tal como se describe en la publicación de solicitud de patente estadounidense 2004/0098255), el codificador está configurado para incluir un alineamiento de tiempo en la señal de excitación codificada aplicando el desplazamiento a una señal de entrada ponderada perceptualmente que se usa para calcular la señal de excitación codificada.
El codificador calcula una señal de excitación codificada que se regulariza y cuantifica, y el decodificador descuantifica la señal de excitación codificada para obtener una señal de excitación que se usa para sintetizar la señal de habla decodificada. Por tanto, la señal de salida decodificada presenta el mismo retardo variable que se incluyó en la señal de excitación codificada por la regularización. Normalmente, no se transmite ninguna información que especifique las cantidades de regularización al decodificador.
La regularización tiende a hacer que la señal residual sea más fácil de codificar, lo que mejora la ganancia de codificación del predictor a largo plazo y por tanto impulsa la eficacia de codificación general, generalmente sin generar artefactos. Puede ser deseable llevar a cabo la regularización sólo en tramas vocalizadas. Por ejemplo, el codificador A124 de banda estrecha puede configurarse para desplazar sólo las tramas o subtramas que tengan una estructura a largo plazo, tal como las señales vocales. Incluso puede ser deseable llevar a cabo la regularización sólo en subtramas que incluyan energía de pulso de altura tonal. Se describen diversas implementaciones de codificación por RCELP en las patentes estadounidenses n.os 5,704,003 (Kleijn et al.) y 6,879,955 (Rao) y en la publicación de solicitud de patente estadounidense 2004/0098255 (Kovesi et al.). Las implementaciones existentes de los codificadores RCELP incluyen el códec de tasa variable mejorado (EVRC), tal como se describe en la norma IS-127 de la Asociación de la Industria de las Telecomunicaciones (TIA), y el vocodificador en modo seleccionable (SMV) del Proyecto de asociación de tercera
generación 2 (3GPP2).
Desafortunadamente, la regularización puede provocar problemas para un codificador de habla de banda ancha en el que la excitación de banda alta se deriva de la señal de excitación de banda estrecha codificada (tal como un sistema que incluye el codificador A100 de habla de banda ancha y el decodificador B100 de habla de banda ancha). Debido a su derivación de una señal alineada en el tiempo, la señal de excitación de banda alta tendrá generalmente un perfil de tiempo que es diferente del de la señal de habla de banda alta original. En otras palabras, la señal de excitación de banda alta ya no será síncrona con la señal de habla de banda alta original.
Un desalineamiento en el tiempo entre la señal de excitación de banda alta alineada y la señal de habla de banda alta original puede provocar varios problemas. Por ejemplo, puede ser que la señal de excitación de banda alta alineada ya no proporcione una excitación fuente adecuada para un filtro de síntesis que se configura según los parámetros de filtro extraídos de la señal de habla de banda alta original. Como resultado, la señal de banda alta sintetizada puede contener artefactos audibles que reducen la calidad percibida de la señal de habla de banda ancha decodificada.
El desalineamiento en el tiempo también puede provocar ineficiencias en la codificación de envolvente de ganancia. Tal como se mencionó anteriormente, es probable que exista una correlación entre las envolventes temporales de la señal S80 de excitación de banda estrecha y la señal S30 de banda alta. Codificando la envolvente de ganancia de la señal de banda alta según una relación entre estas dos envolventes temporales, puede observarse un aumento en la eficacia de codificación en comparación con la codificación de la envolvente de ganancia directamente. Cuando se regulariza la señal de excitación de banda estrecha codificada, sin embargo, puede debilitarse esta correlación. El desalineamiento en el tiempo entre la señal S80 de excitación de banda estrecha y la señal S30 de banda alta puede provocar que aparezcan fluctuaciones en los factores S60b de ganancia de banda alta, y puede caer la eficacia de codificación.
Las realizaciones incluyen procedimientos de codificación de habla de banda ancha que llevan a cabo un alineamiento de tiempo de una señal de habla de banda alta según un alineamiento de tiempo incluido en una señal de excitación de banda estrecha codificada correspondiente. Las ventajas potenciales de tales procedimientos incluyen mejorar la calidad de una señal de habla de banda ancha decodificada y/o mejorar la eficacia de codificación de una envolvente de ganancia de banda alta.
La figura 25 muestra un diagrama de bloques de una implementación AD10 del codificador A100 de habla de banda ancha. El codificador AD10 incluye una implementación A124 del codificador A120 de banda estrecha que está configurado para llevar a cabo una regularización durante el cálculo de la señal S50 de excitación de banda estrecha codificada. Por ejemplo, el codificador A124 de banda estrecha puede configurarse según una o más de las implementaciones de RCELP tratadas anteriormente.
El codificador A124 de banda estrecha también está configurado para emitir una señal SD10 de datos de regularización que especifica el grado de alineamiento de tiempo aplicado. Para diversos casos en los que el codificador A124 de banda estrecha está configurado para aplicar un desplazamiento de tiempo fijo a cada trama o subtrama, la señal SD10 de datos de regularización puede incluir una serie de valores que indiquen cada cantidad de desplazamiento de tiempo como un valor entero o no entero en términos de muestras, milisegundos o cualquier otro incremento de tiempo. Para un caso en el que el codificador A124 de banda estrecha está configurado para modificar de otro modo la escala de tiempo de una trama u otra secuencia de muestras (por ejemplo, comprimiendo una parte y expandiendo otra parte), la señal SD10 de información de regularización puede incluir una descripción correspondiente de la modificación, tal como un conjunto de parámetros de función. En un ejemplo particular, el codificador A124 de banda estrecha está configurado para dividir una trama en tres subtramas y para calcular un desplazamiento de tiempo fijo para cada subtrama, de tal manera que la señal SD10 de datos de regularización indique tres cantidades de desplazamiento de tiempo para cada trama regularizada de la señal de banda estrecha codificada.
El codificador AD10 de habla de banda ancha incluye una línea D120 de retardo configurada para avanzar o retardar partes de la señal S30 de habla de banda alta, según cantidades de retardo indicadas por una señal de entrada, para producir la señal S30a de habla de banda alta alineada en el tiempo. En el ejemplo mostrado en la figura 25, la línea D120 de retardo está configurada para alinear en el tiempo la señal S30 de habla de banda alta según el alineamiento indicado por la señal SD10 de datos de regularización. De esta manera, la misma cantidad de alineamiento de tiempo que se incluyó en la señal S50 de excitación de banda estrecha codificada también se aplica a la parte correspondiente de la señal S30 de habla de banda alta antes del análisis. Aunque este ejemplo muestra la línea D120 de retardo como un elemento separado del codificador A200 de banda alta, en otras implementaciones la línea D120 de retardo se dispone como parte del codificador de banda alta.
Otras implementaciones del codificador A200 de banda alta pueden configurarse para llevar a cabo un análisis espectral (por ejemplo, un análisis de LPC) de la señal S30 de habla de banda alta no alineada y para llevar a cabo el alineamiento de tiempo de la señal S30 de habla de banda alta antes del cálculo de los parámetros S60b de ganancia de banda alta. Un codificador de este tipo puede incluir, por ejemplo, una implementación de la línea D120 de retardo dispuesta para llevar a cabo el alineamiento de tiempo. Sin embargo, en tales casos, los parámetros S60a de filtro de banda alta basados en el análisis de la señal S30 no alineada pueden describir una envolvente espectral desalineada en el tiempo con la señal S120 de excitación de banda alta.
La línea D120 de retardo puede configurarse según cualquier combinación de elementos lógicos y elementos de almacenamiento adecuados para aplicar las operaciones de alineamiento de tiempo deseadas a la señal S30 de habla de banda alta. Por ejemplo, la línea D120 de retardo puede configurarse para leer la señal S30 de habla de banda alta desde una memoria intermedia según los desplazamientos de tiempo deseados. La figura 26a muestra un diagrama esquemático de una implementación D122 de este tipo de la línea D120 de retardo que incluye un registro SR1 de desplazamiento. El registro SR1 de desplazamiento es una memoria intermedia de cierta longitud m que está configurada para recibir y almacenar las m muestras más recientes de la señal S30 de habla de banda alta. El valor m es igual a al menos la suma de los desplazamientos de tiempo positivos (o de “avance”) y negativos (o de “retardo”) máximos que van a soportarse. Puede ser conveniente que el valor m sea igual a la longitud de una trama o subtrama de la señal S30 de banda alta.
La línea D122 de retardo está configurada para emitir la señal S30a de banda alta alineada en el tiempo desde una ubicación OL de desfase del registro SR1 de desplazamiento. La posición de la ubicación OL de desfase varía con respecto a una posición de referencia (desplazamiento de tiempo cero) según el desplazamiento de tiempo actual tal como se indica, por ejemplo, por la señal SD10 de datos de regularización. La línea D122 de retardo puede configurarse para soportar límites de avance y retardo iguales o, como alternativa, un límite más grande que el otro de tal manera que pueda llevarse a cabo un mayor desplazamiento en una dirección que en la otra. La figura 26a muestra un ejemplo particular que soporta un mayor desplazamiento de tiempo positivo que negativo. La línea D122 de retardo puede configurarse para emitir una o más muestras cada vez (dependiendo de un ancho de bus de salida, por ejemplo).
Un desplazamiento de tiempo de regularización con una magnitud de más de unos pocos milisegundos puede provocar artefactos audibles en la señal decodificada. Normalmente, la magnitud de un desplazamiento de tiempo de regularización tal como se lleva a cabo por un codificador A124 de banda estrecha no excederá unos pocos milisegundos, de tal manera que se limitarán los desplazamientos de tiempo indicados por la señal SD10 de datos de regularización. Sin embargo, puede desearse en tales casos que la línea D122 de retardo se configure para imponer un límite máximo en los desplazamientos de tiempo en la dirección positiva y/o negativa (por ejemplo, para observar un límite más ajustado que el impuesto por el codificador de banda estrecha).
La figura 26b muestra un diagrama esquemático de una implementación D124 de la línea D122 de retardo que incluye una ventana SW de desplazamiento. En este ejemplo, la posición de la ubicación OL de desfase está limitada por la ventana SW de desplazamiento. Aunque la figura 26b muestra un caso en el que la longitud m de memoria intermedia es mayor que el ancho de la ventana SW de desplazamiento, la línea D124 de retardo también puede implementarse de tal manera que el ancho de la ventana SW de desplazamiento sea igual a m.
En otras implementaciones, la línea D120 de retardo está configurada para escribir la señal S30 de habla de banda alta en una memoria intermedia según los desplazamientos de tiempo deseados. La figura 27 muestra un diagrama esquemático de una implementación D130 de este tipo de la línea D120 de retardo que incluye dos registros SR2 y SR3 de desplazamiento configurados para recibir y almacenar la señal S30 de habla de banda alta. La línea D130 de retardo está configurada para escribir una trama o subtrama del registro SR2 de desplazamiento al registro SR3 de desplazamiento según un desplazamiento de tiempo tal como se indica, por ejemplo, por la señal SD10 de datos de regularización. El registro SR3 de desplazamiento está configurado como una memoria intermedia FIFO dispuesta para emitir la señal S30a de banda alta alineada en el tiempo.
En el ejemplo particular mostrado en la figura 27, el registro SR2 de desplazamiento incluye una parte FB1 de memoria intermedia de trama y una parte DB de memoria intermedia de retardo, y el registro SR3 de desplazamiento incluye una parte FB2 de memoria intermedia de trama, una parte AB de memoria intermedia de avance, y una parte RB de memoria intermedia de retardo. Las longitudes de la memoria AB intermedia de avance y la memoria RB intermedia de retardo pueden ser iguales, o una puede ser más grande que la otra, de tal manera que se soporta un mayor desplazamiento en una dirección que en la otra. La memoria DB intermedia de retardo y la parte RB de memoria intermedia de retardo pueden configurarse para tener la misma longitud. Como alternativa, la memoria DB intermedia de retardo puede ser más pequeña que la memoria RB intermedia de retardo para representar un intervalo de tiempo requerido para transferir muestras desde la memoria FB1 intermedia de trama al registro SR3 de desplazamiento, que puede incluir otras operaciones de procesamiento tales como alineamiento de las muestras antes del almacenamiento en el registro SR3 de desplazamiento.
En el ejemplo de la figura 27, la memoria FB1 intermedia de trama está configurada para tener una longitud igual a la de una trama de la señal S30 de banda alta. En otro ejemplo, la memoria FB1 intermedia de trama está configurada para tener una longitud igual a la de una subtrama de la señal S30 de banda alta. En tal caso, la línea D130 de retardo puede configurarse para incluir una lógica para aplicar el mismo retardo (por ejemplo, un promedio) a todas las subtramas de una trama que va a desplazarse. La línea D130 de retardo también puede incluir una lógica para promediar valores de la memoria FB1 intermedia de trama con valores que van a sobreescribirse en la memoria RB intermedia de retardo o la memoria AB intermedia de avance. En otro ejemplo, el registro SR3 de desplazamiento puede configurarse para recibir valores de la señal S30 de banda alta sólo por medio de la memoria FB1 intermedia de trama, y en tal caso la línea D130 de retardo puede incluir una lógica para interpolar pausas entre tramas o subtramas sucesivas escritas en el registro SR3 de desplazamiento. En otras implementaciones, la línea D130 de retardo puede configurarse para llevar a cabo una operación de alineamiento en muestras de la memoria FB1 intermedia de trama antes de escribirlas en el registro SR3 de desplazamiento (por ejemplo, según una función descrita por la señal SD10 de datos de regularización).
Puede ser deseable que la línea D120 de retardo aplique un alineamiento de tiempo que se base en, pero no sea idéntico a, el alineamiento especificado por la señal SD10 de datos de regularización. La figura 28 muestra un diagrama de bloques de una implementación AD12 del codificador AD10 de habla de banda ancha que incluye un correlacionador D110 de valor de retardo. El correlacionador D110 de valor de retardo está configurado para correlacionar el alineamiento indicado por la señal SD10 de datos de regularización con valores SD10a de retardo correlacionados. La línea D120 de retardo se dispone para producir la señal S30a de habla de banda alta alineada en el tiempo según el alineamiento indicado por los valores SD10a de retardo correlacionados.
Puede esperarse que el desplazamiento de tiempo aplicado por el codificador de banda estrecha evolucione suavemente a través del tiempo. Por tanto, normalmente es suficiente computar el desplazamiento de tiempo de banda estrecha promedio aplicado a las subtramas durante una trama de habla, y desplazar una trama correspondiente de la señal S30 de habla de banda alta según este promedio. En un ejemplo de este tipo, el correlacionador D110 de valor de retardo está configurado para calcular un promedio de los valores de retardo de subtrama para cada trama, y la línea D120 de retardo está configurada para aplicar el promedio calculado a una trama correspondiente de la señal S30 de banda alta. En otros ejemplos, puede calcularse y aplicarse un promedio a través de un periodo más corto (tal como dos subtramas, o la mitad de una trama) o un periodo más largo (tal como dos tramas). En un caso en el que el promedio sea un valor no entero de muestras, el correlacionador D110 de valor de retardo puede configurarse para redondear el valor a un número entero de muestras antes de emitirlo a la línea D120 de retardo.
El codificador A124 de banda estrecha puede configurarse para incluir un
desplazamiento de tiempo de regularización de un número no entero de muestras en la señal de excitación de banda estrecha codificada. En un caso de este tipo, puede ser deseable que el correlacionador D110 de valor de retardo se configure para redondear el desplazamiento de tiempo de banda estrecha a un número entero de muestras y que la línea D120 de retardo aplique el desplazamiento de tiempo redondeado a la señal S30 de habla de banda alta.
En algunas implementaciones del codificador AD10 de habla de banda ancha, pueden diferir las tasas de muestreo de la señal S20 de habla de banda estrecha y la señal S30 de habla de banda alta. En tales casos, el correlacionador D110 de valor de retardo puede configurarse para ajustar las cantidades de desplazamiento de tiempo indicadas en la señal SD10 de datos de regularización para representar una diferencia entre las tasas de muestreo de la señal S20 de habla de banda estrecha (o señal S80 de excitación de banda estrecha) y la señal S30 de habla de banda alta. Por ejemplo, el correlacionador D110 de valor de retardo puede configurarse para ajustar a escala las cantidades de desplazamiento de tiempo según una relación de las tasas de muestreo. En un ejemplo particular tal como se mencionó anteriormente, se muestrea la señal S20 de habla de banda estrecha a 8 kHz, y se muestrea la señal S30 de habla de banda alta a 7 kHz. En este caso, el correlacionador D110 de valor de retardo está configurado para multiplicar cada cantidad de desplazamiento por 7/8. También pueden configurarse implementaciones del correlacionador D110 de valor de retardo para llevar a cabo una operación de ajuste a escala de este tipo junto con una operación de redondeo a número entero y/o promediación de desplazamiento de tiempo tal como se describe en el presente documento.
En otras implementaciones, la línea D120 de retardo está configurada para modificar de otro modo la escala de tiempo de una trama u otra secuencia de muestras (por ejemplo, comprimiendo una parte y expandiendo otra parte). Por ejemplo, el codificador A124 de banda estrecha puede configurarse para llevar a cabo la regularización según una función tal como una trayectoria o contorno de altura tonal. En tal caso, la señal SD10 de datos de regularización puede incluir una descripción correspondiente de la función, tal como un conjunto de parámetros, y la línea D120 de retardo puede incluir una lógica configurada para alinear tramas o subtramas de la señal S30 de habla de banda alta según la función. En otras implementaciones, el correlacionador D110 de valor de retardo está configurado para promediar, ajustar a escala y/o redondear la función antes de que se aplique a la señal S30 de habla de banda alta por la línea D120 de retardo. Por ejemplo, el correlacionador D110 de valor de retardo puede configurarse para calcular uno o más valores de retardo según la función, indicando cada valor de retardo una serie de muestras, que entonces se aplican por la línea D120 de retardo para alinear en el tiempo una o más tramas o subtramas correspondientes de
la señal S30 de habla de banda alta.
La figura 29 muestra un diagrama de flujo para un procedimiento MD100 de alineamiento de tiempo de una señal de habla de banda alta según un alineamiento de tiempo que se incluye en una señal de excitación de banda estrecha codificada correspondiente. La tarea TD100 procesa una señal de habla de banda ancha para obtener una señal de habla de banda estrecha y una señal de habla de banda alta. Por ejemplo, la tarea TD100 puede configurarse para filtrar la señal de habla de banda ancha usando un banco de filtros con filtros de paso bajo y paso alto, tales como una implementación del banco A110 de filtros. La tarea TD200 codifica la señal de habla de banda estrecha en al menos una señal de excitación de banda estrecha codificada y una pluralidad de parámetros de filtro de banda estrecha. Pueden cuantificarse la señal de excitación de banda estrecha codificada y/o los parámetros de filtro, y la señal de habla de banda estrecha codificada también puede incluir otros parámetros tales como un parámetro de modo de habla. La tarea TD200 también incluye un alineamiento de tiempo en la señal de excitación de banda estrecha codificada.
La tarea TD300 genera una señal de excitación de banda alta basándose en una señal de excitación de banda estrecha. En este caso, la señal de excitación de banda estrecha se basa en la señal de excitación de banda estrecha codificada. Según al menos la señal de excitación de banda alta, la tarea TD400 codifica la señal de habla de banda alta en al menos una pluralidad de parámetros de filtro de banda alta. Por ejemplo, la tarea TD400 puede configurarse para codificar la señal de habla de banda alta en una pluralidad de LSF cuantificadas. La tarea TD500 aplica un desplazamiento de tiempo a la señal de habla de banda alta que se basa en información relativa a un alineamiento de tiempo que se incluye en la señal de excitación de banda estrecha codificada.
La tarea TD400 puede configurarse para llevar a cabo un análisis espectral (tal como un análisis de LPC) en la señal de habla de banda alta, y/o para calcular una envolvente de ganancia de la señal de habla de banda alta. En tales casos, la tarea TD500 puede configurarse para aplicar el desplazamiento de tiempo a la señal de habla de banda alta antes del análisis y/o el cálculo de la envolvente de ganancia.
Otras implementaciones del codificador A100 de habla de banda ancha están configuradas para invertir un alineamiento de tiempo de la señal S120 de excitación de banda alta provocado por un alineamiento de tiempo que se incluye en la señal de excitación de banda estrecha codificada. Por ejemplo, el generador A300 de excitación de banda alta puede implementarse para incluir una implementación de la línea D120 de retardo que está configurada para recibir la señal SD10 de datos de regularización o los valores SD10a de retardo correlacionados, y para aplicar un desplazamiento de tiempo inverso correspondiente a la señal S80 de excitación de banda estrecha, y/o a una señal posterior basándose en la misma tal como la señal S160 extendida armónicamente o la señal S120 de excitación de banda alta.
Otras implementaciones del codificador de habla de banda ancha pueden configurarse para codificar la señal S20 de habla de banda estrecha y la señal S30 de habla de banda alta independientemente entre sí, de tal manera que se codifique la señal S30 de habla de banda alta como una representación de una envolvente espectral de banda alta y una señal de excitación de banda alta. Puede configurarse una implementación de este tipo para llevar a cabo un alineamiento de tiempo de la señal residual de banda alta, o incluir de otro modo un alineamiento de tiempo en una señal de excitación de banda alta codificada, según información relativa a un alineamiento de tiempo que se incluye en la señal de excitación de banda estrecha codificada. Por ejemplo, el codificador de banda alta puede incluir una implementación de la línea D120 de retardo y/o el correlacionador D110 de valor de retardo tal como se describe en el presente documento que se configuran para aplicar un alineamiento de tiempo a la señal residual de banda alta. Las ventajas potenciales de una operación de este tipo incluyen una codificación más eficaz de la señal residual de banda alta y una mejor adaptación entre las señales de habla de banda alta y banda estrecha sintetizadas.
Tal como se mencionó anteriormente, las realizaciones tal como se describen en el presente documento incluyen implementaciones que pueden usarse para llevar a cabo una codificación integrada, soportando compatibilidad con sistemas de banda estrecha y evitando la necesidad de transcodificación. El soporte para la codificación de banda alta también puede servir para diferenciar en una base de coste entre chips, conjuntos de chips, dispositivos y/o redes con soporte de banda ancha con compatibilidad hacia atrás, y aquéllos que sólo tienen soporte de banda estrecha. También puede usarse soporte para codificación de banda alta tal como se describe en el presente documento conjuntamente con una técnica para soportar la codificación de banda baja, y un sistema, procedimiento o aparato según una realización de este tipo puede soportar la codificación de componentes de frecuencia, por ejemplo, desde aproximadamente 50 Hz ó 100 Hz hasta aproximadamente 7 kHz u 8 kHz.
Tal como se mencionó anteriormente, la adición de soporte de banda alta a un codificador de habla puede mejorar la inteligibilidad, especialmente en relación con la diferenciación de fricativas. Aunque tal diferenciación puede deducirse habitualmente por un oyente humano del contexto particular, el soporte de banda alta puede servir como una característica de habilitación en el reconocimiento del habla y otras aplicaciones de interpretación por máquina, tales como sistemas para navegación en menú por voz automatizada y/o procesamiento de llamadas automático.
Un aparato según una realización puede integrarse en un dispositivo portátil para las comunicaciones inalámbricas tal como un teléfono celular o asistente digital personal (PDA). Como alternativa, puede incluirse un aparato de este tipo en otro dispositivo de comunicaciones tal como un microteléfono VoIP, un ordenador personal configurado para soportar comunicaciones VoIP, o un dispositivo de red configurado para encaminar comunicaciones VoIP o telefónicas. Por ejemplo, puede implementarse un aparato según una realización en un chip o conjunto de chips para un dispositivo de comunicaciones. Dependiendo de la aplicación particular, un dispositivo de este tipo también puede incluir tales características como conversión analógica-digital y/o digital-analógica de una señal de habla, un conjunto de circuitos para llevar a cabo operaciones de amplificación y/u otras operaciones de procesamiento de señales en una señal de habla, y/o un conjunto de circuitos de radiofrecuencia para la transmisión y/o recepción de la señal de habla codificada.
Se contempla y da a conocer explícitamente que las realizaciones pueden incluir y/o usarse con una cualquiera o más de las otras características dadas a conocer en las solicitudes de patentes provisionales estadounidenses n.os 60/667,901 y 60/673,965 (ahora publicaciones estadounidenses n. os 2006/0282263, 2007/0088558, 2007/0088541, 2006/0277042, 2007/0088542, 2006/0277038, 2006/0271356, y la solicitud estadounidense n.°11/397,871) de las que esta solicitud reivindica beneficio. Tales características incluyen la eliminación de ráfagas de alta energía de corta duración que se producen en la banda alta y carecen sustancialmente de la banda estrecha. Tales características incluyen suavizado adaptativo o fijo de representaciones de coeficiente tales como las LSF de banda alta. Tales características incluyen conformación adaptativa o fija de ruido asociada con cuantificación de representaciones de coeficiente tales como las LSF. Tales características también incluyen suavizado adaptativo o fijo de una envolvente de ganancia, y atenuación adaptativa de una envolvente de ganancia.
La presentación anterior de las realizaciones descritas se proporciona para permitir a cualquier experto en la técnica realizar o usar la presente invención. Son posibles diversas modificaciones de estas realizaciones, y los principios genéricos presentados en el presente documento también pueden aplicarse a otras realizaciones. Por ejemplo, una realización puede implementarse en parte o en su totalidad como un circuito cableado, como una configuración de circuito fabricada en un circuito integrado de aplicación específica, o como un programa de firmware cargado en un almacenamiento no volátil o un programa de software cargado desde o en un medio de almacenamiento de datos como código legible por máquina, siendo dicho código instrucciones ejecutables por una matriz de elementos lógicos tales como un microprocesador u otra unidad de procesamiento de señales digitales. El medio de almacenamiento de datos puede ser una matriz de elementos de almacenamiento tales como una memoria de semiconductores (que puede incluir sin limitación RAM (memoria de acceso aleatorio) estática o dinámica, ROM (memoria de sólo lectura) y/o flash RAM), o memoria ferroeléctrica, magnetorresistiva, ovónica, polimérica o de cambio de fase; o un medio de disco tal como un disco óptico o magnético. El término “software” debe entenderse como que incluye código fuente, código de lenguaje de ensamblaje, código de máquina, código binario, firmware, macrocódigo, microcódigo, uno cualquiera o más de conjuntos o secuencias de instrucciones ejecutables por una matriz de elementos lógicos, y cualquier combinación de tales ejemplos.
Los diversos elementos de implementaciones de los generadores A300 y B300 de excitación de banda alta, el codificador A200 de banda alta, decodificador B200 de banda alta, codificador A100 de habla de banda ancha y decodificador B100 de habla de banda ancha pueden implementarse como dispositivos ópticos y/o electrónicos que residan, por ejemplo, en el mismo chip o entre dos o más chips en un conjunto de chips, aunque también se contemplan otras disposiciones sin tal limitación. Uno o más elementos de un aparato de este tipo pueden implementarse en su totalidad o en parte como uno o más conjuntos de instrucciones dispuestos para ejecutarse en una o más matrices programables o fijas de elementos lógicos (por ejemplo, transistores, puertas) tales como microprocesadores, procesadores integrados, núcleos IP, procesadores de señal digital, FPGA (disposiciones de puertas programables en campo), ASSP (productos estándar de aplicación específica) y ASIC (circuitos integrados de aplicación específica). También es posible que uno o más de tales elementos tengan una estructura en común (por ejemplo, un procesador usado para ejecutar partes de código correspondientes a elementos diferentes en momentos diferentes, un conjunto de instrucciones ejecutadas para llevar a cabo tareas correspondientes a elementos diferentes en momentos diferentes, o una disposición de dispositivos ópticos y/o electrónicos que lleven a cabo operaciones para elementos diferentes en momentos diferentes). Además, es posible que uno
o más de tales elementos se use para llevar a cabo tareas o ejecutar otros conjuntos de instrucciones que no se relacionen directamente con una operación del aparato, tales como una tarea que se relacione con otra operación de un dispositivo o sistema en el que se integre el aparato.
La figura 30 muestra un diagrama de flujo de un procedimiento M100, según una realización, de codificación de una parte de banda alta de una señal de habla que tiene una parte de banda estrecha y la parte de banda alta. La tarea X100 calcula un conjunto de parámetros de filtro que caracterizan una envolvente espectral de la parte de banda alta. La tarea X200 calcula una señal extendida espectralmente aplicando una función no lineal a una señal derivada de la parte de banda estrecha. La tarea X300 genera una señal de banda alta sintetizada según (A) el conjunto de parámetros de filtro y (B) una señal de excitación de banda alta basada en la señal extendida espectralmente. La tarea X400 calcula una envolvente de ganancia basándose en una relación entre (C) la energía de la parte de banda alta y (D) la energía de una señal derivada de la parte de banda estrecha.
La figura 31a muestra un diagrama de flujo de un procedimiento M200 de generación de una señal de excitación de banda alta según una realización. La tarea Y100 calcula una señal extendida armónicamente aplicando una función no lineal a una señal de excitación de banda estrecha derivada de una parte de banda estrecha de una señal de habla. La tarea Y200 mezcla la señal extendida armónicamente con una señal de ruido modulado para generar una señal de excitación de banda alta. La figura 31b muestra un diagrama de flujo de un procedimiento M210 de generación de una señal de excitación de banda alta según otra realización que incluye las tareas Y300 e Y400. La tarea Y300 calcula una envolvente en el dominio del tiempo según la energía a través del tiempo de una entre la señal de excitación de banda estrecha y la señal extendida armónicamente. La tarea Y400 modula una señal de ruido según la envolvente en el dominio del tiempo para producir la señal de ruido modulado.
La figura 32 muestra un diagrama de flujo de un procedimiento M300 según una realización, de decodificación de una parte de banda alta de una señal de habla que tiene una parte de banda estrecha y la parte de banda alta. La tarea Z100 recibe un conjunto de parámetros de filtro que caracterizan una envolvente espectral de la parte de banda alta y un conjunto de factores de ganancia que caracterizan una envolvente temporal de la parte de banda alta. La tarea Z200 calcula una señal extendida espectralmente aplicando una función no lineal a una señal derivada de la parte de banda estrecha. La tarea Z300 genera una señal de banda alta sintetizada según (A) el conjunto de parámetros de filtro y (B) una señal de excitación de banda alta basada en la señal extendida espectralmente. La tarea Z400 modula una envolvente de ganancia de la señal de banda alta sintetizada basándose en el conjunto de factores de ganancia. Por ejemplo, la tarea Z400 puede configurarse para modular la envolvente de ganancia de la señal de banda alta sintetizada aplicando el conjunto de factores de ganancia a una señal de excitación derivada de la parte de banda estrecha, a la señal extendida espectralmente, a la señal de excitación de banda alta o a la señal de banda alta sintetizada.
Claims (26)
- REIVINDICACIONES
- 1.
- Un procedimiento de codificación de una parte (S30) de banda alta de una señal (S10) de habla que tiene una parte (S20) de banda baja y la parte (S30) de banda alta, comprendiendo dicho procedimiento:
calcular una pluralidad de parámetros (S60a) de filtro que caracterizan una envolvente espectral de la parte de banda alta; calcular una señal (S160) extendida espectralmente extendiendo el espectro de una señal (S50, S80) de excitación derivada de la parte de banda baja; sumar la señal (S160) extendida espectralmente con ruido (S170) modulado según una envolvente derivada de la parte (S50, S80) de banda baja, para proporcionar una señal (S120) de excitación de banda alta; y calcular una envolvente (S60b) de ganancia basándose en una relación entre la parte (S30) de banda alta y una señal (S50, S80, S120, S130) basada en la parte de banda baja. -
- 2.
- El procedimiento según la reivindicación 1, en el que dicho cálculo de una señal (S120, S160) extendida espectralmente comprende extender el espectro (A400, A402) de la señal derivada de la parte (S50, S80) de banda baja aplicando una función (520) no lineal a la señal.
-
- 3.
- El procedimiento según la reivindicación 2, en el que dicho cálculo de una envolvente (S60b) de ganancia se basa en una relación entre la energía de la parte (S30) de banda alta y la energía de la señal basada en la parte (S120, S130) de banda baja.
-
- 4.
- El procedimiento según la reivindicación 1, en el que dicha envolvente (S60b) de ganancia incluye una pluralidad de factores (S60b) de ganancia, correspondiendo cada uno a una diferente en una serie de subtramas consecutivas de una trama de la parte (S30) de banda alta, y en el que dicho cálculo de una envolvente (S60b) de ganancia basándose en una relación entre la parte (S30) de banda alta y una señal basada en la parte (S120, S130) de banda baja incluye calcular cada uno de la pluralidad de factores (S60b) de ganancia basándose en una relación entre (A) la energía de la subtrama respectiva de la parte (S30) de banda alta y (B) la energía de una parte correspondiente en el tiempo de la señal basada en la parte (S120, S130) de banda baja.
-
- 5.
- El procedimiento según la reivindicación 4, en el que dicho cálculo de cada uno de la pluralidad de factores (S60b) de ganancia incluye, para al menos uno de los factores (S60b) de ganancia, calcular una energía de la subtrama respectiva de la parte (S30) de banda alta usando una función ventana que superpone subtramas adyacentes de la parte (S30) de banda alta.
-
- 6.
- El procedimiento según la reivindicación 1, comprendiendo dicho procedimiento generar una señal (S130) de banda alta sintetizada según (A) una señal (S120) de excitación de banda alta basándose en la señal (S160) extendida espectralmente y (B) la pluralidad de parámetros (S60a) de filtro, y en el que la señal basada en la parte (S20, S130) de banda baja es la señal (S130) de banda alta sintetizada.
-
- 7.
- El procedimiento según la reivindicación 6, en el que dicha envolvente (S60b) de ganancia incluye una pluralidad de factores (S60b) de ganancia, correspondiendo cada uno a una diferente en una serie de subtramas consecutivas de una trama de la parte (S130) de banda alta, y en el que dicho cálculo de una envolvente (S60b) de ganancia incluye calcular cada uno de la pluralidad de factores (S60b) de ganancia basándose en una relación entre (A) la energía de la subtrama respectiva de la parte (S30) de banda alta y (B) la energía de una parte correspondiente en el tiempo de la señal (S130) de banda alta sintetizada.
-
- 8.
- El procedimiento según la reivindicación 7, en el que dicho cálculo de cada uno de la pluralidad de factores (S60b) de ganancia incluye, para al menos uno de los factores (S60b) de ganancia, calcular una energía de la subtrama respectiva de la parte (S30) de banda alta usando una función (T215a, T215b) ventana que superpone subtramas adyacentes de la parte (S30) de banda alta.
-
- 9.
- El procedimiento según la reivindicación 8, en el que dicho cálculo de una señal (S120, S160) extendida espectralmente comprende extender el espectro (A400, A402) de la señal derivada de la parte (S50, S80) de banda baja aplicando una función (520) no lineal a la señal.
-
- 10.
- Un procedimiento de decodificación de una parte (S30, S100) de banda alta de una señal (S10, S110) de habla que tiene una parte (S20, S90) de banda baja y la parte (S30, S100) de banda alta, comprendiendo dicho procedimiento:
recibir una pluralidad de parámetros (S60a) de filtro que caracterizan una envolvente espectral de la parte (S30, S100) de banda alta y una pluralidad de factores (S60b) de ganancia que caracterizan una envolvente temporal de la parte (530, S100) de banda alta; calcular una señal (S160) extendida espectralmente extendiendo el espectro de una señal que se basa en una señal (S50, S80) de excitación de banda baja; sumar la señal (S160) extendida espectralmente con ruido (S170) modulado según una envolvente derivada de la parte (S50, S80) de banda baja, paraproporcionar una señal (S120) de excitación de banda alta;generar una señal (S130) de banda alta sintetizada según (A) la pluralidad de parámetros (S60a) de filtro y (B) dicha señal (S120) de excitación de banda alta; y modificar (590) una envolvente de ganancia de la señal (S130) de banda alta sintetizada según la pluralidad de factores (S60b) de ganancia. - 11. El procedimiento según la reivindicación 10, en el que dicho cálculo de una señal (S160) extendida espectralmente comprende extender el espectro (A400, A402) de la señal que se basa en una señal (S50, S80) de excitación de banda baja aplicando una función(520) no lineal a la señal.
-
- 12.
- El procedimiento según la reivindicación 10, en el que dicha modificación (590) de una envolvente de ganancia incluye modificar, según la pluralidad de factores (S60b) de ganancia, una amplitud a través del tiempo de al menos una entre una señal que se basa en la señal (S50, S80) de excitación de banda baja, la señal (S160) extendida espectralmente, la señal (S120) de excitación de banda alta, y la señal (5130) de banda alta sintetizada.
-
- 13.
- Un aparato (A200, A202) configurado para codificar una parte (S30) de banda alta de una señal (S10) de habla que tiene una parte (S20) de banda baja y la parte (S30) de banda alta, comprendiendo dicho aparato (A200, A202):
un módulo (A210) de análisis configurado para calcular un conjunto de parámetros de filtro que caracterizan una envolvente espectral de la parte (S30) de banda alta; un extensor (A400, A402) de espectro configurado para calcular una señal extendida espectralmente extendiendo el espectro de una señal (S50, S80) de excitación derivada de la parte de banda baja; un combinador (490) configurado para proporcionar una señal (S120) de excitación de banda alta mezclando la señal (S160) extendida espectralmente con ruido (S170) modulado según una envolvente derivada de la parte (S50. S80) de banda baja; y un calculador (A230) de factor de ganancia configurado para calcular una envolvente (S60b) de ganancia basándose en una relación que varía en el tiempo entre la parte (S30) de banda alta y una señal (S50, 580, 5120, 5130) basada en la parte de banda baja. -
- 14.
- El aparato (A200, A202) según la reivindicación 13, en el que dicho extensor (A400, A402) de espectro está configurado para extender el espectro de la señal derivada de la parte (S50, S80) de banda baja aplicando una función (520) no lineal a la señal.
-
- 15.
- El aparato (A200, A202) según la reivindicación 14, en el que dicho calculador (A230) de factor de ganancia está configurado para calcular la envolvente (S60a) de ganancia basándose en una relación que varía en el tiempo entre la energía de la parte (S30) de banda alta y la energía de la señal basada en la parte (5120, S130) de banda baja.
-
- 16.
- El aparato (A200, A2020) según la reivindicación 13, en el que dicha envolvente (S60b) de ganancia incluye una pluralidad de factores (S60b) de ganancia, correspondiendo cada uno a una diferente en una serie de subtramas consecutivas de una trama de la parte (S30) de banda alta, y en el que dicho calculador (A230) de envolvente de ganancia está configurado para calcular cada uno de la pluralidad de factores (S60b) de ganancia basándose en una relación entre (A) la energía de la subtrama respectiva de la parte (S30) de banda alta y
(B) la energía de una parte correspondiente en el tiempo de la señal basada en la parte (S120, S130) de banda baja. -
- 17.
- El aparato (A200, A202) según la reivindicación 16, en el que, para al menos uno de la pluralidad de factores (S60b) de ganancia, dicho calculador (A230) de envolvente de ganancia está configurado para calcular una energía de la subtrama respectiva de la parte (S30) de banda alta usando una función (T215a, T215b) ventana que superpone subtramas adyacentes de la parte (S30) de banda alta.
-
- 18.
- El aparato (A200, A202) según la reivindicación 15, comprendiendo dicho aparato
(A200, A202): un generador (A300, A302, A304, A306, A312, A314, A316) de señal de excitación de banda alta configurado para generar una señal (S120) de excitación de banda alta basándose en la señal (S160) extendida espectralmente; y un filtro (A220) de síntesis configurado para generar una señal (S130) de banda alta sintetizada según la señal (S120) de excitación de banda alta y el conjunto de parámetros de filtro, y en el que la señal basada en la parte (S120, S130) de banda baja es la señal (S130) de banda alta sintetizada. -
- 19.
- El aparato (A200, A202) según la reivindicación 18, en el que dicha envolvente (S60b) de ganancia incluye una pluralidad de factores (S60b) de ganancia, correspondiendo cada uno a una diferente en una serie de subtramas consecutivas de una trama de la parte (S30) de banda alta, y en el que dicho calculador (A230) de envolvente de ganancia está configurado para calcular cada uno de la pluralidad de factores (S60b) de ganancia basándose en una
relación entre (A) la energía de la subtrama respectiva de la parte (S30) de banda alta y(B) la energía de una parte correspondiente en el tiempo de la señal (S130) de banda alta sintetizada. -
- 20.
- El aparato (A200, A202) según la reivindicación 19, en el que, para al menos uno de la pluralidad de factores (S60b) de ganancia, dicho calculador (A230) de envolvente de ganancia está configurado para calcular una energía de la subtrama respectiva de la parte (S30) de banda alta usando una función (T215a, T215b) ventana que superpone subtramas adyacentes de la parte (S30) de banda alta.
-
- 21.
- El aparato (A200, A202) según la reivindicación 20, en el que dicho extensor (A400, A402) de espectro está configurado para extender el espectro de la señal derivada de la parte (S50, S80) de banda baja aplicando una función (520) no lineal a la señal.
-
- 22.
- El aparato (A200, A202) según la reivindicación 13, comprendiendo dicho aparato (A200, A202) un teléfono celular.
-
- 23.
- Un decodificador (B202) de habla de banda alta configurado para recibir (A) una pluralidad de parámetros (S60a) de filtro que caracterizan una envolvente espectral de una parte (S30, S100) de banda alta de una señal (S10, S110) de habla y (B) una señal (S50) de excitación de banda baja codificada basada en una parte (S20, S90) de banda baja de la señal (S10, S110) de habla, comprendiendo dicho decodificador (B202):
un extensor (A400, A402) de espectro configurado para calcular una señal (S160) extendida espectralmente extendiendo el espectro de una señal que se basa en la señal (S50) de excitación de banda baja codificada; un combinador (490) configurado para proporcionar una señal (S120) de excitación de banda alta mezclando la señal (S160) extendida espectralmente con ruido (S170) modulado según una envolvente derivada de la parte (S50, S80) de banda baja; un filtro (B204) de síntesis configurado para generar una señal (S130) de banda alta sintetizada según (A) la pluralidad de parámetros (S60a) de filtro y (B) dicha señal (S120) de excitación de banda alta; y un elemento (590) de control de ganancia configurado para modificar una envolvente de ganancia de la señal (S130) de banda alta sintetizada según una pluralidad de factores (S60b) de ganancia que caracterizan una envolvente temporal de la parte (530, S100) de banda alta. -
- 24.
- El decodificador (B202) según la reivindicación 23, en el que dicho extensor (A400, A402) de espectro está configurado para extender el espectro de la señal que se basa en la señal (S50) de excitación de banda baja codificada aplicando una función (520) no
lineal a la señal. -
- 25.
- El decodificador (B202) según la reivindicación 23, en el que dicho elemento (590) de control de ganancia está configurado para modificar, según la pluralidad de factores (S60b) de ganancia, una amplitud a través del tiempo de al menos una entre la señal (S50) de excitación de banda baja codificada, la señal (S160) extendida espectralmente, la señal (S120) de excitación de banda alta, y la señal (S130) de banda alta sintetizada.
-
- 26.
- El decodificador (B202) según la reivindicación 23, en el que dicho elemento (590) de control de ganancia comprende al menos uno entre un multiplicador y un amplificador.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US66790105P | 2005-04-01 | 2005-04-01 | |
US667901P | 2005-04-01 | ||
US673965P | 2005-04-22 |
Publications (1)
Publication Number | Publication Date |
---|---|
ES2350494T3 true ES2350494T3 (es) | 2011-01-24 |
Family
ID=39406063
Family Applications (3)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
ES06740355T Active ES2350494T3 (es) | 2005-04-01 | 2006-04-03 | Procedimiento y aparatos para codificar y decodificar una parte de banda alta de una señal de habla. |
ES06740357T Active ES2358125T3 (es) | 2005-04-01 | 2006-04-03 | Procedimiento y aparato para un filtrado de antidispersión de una señal ensanchada de excitación de predicción de velocidad de ancho de banda. |
ES06740351T Active ES2351935T3 (es) | 2005-04-01 | 2006-04-03 | Procedimiento y aparato para la cuantificación vectorial de una representación de envolvente espectral. |
Family Applications After (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
ES06740357T Active ES2358125T3 (es) | 2005-04-01 | 2006-04-03 | Procedimiento y aparato para un filtrado de antidispersión de una señal ensanchada de excitación de predicción de velocidad de ancho de banda. |
ES06740351T Active ES2351935T3 (es) | 2005-04-01 | 2006-04-03 | Procedimiento y aparato para la cuantificación vectorial de una representación de envolvente espectral. |
Country Status (3)
Country | Link |
---|---|
CN (8) | CN101185126B (es) |
ES (3) | ES2350494T3 (es) |
UA (6) | UA95776C2 (es) |
Families Citing this family (38)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CA2603246C (en) | 2005-04-01 | 2012-07-17 | Qualcomm Incorporated | Systems, methods, and apparatus for anti-sparseness filtering |
CN101620854B (zh) * | 2008-06-30 | 2012-04-04 | 华为技术有限公司 | 频带扩展的方法、***和设备 |
CN101964690B (zh) * | 2009-07-22 | 2012-07-04 | 联芯科技有限公司 | 一种harq合并译码方法、装置及*** |
CN102044250B (zh) * | 2009-10-23 | 2012-06-27 | 华为技术有限公司 | 频带扩展方法及装置 |
CN102812512B (zh) * | 2010-03-23 | 2014-06-25 | Lg电子株式会社 | 处理音频信号的方法和装置 |
CN102610231B (zh) | 2011-01-24 | 2013-10-09 | 华为技术有限公司 | 一种带宽扩展方法及装置 |
DK3407352T3 (da) * | 2011-02-18 | 2022-06-07 | Ntt Docomo Inc | Taleafkoder, talekoder, taleafkodningsfremgangsmåde, talekodningsfremgangsmåde, taleafkodningsprogram og talekodningsprogram |
US9070361B2 (en) * | 2011-06-10 | 2015-06-30 | Google Technology Holdings LLC | Method and apparatus for encoding a wideband speech signal utilizing downmixing of a highband component |
ES2805308T3 (es) * | 2011-11-03 | 2021-02-11 | Voiceage Evs Llc | Mejora del contenido insonoro para decodificador CELP de tasa baja |
CN102543091B (zh) * | 2011-12-29 | 2014-12-24 | 深圳万兴信息科技股份有限公司 | 一种模拟音效的生成***及方法 |
RU2601188C2 (ru) * | 2012-02-23 | 2016-10-27 | Долби Интернэшнл Аб | Способы и системы для эффективного восстановления высокочастотного аудиоконтента |
PL2830057T3 (pl) * | 2012-05-23 | 2019-01-31 | Nippon Telegraph And Telephone Corporation | Kodowanie sygnału audio |
CN103928031B (zh) | 2013-01-15 | 2016-03-30 | 华为技术有限公司 | 编码方法、解码方法、编码装置和解码装置 |
US9728200B2 (en) * | 2013-01-29 | 2017-08-08 | Qualcomm Incorporated | Systems, methods, apparatus, and computer-readable media for adaptive formant sharpening in linear prediction coding |
CN103971693B (zh) | 2013-01-29 | 2017-02-22 | 华为技术有限公司 | 高频带信号的预测方法、编/解码设备 |
US9601125B2 (en) * | 2013-02-08 | 2017-03-21 | Qualcomm Incorporated | Systems and methods of performing noise modulation and gain adjustment |
US9711156B2 (en) * | 2013-02-08 | 2017-07-18 | Qualcomm Incorporated | Systems and methods of performing filtering for gain determination |
EP2830064A1 (en) * | 2013-07-22 | 2015-01-28 | Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. | Apparatus and method for decoding and encoding an audio signal using adaptive spectral tile selection |
EP2830055A1 (en) * | 2013-07-22 | 2015-01-28 | Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. | Context-based entropy coding of sample values of a spectral envelope |
US9620134B2 (en) * | 2013-10-10 | 2017-04-11 | Qualcomm Incorporated | Gain shape estimation for improved tracking of high-band temporal characteristics |
US10083708B2 (en) * | 2013-10-11 | 2018-09-25 | Qualcomm Incorporated | Estimation of mixing factors to generate high-band excitation signal |
US9384746B2 (en) * | 2013-10-14 | 2016-07-05 | Qualcomm Incorporated | Systems and methods of energy-scaled signal processing |
US9293143B2 (en) * | 2013-12-11 | 2016-03-22 | Qualcomm Incorporated | Bandwidth extension mode selection |
US20150170655A1 (en) * | 2013-12-15 | 2015-06-18 | Qualcomm Incorporated | Systems and methods of blind bandwidth extension |
US10163447B2 (en) * | 2013-12-16 | 2018-12-25 | Qualcomm Incorporated | High-band signal modeling |
CN103714822B (zh) * | 2013-12-27 | 2017-01-11 | 广州华多网络科技有限公司 | 基于silk编解码器的子带编解码方法及装置 |
US9984699B2 (en) * | 2014-06-26 | 2018-05-29 | Qualcomm Incorporated | High-band signal coding using mismatched frequency ranges |
EP2980798A1 (en) * | 2014-07-28 | 2016-02-03 | Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. | Harmonicity-dependent controlling of a harmonic filter tool |
CN106448688B (zh) | 2014-07-28 | 2019-11-05 | 华为技术有限公司 | 音频编码方法及相关装置 |
US9595269B2 (en) * | 2015-01-19 | 2017-03-14 | Qualcomm Incorporated | Scaling for gain shape circuitry |
US10847170B2 (en) * | 2015-06-18 | 2020-11-24 | Qualcomm Incorporated | Device and method for generating a high-band signal from non-linearly processed sub-ranges |
FI3696813T3 (fi) | 2016-04-12 | 2023-01-31 | Audiokooderi audiosignaalin koodaamiseksi, menetelmä audiosignaalin koodaamiseksi ja tietokoneohjelma havaitulla huippuspektrialeella tarkastettuna ylemmällä taajuuskaistalla | |
PL3555885T3 (pl) * | 2016-12-16 | 2021-01-11 | Telefonaktiebolaget Lm Ericsson (Publ) | Sposób i koder do obsługi współczynników reprezentacji obwiedni |
US10825467B2 (en) * | 2017-04-21 | 2020-11-03 | Qualcomm Incorporated | Non-harmonic speech detection and bandwidth extension in a multi-source environment |
US10431231B2 (en) * | 2017-06-29 | 2019-10-01 | Qualcomm Incorporated | High-band residual prediction with time-domain inter-channel bandwidth extension |
TWI723545B (zh) | 2019-09-17 | 2021-04-01 | 宏碁股份有限公司 | 語音處理方法及其裝置 |
US11956111B2 (en) * | 2020-02-14 | 2024-04-09 | Huawei Technologies Co., Ltd. | Multi-rate crest factor reduction |
CN111402907B (zh) * | 2020-03-13 | 2023-04-18 | 大连理工大学 | 一种基于g.722.1的多描述语音编码方法 |
Family Cites Families (25)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4805193A (en) * | 1987-06-04 | 1989-02-14 | Motorola, Inc. | Protection of energy information in sub-band coding |
US5455888A (en) * | 1992-12-04 | 1995-10-03 | Northern Telecom Limited | Speech bandwidth extension method and apparatus |
EP0732687B2 (en) * | 1995-03-13 | 2005-10-12 | Matsushita Electric Industrial Co., Ltd. | Apparatus for expanding speech bandwidth |
US6097824A (en) * | 1997-06-06 | 2000-08-01 | Audiologic, Incorporated | Continuous frequency dynamic range audio compressor |
FI113571B (fi) * | 1998-03-09 | 2004-05-14 | Nokia Corp | Puheenkoodaus |
JP3696091B2 (ja) * | 1999-05-14 | 2005-09-14 | 松下電器産業株式会社 | オーディオ信号の帯域を拡張するための方法及び装置 |
US6393394B1 (en) * | 1999-07-19 | 2002-05-21 | Qualcomm Incorporated | Method and apparatus for interleaving line spectral information quantization methods in a speech coder |
JP4792613B2 (ja) * | 1999-09-29 | 2011-10-12 | ソニー株式会社 | 情報処理装置および方法、並びに記録媒体 |
EP1147514B1 (en) * | 1999-11-16 | 2005-04-06 | Koninklijke Philips Electronics N.V. | Wideband audio transmission system |
WO2001052241A1 (en) * | 2000-01-11 | 2001-07-19 | Matsushita Electric Industrial Co., Ltd. | Multi-mode voice encoding device and decoding device |
US6704711B2 (en) * | 2000-01-28 | 2004-03-09 | Telefonaktiebolaget Lm Ericsson (Publ) | System and method for modifying speech signals |
US6732070B1 (en) * | 2000-02-16 | 2004-05-04 | Nokia Mobile Phones, Ltd. | Wideband speech codec using a higher sampling rate in analysis and synthesis filtering than in excitation searching |
US6947888B1 (en) * | 2000-10-17 | 2005-09-20 | Qualcomm Incorporated | Method and apparatus for high performance low bit-rate coding of unvoiced speech |
US6615169B1 (en) * | 2000-10-18 | 2003-09-02 | Nokia Corporation | High frequency enhancement layer coding in wideband speech codec |
CN1272911C (zh) * | 2001-07-13 | 2006-08-30 | 松下电器产业株式会社 | 音频信号解码装置及音频信号编码装置 |
US6988066B2 (en) * | 2001-10-04 | 2006-01-17 | At&T Corp. | Method of bandwidth extension for narrow-band speech |
WO2003038812A1 (en) * | 2001-11-02 | 2003-05-08 | Matsushita Electric Industrial Co., Ltd. | Audio encoding and decoding device |
DE60214027T2 (de) * | 2001-11-14 | 2007-02-15 | Matsushita Electric Industrial Co., Ltd., Kadoma | Kodiervorrichtung und dekodiervorrichtung |
MXPA03005133A (es) * | 2001-11-14 | 2004-04-02 | Matsushita Electric Ind Co Ltd | Dispositivo de codificacion, dispositivo de decodificacion y sistema de los mismos. |
WO2003065353A1 (en) * | 2002-01-30 | 2003-08-07 | Matsushita Electric Industrial Co., Ltd. | Audio encoding and decoding device and methods thereof |
KR100446242B1 (ko) * | 2002-04-30 | 2004-08-30 | 엘지전자 주식회사 | 음성 부호화기에서 하모닉 추정 방법 및 장치 |
BRPI0305710B1 (pt) * | 2002-08-01 | 2017-11-07 | Panasonic Corporation | "apparatus and method of decoding of audio" |
CN1186765C (zh) * | 2002-12-19 | 2005-01-26 | 北京工业大学 | 2.3kb/s谐波激励线性预测语音编码方法 |
FI118550B (fi) * | 2003-07-14 | 2007-12-14 | Nokia Corp | Parannettu eksitaatio ylemmän kaistan koodaukselle koodekissa, joka käyttää kaistojen jakoon perustuvia koodausmenetelmiä |
CN1598926A (zh) * | 2003-09-16 | 2005-03-23 | 株式会社东芝 | 具有噪声抑制的音频编码方法和设备 |
-
2006
- 2006-04-03 UA UAA200712057A patent/UA95776C2/ru unknown
- 2006-04-03 CN CN200680018212.6A patent/CN101185126B/zh active Active
- 2006-04-03 ES ES06740355T patent/ES2350494T3/es active Active
- 2006-04-03 CN CN2006800181405A patent/CN101180676B/zh active Active
- 2006-04-03 ES ES06740357T patent/ES2358125T3/es active Active
- 2006-04-03 CN CN2006800181496A patent/CN101180677B/zh active Active
- 2006-04-03 UA UAA200712011A patent/UA92341C2/ru unknown
- 2006-04-03 CN CN2006800183538A patent/CN101185125B/zh active Active
- 2006-04-03 CN CN2006800182696A patent/CN101185120B/zh active Active
- 2006-04-03 UA UAA200712061A patent/UA93677C2/ru unknown
- 2006-04-03 ES ES06740351T patent/ES2351935T3/es active Active
- 2006-04-03 CN CN200680018213.0A patent/CN101185127B/zh active Active
- 2006-04-03 UA UAA200712008A patent/UA91853C2/ru unknown
- 2006-04-03 UA UAA200712062A patent/UA94041C2/ru unknown
- 2006-04-03 CN CN2006800183519A patent/CN101184979B/zh active Active
- 2006-04-03 UA UAA200712012A patent/UA92742C2/ru unknown
- 2006-04-03 CN CN2006800182709A patent/CN101185124B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN101180677A (zh) | 2008-05-14 |
CN101185125A (zh) | 2008-05-21 |
CN101180677B (zh) | 2011-02-09 |
UA92341C2 (ru) | 2010-10-25 |
CN101185124A (zh) | 2008-05-21 |
CN101185127A (zh) | 2008-05-21 |
CN101180676A (zh) | 2008-05-14 |
UA91853C2 (ru) | 2010-09-10 |
CN101184979B (zh) | 2012-04-25 |
UA92742C2 (ru) | 2010-12-10 |
UA93677C2 (ru) | 2011-03-10 |
CN101185120B (zh) | 2012-05-30 |
CN101185126A (zh) | 2008-05-21 |
UA94041C2 (ru) | 2011-04-11 |
CN101185126B (zh) | 2014-08-06 |
UA95776C2 (ru) | 2011-09-12 |
CN101185125B (zh) | 2012-01-11 |
CN101185120A (zh) | 2008-05-21 |
CN101180676B (zh) | 2011-12-14 |
ES2351935T3 (es) | 2011-02-14 |
CN101185127B (zh) | 2014-04-23 |
CN101184979A (zh) | 2008-05-21 |
ES2358125T3 (es) | 2011-05-05 |
CN101185124B (zh) | 2012-01-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
ES2350494T3 (es) | Procedimiento y aparatos para codificar y decodificar una parte de banda alta de una señal de habla. | |
ES2391292T3 (es) | Sistemas, procedimientos y aparato para la generación de una señal de excitación de banda alta | |
ES2705589T3 (es) | Sistemas, procedimientos y aparatos para el suavizado del factor de ganancia | |
JP5437067B2 (ja) | 音声信号に関連するパケットに識別子を含めるためのシステムおよび方法 |