[go: up one dir, main page]

ES2705589T3 - Sistemas, procedimientos y aparatos para el suavizado del factor de ganancia - Google Patents

Sistemas, procedimientos y aparatos para el suavizado del factor de ganancia Download PDF

Info

Publication number
ES2705589T3
ES2705589T3 ES06750901T ES06750901T ES2705589T3 ES 2705589 T3 ES2705589 T3 ES 2705589T3 ES 06750901 T ES06750901 T ES 06750901T ES 06750901 T ES06750901 T ES 06750901T ES 2705589 T3 ES2705589 T3 ES 2705589T3
Authority
ES
Spain
Prior art keywords
signal
gain factor
envelope
band
gain
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
ES06750901T
Other languages
English (en)
Inventor
Koen Vos
Ananthapadmanabhan Kandhadai
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Qualcomm Inc
Original Assignee
Qualcomm Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Qualcomm Inc filed Critical Qualcomm Inc
Application granted granted Critical
Publication of ES2705589T3 publication Critical patent/ES2705589T3/es
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L19/00Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
    • G10L19/04Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis using predictive techniques
    • G10L19/06Determination or coding of the spectral characteristics, e.g. of the short-term prediction coefficients
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L19/00Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
    • G10L19/04Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis using predictive techniques
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L19/00Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
    • G10L19/02Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis using spectral analysis, e.g. transform vocoders or subband vocoders
    • G10L19/0204Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis using spectral analysis, e.g. transform vocoders or subband vocoders using subband decomposition
    • G10L19/0208Subband vocoders
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L19/00Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
    • G10L19/04Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis using predictive techniques
    • G10L19/08Determination or coding of the excitation function; Determination or coding of the long-term prediction parameters
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L19/00Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
    • G10L19/04Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis using predictive techniques
    • G10L19/08Determination or coding of the excitation function; Determination or coding of the long-term prediction parameters
    • G10L19/12Determination or coding of the excitation function; Determination or coding of the long-term prediction parameters the excitation function being a code excitation, e.g. in code excited linear prediction [CELP] vocoders
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L19/00Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
    • G10L19/04Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis using predictive techniques
    • G10L19/16Vocoder architecture
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L21/00Speech or voice signal processing techniques to produce another audible or non-audible signal, e.g. visual or tactile, in order to modify its quality or its intelligibility
    • G10L21/02Speech enhancement, e.g. noise reduction or echo cancellation
    • G10L21/038Speech enhancement, e.g. noise reduction or echo cancellation using band spreading techniques

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Computational Linguistics (AREA)
  • Signal Processing (AREA)
  • Health & Medical Sciences (AREA)
  • Human Computer Interaction (AREA)
  • Acoustics & Sound (AREA)
  • Multimedia (AREA)
  • Spectroscopy & Molecular Physics (AREA)
  • Quality & Reliability (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Control Of Amplification And Gain Control (AREA)
  • Cable Transmission Systems, Equalization Of Radio And Reduction Of Echo (AREA)
  • Tone Control, Compression And Expansion, Limiting Amplitude (AREA)

Abstract

Un procedimiento para procesamiento de señales, dicho procedimiento que comprende: calcular una envolvente de una primera señal que se basa en una porción de baja frecuencia de una señal de voz; calcular una envolvente de una segunda señal que se basa en una porción de alta frecuencia de la señal de voz; calcular una primera pluralidad de valores de factor de ganancia de acuerdo con una relación variable en el tiempo entre las envolventes de la primera y la segunda señales; y basándose en la primera pluralidad de valores de factor de ganancia, calcular una pluralidad de valores de factor de ganancia suavizados, en el que cada uno de la pluralidad de valores de factor de ganancia suavizados se basa en una suma de (A) un factor de ganancia de la primera pluralidad, ponderado mediante un primer peso, que está asociado con un primer intervalo de tiempo y (B) un valor de factor de ganancia suavizado, ponderado mediante un segundo peso, que está asociado con un intervalo de tiempo que comienza antes que el primer intervalo de tiempo, y caracterizado por que al menos uno entre los primer y el segundo pesos se basa en una distancia entre los valores de factor de ganancia de la primera pluralidad que están asociados con intervalos de tiempo sucesivos, o se basa en una diferencia entre (C) el valor de factor de ganancia de la primera pluralidad y (D) un valor de factor de ganancia de la primera pluralidad que está asociado con un intervalo de tiempo que comienza antes que el primer intervalo de tiempo.

Description

DESCRIPCIÓN
Sistemas, procedimientos y aparatos para el suavizado del factor de ganancia
SOLICITUDES RELACIONADAS
[0001] Esta solicitud reivindica la prioridad de la Solicitud de Patente Provisional de EE.UU. No. 60/673,965, titulada "PARAMETER CODING IN A HIGH-BAND SPEECH CODER" ["CODIFICACIÓN DE PARÁMETROS EN UN CODIFICADOR DE VOZ DE BANDA ALTA"] presentada el 22 de abril de 2005.
CAMPO DE LA INVENCIÓN
[0002] La presente invención se refiere al procesamiento de señales.
ANTECEDENTES
[0003] Las comunicaciones de voz por la red telefónica pública conmutada (PSTN) han estado tradicionalmente limitadas en ancho de banda al intervalo de frecuencias de 300-3400 kHz. Las nuevas redes para comunicaciones de voz, tales como telefonía móvil 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 incluyen un intervalo de frecuencias de banda ancha por dichas redes. Por ejemplo, puede ser deseable soportar un intervalo de frecuencias de audio que se extienda hasta 50 Hz y/o hasta 7 u 8 kHz. También puede ser deseable soportar otras aplicaciones, tales como conferencia de audio o de audio/video de alta calidad, que pueden tener contenido de voz de audio en intervalos fuera de los límites tradicionales de PSTN.
[0004] La ampliación del intervalo admitido por un codificador de voz a frecuencias más altas puede mejorar la inteligibilidad. Por ejemplo, la información que diferencia fricativas como 's' y 'f' está en gran parte en las frecuencias altas. La ampliación de la banda alta también puede mejorar otras cualidades de la voz, como la presencia. Por ejemplo, incluso una vocal sonora puede tener energía espectral muy por encima del límite PSTN.
[0005] Una solución para la codificación de voz de banda ancha implica escalar una técnica de codificación de voz de banda estrecha (por ejemplo, una configurada para codificar el intervalo de 0-4 kHz) para cubrir el espectro de banda ancha. Por ejemplo, se puede muestrear una señal de voz a una tasa más alta para incluir componentes a altas frecuencias, y se puede reconfigurar una técnica de codificación de banda estrecha para usar más coeficientes de filtro para representar esta señal de banda ancha. Sin embargo, las técnicas de codificación de banda estrecha, tales como CELP (predicción lineal excitada por libro de códigos), son computacionalmente intensivas, y un codificador CELP de banda ancha puede consumir demasiados ciclos de procesamiento para ser práctico para muchas aplicaciones móviles y otras incorporadas. 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 conllevar un aumento inaceptablemente grande en el ancho de banda. Además, sería necesaria la transcodificación de dicha señal codificada antes incluso de que su porción de banda estrecha pudiera transmitirse y/o descodificarse mediante un sistema que solo soporta codificación de banda estrecha.
[0006] Otra solución para la codificación de voz de banda ancha implica extrapolar la envolvente espectral de banda alta a partir de la envolvente espectral de banda estrecha codificada. Aunque dicha aproximación se puede implementar sin ningún aumento en el ancho de banda y sin necesidad de transcodificación, la envolvente espectral aproximada o la estructura formante de la porción de banda alta de una señal de voz en general no se puede predecir con precisión a partir de la envolvente espectral de la porción de banda estrecha.
[0007] Puede ser deseable implementar la codificación de voz de banda ancha de tal manera que al menos la porción de banda estrecha de la señal codificada se pueda enviar a través de un canal de banda estrecha (tal como un canal PSTN) sin transcodificación u otra modificación significativa. La eficiencia de la ampliación de codificación de banda ancha puede ser también deseable, por ejemplo, para evitar una reducción significativa del número de usuarios a los que se puede dar servicio en aplicaciones tales como telefonía celular inalámbrica y radiodifusión por canales inalámbricos y por cable.
[0008] "Universal Mobile Telecommunications System (UMTS); Audio codec processing functions; Extended Adaptive Multi-Rate - Wideband (AMR-WB+) codec; T ranscoding functions (3GPP TS 26.290 version 6.2.0 Release 6); ETSI TS 126290" ["Sistema Universal de Telecomunicaciones Móviles (UMTS); Funciones de procesamiento de códec de audio; Códec adaptativo de múltiples velocidades - Banda ancha ampliado (AMR-WB+); Funciones de transcodificación (3GPP t S 26.290 versión 6.2.0 edición 6); ETSI TS 126 290"+ ESTANDAR DE ETSI, INSTITUTO EUROPEO DE ESTÁNDARES DE TELECOMUNICACIONES, SOPHIA-ANTIPOLIS, FR, vol. 3-SA4, no. V620, marzo de 2005 (2005-03), XP014027773 ISSN: 0000-0001, describe, con referencia a la figura 9, la codificación de alta frecuencia.
SUMARIO
[0009] De acuerdo con la invención, se da a conocer un procedimiento de procesamiento de señales que incluye calcular una envolvente de una primera señal que se basa en una porción de baja frecuencia de una señal de voz,
calcular una envolvente de una segunda señal que se basa en una porción de alta frecuencia de la señal de voz,
y calcular una primera pluralidad de valores del factor de ganancia de acuerdo con una relación variable en el
tiempo entre las envolventes de la primera y segunda señales. El procedimiento incluye, basándose en la primera
pluralidad de valores de factor de ganancia, calcular una pluralidad de valores de factor de ganancia suavizados
como se reivindica en las reivindicaciones 1 y 2.
[0010] De acuerdo con la invención, también se da a conocer un aparato que incluye medios para calcular una envolvente de una primera señal que se basa en una porción de baja frecuencia de una señal de voz, medios para
calcular una envolvente de una segunda señal que se basa en una porción de alta frecuencia de la señal de voz,
y medios para calcular una primera pluralidad de valores de factor de ganancia de acuerdo con una relación
variable en el tiempo entre las envolventes de la primera y segunda señales. El aparato incluye medios para
calcular una pluralidad de valores de factor de ganancia suavizados basándose en la primera pluralidad de valores
de factor de ganancia como se reivindica en las reivindicaciones 10 y 11.
BREVE DESCRIPCIÓN DE LOS DIBUJOS
[0011]
La FIGURA 1a muestra un diagrama de bloques de un codificador de voz de banda ancha A100 de acuerdo
con un modo de realización.
La FIGURA 1 b muestra un diagrama de bloques de una implementación A102 del codificador de voz de banda
ancha A100.
La FIGURA 2a muestra un diagrama de bloques de un descodificador de voz de banda ancha B100 de acuerdo
con un modo de realización.
La FIGURA 2b muestra un diagrama de bloques de una implementación B102 del codificador de voz de banda
ancha B100.
La FIGURA 3a muestra un diagrama de bloques de una implementación A112 del banco de filtros A11 La FIGURA 3b muestra un diagrama de bloques de una implementación B122 del banco de filtros B12 La FIGURA 4a muestra la cobertura de ancho de banda de las bandas baja y alta para un ejemplo de banco
de filtros A110.
La FIGURA 4b muestra la cobertura de ancho de banda de las bandas baja y alta para otro ejemplo de banco
de filtros A110.
La FIGURA 4c muestra un diagrama de bloques de una implementación A114 del banco de filtros A112. La FIGURA 4d muestra un diagrama de bloques de una implementación B124 del banco de filtros B12 La FIGURA 5a muestra un ejemplo de un gráfico de frecuencia frente a amplitud de registro para una señal de
voz.
La FIGURA 5b muestra un diagrama de bloques de un sistema de codificación de predicción lineal básico.
La FIGURA 6 muestra un diagrama de bloques de una implementación A122 del codificador de banda estrecha
A120.
La FIGURA 7 muestra un diagrama de bloques de una implementación B112 del descodificador de banda
estrecha B110.
La FIGURA 8a muestra un ejemplo de un gráfico de frecuencia frente a amplitud de registro para una señal
residual para voz sonora.
La FIGURA 8b muestra un ejemplo de un gráfico de tiempo frente a amplitud de registro para una señal residual
para voz sonora.
La FIGURA 9 muestra un diagrama de bloques de un sistema de codificación de predicción lineal básico que
también realiza predicción a largo plazo.
La FIGURA 10 muestra un diagrama de bloques de una implementación A202 del codificador de banda alta A200.
La FIGURA 11 muestra un diagrama de bloques de una implementación A302 del generador de excitación de banda alta A300.
La FIGURA 12 muestra un diagrama de bloques de una implementación A402 del ampliador de espectro A400. La FIGURA 12a muestra gráficos de espectros de señal en varios puntos en un ejemplo de una operación de ampliación espectral.
La FIGURA 12b muestra gráficos de espectros de señal en varios puntos en otro ejemplo de una operación de ampliación espectral.
La FIGURA 13 muestra un diagrama de bloques de una implementación A304 del generador de excitación de banda alta A302.
La FIGURA 14 muestra un diagrama de bloques de una implementación A306 del generador de excitación de banda alta A302.
La FIGURA 15 muestra un diagrama de flujo para una tarea de cálculo de envolvente T100.
La FIGURA 16 muestra un diagrama de bloques de una implementación 492 del combinador 490.
La FIGURA 17 ilustra un enfoque para calcular una medida de periodicidad de la señal de banda alta S30. La FIGURA 18 muestra un diagrama de bloques de una implementación A312 del generador de excitación de banda alta A302.
La FIGURA 19 muestra un diagrama de bloques de una implementación A314 del generador de excitación de banda alta A302.
La FIGURA 20 muestra un diagrama de bloques de una implementación A316 del generador de excitación de banda alta A302.
La FIGURA 21 muestra un diagrama de flujo para una tarea de cálculo de ganancia T200.
La FIGURA 22 muestra un diagrama de flujo para una implementación T210 de una tarea de cálculo de ganancia T200.
La FIGURA 23a muestra un diagrama de una función de ventana.
La FIGURA 23b muestra una aplicación de una función de ventana como se muestra en la FIGURA 23a para subtramas de una señal de voz.
La FIGURA 24 muestra un diagrama de bloques para una implementación B202 del descodificador de banda alta B200.
La FIGURA 25 muestra un diagrama de bloques de una implementación AD10 del codificador de voz de banda ancha A100.
La FIGURA 26a muestra un diagrama esquemático de una implementación D122 de la línea de retardo D120. La FIGURA 26b muestra un diagrama esquemático de una implementación D124 de la línea de retardo D120. La FIGURA 27 muestra un diagrama esquemático de una implementación D130 de la línea de retardo D120. La FIGURA 28 muestra un diagrama de bloques de una implementación AD12 del codificador de voz de banda ancha AD10.
La FIGURA 29 muestra un diagrama de flujo de un procedimiento de procesamiento de señales MD100 de acuerdo con un modo de realización.
La FIGURA 30 muestra un diagrama de flujo para un procedimiento M100 de acuerdo con un modo de realización.
La FIGURA 31a muestra un diagrama de flujo para un procedimiento M200 de acuerdo con un modo de realización.
La FIGURA 31 b muestra un diagrama de flujo para una implementación M210 del procedimiento M200. La FIGURA 32 muestra un diagrama de flujo para un procedimiento M300 de acuerdo con un modo de realización.
La FIGURA 33a muestra un diagrama de bloques de una implementación A232 del calculador de factor de ganancia de banda alta A230.
La FIGURA 33b muestra un diagrama de bloques de una disposición que incluye el calculador de factor de ganancia de banda alta A232.
La FIGURA 34 muestra un diagrama de bloques de una implementación A203 del codificador de banda alta A202.
La FIGURA 35 muestra un diagrama de bloques de una disposición que incluye el calculador de factor de ganancia de banda alta A232 y una implementación G32 del atenuador de factor de ganancia G30.
Las FIGURAS 36a y 36b muestran gráficos de ejemplos de asignaciones del valor de variación calculado al valor de factor de atenuación.
La FIGURA 37 muestra un diagrama de bloques de una disposición que incluye el calculador de factor de ganancia de banda alta A232 y una implementación G34 del atenuador de factor de ganancia G30.
La FIGURA 38 muestra un diagrama de bloques de una implementación B204 del descodificador de banda alta B202.
La FIGURA 39 muestra un diagrama de flujo de un procedimiento GM10 de acuerdo con un modo de realización.
La FIGURA 40 muestra un diagrama de bloques de una implementación A205 del codificador de banda alta A202.
La FIGURA 41 muestra un diagrama de bloques de una implementación G82 del suavizador de factor de ganancia G80.
La FIGURA 42 muestra un diagrama de bloques de una implementación G84 del suavizador de factor de ganancia G80.
Las FIGURAS 43a y 43b muestran gráficos de ejemplos de asignaciones de magnitudes de un valor de variación calculado al valor de factor de suavizado.
La FIGURA 44 muestra un diagrama de bloques de una implementación A206 del codificador de banda alta A202.
La FIGURA 45 muestra un diagrama de bloques de una implementación A207 del codificador de banda alta A200.
La FIGURA 46 muestra un diagrama de bloques del calculador de factor de ganancia de banda alta A235. La FIGURA 47 muestra un diagrama de flujo de un procedimiento FM10 de acuerdo con un modo de realización. La FIGURA 48 muestra un ejemplo de una asignación unidimensional realizada típicamente mediante un cuantificador escalar.
La FIGURA 49 muestra un ejemplo sencillo de una asignación multidimensional realizada mediante un cuantificador vectorial.
La FIGURA 50a muestra un ejemplo de una señal unidimensional, y la FIGURA 50b muestra un ejemplo de una versión de esta señal después de la cuantificación.
La FIGURA 50c muestra un ejemplo de la señal de la FIGURA 50a cuantificada mediante un cuantificador 435a como se muestra en la FIGURA 52.
La FIGURA 50d muestra un ejemplo de la señal de la FIGURA 50a cuantificada mediante un cuantificador 435b como se muestra en la FIGURA 53.
La FIGURA 51 muestra un diagrama de bloques de una implementación A208 del codificador de banda alta A202.
La FIGURA 52 muestra un diagrama de bloques de una implementación 435a del cuantificador 435.
La FIGURA 53 muestra un diagrama de bloques de una implementación 435b del cuantificador 435.
La FIGURA 54 muestra un diagrama de bloques de un ejemplo de la lógica de cálculo de factor de escala incluida en otras implementaciones del cuantificador 435a y el cuantificador 435b.
La FIGURA 55a muestra un diagrama de flujo de un procedimiento QM10 de acuerdo con un modo de realización.
La FIGURA 55b muestra un diagrama de flujo de un procedimiento QM20 de acuerdo con un modo de realización.
[0012] En las figuras y la descripción que se acompaña, las mismas etiquetas de referencia se refieren a los mismos o análogos elementos o señales.
DESCRIPCIÓN DETALLADA
[0013] Los modos de realización como se describen en el presente documento incluyen sistemas, procedimientos y aparatos que se pueden configurar para proporcionar una ampliación a un codificador de voz de banda estrecha para admitir la transmisión y/o el almacenamiento de señales de voz de banda ancha a un aumento de ancho de banda de solo aproximadamente 800 a 1000 bps (bits por segundo). Entre las posibles ventajas de dichas implementaciones se incluye la codificación incorporada para soportar compatibilidad con sistemas de banda estrecha, la asignación y reasignación de bits relativamente sencilla entre los canales de codificación de banda estrecha y de banda alta, evitando una operación de síntesis de banda ancha computacionalmente intensiva, y el mantenimiento de una tasa de muestreo baja para señales a procesar mediante rutinas de codificación de forma de onda computacionalmente intensivas.
[0014] A menos que esté expresamente limitado por su contexto, el término "calcular" se usa en el presente documento para indicar cualquiera de sus significados ordinarios, tales como el cálculo, la generación, y la selección a partir de una lista de valores. Cuando se usa el término "que comprende" en la presente descripción y en las reivindicaciones, no excluye otros elementos u operaciones. El término "A se basa en B" se utiliza para indicar cualquiera de sus significados ordinarios, incluyendo los casos (i) "A es igual a B" y (ii) "A se basa en al menos B". El término "Protocolo de Internet" incluye la versión 4, tal como se describe en la RFC (solicitud de comentarios) de la IETF (Fuerza de Trabajo de Ingeniería de Internet) 791, y versiones posteriores tales como la versión 6.
[0015] La FIGURA 1a muestra un diagrama de bloques de un codificador de voz de banda ancha A100 de acuerdo con un modo de realización. El banco de filtros A110 está configurado para filtrar una señal de voz de banda ancha S10 para producir una señal de banda estrecha S20 y una señal de banda alta S30. El codificador de banda estrecha A120 está configurado para codificar la señal de banda estrecha S20 para producir parámetros de filtro de banda estrecha (NB) S40 y una señal residual de banda estrecha S50. Como se describe con más detalle en el presente documento, el codificador de banda estrecha A120 está configurado típicamente para producir parámetros de filtro de banda estrecha S40 y señal de excitación de banda estrecha codificada S50 como índices de libro de códigos o en otra forma cuantificada. El codificador de banda alta A200 está configurado para codificar la señal de banda alta S30 de acuerdo con la información en la señal de excitación de banda estrecha codificada S50 para producir los parámetros de codificación de banda alta S60. Como se describe con mayor detalle en el presente documento, el codificador de banda alta A200 está configurado típicamente para producir parámetros de codificación de banda alta S60 como índices de libro de códigos o en otra forma cuantificada. Un ejemplo particular del codificador de voz de banda ancha A100 está configurado para codificar la señal de voz de banda ancha S10 a una tasa de aproximadamente 8,55 kbps (kilobits por segundo), utilizándose aproximadamente 7,55 kbps para los parámetros de filtro de banda estrecha S40 y la señal de excitación de banda estrecha codificada S50, y utilizándose aproximadamente 1 Kbps para los parámetros de codificación de banda alta S60.
[0016] Puede ser deseable combinar las señales de banda alta y banda estrecha codificadas en un único flujo de bits. Por ejemplo, puede ser deseable multiplexar las señales codificadas juntas para su transmisión (por ejemplo, a través de un canal de transmisión por cable, óptico o inalámbrico), o para su almacenamiento, como una señal de voz de banda ancha codificada. La FIGURA 1b muestra un diagrama de bloques de una implementación A102 del codificador de voz de banda ancha A100 que incluye un multiplexor A130 configurado para combinar los parámetros de filtro de banda estrecha S40, la señal de excitación de banda estrecha codificada S50 y los parámetros de filtro de banda alta S60 en una señal S70 multiplexada.
[0017] Un aparato que incluye un codificador A102 también puede incluir circuitos configurados para transmitir la señal multiplexada S70 en un canal de transmisión tal como un canal por cable, óptico o inalámbrico. Dicho aparato puede configurarse también para realizar una o más operaciones de codificación de canal en la señal, tales como codificación de corrección de errores (por ejemplo, codificación convolucional compatible con tasa) 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, cdma2000).
[0018] Puede ser deseable que el multiplexor A130 esté configurado para incorporar la señal de banda estrecha codificada (incluyendo los parámetros de filtro de banda estrecha S40 y la señal de excitación de banda estrecha codificada S50) como un subflujo separable de la señal multiplexada S70, de tal manera que la señal de banda estrecha codificada pueda recuperarse y descodificarse independientemente de otra porción de la señal multiplexada S70 tal como una señal de banda alta y/o banda baja. Por ejemplo, la señal multiplexada S70 puede estar dispuesta de tal manera que la señal de banda estrecha codificada se pueda recuperar eliminando los parámetros de filtro de banda alta S60. Una posible ventaja de dicha característica es evitar la necesidad de transcodificar la señal de banda ancha codificada antes de pasarla a un sistema que soporta la descodificación de la señal de banda estrecha pero no soporta la descodificación de la porción de banda alta.
[0019] La FIGURA 2a es un diagrama de bloques de un descodificador de voz de banda ancha B100 de acuerdo con un modo de realización. El descodificador de banda estrecha B110 está configurado para descodificar los parámetros de filtro de banda estrecha S40 y la señal de excitación de banda estrecha codificada S50 para producir una señal de banda estrecha S90. El descodificador de banda alta B200 está configurado para descodificar los parámetros de codificación de banda alta S60 de acuerdo con una señal de excitación de banda estrecha S80, basándose en la señal de excitación de banda estrecha codificada S50, para producir una señal de banda alta S100. En este ejemplo, el descodificador de banda estrecha B110 está configurado para proporcionar una señal de excitación de banda estrecha S80 al descodificador de banda alta B200. El banco de filtros B120 está configurado para combinar la señal de banda estrecha S90 y la señal de banda alta S100 para producir una señal de voz de banda ancha S110.
[0020] La FIGURA 2b es un diagrama de bloques de una implementación B102 del descodificador de voz de banda ancha B100 que incluye un desmultiplexor B130 configurado para producir señales codificadas S40, S50 y S60 a partir de la señal multiplexada S70. Un aparato que incluye el descodificador B102 puede incluir circuitos configurados para recibir la señal multiplexada S70 desde un canal de transmisión tal como un canal por cable, óptico o inalámbrico. Un aparato de este tipo puede configurarse también para realizar una o más operaciones de descodificación de canal en la señal, tales como descodificación de corrección de errores (por ejemplo, descodificación convolucional compatible con tasa) y/o descodificación de detección de errores (por ejemplo, descodificación de redundancia cíclica) y/o una o más capas de descodificación de protocolo de red (por ejemplo, Ethernet, TCP/IP, cdma2000).
[0021] El banco de filtros A110 está configurado para filtrar una señal de entrada de acuerdo con un esquema de banda dividida para producir una sub-banda de baja frecuencia y una sub-banda de alta frecuencia. Según los criterios de diseño para la aplicación particular, las sub-bandas de salida pueden tener anchos de banda iguales o desiguales y pueden estar superpuestas o no superpuestas. También es posible una configuración del banco de filtros A110 que produce más de dos sub-bandas. Por ejemplo, dicho banco de filtros puede estar configurado para producir una o más señales de banda baja que incluyen componentes en un intervalo de frecuencias por debajo del que tiene la señal de banda estrecha S20 (tal como el intervalo de 50-300 Hz). También es posible que dicho banco de filtros esté configurado para producir una o más señales de banda alta adicionales que incluyen componentes en un intervalo de frecuencias por encima del que tiene la señal de banda alta S30 (tal como un intervalo de 14-20, 16-20 o 16-32 kHz). En dicho caso, el codificador de voz de banda ancha A100 se puede implementar para codificar esta señal o señales por separado, y el multiplexor A130 se puede configurar para incluir la señal o señales codificadas adicionales en la señal multiplexada S70 (por ejemplo, como una porción separable).
[0022] La FIGURA 3a muestra un diagrama de bloques de una implementación A112 del banco de filtros A110 que está configurado para producir dos señales de sub-banda que tienen velocidades de muestreo reducidas. El banco de filtros A110 está dispuesto para recibir una señal de voz de banda ancha S10 que tiene una porción de alta frecuencia (o banda alta) y una porción de baja frecuencia (o banda baja). El banco de filtros A112 incluye una ruta de procesamiento de banda baja configurada para recibir la señal de voz de banda ancha S10 y para producir una señal de voz de banda estrecha S20 y una ruta de procesamiento de banda alta configurada para recibir la señal de voz de banda ancha S10 y para producir una señal de voz de banda alta S30. El filtro de paso bajo 110 filtra la señal de voz de banda ancha S10 para pasar una sub-banda de baja frecuencia seleccionada, y el filtro de paso alto 130 filtra la señal de voz de banda ancha S10 para pasar una sub-banda de alta frecuencia seleccionada. Debido a que ambas señales de sub-banda tienen anchos de banda más estrechos que la señal de voz de banda ancha S10, sus tasas de muestreo se pueden reducir en cierta medida sin pérdida de información. El muestreador descendente 120 reduce la tasa de muestreo de la señal de paso bajo de acuerdo con un factor de decimación deseado (por ejemplo, eliminando muestras de la señal y/o reemplazando muestras por valores medios) y el muestreador descendente 140 reduce asimismo la tasa de muestreo de la señal de paso alto de acuerdo con otro factor de decimación deseado.
[0023] La FIGURA 3b muestra un diagrama de bloques de una implementación correspondiente B122 del banco de filtros B120. El muestreador ascendente 150 aumenta la tasa de muestreo de la señal de banda estrecha S90 (por ejemplo, rellenando con ceros y/o duplicando muestras), y el filtro de paso bajo 160 filtra la señal muestreada de forma ascendente para pasar solo una porción de banda baja (por ejemplo, para evitar el solapamiento). Del mismo modo, el muestreador ascendente 170 aumenta la frecuencia de muestreo de la señal de banda alta S100 y el filtro de paso alto 180 filtra la señal muestreada de forma ascendente para pasar solamente una porción de banda alta. Las dos señales de banda de paso se suman a continuación para formar una señal de voz de banda ancha S110. En algunas implementaciones del descodificador B100, el banco de filtros B120 está configurado para producir una suma ponderada de las dos señales de banda de paso de acuerdo con uno o más pesos recibidos y/o calculados mediante el descodificador de banda alta B200. También se contempla una configuración del banco de filtros B120 que combina más de dos señales de banda de paso.
[0024] Cada uno de los filtros 110, 130, 160, 180 se puede implementar como un filtro de respuesta de impulso finito (FIR) o como un filtro de respuesta de impulso infinito (IIR). Las respuestas en frecuencia de los filtros codificadores 110 y 130 pueden tener regiones de transición simétricas o de forma diferente entre la banda atenuada y la banda de paso. Del mismo modo, las respuestas en frecuencia de los filtros descodificadores 160 y 180 pueden tener regiones de transición simétricas o de forma diferente entre la banda atenuada y la banda de paso. Puede ser deseable, pero no es estrictamente necesario, que el filtro de paso bajo 110 tenga la misma respuesta que el filtro de paso bajo 160, y que el filtro de paso alto 130 tenga la misma respuesta que el filtro de paso alto 180. En un ejemplo, los dos pares de filtros 110, 130 y 160, 180 son bancos de filtros espejo en cuadratura (QMF), teniendo el par de filtros 110, 130 los mismos coeficientes que el par de filtros 160, 180.
[0025] En un ejemplo típico, el filtro de paso bajo 110 tiene una banda de paso que incluye el intervalo de PSTN limitado de 300-3400 Hz (por ejemplo, la banda de 0 a 4 kHz). Las FIGURAS 4a y 4b muestran anchos de banda relativos de señales de voz de banda ancha S10, banda estrecha S20 y banda alta S30 en dos ejemplos de implementación diferentes. En ambos ejemplos particulares, la señal de voz de banda ancha S10 tiene una tasa de muestreo de 16 kHz (que representa componentes de frecuencia dentro del intervalo de 0 a 8 kHz), y la señal de banda estrecha S20 tiene una tasa de muestreo de 8 kHz (que representa componentes de frecuencia dentro del intervalo de 0 a 4 kHz).
[0026] En el ejemplo de la FIGURA 4a, no hay superposición significativa entre las dos sub-bandas. Se puede obtener una señal de banda alta S30 como se muestra en este ejemplo usando un filtro de paso alto 130 con una banda de paso de 4-8 kHz. En dicho caso, puede ser deseable reducir la tasa de muestreo a 8 kHz mediante un muestreo descendente de la señal filtrada por un factor de dos. Una operación de este tipo, que se puede esperar que reduzca significativamente la complejidad computacional de otras operaciones de procesamiento sobre la señal, desplazará la energía de la banda de paso hasta el intervalo de 0 a 4 kHz sin pérdida de información.
[0027] En el ejemplo alternativo de la FIGURA 4b, las sub-bandas superior e inferior tienen una superposición apreciable, de tal manera que la región de 3,5 a 4 kHz se describe mediante ambas señales de sub-banda. Se puede obtener una señal de banda alta S30 como en este ejemplo usando un filtro de paso alto 130 con una banda de paso de 3,5-7 kHz. En dicho caso, puede ser deseable reducir la tasa de muestreo a 7 kHz mediante el muestreo descendente de la señal filtrada por un factor de 16/7. Una operación de este tipo, que se puede esperar que reduzca significativamente la complejidad computacional de otras operaciones de procesamiento sobre la señal, desplazará la energía de la banda de paso hasta el intervalo de 0 a 3,5 kHz sin pérdida de información.
[0028] En un teléfono típico para la comunicación telefónica, uno o más de los transductores (es decir, el micrófono y el auricular o el altavoz) carece de una respuesta apreciable en el intervalo frecuencias de 7-8 kHz. En el ejemplo de la FIGURA 4b, la porción de la señal de voz de banda ancha S10 entre 7 y 8 kHz no está incluida en la señal codificada. Otros ejemplos particulares del filtro de paso alto 130 tienen bandas de paso de 3,5-7,5 kHz y 3,5-8 kHz.
[0029] En algunas implementaciones, proporcionar una superposición entre sub-bandas como en el ejemplo de la FIGURA 4b permite el uso de un filtro de paso bajo y/o un filtro de paso alto que tienen una atenuación progresiva suave sobre la región superpuesta. Típicamente, estos filtros son más fáciles de diseñar, menos complicados desde el punto de vista computacional y/o introducen menos retardos que los filtros con respuestas más agudas o de "pared de ladrillo". Los filtros que tienen regiones de transición agudas tienden a tener lóbulos laterales más altos (que pueden causar solapamiento) que los filtros de orden similar que tienen atenuaciones progresivas suaves. Los filtros que tienen regiones de transición agudas pueden tener también respuestas de impulso largas que pueden ocasionar artefactos de llamada. Para las implementaciones de bancos de filtros que tienen uno o más filtros 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, lo cual puede ser importante para asegurar una implementación de punto fijo estable.
[0030] La superposición de sub-bandas permite una mezcla suave de banda baja y banda alta que puede conllevar menos artefactos audibles, un solapamiento reducido y/o una transición menos notable de una banda a la otra. Además, la eficiencia de codificación del codificador de banda estrecha A120 (por ejemplo, un codificador de forma de onda) puede disminuir con el aumento de la frecuencia. Por ejemplo, la calidad de codificación del codificador de banda estrecha puede reducirse a bajas tasas de bits, especialmente en presencia de ruido de fondo. En dichos casos, proporcionar una superposición de las sub-bandas puede aumentar la calidad de las componentes de frecuencia reproducidas en la región superpuesta.
[0031] Además, la superposición de sub-bandas permite una mezcla suave de banda baja y banda alta que puede conllevar menos artefactos audibles, un solapamiento reducido y/o una transición menos notable de una banda a la otra. Dicha característica puede ser especialmente deseable para una implementación en la que el codificador de banda estrecha A120 y el codificador de banda alta A200 funcionan de acuerdo con diferentes metodologías de codificación. Por ejemplo, diferentes técnicas de codificación 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 al de un codificador que codifica el espectro de amplitud en su lugar. Un codificador de dominio de tiempo (por ejemplo, un codificador de modulación de código de impulso o codificador de PCM) puede producir una señal que tiene un sonido diferente al de un codificador de dominio de frecuencia. Un codificador que codifica una señal con una representación de la envolvente espectral y la correspondiente señal residual puede producir una señal que tiene un sonido diferente al de un codificador que codifica una señal con solo 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 al de un codificador sinusoidal. En dichos casos, el uso de filtros que tienen regiones de transición agudas para definir sub­ bandas que no se superponen puede dar lugar a una transición abrupta y perceptiblemente notable entre las sub­ bandas en la señal de banda ancha sintetizada.
[0032] Aunque los bancos de filtros QMF que tienen respuestas en frecuencia superpuestas complementarias se utilizan a menudo en técnicas de sub-banda, dichos filtros no son adecuados 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 descodificador. Dicha disposición puede no ser apropiada para una aplicación en la que la señal incurre en una cantidad significativa de distorsión entre los bancos de filtros, ya que la distorsión puede reducir la eficiencia 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 bits muy bajas. Como consecuencia de la tasa de bits muy baja, es probable que la señal descodificada aparezca significativamente distorsionada en comparación con la señal original, de tal manera que el uso de bancos de filtros QMF puede conllevar un solapamiento no cancelado. Las aplicaciones que usan bancos de filtros QMF típicamente tienen tasas de bits más altas (por ejemplo, más de 12 kbps para AMR y 64 kbps para G.722).
[0033] Además, un codificador puede estar configurado para producir una señal sintetizada que es perceptualmente similar a la señal original, pero que en realidad difiere significativamente de la señal original. Por ejemplo, un codificador que obtiene la excitación de banda alta del residuo de banda estrecha como se describe en el presente documento puede producir dicha señal, ya que el residuo de banda alta real puede estar completamente ausente de la señal descodificada. El uso de bancos de filtros QMF en dichas aplicaciones puede conllevar un grado significativo de distorsión causada por un solapamiento no cancelado.
[0034] La cantidad de distorsión causada por el solapamiento QMF puede reducirse si la sub-banda afectada es estrecha, ya que el efecto del solapamiento está limitado a un ancho de banda igual al ancho de la sub-banda. Para los ejemplos que se describen en el presente documento en los que cada sub-banda incluye aproximadamente la mitad del ancho de banda de banda ancha, sin embargo, la distorsión causada por el solapamiento no cancelado podría afectar a una parte significativa de la señal. La calidad de la señal también puede verse afectada 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 voz de banda ancha (por ejemplo, entre 3 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).
[0035] Mientras que las respuestas de los filtros de un banco de filtros QMF están estrictamente relacionadas entre sí, las rutas de banda baja y banda alta de los bancos de filtros A110 y B120 pueden estar configuradas para tener espectros que están completamente no relacionados, aparte de la superposición de las dos sub-bandas. La superposición de las dos sub-bandas se define como la distancia desde el punto en el que la respuesta en frecuencia del filtro de banda alta cae a -20 dB hasta el punto en el que la respuesta en frecuencia del filtro de banda baja cae a -20 dB. En varios ejemplos del banco de filtros A110 y/o B120, esta superposición oscila entre aproximadamente 200 Hz y aproximadamente 1 kHz. El intervalo de aproximadamente 400 a aproximadamente 600 Hz puede representar un equilibrio deseable entre la eficiencia de codificación y la suavidad perceptual. En un ejemplo particular como se mencionó anteriormente, la superposición es de aproximadamente 500 Hz.
[0036] Puede ser deseable implementar un banco de filtros A112 y/o B122 para realizar operaciones 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 del banco de filtros A112 que realiza un equivalente funcional de operaciones de filtrado y de muestreo descendente de paso alto usando una serie de operaciones de interpolación, remuestreo, decimación y otras operaciones. Dicha implementación puede ser más fácil de diseñar y/o puede permitir la reutilización de bloques funcionales de lógica y/o código. Por ejemplo, se puede usar el mismo bloque funcional para realizar las operaciones de decimación a 14 kHz y decimación a 7 kHz como se muestra en la FIGURA 4c. La operación de inversión espectral puede implementarse multiplicando la señal por la función e)nno la secuencia (-1)n, cuyos valores alternan entre 1 y -1. La operación de conformación espectral se puede implementar como un filtro de paso bajo configurado para conformar la señal para obtener una respuesta de filtro global deseada.
[0037] Se observa que, como consecuencia de la operación de inversión espectral, el espectro de la señal de banda alta S30 se invierte. Las operaciones subsiguientes en el codificador y el descodificador correspondiente pueden configurarse en consecuencia. Por ejemplo, el generador de excitación de banda alta A300 como se describe en el presente documento puede configurarse para producir una señal de excitación de banda alta S120 que también tiene una forma espectralmente invertida.
[0038] La FIGURA 4d muestra un diagrama de bloques de una implementación B124 del banco de filtros B122 que realiza un equivalente funcional de operaciones de muestreo ascendente y filtrado de paso alto usando una serie de operaciones de interpolación, remuestreo y otras operaciones. El banco de filtros B124 incluye una operación de inversión espectral en la banda alta que invierte una operación similar a la realizada, por ejemplo, en un banco de filtros del codificador tal como el banco de filtros A114. En este ejemplo particular, el banco de filtros B124 también incluye filtros de muesca en la banda baja y banda alta que atenúan un componente de la señal a 7100 Hz, aunque dichos filtros son opcionales y no es necesario incluirlos. La Solicitud de Patente "SYSTEMS, METHODS, AND APPARATUS FOR SPEECH SIGNAL FILTERING" ["SISTEMAS, PROCEDIMIENTOS Y APARATOS PARA EL FILTRADO DE SEÑALES DE VOZ"] presentada el 3 de abril de 2006, expediente del apoderado No. 050551, incluye una descripción adicional y figuras relacionadas con respuestas de elementos de implementaciones particulares de bancos de filtros A110 y B120, y este material se incorpora en el presente documento como referencia .
[0039] El codificador de banda estrecha A120 se implementa de acuerdo con un modelo de filtro fuente que codifica la señal de voz de entrada como (A) un conjunto de parámetros que describen un filtro y (B) una señal de excitación que impulsa al filtro descrito para producir una reproducción sintetizada de la señal de voz de entrada. La FIGURA 5a muestra un ejemplo de una envolvente espectral de una señal de voz. Los picos que caracterizan esta envolvente espectral representan resonancias del tracto vocal y se denominan formantes. La mayoría de los codificadores de voz codifican al menos esta estructura espectral aproximada como un conjunto de parámetros tales como coeficientes de filtro.
[0040] La FIGURA 5b muestra un ejemplo de una disposición básica de filtro de fuente según se aplica a la codificación de la envolvente espectral de la señal de banda estrecha S20. Un módulo de análisis calcula un conjunto de parámetros que caracterizan un filtro correspondiente al sonido de voz durante un período de tiempo (típicamente 20 ms). Un filtro blanqueador (también denominado filtro de error de predicción o análisis) configurado de acuerdo con esos parámetros de filtro elimina la envolvente espectral para aplanar espectralmente la señal. La señal blanqueada resultante (también denominada un residuo) tiene menos energía y por tanto menos varianza y es más fácil de codificar que la señal de voz original. Los errores resultantes de la codificación de la señal residual también se pueden distribuir más uniformemente sobre el espectro. Los parámetros de filtro y el residuo típicamente se cuantifican para una transmisión eficiente a través del canal. En el descodificador, un filtro de síntesis configurado de acuerdo con los parámetros de filtro se excita mediante una señal basada en el residuo para producir una versión sintetizada del sonido de voz original. El filtro de síntesis se configura típicamente para tener una función de transferencia que es la inversa de la función de transferencia del filtro blanqueador.
[0041] La FIGURA 6 muestra un diagrama de bloques de una implementación básica A122 del codificador de banda estrecha A120. En este ejemplo, un módulo de análisis de codificación de predicción lineal (LPC) 210 codifica la envolvente espectral de la señal de banda estrecha S20 como un conjunto de coeficientes de predicción lineal (LP) (por ejemplo, coeficientes de un filtro todo-polos 1/A(z)). El módulo de análisis típicamente procesa la señal de entrada como una serie de tramas no superpuestas, calculándose un nuevo conjunto de coeficientes para cada trama. El periodo de trama es en general un período sobre el cual se puede esperar que la señal sea localmente estacionaria; un ejemplo común es de 20 milisegundos (equivalente a 160 muestras a una tasa de muestreo de 8 kHz). En un ejemplo, el módulo de análisis LPC 210 está configurado para calcular un conjunto de diez coeficientes de filtro 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.
[0042] El módulo de análisis puede estar configurado para analizar las muestras de cada trama directamente, o las muestras pueden ponderarse primero de acuerdo con una función de ventana (por ejemplo, una ventana de Hamming). El análisis también puede realizarse sobre una ventana que sea 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 incluya los 5 milisegundos inmediatamente antes y después de la trama de 20 milisegundos) o asimétrica (por ejemplo, 10-20, de tal manera que incluya los últimos 10 milisegundos de la trama anterior). Un módulo de análisis LPC está configurado típicamente para calcular los coeficientes de filtro LP usando una recursión Levinson-Durbin o el algoritmo de Leroux-Gueguen. En otra implementación, el módulo de análisis puede configurarse para calcular un conjunto de coeficientes cepstrales para cada trama en lugar de un conjunto de coeficientes de filtro LP.
[0043] 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 de manera eficiente y habitualmente se asignan a otra representación, tal como pares espectrales de línea (LSPs) o frecuencias espectrales de línea (LSF), para codificación de cuantificación y/o entropía. En el ejemplo de la FIGURA 6, la transformación de coeficiente de filtro LP a LSF 220 transforma el conjunto de coeficientes de filtro LP en un conjunto correspondiente de LSF. Otras representaciones uno a uno de los coeficientes de filtro LP incluyen coeficientes de parcor; valores de relación de registro a área; pares espectrales de inmitancia (ISP); y frecuencias espectrales de inmitancia (ISF), que se usan en el códec AMR-WB (Adaptativo de Múltiples Velocidades-Banda Ancha) de GSM (Sistema Global para Comunicaciones Móviles). Típicamente, una transformación entre un conjunto de coeficientes de filtro LP y un conjunto correspondiente de LSF es reversible, pero los modos de realización también incluyen implementaciones del codificador A120 en las que la transformación no es reversible sin error.
[0044] El cuantificador 230 está configurado para cuantificar el conjunto de LSF de banda estrecha (u otra representación de coeficiente) y el codificador de banda estrecha A122 está configurado para emitir el resultado de esta cuantificación como los parámetros de filtro de banda estrecha S40. Dicho cuantificador incluye típicamente un cuantificador vectorial que codifica el vector de entrada como un índice a una entrada de vector correspondiente en una tabla o libro de códigos.
[0045] Como se ve en la FIGURA 6, el codificador de banda estrecha A122 también genera una señal residual haciendo pasar la señal de banda estrecha S20 a través de un filtro blanqueador 260 (también denominado un filtro de análisis o de error de predicción) que está configurado de acuerdo con el conjunto de coeficientes de filtro. En este ejemplo particular, el filtro blanqueador 260 se implementa como un filtro FIR, aunque también se pueden usar implementaciones IIR. Esta señal residual típicamente contendrá información importante desde el punto de vista perceptual de la trama de voz, tal como la estructura a largo plazo relacionada con el tono, que no está representada en los parámetros de filtro de banda estrecha S40. El cuantificador 270 está configurado para calcular una representación cuantificada de esta señal residual para emitirla como una señal de excitación de banda estrecha codificada S50. Dicho cuantificador incluye típicamente un cuantificador vectorial que codifica el vector de entrada como un índice a una entrada de vector correspondiente en una tabla o libro de códigos. De forma alternativa, dicho cuantificador puede configurarse para enviar uno o más parámetros a partir de los cuales el vector puede generarse dinámicamente en el descodificador, en lugar de recuperarse del almacenamiento, como en un procedimiento de libro de códigos disperso. Dicho procedimiento se usa en esquemas de codificación tales como CELP algebraico (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 Velocidad Variable Mejorado).
[0046] Es deseable que el codificador de banda estrecha A120 genere la señal de excitación de banda estrecha codificada de acuerdo con los mismos valores de parámetros de filtro que estarán disponibles para el descodificador de banda estrecha correspondiente. De esta manera, la señal de excitación de banda estrecha codificada resultante ya puede tener en cuenta hasta cierto punto las no idealidades en esos valores de parámetros, tales como el error de cuantificación. En consecuencia, es deseable configurar el filtro blanqueador usando los mismos valores de coeficiente que estarán disponibles en el descodificador. En el ejemplo básico del codificador A122 como se muestra en la FIGURA 6, el cuantificador inverso 240 descuantifica los parámetros de codificación de banda estrecha S40, la transformación de LSF a coeficiente de filtro LP 250 asigna los valores resultantes nuevamente a un conjunto correspondiente de coeficientes de filtro LP, y este conjunto de coeficientes se usa para configurar el filtro blanqueador 260 para generar la señal residual que se cuantifica mediante el cuantificador 270.
[0047] Algunas implementaciones del codificador de banda estrecha A120 están configuradas para calcular la señal de excitación de banda estrecha codificada S50 mediante la identificación de uno entre un conjunto de vectores de libro de códigos que mejor coincida con la señal residual. Se observa, sin embargo, que el codificador de banda estrecha A120 también se puede implementar para calcular una representación cuantificada de la señal residual sin generar realmente la señal residual. Por ejemplo, el codificador de banda estrecha A120 puede configurarse para usar varios vectores de libro de códigos para generar señales sintetizadas correspondientes (por ejemplo, de acuerdo con un conjunto actual de parámetros de filtro), y para seleccionar el vector de libro de códigos asociado con la señal generada que mejor coincida con la señal de banda estrecha original S20 en un dominio ponderado perceptualmente.
[0048] La FIGURA 7 muestra un diagrama de bloques de una implementación B112 del descodificador de banda estrecha B110. El cuantificador inverso 310 descuantifica los parámetros de filtro de banda estrecha S40 (en este caso, a un conjunto de LSF) y la transformación de LSF a coeficientes de filtro LP 320 transforma los LSF en un conjunto de coeficientes de filtro (por ejemplo, como se ha descrito anteriormente con referencia al cuantificador inverso 240 y la transformación 250 del codificador de banda estrecha A122). El cuantificador inverso 340 descuantifica la señal residual de banda estrecha S40 para producir una señal de excitación de banda estrecha S80. Basándose en los coeficientes de filtro y en la señal de excitación de banda estrecha S80, el filtro de síntesis de banda estrecha 330 sintetiza la señal de banda estrecha S90. En otras palabras, el filtro de síntesis de banda estrecha 330 está configurado para conformar espectralmente la señal de excitación de banda estrecha S80 de acuerdo con los coeficientes de filtro descuantificados para producir la señal de banda estrecha S90. El descodificador de banda estrecha B112 también proporciona una señal de excitación de banda estrecha S80 al codificador de banda alta A200, que la usa para obtener la señal de excitación de banda alta S120 como se describe en el presente documento. En algunas implementaciones como se describe a continuación, el descodificador de banda estrecha B110 puede configurarse para proporcionar información adicional al descodificador de banda alta B200 que se refiera a la señal de banda estrecha, tal como inclinación espectral, ganancia de tono y retardo, y modo de voz.
[0049] El sistema del codificador de banda estrecha A122 y el descodificador de banda estrecha B112 es un ejemplo básico de un códec de voz de análisis por síntesis. La codificación de predicción lineal de excitación por libro de códigos (CELP) es una familia popular de codificación de análisis por síntesis, y las implementaciones de dichos codificadores pueden realizar la codificación de forma de onda del residuo, incluyendo operaciones tales como la selección de entradas de libros de códigos fijos y adaptativos, operaciones de minimización de errores y/u operaciones de ponderación perceptual. Otras implementaciones de la codificación de análisis por síntesis incluyen codificación de predicción lineal de excitación mixta (MELP), CELP algebraica (ACELP), CELP de relajación (RCELP), excitación de impulso regular (RPE), CELP multipulsos (MPE), y predicción lineal excitada por suma de vectores (VSELP). Los procedimientos de codificación relacionados incluyen la codificación de excitación de múltiples bandas (MBE) y de interpolación de onda prototípica (PWI). Entre los ejemplos de códecs de voz de análisis por síntesis normalizados se incluyen el códec de velocidad máxima de ETSI (European Telecommunications Standards Institute)-GSM (GSM 06.10), que usa la predicción lineal excitada residual (RELP)); el códec de velocidad máxima mejorado GSM (ETSI-GSm 06.60); el codificador de la norma de la UIT (Unión Internacional de Telecomunicaciones) 11,8 kb/s G.729 Anexo E; los códecs IS (Interim Standard)-641 para IS-136 (un esquema de acceso múltiple por división de tiempo); los códecs adaptativos de múltiples velocidades de GSM (Gs M-AMR); y el códec 4Gv ™ (Vocoder™ de Cuarta Generación) (QUALCOMM Incorporated, San Diego, California). El codificador de banda estrecha A120 y el descodificador B110 correspondiente pueden implementarse de acuerdo con cualquiera de estas tecnologías, o cualquier otra tecnología de codificación de voz (conocida o por desarrollar) que represente una señal de voz como (A) un conjunto de parámetros que describen un filtro y (B) una señal de excitación usada para impulsar el filtro descrito para reproducir la señal de voz.
[0050] Incluso después de que el filtro blanqueador haya eliminado la envolvente espectral aproximada de la señal de banda estrecha S20, puede permanecer una cantidad considerable de estructura armónica fina, especialmente para voz sonora. La FIGURA 8a muestra un gráfico espectral de un ejemplo de una señal residual, tal como puede producirse mediante un filtro blanqueador, para una señal sonora tal como una vocal. La estructura periódica visible en este ejemplo está relacionada con el tono, y diferentes sonidos sonoros emitidos por el mismo hablante pueden tener diferentes estructuras formantes pero estructuras de tono similares. La FIGURA 8b muestra una representación en el dominio de tiempo de un ejemplo de dicha señal residual que muestra una secuencia de impulsos de tono en el tiempo.
[0051] La eficacia de codificación y/o la calidad de la voz pueden aumentarse usando uno o más valores de parámetros para codificar características de la estructura de tono. Una característica importante de la estructura de tono es la frecuencia del primer armónico (también denominada la frecuencia fundamental), que está típicamente en el intervalo de 60 a 400 Hz. Esta característica se codifica típicamente como la inversa de la frecuencia fundamental, también denominada el retardo de tono. El retardo de tono indica el número de muestras en un periodo de tono y puede codificarse como uno o más índices de libro de códigos. Las señales de voz de los hablantes masculinos tienden a tener mayores retardos de tono que las señales de voz de las hablantes femeninas.
[0052] Otra característica de señal relacionada con la estructura de tono es la periodicidad, la cual indica la intensidad de la estructura armónica o, en otras palabras, el grado en que la señal es armónica o no armónica. Dos indicadores típicos de periodicidad son los cruces por cero y las funciones de autocorrelación normalizadas (NACF). La periodicidad también se puede indicar mediante la ganancia de tono, que comúnmente se codifica como una ganancia de libro de códigos (por ejemplo, una ganancia de libro de códigos adaptativa cuantificada).
[0053] El codificador de banda estrecha A120 puede incluir uno o más módulos configurados para codificar la estructura armónica a largo plazo de la señal de banda estrecha S20. Como se muestra en la FIGURA 9, un paradigma de CELP típico que se puede usar incluye un módulo de análisis 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 ciclo cerrado, que codifica la estructura armónica o el tono fino. 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 el retardo de tono y la ganancia de tono. Por ejemplo, el codificador de banda estrecha A120 puede configurarse para emitir la señal de excitación de banda estrecha codificada S50 en una forma que incluye uno o más índices de libro de códigos (por ejemplo, un índice de libro de códigos fijo y un índice de libro de códigos adaptativo) y valores de ganancia correspondientes. El cálculo de esta representación cuantificada de la señal residual de banda estrecha (por ejemplo, mediante el cuantificador 270) puede incluir la selección de dichos índices y el cálculo de dichos valores. La codificación de la estructura de tono puede también incluir la interpolación de una forma de onda prototípica de tono, cuya operación puede incluir calcular una diferencia entre impulsos de tono sucesivos. El modelado de la estructura a largo plazo se puede deshabilitado para tramas que corresponden voz sorda, que típicamente es similar al ruido y no estructurada.
[0054] Una implementación del descodificador de banda estrecha B110 de acuerdo con un paradigma tal como se muestra en la FIGURA 9 puede estar configurada para enviar la señal de excitación de banda estrecha S80 al descodificador de banda alta B200 después de que la estructura a largo plazo (estructura de tono o armónica) se haya restaurado. Por ejemplo, un descodificador de este tipo puede configurarse para emitir una señal de excitación de banda estrecha S80 como una versión descuantificada de la señal de excitación de banda estrecha codificada S50. Por supuesto, también es posible implementar el descodificador de banda estrecha B110 de tal manera que el descodificador de banda alta B200 realice la descuantificación de la señal de excitación de banda estrecha codificada S50 para obtener la señal de excitación de banda estrecha S80.
[0055] En una implementación del codificador de voz de banda ancha A100 de acuerdo con un paradigma tal como se muestra en la FIGURA 9, el codificador de banda alta A200 puede estar configurado para recibir la señal de excitación de banda estrecha como la producida por el análisis a corto plazo o el filtro blanqueador. En otras palabras, el codificador de banda estrecha A120 puede configurarse para emitir la señal de excitación de banda estrecha al codificador de banda alta A200 antes de codificar la estructura a largo plazo. Sin embargo, es deseable que el codificador de banda alta A200 reciba del canal de banda estrecha la misma información de codificación que se recibirá mediante el descodificador de banda alta B200, de tal manera que los parámetros de codificación producidos por el codificador de banda alta A200 ya puedan tener en cuenta hasta cierto punto las no idealidades de esa información. Por tanto, puede ser preferible que el codificador de banda alta A200 reconstruya la señal de excitación de banda estrecha S80 a partir de la misma señal de excitación de banda estrecha codificada parametrizada y/o cuantificada S50 a emitir mediante el codificador de voz de banda ancha A100. Una posible ventaja de este enfoque es un cálculo más preciso de los factores de ganancia de banda alta S60b descritos a continuación.
[0056] Además de los parámetros que caracterizan la estructura a corto plazo y/o a largo plazo de la señal de banda estrecha S20, el codificador de banda estrecha A120 puede producir valores de parámetros que se refieren a otras características de la señal de banda estrecha S20. Estos valores, que pueden cuantificarse adecuadamente para la salida mediante el codificador de voz de banda ancha A100, pueden incluirse entre los parámetros de filtro de banda estrecha S40 o se pueden emitir por separado. El codificador de banda alta A200 también se puede configurar para calcular los parámetros de codificación de banda alta S60 de acuerdo con uno o más de estos parámetros adicionales (por ejemplo, después de la descuantificación). En el descodificador de voz de banda ancha B100, el descodificador de banda alta B200 puede configurarse para recibir los valores de los parámetros a través del descodificador de banda estrecha B110 (por ejemplo, después de la descuantificación). De forma alternativa, el descodificador de banda alta B200 puede configurarse para recibir (y posiblemente para descuantificar) los valores de los parámetros directamente.
[0057] En un ejemplo de parámetros de codificación de banda estrecha adicionales, el codificador de banda estrecha A120 produce valores para los parámetros de modo de voz e inclinación espectral para cada trama. La inclinación espectral se refiere a la forma de la envolvente espectral sobre la banda de paso y se representa típicamente mediante el primer coeficiente de reflexión cuantificado. Para la mayoría de los sonidos sonoros, la energía espectral disminuye con el aumento de la frecuencia, de tal manera que el primer coeficiente de reflexión es negativo y puede aproximarse a -1. La mayoría de los sonidos sordos tienen un espectro que es plano, de tal manera que el primer coeficiente de reflexión es cercano a cero, o bien tiene más energía a altas frecuencias, de tal manera que el primer coeficiente de reflexión es positivo y puede aproximarse a 1.
[0058] El modo de voz (también llamado modo de sonoridad) indica si la trama actual representa voz sonora o sorda. Este parámetro puede tener un valor binario basado en una o más medidas de periodicidad (por ejemplo, cruces por cero, NACF, ganancia de tono) y/o actividad de voz para la trama, tal como una relación entre dicha medida y un valor de umbral. En otras implementaciones, el parámetro de modo de voz tiene uno o más estados diferentes para indicar modos tales como silencio o ruido de fondo, o una transición entre silencio y voz sonora.
[0059] El codificador de banda alta A200 está configurado para codificar la señal de banda alta S30 de acuerdo con un modelo de filtro fuente, estando la excitación para este filtro basada 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 de banda alta A200 que está configurado para producir un flujo de parámetros de codificación de banda alta S60 que incluye parámetros de filtro de banda alta S60a y factores de ganancia de banda alta S60b. El generador de excitación de banda alta A300 obtiene una señal de excitación de banda alta S120 a partir de la señal de excitación de banda estrecha codificada S50. El módulo de análisis A210 produce un conjunto de valores de parámetros que caracterizan la envolvente espectral de la señal de banda alta S30. En este ejemplo particular, el módulo de análisis A210 está configurado para realizar análisis LPC para producir un conjunto de coeficientes de filtro LP para cada trama de la señal de banda alta S30. La transformación 410 de coeficiente de filtro de predicción lineal a LSF transforma el conjunto de coeficientes de filtro LP en un conjunto correspondiente de LSF. Como se ha indicado anteriormente con referencia al módulo de análisis 210 y la transformación 220, el módulo de análisis A210 y/o la transformación 410 pueden configurarse para usar otros conjuntos de coeficientes (por ejemplo, coeficientes cepstrales) y/o representaciones de coeficientes (por ejemplo, ISP).
[0060] El cuantificador 420 está configurado para cuantificar el conjunto de LSF de banda alta (u otra representación de coeficiente, tal como ISP), y el codificador de banda alta A202 está configurado para emitir el resultado de esta cuantificación como los parámetros de filtro de banda alta S60a. Dicho cuantificador incluye típicamente un cuantificador vectorial que codifica el vector de entrada como un índice a una entrada de vector correspondiente en una tabla o libro de códigos.
[0061] El codificador de banda alta A202 también incluye un filtro de síntesis A220 configurado para producir una señal de banda alta sintetizada S130 de acuerdo con la señal de excitación de banda alta S120 y la envolvente espectral codificada (por ejemplo, el conjunto de coeficientes de filtro LP) producida por el módulo de análisis A210. El filtro de síntesis A220 se implementa típicamente como un filtro IIR, aunque también se pueden usar implementaciones FIR. En un ejemplo particular, el filtro de síntesis A220 se implementa como un filtro autorregresivo lineal de sexto orden.
[0062] El calculador de factor de ganancia de banda alta A230 calcula una o más diferencias entre los niveles de la señal de banda alta original S30 y la señal de banda alta sintetizada S130 para especificar una envolvente de ganancia para la trama. El cuantificador 430, que puede implementarse como un cuantificador vectorial que codifica el vector de entrada como un índice para una entrada de vector correspondiente en una tabla o libro de códigos, cuantifica el valor o valores que especifican la envolvente de ganancia, y el codificador de banda alta A202 está configurado para emitir el resultado de esta cuantificación como factores de ganancia de banda alta S60b.
[0063] En una implementación tal como se muestra en la FIGURA 10, el filtro de síntesis A220 está dispuesto para recibir los coeficientes de filtro del módulo de análisis A210. Una implementación alternativa del codificador de banda alta A202 incluye un cuantificador inverso y una transformación inversa configurada para descodificar los coeficientes de filtro de los parámetros de filtro de banda alta S60a, y en este caso el filtro de síntesis A220 está dispuesto para recibir en su lugar los coeficientes de filtro descodificados. Dicha disposición alternativa puede soportar un cálculo más preciso de la envolvente de la envolvente de ganancia mediante el calculador de ganancia de banda alta A230.
[0064] En un ejemplo particular, el módulo de análisis A210 y el calculador de ganancia de banda alta A230 emiten un conjunto de seis LSF y un conjunto de cinco valores de ganancia por trama, respectivamente, de tal manera que puede conseguirse una ampliación de banda ancha de la señal de banda estrecha S20 con solo once valores adicionales por trama. El oído tiende a ser menos sensible a los errores de frecuencia a altas frecuencias, de tal manera que la codificación de banda alta a un orden de LPC bajo puede producir una señal que tiene una calidad perceptual comparable a la codificación de banda estrecha a un orden de LPC más alto. Una implementación típica del codificador de banda alta A200 puede configurarse para emitir de 8 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 de análisis A210 emite un conjunto de ocho LSF por trama.
[0065] Algunas implementaciones del codificador de banda alta A200 están configuradas para producir la señal de excitación de banda alta S120 mediante la generación de una señal de ruido aleatorio que tiene componentes de frecuencia de banda alta y modulación de amplitud de la señal de ruido de acuerdo con la envolvente de dominio de tiempo de la señal de banda estrecha S20, la señal de excitación de banda estrecha S80 o la señal de banda alta S30. Si bien este procedimiento basado en el ruido puede producir resultados adecuados para los sonidos sordos, sin embargo, puede no ser deseable para sonidos sonoros, cuyos residuos son en general armónicos y, por consiguiente, tienen alguna estructura periódica.
[0066] El generador de excitación de banda alta A300 está configurado para generar una señal de excitación de banda alta S120 ampliando el espectro de la señal de excitación de banda estrecha S80 al intervalo de frecuencias de banda alta. La FIGURA 11 muestra un diagrama de bloques de una implementación A302 del generador de excitación de banda alta A300. El cuantificador inverso 450 está configurado para descuantificar la señal de excitación de banda estrecha codificada S50 para producir la señal de excitación de banda estrecha S80. El ampliador de espectro A400 está configurado para producir una señal ampliada armónicamente S160 basándose en la señal de excitación de banda estrecha S80. El combinador 470 está configurado para combinar una señal de ruido aleatorio generada por el generador de ruido 480 y una envolvente de dominio de tiempo calculada por el calculador de envolvente 460 para producir una señal de ruido modulada S170. El combinador 490 está configurado para mezclar la señal ampliada armónicamente S60 y la señal de ruido modulada S170 para producir una señal de excitación de banda alta S120.
[0067] En un ejemplo, el ampliador de espectro A400 está configurado para realizar una operación de plegado espectral (también denominada reflexión) en la señal de excitación de banda estrecha S80 para producir la señal ampliada armónicamente S160. El plegado espectral puede realizarse mediante la señal de excitación de relleno con ceros S80 y después aplicando un filtro de paso alto para mantener el solapamiento. En otro ejemplo, el amplificador de espectro A400 está configurado para producir una señal ampliada armónicamente S160 mediante la traslación espectral de la señal de excitación de banda estrecha S80 a la banda alta (por ejemplo, mediante un muestreo ascendente seguido por una multiplicación con una señal de coseno de frecuencia constante).
[0068] Los procedimientos de plegado y de traslación espectrales pueden producir señales ampliadas espectralmente cuya estructura armónica es discontinua con la estructura armónica original de la señal de excitación de banda estrecha S80 en fase y/o frecuencia. Por ejemplo, dichos procedimientos pueden producir señales que tienen picos que en general no están localizados en múltiplos de la frecuencia fundamental, lo cual puede ocasionar artefactos de resonancia acústica en la señal de voz reconstruida. Estos procedimientos también tienden a producir armónicos de alta frecuencia que tienen características tonales inusualmente fuertes. Además, debido a que una señal PSTN se puede muestrear a 8 kHz pero con banda limitada a no más de 3400 Hz, el espectro superior de la señal de excitación de banda estrecha S80 puede contener poca o ninguna energía, de tal manera que una señal ampliada generada de acuerdo con una operación de plegado espectral o traslación espectral puede tener un orificio espectral por encima de 3400 Hz.
[0069] Otros procedimientos de generación de señal ampliada armónicamente S160 incluyen la identificación de una o más frecuencias fundamentales de la señal de excitación de banda estrecha S80 y la generación de tonos armónicos de acuerdo con esa información. Por ejemplo, la estructura armónica de una señal de excitación puede caracterizarse por la frecuencia fundamental junto con la información de amplitud y fase. Otra implementación del generador de excitación de banda alta A300 genera una señal ampliada armónicamente S160 basándose en la frecuencia fundamental y la amplitud (como se indica, por ejemplo, mediante el retardo de tono y la ganancia de tono). A menos que la señal ampliada armónicamente sea coherente en fase con la señal de excitación de banda estrecha S80, sin embargo, la calidad de la voz descodificada resultante puede no ser aceptable.
[0070] Se puede usar una función no lineal para crear una señal de excitación de banda alta que sea coherente en fase con la excitación de banda estrecha y preserve la estructura armónica sin discontinuidad de fase. Una función no lineal también puede proporcionar un mayor nivel de ruido entre los armónicos de alta frecuencia, que tienden a sonar más naturales que los armónicos de alta frecuencia tonales producidos mediante procedimientos tales como el plegado espectral y la traslación espectral. Las funciones no lineales sin memoria típicas que pueden aplicarse mediante varias implementaciones del amplificador de espectro A400 incluyen la función de valor absoluto (también denominada rectificación de onda completa), rectificación de onda media, cuadratura, cubicación y recorte. Otras implementaciones del amplificador de espectro A400 pueden configurarse para aplicar una función no lineal que tiene memoria.
[0071] La FIGURA 12 es un diagrama de bloques de una implementación A402 del ampliador de espectro A400 que está configurado para aplicar una función no lineal para ampliar el espectro de la señal de excitación de banda estrecha S80. El muestreador ascendente 510 está configurado para realizar un muestreo ascendente de la señal de excitación de banda estrecha S80. Puede ser deseable muestrear de forma ascendente la señal lo suficiente como para minimizar el solapamiento tras la aplicación de la función no lineal. En un ejemplo particular, el muestreador ascendente 510 realiza un muestreo ascendente de la señal por un factor de ocho. El muestreador ascendente 510 puede configurarse para realizar la operación de muestreo ascendente mediante relleno con ceros de la señal de entrada y el filtrado de paso bajo del resultado. El calculador de función no lineal 520 está configurado para aplicar una función no lineal a la señal muestreada de forma ascendente. Una posible ventaja de la función de valor absoluto sobre otras funciones no lineales para la ampliación espectral, tales como la cuadratura, es que no es necesaria la normalización de energía. En algunas implementaciones, la función de valor absoluto puede aplicarse eficientemente mediante la separación o borrado del bit de signo de cada muestra. El calculador de función no lineal 520 también se puede configurar para realizar una distorsión de amplitud de la señal muestreada de forma ascendente o ampliada espectralmente.
[0072] El muestreador descendente 530 está configurado para muestrear de forma descendente el resultado ampliado espectralmente de la aplicación de la función no lineal. Puede ser deseable que el muestreador descendente 530 realice una operación de filtrado de paso de banda para seleccionar una banda de frecuencias deseada de la señal ampliada espectralmente antes de reducir la tasa de muestreo (por ejemplo, para reducir o evitar el solapamiento o la corrupción mediante una imagen no deseada). También puede ser deseable que el muestreador descendente 530 reduzca la frecuencia de muestreo en más de una etapa.
[0073] La FIGURA 12a es un diagrama que muestra los espectros de señal en varios puntos en un ejemplo de una operación de ampliación espectral, en la que la escala de frecuencia es la misma en los diversos gráficos. El gráfico (a) muestra el espectro de un ejemplo de señal de excitación de banda estrecha S80. El gráfico (b) muestra el espectro después de que la señal S80 se haya muestreado de forma ascendente por un factor de ocho. El gráfico (c) muestra un ejemplo del espectro ampliado después de la aplicación de una función no lineal. El gráfico (d) muestra el espectro después del filtrado de paso bajo. En este ejemplo, la banda de paso se extiende hasta el límite de frecuencia superior de la señal de banda alta S30 (por ejemplo, 7 kHz u 8 kHz).
[0074] El gráfico (e) muestra el espectro después de una primera etapa de muestreo descendente, en la que la tasa de muestreo se reduce en un factor de cuatro para obtener una señal de banda ancha. El gráfico (f) muestra el espectro después de una operación de filtrado de paso alto para seleccionar la porción de banda alta de la señal ampliada, y el gráfico (g) muestra el espectro después de una segunda etapa de muestreo descendente, en la que la frecuencia de muestreo se reduce en un factor de dos. En un ejemplo particular, el muestreador descendente 530 realiza el filtrado de paso alto y la segunda etapa de muestreo descendente haciendo pasar la señal de banda ancha a través del filtro de paso alto 130 y el muestreador descendente 140 del banco de filtros A112 (u otras estructuras o rutinas que tengan la misma respuesta) para producir una señal ampliada espectralmente que tiene el intervalo de frecuencias y la tasa de muestreo de la señal de banda alta S30.
[0075] Como puede verse en el gráfico (g), el muestreo descendente de la señal de paso alto mostrada en el gráfico (f) provoca la inversión de su espectro. En este ejemplo, el muestreador descendente 530 está configurado también para realizar una operación de inversión espectral sobre la señal. El gráfico (h) muestra un resultado de la aplicación de la operación de inversión espectral, que puede realizarse multiplicando la señal por la función e)nn 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 frecuencia en una distancia de n. Se observa que el mismo resultado puede obtenerse también aplicando las operaciones de muestreo descendente e inversión espectral en un orden diferente. Las operaciones de muestreo ascendente y/o muestreo descendente también pueden configurarse para incluir el remuestreo para obtener una señal ampliada espectralmente que tenga la frecuencia de muestreo de la señal de banda alta S30 (por ejemplo, 7 kHz).
[0076] Como se ha señalado anteriormente, los bancos de filtros A110 y B120 se pueden implementar de tal manera que una o ambas de las señales de banda estrecha y de banda alta S20, S30 tenga una forma espectralmente invertida en la salida del banco de filtros A110, se codifique y descodifique en la forma espectralmente invertida y se invierta espectralmente de nuevo en el banco de filtros B120 antes de emitirse en señal de voz de banda ancha S110. En tal caso, por supuesto, no sería necesaria una operación de inversión espectral como se muestra en la FIGURA 12a, ya que sería deseable que la señal de excitación de banda alta S120 tuviera también una forma espectral invertida.
[0077] Las diversas tareas de muestreo ascendente y de muestreo descendente de una operación de ampliación espectral como la realizada mediante el ampliador de espectro A402 pueden estar configuradas y dispuestas de muchas maneras diferentes. Por ejemplo, la FIGURA 12b es un diagrama que muestra los espectros de señal en varios puntos en otro ejemplo de una operación de ampliación espectral, donde la escala de frecuencia es la misma en los diversos gráficos. El gráfico (a) muestra el espectro de un ejemplo de señal de excitación de banda estrecha S80. El gráfico (b) muestra el espectro después de que la señal S80 se haya muestreado de forma ascendente por un factor de dos. El gráfico (c) muestra un ejemplo del espectro ampliado después de la aplicación de una función no lineal. En este caso, se acepta el solapamiento que puede ocurrir en las frecuencias más altas.
[0078] El gráfico (d) muestra el espectro después de una operación de inversión espectral. El gráfico (e) muestra el espectro después de una única etapa de muestreo descendente, en la que la frecuencia de muestreo se reduce en un factor de dos para obtener la señal ampliada espectralmente deseada. En este ejemplo, la señal está en forma espectralmente invertida y puede usarse en una implementación del codificador de banda alta A200 que procesa la señal de banda alta S30 de tal forma.
[0079] Es probable que la señal ampliada espectralmente producida mediante el calculador de función no lineal 520 tenga una pendiente pronunciada en amplitud a medida que aumenta la frecuencia. El ampliador espectral A402 incluye un aplanador espectral 540 configurado para realizar una operación de blanqueo ene la señal muestreada de forma descendente. El aplanador espectral 540 puede estar configurado para realizar una operación de blanqueo fijo o para realizar una operación de blanqueo adaptativo. En un ejemplo particular de blanqueo adaptativo, el aplanador espectral 540 incluye un módulo de análisis LPC configurado para calcular un conjunto de cuatro coeficientes de filtro a partir de la señal muestreada de forma descendente y un filtro de análisis de cuarto orden configurado para blanquear la señal de acuerdo con esos coeficientes. Entre otras implementaciones del ampliador de espectro A400 se incluyen configuraciones en las que el aplanador espectral 540 funciona sobre la señal ampliada espectralmente antes del muestreador descendente 530.
[0080] El generador de excitación de banda alta A300 puede implementarse para emitir la señal ampliada armónicamente 160 como señal de excitación de banda alta S120. En algunos casos, sin embargo, usar solamente una señal ampliada armónicamente como la excitación de banda alta puede dar como resultado artefactos audibles. La estructura armónica de la voz es en general 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 notable en las señales de voz de las hablantes femeninas.
[0081] Entre los modos de realización se incluyen implementaciones del generador de excitación de banda alta A300 que están configuradas para mezclar la señal ampliada armónicamente S160 con una señal de ruido. Como se muestra en la FIGURA 11, el generador de excitación de banda alta A302 incluye un generador de ruido 480 que está configurado para producir una señal de ruido aleatorio. En un ejemplo, el generador de ruido 480 está configurado para producir una señal de ruido pseudoaleatorio blanco 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 de ruido 480 esté configurado para emitir la señal de ruido como una función determinista de tal manera que su estado pueda duplicarse en el descodificador. Por ejemplo, el generador de ruido 480 puede configurarse para emitir la señal de ruido como una función determinista de la información codificada anteriormente dentro de la misma trama, tal como los parámetros de filtro de banda estrecha S40 y/o la señal de excitación de banda estrecha codificada S50.
[0082] Antes de mezclarse con la señal ampliada armónicamente S160, la señal de ruido aleatorio producida por el generador de ruido 480 puede modularse en amplitud para tener una envolvente de dominio de tiempo que se aproxima a la distribución de energía en el tiempo de la señal de banda estrecha S20, la señal de banda alta S30, la señal de excitación de banda estrecha S80, o la señal ampliada armónicamente S160. Como se muestra en la FIGURA 11, el generador de excitación de banda alta A302 incluye un combinador 470 configurado para modular en amplitud la señal de ruido producida por el generador de ruido 480 de acuerdo con una envolvente de dominio de tiempo calculada mediante el calculador de envolvente 460. Por ejemplo, el combinador 470 puede implementarse como un multiplicador dispuesto para escalar la salida del generador de ruido 480 de acuerdo con la envolvente de dominio de tiempo calculada mediante el calculador de envolvente 460 para producir la señal de ruido modulada S170.
[0083] En una implementación A304 del generador de excitación de banda alta A302, como se muestra en el diagrama de bloques de la FIGURA 13, el calculador de envolvente 460 está dispuesto para calcular la envolvente de la señal ampliada armónicamente S160. En una implementación A306 del generador de excitación de banda alta A302, como se muestra en el diagrama de bloques de la FIGURA 14, el calculador de envolvente 460 está dispuesto para calcular la envolvente de la señal de excitación de banda estrecha S80. Otras implementaciones del generador de excitación de banda alta A302 pueden estar configuradas de otro modo para añadir ruido a la señal ampliada armónicamente S160 de acuerdo con las posiciones de los impulsos de tono de banda estrecha en el tiempo.
[0084] El calculador de envolvente 460 puede configurarse para realizar 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 dicha tarea. La subtarea T110 calcula el cuadrado de cada muestra de la trama de la señal cuya envolvente tiene que modelarse (por ejemplo, la señal de excitación de banda estrecha S80 o la señal ampliada armónicamente S160) para producir una secuencia de valores al cuadrado. La subtarea T120 realiza 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 de acuerdo con la expresión
y(n) = ax(n) + (1 - a)y{n - 1), (1)
donde x es la entrada del filtro, y es la salida del filtro, n es un índice de dominio de 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 de acuerdo con una indicación de ruido en la señal de entrada, de tal manera que a está más próximo a 1 en ausencia de ruido y más próximo 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 de dominio de tiempo.
[0085] Dicha implementación del calculador de envolvente 460 puede estar configurada para realizar las diversas subtareas de la tarea T100 en serie y/o en paralelo. En otras implementaciones de la tarea T100, la subtarea T110 puede estar precedida por una operación de paso de banda configurada para seleccionar una porción de frecuencia deseada de la señal cuya envolvente tiene que modelarse, tal como el intervalo de 3-4 kHz.
[0086] El combinador 490 está configurado para mezclar la señal ampliada armónicamente S160 y la señal de ruido modulada S170 para producir la señal de excitación de banda alta S120. Las implementaciones del combinador 490 pueden configurarse, por ejemplo, para calcular la señal de excitación de banda alta S120 como una suma de la señal S160 ampliada armónicamente y la señal de ruido modulada S170. Dicha implementación del combinador 490 puede configurarse para calcular la señal de excitación de banda alta S120 como una suma ponderada aplicando un factor de ponderación a la señal ampliada armónicamente S160 y/o a la señal de ruido modulada S170 antes de la suma. Cada uno de dichos factores de ponderación puede calcularse de acuerdo con uno o más criterios y puede ser un valor fijo o, de forma alternativa, un valor adaptativo que se calcula en una base de trama por trama o subtrama por subtrama.
[0087] La FIGURA 16 muestra un diagrama de bloques de una implementación 492 del combinador 490 que está configurado para calcular la señal de excitación de banda alta S120 como una suma ponderada de la señal ampliada armónicamente S160 y la señal de ruido modulada S170. El combinador 492 está configurado para ponderar la señal ampliada armónicamente S160 de acuerdo con el factor de ponderación de armónicos S180, para ponderar la señal de ruido modulada S170 de acuerdo con el factor de ponderación de ruido S190, y para emitir la señal de excitación de banda alta S120 como una suma de las señales ponderadas. En este ejemplo, el combinador 492 incluye un calculador de factor de ponderación 550 que está configurado para calcular el factor de ponderación de armónicos S180 y el factor de ponderación de ruido S190.
[0088] El calculador de factor de ponderación 550 puede estar configurado para calcular los factores de ponderación S180 y S190 de acuerdo con una relación deseada de contenido armónico a contenido de ruido en la señal de excitación de banda alta S120. Por ejemplo, puede ser deseable que el combinador 492 produzca la señal de excitación de banda alta S120 para tener una relación de energía armónica a energía de ruido similar a la de señal de banda alta S30. En algunas implementaciones del calculador de factor de ponderación 550, los factores de ponderación S180, S190 se calculan de acuerdo con uno o más parámetros relativos a una periodicidad de la señal de banda estrecha S20 o de la señal residual de banda estrecha, tal como la ganancia de tono y/o el modo de voz. Dicha implementación del calculador de factor de ponderación 550 puede configurarse para asignar un valor al factor de ponderación de armónicos S180 que sea proporcional a la ganancia de tono, por ejemplo, y/o asignar un valor más alto al factor de ponderación de ruido S190 para las señales de voz sordas que para señales de voz sonoras.
[0089] En otras implementaciones, el calculador de factor de ponderación 550 está configurado para calcular valores para el factor de ponderación de armónicos S180 y/o el factor de ponderación de ruido S190 de acuerdo con una medida de periodicidad de la señal de banda alta S30. En un ejemplo de este tipo, el calculador de factor de ponderación 550 calcula el factor de ponderación de armónicos S180 como el valor máximo del coeficiente de autocorrelación de la señal de banda alta S30 para la trama o subtrama actual, donde la autocorrelación se realiza en un intervalo de búsqueda que incluye un retardo de un retardo de tono y no incluye un retardo de muestras cero. La FIGURA 17 muestra un ejemplo de dicho intervalo de búsqueda de longitud n muestras que está centrado alrededor de un retardo de un retardo de un tono y tiene una anchura no mayor que un retardo de un tono.
[0090] La FIGURA 17 muestra también un ejemplo de otro enfoque en el que el calculador de factor de ponderación 550 calcula una medida de la periodicidad de la señal de banda alta S30 en varias etapas. En una primera etapa, la trama actual se divide en varias subtramas, y el retardo para el cual el coeficiente de autocorrelación es máximo se identifica por separado para cada subtrama. Como se ha mencionado anteriormente, la autocorrelación se realiza en un intervalo de búsqueda que incluye un retardo de un retardo de tono y no incluye un retardo de muestras cero.
[0091] En una segunda etapa, se construye una trama retardada aplicando el correspondiente retardo identificado a cada subtrama, concatenando las subtramas resultantes para construir una trama retardada de forma óptima, y calculando el factor de ponderación de armónicos S180 como el coeficiente de correlación entre la trama original y la trama retardada de forma óptima. En otra alternativa, el calculador de factor de ponderación 550 calcula el factor de ponderación de armónicos S180 como un promedio de los coeficientes de autocorrelación máximos obtenidos en la primera etapa para cada subtrama. Las implementaciones del calculador de factor de ponderación 550 también pueden configurarse para escalar el coeficiente de correlación, y/o para combinarlo con otro valor, para calcular el valor para el factor de ponderación de armónicos S180.
[0092] Puede ser deseable que el calculador de factor de ponderación 550 calcule una medida de periodicidad de la señal de banda alta S30 solo en casos en que, de otro modo, se indique una presencia de periodicidad en la trama. Por ejemplo, el calculador de factor de ponderación 550 puede configurarse para calcular una medida de periodicidad de la señal de banda alta S30 de acuerdo con una relación entre otro indicador de periodicidad de la trama actual, tal como la ganancia de tono, y un valor de umbral. En un ejemplo, el calculador de factor de ponderación 550 está configurado para realizar una operación de autocorrelación en la señal de banda alta S30 solo si la ganancia de tono de la trama (por ejemplo, la ganancia de libro de códigos adaptativo del residuo de banda estrecha) tiene un valor de más de 0,5 (de forma alternativa, al menos 0,5). En otro ejemplo, el calculador de factor de ponderación 550 está configurado para realizar una operación de autocorrelación en la señal de banda alta S30 solo para tramas que tienen estados particulares del modo de voz (por ejemplo, solo para señales sonoras). En dichos casos, el calculador de factor de ponderación 550 puede configurarse para asignar un factor de ponderación predeterminado para tramas que tengan otros estados del modo de voz y/o menores valores de ganancia de tono.
[0093] Los modos de realización incluyen otras implementaciones del calculador de factor de ponderación 550 que están configuradas para calcular factores de ponderación de acuerdo con características distintas de o adicionales a la periodicidad. Por ejemplo, dicha implementación puede configurarse para asignar un valor más alto al factor de ganancia de ruido S190 para las señales de voz que tengan un retardo de tono grande que para las señales de voz que tengan un retardo de tono pequeño. Otra implementación de este tipo de calculador de factor de ponderación 550 está configurada para determinar una medida de la armonicidad de la señal de voz de banda ancha S10, o de la señal de banda alta S30, de acuerdo con una medida de la energía de la señal en múltiplos de la frecuencia fundamental con respecto a la energía de la señal en otras componentes de frecuencia.
[0094] Algunas implementaciones del codificador de voz de banda ancha A100 están configuradas para emitir una indicación de periodicidad o armonicidad (por ejemplo, un indicador de un bit que indica si la trama es armónica o no armónica) basándose en la ganancia de tono y/u otra medida de periodicidad o armonicidad como se describe en el presente documento. En un ejemplo, un descodificador de voz de banda ancha B100 correspondiente usa esta indicación para configurar una operación tal como el cálculo del factor de ponderación. En otro ejemplo, dicha indicación se usa en el codificador y/o el descodificador para calcular un valor para un parámetro de modo de voz.
[0095] Puede ser deseable que el generador de excitación de banda alta A302 genere la señal de excitación de banda alta S120 de tal manera que la energía de la señal de excitación no se vea sustancialmente afectada por los valores particulares de los factores de ponderación S180 y S190. En dicho caso, el calculador de factor de ponderación 550 puede configurarse para calcular un valor para el factor de ponderación de armónicos S180 o para el factor de ponderación de ruido S190 (o para recibir dicho valor del almacenamiento u otro elemento del codificador de banda alta A200) y para obtener un valor para el otro factor de ponderación de acuerdo con una expresión tal como
Figure imgf000019_0001
donde Warmónicos indica el factor de ponderación de armónicos S180 y Wruido indica el factor de ponderación de ruido S190. De forma alternativa, el calculador de factor de ponderación 550 se puede configurar para seleccionar, de acuerdo con un valor de una medida de periodicidad para la trama o subtrama actual, uno correspondiente entre una pluralidad de pares de factores de ponderación S180, S190, donde los pares se calculan previamente para cumplir una relación de energía constante tal como la expresión (2). Para una implementación del calculador de factor de ponderación 550 en la que se observa la expresión (2), los valores típicos para el factor de ponderación de armónicos S180 varían entre aproximadamente 0,7 y aproximadamente 1,0 y los valores típicos para el factor de ponderación de ruido S190 varían entre aproximadamente 0,1 y aproximadamente 0,7. Otras implementaciones del calculador de factor de ponderación 550 pueden configurarse para operar de acuerdo con una versión de la expresión (2) que se modifica de acuerdo con una ponderación de referencia deseada entre la señal ampliada armónicamente S160 y la señal de ruido modulada S170.
[0096] Los artefactos pueden ocurrir en una señal de voz 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 residuo. La dispersión del libro de códigos se produce especialmente cuando la señal de banda estrecha se codifica a una tasa de bits baja. Los artefactos causados por la dispersión del libro de códigos son típicamente cuasi periódicos en el tiempo y se producen principalmente por encima de 3 kHz. Debido a que el oído humano tiene mejor resolución temporal a frecuencias más altas, estos artefactos pueden ser más notables en la banda alta.
[0097] Los modos de realización incluyen implementaciones del generador de excitación de banda alta A300 que están configuradas para realizar un filtrado anti-dispersión. La FIGURA 18 muestra un diagrama de bloques de una implementación A312 del generador de excitación de banda alta A302 que incluye un filtro anti-dispersión 600 dispuesto para filtrar la señal de excitación de banda estrecha descuantificada producida por el cuantificador inverso 450. La FIGURA 19 muestra un diagrama de bloques de una implementación A314 del generador de excitación de banda alta A302 que incluye un filtro anti-dispersión 600 dispuesto para filtrar la señal ampliada espectralmente producida por el ampliador de espectro A400. La FIGURA 20 muestra un diagrama de bloques de una implementación A316 del generador de excitación de banda alta A302 que incluye un filtro anti-dispersión 600 dispuesto para filtrar la salida del combinador 490 para producir una señal de excitación de banda alta S120. Por supuesto, se contemplan las implementaciones del generador de excitación de banda alta A300 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 divulgan expresamente en el presente documento. El filtro anti­ dispersión 600 también puede estar dispuesto dentro del ampliador de espectro A400: por ejemplo, después de cualquiera de los elementos 510, 520, 530 y 540 en el ampliador de espectro A402. Se observa expresamente que el filtro anti-dispersión 600 también puede usarse con implementaciones del ampliador de espectro A400 que realizan plegado espectral, traslación espectral o ampliación armónica.
[0098] El filtro de anti-dispersión 600 puede estar configurado para modificar la fase de su señal de entrada. Por ejemplo, puede ser deseable que el filtro anti-dispersión 600 esté configurado y dispuesto de tal manera que la fase de la señal de excitación de banda alta S120 sea aleatoria, o de otro modo esté distribuida de manera más uniforme, con el tiempo. También puede ser deseable que la respuesta del filtro anti-dispersión 600 sea espectralmente plana, de manera que el espectro de magnitud de la señal filtrada no se modifique apreciablemente. En un ejemplo, el filtro anti-dispersión 600 se implementa como un filtro de paso-todo que tiene una función de transferencia de acuerdo con la siguiente expresión:
Figure imgf000020_0001
Un efecto de dicho filtro puede ser distribuir la energía de la señal de entrada de tal manera que ya no se concentre en solo unas cuantas muestras.
[0099] Los artefactos causados por la dispersión de libro de códigos son en general más notables para señales similares al ruido, en las que el residuo incluye menos información de tono, y también para la voz en ruido de fondo. La dispersión típicamente causa menos artefactos en los casos en los que la excitación tiene estructura a largo plazo, y de hecho la modificación de fase puede causar ruido en las señales sonoras. Por tanto, puede ser deseable configurar el filtro anti-dispersión 600 para filtrar las señales sordas y para pasar al menos algunas señales sonoras sin modificación. Las señales sordas se caracterizan por una ganancia de tono baja (por ejemplo, ganancia de libro de códigos adaptativa de banda estrecha cuantificada) y una inclinación espectral (por ejemplo primer coeficiente de reflexión cuantificado) que es cercana a cero o positiva, indicando una envolvente espectral que es plana o se inclina hacia arriba con el aumento de la frecuencia. Las implementaciones típicas del filtro anti-dispersión 600 están configuradas para filtrar los sonidos sordos (por ejemplo, como se indica mediante el valor de la inclinación espectral), para filtrar sonidos sonoros cuando la ganancia de tono es menor que un valor de umbral (de forma alternativa, no mayor que el valor de umbral), y de otro modo para pasar la señal sin modificación.
[0100] Otras implementaciones de filtro de anti-dispersión 600 incluyen dos o más filtros que están configurados para tener diferentes ángulos de modificación de fase máximos (por ejemplo, hasta 180 grados). En dicho caso, el filtro anti-dispersión 600 puede configurarse para seleccionar entre estos filtros componentes de acuerdo con un valor de la ganancia de tono (por ejemplo, el libro de códigos adaptativo cuantificado o ganancia de LTP), de manera que se usa un ángulo de modificación de fase máximo mayor para tramas con valores de ganancia de tono más bajos. Una implementación del filtro anti-dispersión 600 también puede incluir diferentes filtros componentes que están configurados para modificar la fase sobre más o menos del espectro de frecuencia, de tal manera que se usa un filtro configurado para modificar la fase en un intervalo de frecuencias más amplio de la señal de entrada para tramas que tienen valores de ganancia de tono más bajos.
[0101] Para una reproducción precisa de la señal de voz codificada, puede ser deseable que la relación entre los niveles de las porciones de banda alta y de banda estrecha de la señal de voz de banda ancha sintetizada S100 sea similar a la de la señal de voz de banda ancha original S10. Además de una envolvente espectral representada mediante los parámetros de codificación de banda alta S60a, el codificador de banda alta A200 puede configurarse para caracterizar la señal de banda alta S30 especificando una envolvente temporal o de ganancia. Como se muestra en la FIGURA 10, el codificador de banda alta A202 incluye un calculador de factor de ganancia de banda alta A230 que está configurado y dispuesto para calcular uno o más factores de ganancia de acuerdo con una relación entre la señal de banda alta S30 y la señal de banda alta sintetizada S130, tal como una diferencia o relación entre las energías de las dos señales sobre una trama o alguna porción de la misma. En otras implementaciones del codificador de banda alta A202, el calculador de ganancia de banda alta A230 puede estar configurado de manera similar, pero en lugar de eso, dispuesto para calcular la envolvente de ganancia de acuerdo con dicha relación variable en el tiempo entre la señal de banda alta S30 y la señal de excitación de banda estrecha S80 o la señal de excitación de banda alta S120.
[0102] Es probable que las envolventes temporales de la señal de excitación de banda estrecha S80 y la señal de banda alta S30 sean similares. Por lo tanto, la codificación de una envolvente de ganancia que se basa en una relación entre la señal de banda alta S30 y la señal de excitación de banda estrecha S80 (o una señal obtenida a partir de ella, tal como la señal de excitación de banda alta S120 o la señal de banda alta sintetizada S130) en general será más eficiente que la codificación de una envolvente de ganancia basada solo en la señal de banda alta S30. En una implementación típica, el codificador de banda alta A202 está configurado para emitir un índice cuantificado de ocho a doce bits que especifica cinco factores de ganancia para cada trama.
[0103] El calculador de factor de ganancia de banda alta A230 se puede configurar para realizar 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 dicha tarea que calcula un valor de ganancia para una subtrama correspondiente de acuerdo con las energías relativas de la señal de banda alta S30 y la señal de banda alta sintetizada S130. Las tareas 220a y 220b calculan las energías de las correspondientes subtramas de las respectivas señales. 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 de banda alta S30 a la energía de la señal de banda alta sintetizada S130 sobre la subtrama.
[0104] Puede ser deseable que el calculador de factor de ganancia de banda alta A230 se configure para calcular las energías de subtrama de acuerdo con una función de ventana. La FIGURA 22 muestra un diagrama de flujo de dicha implementación T210 de tarea de cálculo de factor de ganancia T200. La tarea T215a aplica una función de ventana a la señal de banda alta S30, y la tarea T215b aplica la misma función de ventana a la señal de banda alta sintetizada S130. 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.
[0105] Puede ser deseable aplicar una función de ventana que se superponga con las subtramas adyacentes. Por ejemplo, una función de ventana que produce factores de ganancia que pueden aplicarse en una forma de superposición puede ayudar a reducir o evitar la discontinuidad entre subtramas. En un ejemplo, el calculador de factor de ganancia de banda alta A230 está configurado para aplicar una función de ventana trapezoidal como se muestra en la FIGURA 23a, en la que la ventana se superpone a cada una de las dos subtramas adyacentes en un milisegundo. La FIGURA 23b muestra una aplicación de esta función de ventana a cada una de las cinco subtramas de una trama de 20 milisegundos. Otras implementaciones del calculador de factor de ganancia de banda alta A230 pueden configurarse para aplicar funciones de ventana que tienen diferentes períodos 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 de factor de ganancia de banda alta A230 esté configurada para aplicar diferentes funciones de ventana a diferentes subtramas dentro de una trama y/o para que una trama incluya subtramas de diferentes longitudes.
[0106] Sin limitación, los siguientes valores se presentan como ejemplos para implementaciones particulares. Se supone una trama de 20 ms para estos casos, aunque se puede usar cualquier otra duración. Para una señal de banda alta muestreada a 7 kHz, cada trama tiene 140 muestras. Si dicha trama se divide en cinco subtramas de igual longitud, cada subtrama tendrá 28 muestras y la ventana como se muestra en la FIGURA 23a tendrá 42 muestras de ancho. Para una señal de banda alta muestreada a 8 kHz, cada trama tiene 160 muestras. Si dicha trama se divide en cinco subtramas de igual longitud, cada subtrama tendrá 32 muestras y la ventana como se muestra en la FIGURA 23a tendrá 48 muestras de ancho. En otras implementaciones, se pueden usar subtramas de cualquier ancho, e incluso es posible que una implementación del calculador de ganancia de banda alta A230 se configure para producir un factor de ganancia diferente para cada muestra de una trama.
[0107] La FIGURA 24 muestra un diagrama de bloques de una implementación B202 del descodificador de banda alta B200. El descodificador de banda alta B202 incluye un generador de excitación de banda alta B300 que está configurado para producir una señal de excitación de banda alta S120 basándose en la señal de excitación de banda estrecha S80. Dependiendo de las elecciones de diseño de sistema particulares, el generador de excitación de banda alta B300 puede implementarse de acuerdo con cualquiera de las implementaciones del generador de excitación de banda alta A300 como se describe en el presente documento. Típicamente es deseable implementar el generador de excitación de banda alta B300 para tener la misma respuesta que el generador de excitación de banda alta del codificador de banda alta del sistema de codificación particular. Sin embargo, debido a que el descodificador de banda estrecha B110 realizará típicamente la descuantificación de la señal de excitación de banda estrecha codificada S50, en la mayoría de los casos el generador de excitación de banda alta B300 puede implementarse para recibir la señal de excitación de banda estrecha S80 del descodificador de banda estrecha B110 y no necesita incluir un cuantificador inverso configurado para descuantificar la señal de excitación de banda estrecha codificada S50. También es posible que el descodificador de banda estrecha B110 se implemente para incluir una instancia del filtro anti-dispersión 600 dispuesto para filtrar la señal de excitación de banda estrecha descuantificada antes de introducirse en un filtro de síntesis de banda estrecha tal como el filtro 330.
[0108] El cuantificador inverso 560 está configurado para descuantificar los parámetros de filtro de banda alta S60a (en este ejemplo, a un conjunto de LSF), y la transformación de LSF a coeficiente de filtro LP 570 está configurada para transformar las LSF en un conjunto de coeficientes de filtro (por ejemplo, como se ha descrito anteriormente con referencia al cuantificador inverso 240 y la transformación 250 del codificador de banda estrecha A122). En otras implementaciones, como se ha mencionado anteriormente, se pueden usar conjuntos de coeficientes diferentes (por ejemplo, coeficientes cepstrales) y/o representaciones de coeficientes (por ejemplo, ISP). El filtro de síntesis de banda alta B200 está configurado para producir una señal de banda alta sintetizada de acuerdo con la señal de excitación de banda alta S120 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 de síntesis de banda alta B200 para tener la misma respuesta (por ejemplo, la misma función de transferencia) que ese filtro de síntesis.
[0109] El descodificador de banda alta B202 también incluye un cuantificador inverso 580 configurado para descuantificar factores de ganancia de banda alta S60b, y un elemento de control de ganancia 590 (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 de banda alta S100. Para un caso en el que la envolvente de ganancia de una trama se especifique mediante más de un factor de ganancia, el elemento de control de ganancia 590 puede incluir lógica configurada para aplicar los factores de ganancia a las subtramas respectivas, posiblemente de acuerdo con una función de ventana que puede ser igual o una función de ventana diferente, aplicada mediante un calculador de ganancia (por ejemplo, el calculador de ganancia de banda alta A230) del codificador de banda alta correspondiente. En otras implementaciones del descodificador de banda alta B202, el elemento de control de ganancia 590 está configurado de manera similar, pero está dispuesto en su lugar para aplicar los factores de ganancia descuantificados a la señal de excitación de banda estrecha S80 o a la señal de excitación de banda alta S120.
[0110] Como se ha mencionado anteriormente, puede ser deseable obtener el mismo estado en el codificador de banda alta y el descodificador de banda alta (por ejemplo, usando valores descuantificados durante la codificación). Por tanto, puede ser deseable en un sistema de codificación de acuerdo con dicha implementación asegurar el mismo estado para generadores de ruido correspondientes en generadores de excitación de banda alta A300 y B300. Por ejemplo, los generadores de excitación de banda alta A300 y B300 de dicha implementación pueden configurarse de tal manera que el estado del generador de ruido sea una función determinista de información ya codificada dentro de la misma trama (por ejemplo, parámetros de filtro de banda estrecha S40 o una porción de los mismos y/o señal de excitación de banda estrecha codificada S50 o una porción de la misma).
[0111] Uno o más de los cuantificadores de los elementos descritos en el presente documento (por ejemplo, el cuantificador 230, 420, o 430) puede estar configurado para realizar la cuantificación vectorial clasificada. Por ejemplo, dicho cuantificador puede configurarse para seleccionar uno de un conjunto de libros de códigos basándose en información que ya ha sido codificada dentro de la misma trama en el canal de banda estrecha y/o en el canal de banda alta. Dicha técnica típicamente proporciona una mayor eficiencia de codificación a expensas del almacenamiento de libros de códigos adicionales.
[0112] Como se ha analizado anteriormente con referencia a, por ejemplo, las FIGURAS 8 y 9, una considerable cantidad de estructura periódica puede permanecer en la señal residual después de la eliminación de la envolvente espectral aproximada de la señal de voz de banda estrecha S20. Por ejemplo, la señal residual puede contener una secuencia de impulsos o picos aproximadamente periódicos a lo largo del tiempo. Es especialmente probable que dicha estructura, que está típicamente relacionada con el tono, se produzca en señales de voz sonoras. 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 tono de acuerdo con un modelo de periodicidad a largo plazo como se representa, por ejemplo, mediante uno o más libros de códigos.
[0113] La estructura de tono de una señal residual real puede no coincidir con el modelo de periodicidad exactamente. Por ejemplo, la señal residual puede incluir pequeñas fluctuaciones en la regularidad de las posiciones de los impulsos de tono, de tal manera que las distancias entre impulsos de tono sucesivos en una trama no son exactamente iguales y la estructura no es completamente regular. Estas irregularidades tienden a reducir la eficiencia de codificación.
[0114] Algunas implementaciones del codificador de banda estrecha A120 están configuradas para realizar una regularización de la estructura de tono aplicando una distorsión de tiempo adaptativa al residuo antes de o durante la cuantificación, o de otro modo, mediante la inclusión de una distorsión de tiempo adaptativa en la señal de excitación codificada. Por ejemplo, dicho codificador puede configurarse para seleccionar o de otro modo calcular un grado de distorsión en el tiempo (por ejemplo, de acuerdo con 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 adapte de forma óptima al modelo de periodicidad a largo plazo. La regularización de la estructura de tono se realiza mediante un subconjunto de codificadores CELP denominados codificadores de Predicción Lineal Excitada por Código de Relajación (RCELP).
[0115] Un codificador RCELP está configurado típicamente para realizar la distorsión de tiempo como un desplazamiento de tiempo adaptativo. Este desplazamiento de tiempo puede ser un retardo que varía desde unos pocos milisegundos negativos a unos pocos milisegundos positivos, y en general varía suavemente para evitar discontinuidades audibles. En algunas implementaciones, dicho codificador está configurado para aplicar la regularización de una forma por piezas, en la que cada trama o subtrama se distorsiona mediante un desplazamiento de tiempo fijo correspondiente. En otras implementaciones, el codificador está configurado para aplicar la regularización como una función de distorsión continua, de tal manera que una trama o subtrama se distorsiona de acuerdo con un contorno de tono (también denominado trayectoria de tono). En algunos casos (por ejemplo, como se describe en la Solicitud de Patente de EE.UU. 2004/0098255), el codificador está configurado para incluir una distorsión 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.
[0116] El codificador calcula una señal de excitación codificada que se regulariza y se cuantifica, y el descodificador 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 voz descodificada. La señal de salida descodificada presenta por tanto el mismo retardo variable que se incluía en la señal de excitación codificada mediante la regularización. Típicamente, no se transmite al descodificador ninguna información que especifique las cantidades de regularización.
[0117] La regularización tiende a hacer que la señal residual sea más fácil de codificar, lo cual mejora la ganancia de codificación del predictor a largo plazo y, por tanto, aumenta la eficiencia global de codificación, en general sin generar artefactos. Puede ser deseable realizar la regularización solamente en las tramas que son sonoras. Por ejemplo, el codificador de banda estrecha A124 puede estar configurado para desplazar solamente aquellas tramas o subtramas que tienen una estructura a largo plazo, tales como las señales sonoras. Incluso puede ser deseable realizar la regularización solamente en subtramas que incluyen energía de impulso de tono. Varias implementaciones de la codificación RCELP se describen en las Patentes de EE.UU. No. 5.704.003 (Kleijn y otros) y 6.879.955 (Rao) y en la Solicitud de Patente de EE.UU. 2004/0098255 (Kovesi et al.). Las implementaciones existentes de los codificadores RCELP incluyen el Códec de Velocidad Variable Mejorado (EVRC), como se describe en la Asociación de la Industria de Telecomunicaciones (TIA) IS-127 y el Vocoder de Modo Seleccionable (SMV) del Proyecto de Asociación de Tercera Generación 2 (3GPP2).
[0118] Desafortunadamente, la regularización puede provocar problemas para un codificador de voz de banda ancha en el que la excitación de banda alta se obtiene a partir de la señal de excitación de banda estrecha codificada (tal como un sistema que incluye el codificador de voz de banda ancha A100 y el descodificador de voz de banda ancha B100). Debido a su obtención a partir de una señal distorsionada en tiempo, la señal de excitación de banda alta tendrá en general un perfil de tiempo que es diferente del de la señal de voz 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 voz de banda alta original.
[0119] Una desalineación en el tiempo entre la señal de excitación de banda alta distorsionada y la señal de voz de banda alta original puede provocar varios problemas. Por ejemplo, la señal de excitación de banda alta distorsionada puede no proporcionar más una excitación de fuente adecuada para un filtro de síntesis que está configurado de acuerdo con los parámetros de filtro extraídos de la señal de voz 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 voz de banda ancha descodificada.
[0120] La desalineación en el tiempo también puede provocar ineficiencias en la codificación de envolvente de ganancia. Como se ha mencionado anteriormente, es probable que exista una correlación entre las envolventes temporales de la señal de excitación de banda estrecha S80 y la señal de banda alta S30. Mediante la codificación de la envolvente de ganancia de la señal de banda alta de acuerdo con una relación entre estas dos envolventes temporales, puede realizarse un aumento en la eficiencia de codificación en comparación con la codificación directa de la envolvente de ganancia. Sin embargo, cuando se regulariza la señal de excitación de banda estrecha codificada, esta correlación puede debilitarse. El desalineamiento en el tiempo entre la señal de excitación de banda estrecha S80 y la señal de banda alta S30 puede causar la aparición de fluctuaciones en los factores de ganancia de banda alta S60b, y la eficiencia de codificación puede caer.
[0121] Entre los modos de realización se incluyen procedimientos de codificación de voz de banda ancha que realizan la distorsión de tiempo de una señal de voz de banda alta de acuerdo con una distorsión de tiempo incluida en una señal de excitación de banda estrecha codificada correspondiente. Entre las posibles ventajas de dichos procedimientos se incluyen la mejora de la calidad de una señal de voz de banda ancha descodificada y/o la mejora de la eficiencia de codificación de una envolvente de ganancia de banda alta.
[0122] La FIGURA 25 muestra un diagrama de bloques de una implementación AD10 del codificador de voz de banda ancha A100. El codificador AD10 incluye una implementación A124 del codificador de banda estrecha A120 que está configurada para realizar la regularización durante el cálculo de la señal de excitación de banda estrecha codificada S50. Por ejemplo, el codificador de banda estrecha A124 puede configurarse de acuerdo con una o más de las implementaciones de RCELP analizadas anteriormente.
[0123] El codificador de banda estrecha A124 también está configurado para emitir una señal de datos de regularización SD10 que especifica el grado de distorsión de tiempo aplicado. Para diversos casos en los que el codificador de banda estrecha A124 está configurado para aplicar un desplazamiento de tiempo fijo a cada trama o subtrama, la señal de datos de regularización SD10 puede incluir una serie de valores que indican cada cantidad de desplazamiento de tiempo como un valor entero o no entero en términos de muestras, milisegundos, o algún otro incremento de tiempo. Para un caso en el que el codificador de banda estrecha A124 está configurado para modificar de otro modo la escala de tiempo de una trama u otra secuencia de muestras (por ejemplo, comprimiendo una porción y expandiendo otra porción), la señal de información de regularización SD10 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 de banda estrecha A124 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 de datos de regularización SD10 indica tres cantidades de desplazamiento de tiempo para cada trama regularizada de la señal de banda estrecha codificada.
[0124] El codificador de voz de banda ancha AD10 incluye una línea de retardo D120 configurada para avanzar o retardar porciones de la señal de voz de banda alta S30, de acuerdo con cantidades de retardo indicadas por una señal de entrada, para producir una señal de voz de banda alta distorsionada en el tiempo S30a. En el ejemplo mostrado en la FIGURA 25, la línea de retardo D120 está configurada para distorsionar en el tiempo la señal de voz de banda alta S30 de acuerdo con la distorsión indicada por la señal de datos de regularización SD10. De esta manera, la misma cantidad de distorsión de tiempo que se incluyó en la señal de excitación de banda estrecha codificada S50 se aplica también a la porción correspondiente de la señal de voz de banda alta S30 antes del análisis. Aunque este ejemplo muestra la línea de retardo D120 como un elemento separado del codificador de banda alta A200, en otras implementaciones la línea de retardo D120 está dispuesta como parte del codificador de banda alta.
[0125] Otras implementaciones del codificador de banda alta A200 pueden configurarse para realizar el análisis espectral (por ejemplo, el análisis de LPC) de la señal de voz de banda alta sin distorsionar S30 y para realizar la distorsión de tiempo de señal de voz de banda alta S30 antes de cálculo de los parámetros de ganancia de banda alta S60b. Dicho codificador puede incluir, por ejemplo, una implementación de la línea de retardo D120 dispuesta para realizar la distorsión de tiempo. En dichos casos, sin embargo, los parámetros de filtro de banda alta S60a basados en el análisis de la señal no distorsionada S30 pueden describir una envolvente espectral que está desalineada en el tiempo con la señal de excitación de banda alta S120.
[0126] La línea de retardo D120 puede configurarse de acuerdo con cualquier combinación de elementos lógicos y elementos de almacenamiento adecuada para aplicar las operaciones de distorsión de tiempo deseadas a la señal de voz de banda alta S30. Por ejemplo, la línea de retardo D120 puede configurarse para leer la señal de voz de banda alta S30 de una memoria intermedia de acuerdo con los desplazamientos de tiempo deseados. La FIGURA 26a muestra un diagrama esquemático de dicha implementación D122 de la línea de retardo D120 que incluye un registro de desplazamiento SR1. El registro de desplazamiento SR1 es una memoria intermedia de cierta longitud m que está configurada para recibir y almacenar las m muestras más recientes de señal de voz de banda alta S30. El valor m es igual a al menos la suma de los desplazamientos de tiempo positivos máximos (o "de avance") y negativos (o "de retardo") a soportar. Puede ser conveniente que el valor m seaigual a la longitud de una trama o subtrama de la señal de banda alta S30.
[0127] La línea de retardo D122 está configurada para emitir la señal de banda alta distorsionada en el tiempo S30a desde una ubicación de desplazamiento OL del registro de desplazamiento SR1. La posición de la ubicación de desplazamiento OL varía alrededor de una posición de referencia (desplazamiento de tiempo cero) de acuerdo con el desplazamiento de tiempo actual, como se indica, por ejemplo, en la señal de datos de regularización SD10. La línea de retardo D122 puede estar configurada para soportar limites de avance y retardos iguales o, de forma alternativa, un límite mayor que el otro, de tal manera que se puede realizar un desplazamiento mayor en una dirección que en la otra. La FIGURA 26a muestra un ejemplo particular que soporta un desplazamiento de tiempo positivo mayor que negativo. La línea de retardo D122 puede configurarse para emitir una o más muestras a la vez (dependiendo, por ejemplo, de la anchura de un bus de salida).
[0128] Un desplazamiento de tiempo de regularización que tiene una magnitud de más de algunos milisegundos puede provocar artefactos audibles en la señal descodificada. Típicamente, la magnitud de un desplazamiento de tiempo de regularización realizado por un codificador de banda estrecha A124 no excederá de unos pocos milisegundos, de tal manera que los desplazamientos de tiempo indicados por la señal de datos de regularización SD10 serán limitados. Sin embargo, puede ser deseable en dichos casos que la línea de retardo D122 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 estricto que el impuesto por el codificador de banda estrecha).
[0129] La FIGURA 26b muestra un diagrama esquemático de una implementación D124 de la línea de retardo D122 que incluye una ventana de desplazamiento SW. En este ejemplo, la posición de la ubicación de desplazamiento OL está limitada por la ventana de desplazamiento SW. Aunque la FIGURA 26b muestra un caso en el que la longitud de la memoria intermedia m es mayor que la anchura de la ventana de desplazamiento SW, la línea de retardo D124 también se puede implementar de tal manera que la anchura de la ventana de desplazamiento SW sea igual a m.
[0130] En otras implementaciones, la línea de retardo D120 está configurada para escribir la señal de voz de banda alta S30 en una memoria intermedia de acuerdo con los desplazamientos de tiempo deseados. La FIGURA 27 muestra un diagrama esquemático de dicha implementación D130 de la línea de retardo D120 que incluye dos registros de desplazamiento SR2 y SR3 configurados para recibir y almacenar la señal de voz de banda alta S30. La línea de retardo D130 está configurada para escribir una trama o subtrama del registro de desplazamiento SR2 en el registro de desplazamiento SR3 de acuerdo con un desplazamiento de tiempo como se indica, por ejemplo, mediante la señal de datos de regularización SD10. El registro de desplazamiento SR3 está configurado como una memoria intermedia FIFO dispuesta para emitir la señal de banda alta distorsionada en el tiempo S30.
[0131] En el ejemplo particular mostrado en la FIGURA 27, el registro de desplazamiento SR2 incluye una porción de memoria intermedia de trama FB1 y una porción de memoria intermedia de retardo DB, y el registro de desplazamiento SR3 incluye una porción de memoria intermedia de trama FB2, una porción de memoria intermedia de avance AB, y una porción de memoria intermedia de retardo RB. Las longitudes de la memoria intermedia de avance AB y la memoria intermedia de retardo RB pueden ser iguales, o una puede ser más grande que la otra, de tal manera que se soporta un desplazamiento mayor en una dirección que en la otra. La memoria intermedia de retardo DB y la porción de memoria intermedia de retardo RB pueden configurarse para tener la misma longitud. De forma alternativa, la memoria intermedia de retardo DB puede ser más corta que la memoria intermedia de retardo RB para tener en cuenta un intervalo de tiempo requerido para transferir muestras desde la memoria intermedia de trama FB1 al registro de desplazamiento SR3, lo cual puede incluir otras operaciones de procesamiento tales como la distorsión de las muestras antes del almacenamiento en el registro de desplazamiento SR3.
[0132] En el ejemplo de la FIGURA 27, la memoria intermedia de trama FB1 está configurada para tener una longitud igual a la de una trama de señal de banda alta S30. En otro ejemplo, la memoria intermedia de trama FB1 está configurada para tener una longitud igual a la de una subtrama de la señal de banda alta S30. En dicho caso, la línea de retardo D130 puede configurarse para incluir lógica para aplicar el mismo retardo (por ejemplo, un promedio) a todas las subtramas de una trama a desplazar. La línea de retardo D130 también puede incluir lógica para promediar valores de la memoria intermedia de trama FB1 con valores a sobrescribir en la memoria intermedia de retardo RB o la memoria intermedia de avance AB. En un ejemplo adicional, el registro de desplazamiento SR3 puede configurarse para recibir valores de la señal de banda alta S30 solamente a través de la memoria intermedia de trama FB1, y en dicho caso la línea de retardo D130 puede incluir lógica para interpolar a través de espacios entre tramas o subtramas sucesivas escritas en el registro de desplazamiento SR3. En otras implementaciones, la línea de retardo D130 se puede configurar para realizar una operación de distorsión sobre muestras de la memoria intermedia de trama FB1 antes de escribirlas en el registro de desplazamiento SR3 (por ejemplo, de acuerdo con una función descrita por la señal de datos de regularización SD10).
[0133] Puede ser deseable que la línea de retardo D120 aplique una distorsión de tiempo que se basa en, pero no es idéntica a, la distorsión especificada por la señal de datos de regularización SD10. La FIGURA 28 muestra un diagrama de bloques de una implementación AD12 del codificador de voz de banda ancha AD10 que incluye un asignador de valor de retardo D110. El asignador de valor de retardo D110 está configurado para asignar la distorsión indicada por la señal de datos de regularización SD10 a valores de retardo asignados SD10a. La línea de retardo D120 está dispuesta para producir una señal de voz de banda alta distorsionada en el tiempo S30a de acuerdo con la distorsión indicada por los valores de retardo asignados SD10a.
[0134] Se puede esperar que el desplazamiento de tiempo aplicado mediante el codificador de banda estrecha evolucione sin problemas con el tiempo. Por lo tanto, típicamente es suficiente calcular el desplazamiento de tiempo de banda estrecha promedio aplicado a las subtramas durante una trama de voz, y desplazar una trama correspondiente de la señal de voz de banda alta S30 de acuerdo con este promedio. En un ejemplo de este tipo, el asignador de valor de retardo D110 está configurado para calcular un promedio de los valores de retardo de subtrama para cada trama, y la línea de retardo D120 está configurada para aplicar el promedio calculado a una trama correspondiente de la señal de banda alta S30. En otros ejemplos, se puede calcular y aplicar un promedio en un período más corto (tal como dos subtramas, o la mitad de una trama) o un período más largo (tal como dos tramas). En un caso en el que el promedio es un valor no entero de muestras, el asignador de valor de retardo D110 puede configurarse para redondear el valor a un número entero de muestras antes de enviarlo a la línea de retardo D120.
[0135] El codificador de banda estrecha A124 se puede configurar 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 dicho caso, puede ser deseable que el asignador de valor de retardo D110 se configure para redondear el desplazamiento de tiempo de banda estrecha a un número entero de muestras y para que la línea de retardo D120 aplique el desplazamiento de tiempo redondeado a señal de voz de banda alta S30.
[0136] En algunas implementaciones del codificador de voz de banda ancha AD10, las tasas de muestreo de la señal de voz de banda estrecha S20 y la señal de voz de banda alta S30 pueden ser diferentes. En dichos casos, el asignador de valor de retardo D110 puede configurarse para ajustar las cantidades de desplazamiento de tiempo indicadas en la señal de datos de regularización SD10 para tener en cuenta una diferencia entre las tasas de muestreo de la señal de voz de banda estrecha S20 (o la señal de excitación de banda estrecha S80) y la señal de voz de banda alta S30. Por ejemplo, el asignador de valor de retardo D110 puede configurarse para escalar las cantidades de desplazamiento de tiempo de acuerdo con una relación de las tasas de muestreo. En un ejemplo particular como se mencionó anteriormente, la señal de voz de banda estrecha S20 se muestrea a 8 kHz y la señal de voz de banda alta S30 se muestrea a 7 kHz. En este caso, el asignador de valor de retardo D110 está configurado para multiplicar cada cantidad de desplazamiento por 7/8. Las implementaciones del asignador de valor de retardo D110 también pueden configurarse para llevar a cabo dicha operación de escalado junto con una operación de redondeo a entero y/o una operación de promediado de desplazamiento de tiempo como se describe en el presente documento.
[0137] En otras implementaciones, la línea de retardo D120 está configurada para modificar de otro modo la escala de tiempo de una trama u otra secuencia de muestras (por ejemplo, mediante la compresión de una porción y la ampliación de otra porción). Por ejemplo, el codificador de banda estrecha A124 puede configurarse para realizar la regularización de acuerdo con una función tal como un contorno o trayectoria de tono. En dicho caso, la señal de datos de regularización SD10 puede incluir una descripción correspondiente de la función, tal como un conjunto de parámetros, y la línea de retardo D120 puede incluir lógica configurada para distorsionar tramas o subtramas de señal de voz de banda alta S30 de acuerdo con la función. En otras implementaciones, el asignador de valor de retardo D110 está configurado para promediar, escalar y/o redondear la función antes de que se aplique a la señal de voz de banda alta S30 mediante la línea de retardo D120. Por ejemplo, el asignador de valor de retardo D110 puede configurarse para calcular uno o más valores de retardo de acuerdo con la función, indicando cada valor de retardo un número de muestras, que se aplican entonces mediante la línea de retardo D120 para distorsionar en el tiempo una o más tramas o subtramas correspondientes de la señal de voz de banda alta S30.
[0138] La FIGURA 29 muestra un diagrama de flujo para un procedimiento MD100 de distorsión de tiempo de una señal de voz de banda alta de acuerdo con una distorsión de tiempo incluida en una señal de excitación de banda estrecha codificada correspondiente. La tarea TD100 procesa una señal de voz de banda ancha para obtener una señal de voz de banda estrecha y una señal de voz de banda alta. Por ejemplo, la tarea TD100 puede configurarse para filtrar la señal de voz de banda ancha usando un banco de filtros que tiene filtros de paso bajo y de paso alto, tal como una implementación del banco de filtros A110. La tarea TD200 codifica la señal de voz 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. La señal de excitación de banda estrecha codificada y/o los parámetros de filtro pueden cuantificarse, y la señal de voz de banda estrecha codificada puede incluir también otros parámetros tales como un parámetro de modo de voz. La tarea TD200 también incluye una distorsión de tiempo en la señal de excitación de banda estrecha codificada.
[0139] 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. De acuerdo con al menos la señal de excitación de banda alta, la tarea TD400 codifica la señal de voz 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 voz de banda alta en una pluralidad de LSF cuantificadas. La tarea TD500 aplica un desplazamiento de tiempo a la señal de voz de banda alta que se basa en la información relacionada con una distorsión de tiempo incluida en la señal de excitación de banda estrecha codificada.
[0140] La tarea TD400 se puede configurar para realizar un análisis espectral (tal como un análisis de LPC) en la señal de voz de banda alta, y/o para calcular una envolvente de ganancia de la señal de voz de banda alta. En dichos casos, la tarea TD500 puede configurarse para aplicar el desplazamiento de tiempo a la señal de voz de banda alta antes del análisis y/o del cálculo de la envolvente de ganancia.
[0141] Otras implementaciones del codificador de voz de banda ancha A100 están configuradas para invertir una distorsión de tiempo de la señal de excitación de banda alta S120 causada por una distorsión de tiempo incluida en la señal de excitación de banda estrecha codificada. Por ejemplo, el generador de excitación de banda alta A300 se puede implementar para incluir una implementación de la línea de retardo D120 que está configurada para recibir la señal de datos de regularización SD10 o los valores de retardo asignados SD10a, y aplicar un desplazamiento de tiempo inverso correspondiente a la señal de excitación de banda estrecha S80 y/o a una señal posterior basada en ella, tal como la señal ampliada armónicamente S160 o la señal de excitación de banda alta S120.
[0142] Otras implementaciones del codificador de voz de banda ancha se pueden configurar para codificar la señal de voz de banda estrecha S20 y la señal de voz de banda alta S30 independientemente una de otra, de tal manera que la señal de voz de banda alta S30 se codifica como una representación de una envolvente espectral de banda alta y una señal de excitación de banda alta. Dicha implementación puede configurarse para realizar una distorsión de tiempo de la señal residual de banda alta, o para incluir de otro modo una distorsión de tiempo en una señal de excitación de banda alta codificada, de acuerdo con información relacionada con una distorsión de tiempo incluida 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 de retardo D120 y/o el asignador de valor de retardo D110 como se describen en el presente documento que están configurados para aplicar una distorsión de tiempo a la señal residual de banda alta. Entre las posibles ventajas de dicha operación se incluyen una codificación más eficiente de la señal residual de banda alta y una mejor coincidencia entre las señales de voz de banda estrecha sintetizadas y de banda alta.
[0143] Como se ha indicado anteriormente, el codificador de banda alta A202 puede incluir un calculador de factor de ganancia de banda alta A230 que está configurado para calcular una serie de factores de ganancia de acuerdo con una relación variable en el tiempo entre la señal de banda alta S30 y una señal basada en la señal de banda estrecha S20 (tal como la señal de excitación de banda estrecha S80, la señal de excitación de banda alta S120, o la señal de banda alta sintetizada S130).
[0144] La FIGURA 33a muestra un diagrama de bloques de una implementación A232 del calculador de factor de ganancia de banda alta A230. El calculador de factor de ganancia de banda alta A232 incluye una implementación G10a del calculador de envolvente G10 que está dispuesto para calcular una envolvente de una primera señal, y una implementación G10b del calculador de envolvente G10 que está dispuesto para calcular una envolvente de una segunda señal. Los calculadores de envolvente G10a y G10b pueden ser idénticos o pueden ser instancias de diferentes implementaciones del calculador de envolvente G10. En algunos casos, los calculadores de envolvente G10a y G10b se pueden implementar como la misma estructura configurada para procesar diferentes señales en diferentes momentos.
[0145] Los calculadores de envolvente G10a y G10b se pueden configurar para calcular una envolvente de amplitud (por ejemplo, de acuerdo con una función de valor absoluto) o una envolvente de energía (por ejemplo, de acuerdo con una función de cuadratura). Típicamente, cada calculador de envolvente G10a, G10b está configurado para calcular una envolvente que se sub-muestrea con respecto a la señal de entrada (por ejemplo, una envolvente que tiene un valor para cada trama o subtrama de la señal de entrada). Como se ha descrito anteriormente con referencia, por ejemplo, a las FIGURAS 21-23b, el calculador de envolvente G10a y/o G10b se puede configurar para calcular la envolvente de acuerdo con una función de ventana, que puede estar dispuesta para superponer subtramas adyacentes.
[0146] El calculador de factor G20 está configurado para calcular una serie de factores de ganancia de acuerdo con una relación variable en el tiempo entre las dos envolventes a lo largo del tiempo. En un ejemplo, como se ha descrito anteriormente, el calculador de factor G20 calcula cada factor de ganancia como la raíz cuadrada de la relación de las envolventes en una subtrama correspondiente. De forma alternativa, el calculador de factor G20 se puede configurar para calcular cada factor de ganancia basándose en la distancia entre las envolventes, tal como una diferencia o una diferencia al cuadrado con signo entre las envolventes durante una subtrama correspondiente. Puede ser deseable configurar el calculador de factor G20 para generar los valores calculados de los factores de ganancia en decibelios o en otra forma logarítmica escalada.
[0147] La FIGURA 33b muestra un diagrama de bloques de una disposición generalizada que incluye el calculador de factor de ganancia de banda alta A232, en el que el calculador de envolvente G10a está dispuesto para calcular una envolvente de una señal basándose en la señal de banda estrecha S20, el calculador de envolvente G10b está dispuesto para calcular una envolvente de la señal de banda alta S30, y el calculador de factor G20 está configurado para emitir factores de ganancia de banda alta S60b (por ejemplo, a un cuantificador). En este ejemplo, el calculador de envolvente G10a está dispuesto para calcular una envolvente de una señal recibida del procesamiento intermedio PI, que puede incluir estructuras como las descritas en el presente documento, que están configuradas para realizar el cálculo de la señal de excitación de banda estrecha S80, la generación de la señal de excitación de banda alta S120 y/o la síntesis de la señal de banda alta S130. Por conveniencia, la siguiente descripción asume que el calculador de envolvente G10a está dispuesto para calcular una envolvente de la señal de banda alta sintetizada S130, aunque las implementaciones en las que el calculador de envolvente G10a está dispuesto para calcular una envolvente de la señal de excitación de banda estrecha S80 o la señal de excitación de banda alta S120 en su lugar se contemplan expresamente y se divulgan mediante el presente documento.
[0148] Un grado de similitud entre la señal de banda alta S30 y la señal de banda alta sintetizada S130 puede indicar en qué medida la señal de banda alta descodificada S100 se parecerá a la señal de banda alta S30. Específicamente, una similitud entre las envolventes temporales de la señal de banda alta S30 y la señal de banda alta sintetizada S130 puede indicar que se puede esperar que la señal de banda alta descodificada S100 tenga una buena calidad de sonido y sea perceptualmente similar a la señal de banda alta S30.
[0149] Se puede esperar que las formas de las envolventes de la señal de excitación de banda estrecha S80 y la señal de banda alta S30 sean similares a lo largo del tiempo y, en consecuencia, se produzca una variación relativamente pequeña entre los factores de ganancia de banda alta S60b. De hecho, una gran variación en el tiempo de una relación entre las envolventes (por ejemplo, una gran variación en una relación o distancia entre las envolventes), o una gran variación en el tiempo entre los factores de ganancia basados en las envolventes, puede tomarse como una la indicación de que la señal de banda alta sintetizada S130 es muy diferente de la señal de banda alta S30. Por ejemplo, una variación de este tipo puede indicar que la señal de excitación de banda alta S120 tiene una baja coincidencia con la señal residual de banda alta real durante ese período de tiempo. En cualquier caso, una gran variación en el tiempo de una relación entre las envolventes o entre los factores de ganancia puede indicar que la señal de banda alta descodificada S100 sonará de manera inaceptablemente diferente de la señal de banda alta S30.
[0150] Puede ser deseable detectar un cambio significativo en el tiempo de una relación entre la envolvente temporal de la señal de banda alta sintetizada S130 y la envolvente temporal de la señal de banda alta S30 (tal como una relación o distancia entre las envolventes) y, por consiguiente, reducir el nivel de los factores de ganancia de banda alta S60b correspondientes a ese período. Otras implementaciones del codificador de banda alta A202 están configuradas para atenuar los factores de ganancia de banda alta S60b de acuerdo con una variación en el tiempo de una relación entre las envolventes y/o una variación entre los factores de ganancia en el tiempo. La FIGURA 34 muestra un diagrama de bloques de una implementación A203 del codificador de banda alta A202 que incluye un atenuador de factor de ganancia G30 configurado para atenuar de manera adaptativa los factores de ganancia de banda alta S60b antes de la cuantificación.
[0151] La FIGURA 35 muestra un diagrama de bloques de una disposición que incluye el calculador de factor de ganancia de banda alta A232 y una implementación G32 del atenuador de factor de ganancia G30. El atenuador de factor de ganancia G32 está configurado para atenuar los factores de ganancia de banda alta S60-1 de acuerdo con una variación en el tiempo de una relación entre la envolvente de la señal de banda alta S30 y la envolvente de la señal de banda alta sintetizada S130, tal como una variación en el tiempo de una relación o distancia entre las envolventes. El atenuador de factor de ganancia G32 incluye un calculador de variación G40 configurado para evaluar un cambio en la relación durante un intervalo de tiempo deseado (por ejemplo, entre factores de ganancia consecutivos o durante la trama actual). Por ejemplo, el calculador de variación G40 se puede configurar para calcular la suma de las diferencias al cuadrado de distancias consecutivas entre las envolventes durante la trama actual.
[0152] El atenuador de factor de ganancia G32 incluye un calculador de factor G50 configurado para seleccionar o de otro modo calcular los valores de factor de atenuación de acuerdo con las variaciones calculadas. El atenuador de factor de ganancia G32 también incluye un combinador, tal como un multiplicador o un sumador, que está configurado para aplicar los factores de atenuación a los factores de ganancia de banda alta S60-1 para obtener los factores de ganancia de banda alta S60-2, que luego pueden cuantificarse para su almacenamiento o transmisión. Para un caso en el que el calculador de variación G40 está configurado para producir un valor respectivo de la variación calculada para cada par de valores de envolvente (por ejemplo, como la diferencia al cuadrado entre la distancia actual entre las envolventes y la distancia anterior o posterior), el elemento de control de ganancia se puede configurar para aplicar un factor de atenuación respectivo a cada factor de ganancia. Para un caso en el que el calculador de variación G40 está configurado para producir un valor de la variación calculada para cada conjunto de pares de valores de envolvente (por ejemplo, una variación calculada para los pares de valores de envolvente de la trama actual), el elemento de control de ganancia se puede configurar para aplicar el mismo factor de atenuación a más de un factor de ganancia correspondiente, tal como a cada factor de ganancia de la trama correspondiente. En un ejemplo típico, los valores de los factores de atenuación pueden variar desde una magnitud mínima de cero dB hasta una magnitud máxima de 6 dB (o, de forma alternativa, de un factor de 1 a un factor de 0,25), aunque se puede usar cualquier otro intervalo deseado. Se observa que los valores de factor de atenuación expresados en forma de dB pueden tener valores positivos, de tal manera que una operación de atenuación puede incluir restar el valor del factor de atenuación a un factor de ganancia respectivo, o valores negativos, de tal manera que una operación de atenuación puede incluir añadir el valor del factor de atenuación a un factor de ganancia respectivo.
[0153] El calculador de factor G50 se puede configurar para seleccionar uno entre un conjunto de valores de factor de atenuación discretos. Por ejemplo, el calculador de factor G50 se puede configurar para seleccionar un valor de factor de atenuación correspondiente de acuerdo con una relación entre la variación calculada y uno o más valores de umbral. La FIGURA 36a muestra un gráfico de un ejemplo de este tipo en el que el dominio de valores de variación calculados se asigna a un conjunto de valores de factor de atenuación discretos V0 a V3 de acuerdo con los valores de umbral T1 a T3.
[0154] De forma alternativa, el calculador de factor G50 se puede configurar para calcular el valor de factor de atenuación como una función de la variación calculada. La FIGURA 36b muestra un gráfico de un ejemplo de una asignación de la variación calculada al valor de factor de atenuación que es lineal en el dominio L1 a L2, donde L0 es un valor mínimo de la variación calculada, L3 es un valor máximo de la variación calculada, y L0 <= L1 <= L2 <= L3. En este ejemplo, los valores de variación calculados que son menores que (de forma alternativa, no mayores que) L1 se asignan a un valor de factor de atenuación mínimo V0 (por ejemplo, 0 dB), y los valores de variación calculados que son mayores que (de forma alternativa, no menores que) l 3 se asignan a un valor de factor de atenuación máximo V1 (por ejemplo, 6 dB). El dominio de valores de variación calculados entre L1 y L2 se asigna linealmente al intervalo de valores de factor de atenuación entre V0 y V1. En otras implementaciones, el calculador de factor G50 se configura para aplicar una asignación no lineal (por ejemplo, una función sigmoide, polinómica o exponencial) durante al menos una porción del dominio L1 a L2.
[0155] Puede ser deseable implementar la atenuación de factor de ganancia de una manera que limite la discontinuidad en la envolvente de ganancia resultante. En algunas implementaciones, el calculador de factor G50 se configura para limitar el grado en que el valor de factor de atenuación puede cambiar en cualquier momento (por ejemplo, de una trama o subtrama a la siguiente). Para una asignación incremental como se muestra en la FIGURA 36a, por ejemplo, el calculador de factor G50 se puede configurar para cambiar el valor de factor de atenuación no más de un número máximo de incrementos (por ejemplo, uno o dos) de un valor de factor de atenuación al siguiente. Para una asignación no incremental como se muestra en la FIGURA 36b, el calculador de factor G50 se puede configurar para cambiar el valor de factor de atenuación no más de una cantidad máxima (por ejemplo, 3 dB) de un valor de factor de atenuación al siguiente. En otro ejemplo, el calculador de factor G50 se puede configurar para permitir un aumento más rápido que la disminución en el valor de factor de atenuación. Una característica de este tipo puede permitir una atenuación rápida de los factores de ganancia de banda alta para enmascarar una falta de coincidencia de envolvente y una recuperación más lenta para reducir la discontinuidad.
[0156] Un grado de variación a lo largo del tiempo de una relación entre la envolvente de la señal de banda alta S30 y la envolvente de la señal de banda alta sintetizada S130 también se puede indicar mediante fluctuaciones entre los valores de los factores de ganancia de banda alta S60b. Una falta de variación entre los factores de ganancia a lo largo del tiempo puede indicar que las señales tienen envolventes similares, con fluctuaciones de nivel similares a lo largo del tiempo. Una gran variación entre los factores de ganancia a lo largo del tiempo puede indicar una diferencia significativa entre las envolventes de las dos señales y, en consecuencia, una mala calidad esperada de la señal de banda alta descodificada correspondiente S100. Otras implementaciones del codificador de banda alta A202 se configuran para atenuar los factores de ganancia de banda alta S60b de acuerdo con un grado de fluctuación entre los factores de ganancia.
[0157] La FIGURA 37 muestra un diagrama de bloques de una disposición que incluye el calculador de factor de ganancia de banda alta A232 y una implementación G34 del atenuador de factor de ganancia G30. El atenuador de factor de ganancia G34 está configurado para atenuar los factores de ganancia de banda alta S60-1 de acuerdo con una variación en el tiempo entre los factores de ganancia de banda alta. El atenuador de factor de ganancia G34 incluye un calculador de variación G60 configurado para evaluar una fluctuación entre los factores de ganancia durante la subtrama o trama actual. Por ejemplo, el calculador de variación G60 se puede configurar para calcular la suma de las diferencias al cuadrado entre factores de ganancia de banda alta consecutivos 60b-1 durante la trama actual.
[0158] En un ejemplo particular, como se muestra en las FIGURAS 23a y 23b, se calcula un factor de ganancia de banda alta S60b para cada una de cinco subtramas por trama. En este caso, el calculador de variación G60 se puede configurar para calcular una variación entre los factores de ganancia como una suma de los cuadrados de las cuatro diferencias entre factores de ganancia consecutivos de la trama. De forma alternativa, la suma también puede incluir el cuadrado de la diferencia entre el primer factor de ganancia de la trama y el último factor de ganancia de la trama anterior, y/o el cuadrado de la diferencia entre el último factor de ganancia de la trama y el primer factor de ganancia de la siguiente trama. En otra implementación (por ejemplo, una en la que los factores de ganancia no se escalan de forma logarítmica), el calculador de variación G60 se puede configurar para calcular la variación basándose en las relaciones de factores de ganancia consecutivos en lugar de en las diferencias.
[0159] El atenuador de factor de ganancia G34 incluye una instancia del calculador de factor G50 como se ha descrito anteriormente que está configurado para seleccionar o de otro modo calcular los factores de atenuación de acuerdo con las variaciones calculadas. En un ejemplo, el calculador de factor G50 se configura para calcular un valor de factor de atenuación fa de acuerdo con una expresión tal como la siguiente:
fa = 0,8 0,5 v,
donde v es la variación calculada producida por el calculador de variación G60. En este ejemplo, se puede desear escalar o de otro modo limitar el valor de v para que no sea mayor que 0,4, de tal manera que el valor de fa no exceda la unidad. También puede ser deseable escalar de forma logarítmica el valor de fa (por ejemplo, para obtener un valor expresado en dB).
[0160] El atenuador de factor de ganancia G34 también incluye un combinador, tal como un multiplicador o un sumador, que está configurado para aplicar los factores de atenuación a los factores de ganancia de banda alta S60-1 para obtener los factores de ganancia de banda alta S60-2, que luego pueden cuantificarse para su almacenamiento o transmisión. Para un caso en el que el calculador de variación G60 está configurado para producir un valor respectivo de la variación calculada para cada factor de ganancia (por ejemplo, basándose en la diferencia al cuadrado entre el factor de ganancia y el factor de ganancia anterior o posterior), el elemento de control de ganancia se puede configurar para aplicar un factor de atenuación respectivo a cada factor de ganancia. Para un caso en el que el calculador de variación G60 está configurado para producir un valor de la variación calculada para cada conjunto de factores de ganancia (por ejemplo, una variación calculada para la trama actual), el elemento de control de ganancia se puede configurar para aplicar el mismo factor de atenuación a más de un factor de ganancia correspondiente, tal como a cada factor de ganancia de la trama correspondiente. En un ejemplo típico, los valores de los factores de atenuación pueden variar desde una magnitud mínima de cero dB a una magnitud máxima de 6 dB (o, de forma alternativa, desde un factor de 1 hasta un factor de 0,25, o desde un factor de 1 hasta un factor de 0), aunque se puede usar cualquier otro intervalo deseado. Se observa que los valores de factor de atenuación expresados en forma de dB pueden tener valores positivos, de tal manera que una operación de atenuación puede incluir restar el valor del factor de atenuación a un factor de ganancia respectivo, o valores negativos, de tal manera que una operación de atenuación puede incluir añadir el valor del factor de atenuación a un factor de ganancia respectivo.
[0161] Se observa nuevamente que, aunque la descripción anterior asume que el calculador de envolvente G10a está configurado para calcular una envolvente de la señal de banda alta sintetizada S130, las disposiciones en las que el calculador de envolvente G10a está configurado para calcular una envolvente de la señal de excitación de banda estrecha S80 o la señal de excitación de banda alta S120 en su lugar se contemplan y se divulgan expresamente mediante el presente documento.
[0162] En otras implementaciones, la atenuación de los factores de ganancia de banda alta S60b (por ejemplo, después de la descuantificación) se realiza mediante una implementación del descodificador de banda alta B200 de acuerdo con una variación entre los factores de ganancia como se calculan en el descodificador. Por ejemplo, la FIGURA 38 muestra un diagrama de bloques de una implementación B204 del descodificador de banda alta B202 que incluye una instancia del atenuador de factor de ganancia G34 como se ha descrito anteriormente. En otras implementaciones, los factores de ganancia descuantificados y atenuados se pueden aplicar en cambio a la señal de excitación de banda estrecha S80 o a la señal de excitación de banda alta S120.
[0163] La FIGURA 39 muestra un diagrama de flujo de un procedimiento GM10 de procesamiento de señales acuerdo con un modo de realización. La tarea GT10 calcula una variación en el tiempo de una relación entre (A) una envolvente basada en una porción de baja frecuencia de una señal de voz y (B) una envolvente basada en una porción de alta frecuencia de la señal de voz. La tarea GT20 calcula una pluralidad de factores de ganancia de acuerdo con una relación variable en el tiempo entre las envolventes. La tarea GT30 atenúa al menos uno de los factores de ganancia de acuerdo con la variación calculada. En un ejemplo, la variación calculada es una suma de diferencias al cuadrado entre los consecutivos de la pluralidad de factores de ganancia.
[0164] Como se ha analizado anteriormente, las variaciones relativamente grandes en los factores de ganancia pueden indicar una falta de coincidencia entre las señales residuales de banda estrecha y de banda alta. Sin embargo, también pueden producirse variaciones entre los factores de ganancia debido a otros motivos. Por ejemplo, el cálculo de los valores de factor de ganancia se puede realizar en una base de subtrama por subtrama, en lugar de muestra por muestra. Incluso en un caso en el que se use una función de ventanas superpuestas, la tasa de muestreo reducida de la envolvente de ganancia puede conducir a una fluctuación perceptivamente notable en el nivel entre subtramas adyacentes. Otras imprecisiones en la estimación de los factores de ganancia también pueden contribuir a fluctuaciones de nivel excesivas en la señal de banda alta descodificada S100. Aunque dichas variaciones de factor de ganancia pueden ser más pequeñas en magnitud que una variación que activa la atenuación de factor de ganancia como se ha descrito anteriormente, sin embargo pueden causar una calidad inaceptablemente distorsionada y con ruido en la señal descodificada.
[0165] Puede ser deseable realizar un suavizado de los factores de ganancia de banda alta S60b. La FIGURA 40 muestra un diagrama de bloques de una implementación A205 del codificador de banda alta A202 que incluye un suavizador de factor de ganancia G80 dispuesto para realizar el suavizado de factores de ganancia de banda alta S60b antes de la cuantificación. Reduciendo las fluctuaciones entre los factores de ganancia a lo largo del tiempo, una operación de suavizado de factor de ganancia puede contribuir a una mayor calidad percibida de la señal descodificada y/o a una cuantificación más eficiente de los factores de ganancia.
[0166] La FIGURA 41 muestra un diagrama de bloques de una implementación G82 de un suavizador de factor de ganancia G80 que incluye un elemento de retardo F20, dos sumadores y un multiplicador. El suavizador de factor de ganancia G82 está configurado para filtrar los factores de ganancia de banda alta de acuerdo con una expresión de retardo mínimo tal como la siguiente:
y(n) = fy(n -1) (1 - (3)x{n), (4)
donde x indica el valor de entrada, y indica el valor de salida, n indica un índice de tiempo y p indica un factor de suavizado F10. Si el valor del factor de suavizado p es cero, entonces no se produce suavizado. Si el valor del factor de suavizado p está en un máximo, entonces se produce un grado máximo de suavizado. El suavizador de factor de ganancia G82 se puede configurar para usar cualquier valor deseado del factor de suavizado F10 entre 0 y 1, aunque se puede preferir usar en cambio un valor entre 0 y 0,5, de tal manera que un valor suavizado de forma máxima incluye contribuciones iguales de los valores suavizados actuales y anteriores.
[0167] Se observa que la expresión (4) se puede expresar e implementar de manera equivalente como
y{n) = (1- X)y(n -1) Áx(n), (4b)
donde si el valor del factor de suavizado A es uno, entonces no se produce suavizado, mientras que si el valor del factor de suavizado A está en un mínimo, entonces se produce un grado de suavizado máximo. Se contempla y se divulga mediante el presente documento que este principio se aplica a las otras implementaciones de suavizador de factor de ganancia G82 como se describen en el presente documento, así como a otras implementaciones IIR y/o FIR del suavizador de factor de ganancia G80.
[0168] El suavizador de factor de ganancia G82 se puede configurarse para aplicar un factor de suavizado F10 que tiene un valor fijo. De forma alternativa, puede ser deseable realizar un suavizado adaptativo de los factores de ganancia en lugar de un suavizado fijo. Por ejemplo, puede ser deseable preservar variaciones más grandes entre los factores de ganancia, lo que puede indicar características perceptualmente significativas de la envolvente de ganancia. El propio suavizado de dichas variaciones puede producir artefactos en la señal descodificada, tales como difuminado en la envolvente de ganancia.
[0169] En otra implementación, el suavizador de factor de ganancia G80 está configurado para realizar una operación de suavizado que es adaptativa de acuerdo con una magnitud de una variación calculada entre los factores de ganancia. Por ejemplo, una implementación de este tipo del suavizador de factor de ganancia G80 se puede configurar para realizar menos suavizado (por ejemplo, para usar un valor de factor de suavizado más bajo) cuando una distancia entre los factores de ganancia estimados actuales y anteriores es relativamente grande.
[0170] La FIGURA 42 muestra un diagrama de bloques de una implementación G84 del suavizador de factor de ganancia G82 que incluye un elemento de retardo F30 y un calculador de factor F40 configurado para calcular una implementación variable F12 del factor de suavizado F10 de acuerdo con una magnitud de una variación entre los factores de ganancia. En este ejemplo, el calculador de factor F40 está configurado para seleccionar o de otro modo calcular el factor de suavizado F12 de acuerdo con una magnitud de una diferencia entre los factores de ganancia actuales y anteriores. En otras implementaciones del suavizador de factor de ganancia G82, el calculador de factor F40 se puede configurar para seleccionar o de otro modo calcular el factor de suavizado F12 de acuerdo con una magnitud de una distancia, o una relación, diferente entre los factores de ganancia actuales y anteriores.
[0171] El calculador de factor F40 se puede configurar para seleccionar uno entre un conjunto de valores de factor de suavizado discretos. Por ejemplo, el calculador de factor F40 se puede configurar para seleccionar un valor de factor de suavizado correspondiente de acuerdo con una relación entre la magnitud de la variación calculada y uno o más valores de umbral. La FIGURA 43a muestra un gráfico de un ejemplo de este tipo en el que el dominio de valores de variación calculados se asigna a un conjunto de valores de factor de atenuación discretos V0 a V3 de acuerdo con los valores de umbral T1 a T3.
[0172] De forma alternativa, el calculador de factor F40 se puede configurar para calcular el valor de factor de suavizado como una función de la magnitud de la variación calculada. La FIGURA 43b muestra un gráfico de un ejemplo de este tipo de una asignación de la variación calculada al valor de factor de suavizado que es lineal en el dominio L1 a L2, donde L0 es un valor mínimo de la magnitud de la variación calculada, L3 es un valor máximo de la magnitud de la variación calculada, y L0 <= L1 <= L2 <= L3. En este ejemplo, las magnitudes de variación calculadas que son menores que (de forma alternativa, no mayores que) L1 se asignan a un valor de factor de suavizado mínimo V0 (por ejemplo, 0 dB), y las magnitudes de variación calculadas que son mayores que (de forma alternativa, no menores que) L3 se asignan a un valor de factor de suavizado máximo V1 (por ejemplo, 6 dB). El dominio de magnitudes de variación calculadas entre L1 y L2 se asigna linealmente al intervalo de valores de factor de suavizado entre V0 y V1. En otras implementaciones, el calculador de factor F40 se configura para aplicar una asignación no lineal (por ejemplo, una función sigmoide, polinómica o exponencial) durante al menos una porción del dominio L1 a L2. En un ejemplo, los valores del factor de suavizado varían desde un mínimo de 0 hasta un máximo de 0,5, aunque se puede usar cualquier otro intervalo deseado entre 0 y 0,5 o entre 0 y 1.
[0173] En un ejemplo, el calculador de factor F40 se configura para calcular un valor vs del factor de suavizado F12 de acuerdo con una expresión tal como la siguiente:
Figure imgf000031_0001
donde el valor de da se basa en una magnitud de la diferencia entre los valores de factor de ganancia actuales y anteriores. Por ejemplo, el valor de da se puede calcular como el valor absoluto, o como el cuadrado, de los valores de factor de ganancia actuales y anteriores.
[0174] En otra implementación, el valor de da se calcula como se ha descrito anteriormente a partir de los valores de factor de ganancia antes de la entrada al atenuador G30, y el factor de suavizado resultante se aplica a los valores de factor de ganancia después de la salida del atenuador G30. En tal caso, por ejemplo, se puede usar un valor basado en un promedio o suma de los valores de vs durante una trama como la entrada para el calculador de factor G50 en el atenuador de factor de ganancia G34, y se puede omitir el calculador de variación G60. En otra disposición, el valor de da se calcula como un promedio o suma de los valores absolutos o los cuadrados de las diferencias entre los valores de factor de ganancia adyacentes para una trama (posiblemente incluyendo un valor de factor de ganancia precedente y/o siguiente) antes de la entrada al atenuador de factor de ganancia G34, de tal manera que el valor de vs se actualiza una vez por trama y también se proporciona como la entrada para el calculador de factor G50. Se observa que en al menos el último ejemplo, el valor de la entrada para el calculador de factor G50 está limitado a no más de 0,4.
[0175] Otras implementaciones del suavizador de factor de ganancia G80 se pueden configurar para realizar operaciones de suavizado que están basadas en valores de factor de ganancia suavizados anteriores adicionales. Dichas implementaciones pueden tener más de un factor de suavizado (por ejemplo, coeficiente de filtro), que pueden variar de forma adaptativa en conjunto y/o de forma independiente. El suavizador de factor de ganancia G80 puede incluso implementarse para realizar operaciones de suavizado que también se basan en valores de factor de ganancia futuros, aunque dichas implementaciones pueden introducir latencia adicional.
[0176] Para una implementación que incluya tanto operaciones de atenuación de factor de ganancia como de suavizado de factor de ganancia, puede ser deseable realizar la atenuación en primer lugar, de tal manera que la operación de suavizado no interfiera con la determinación de los criterios de atenuación. La FIGURA 44 muestra un diagrama de bloques de una implementación A206 de este tipo del codificador de banda alta A202 que incluye instancias del atenuador de factor de ganancia G30 y el suavizador de factor de ganancia G80 de acuerdo con cualquiera de las implementaciones descritas en el presente documento.
[0177] Una operación de suavizado adaptativo como se describe en el presente documento también se puede aplicar a otras etapas del cálculo de factor de ganancia. Por ejemplo, otras implementaciones del codificador de banda alta A200 incluyen el suavizado adaptativo de una o más de las envolventes, y/o el suavizado adaptativo de los factores de atenuación que se calculan en una base por subtrama o por trama.
[0178] El suavizado de ganancia puede tener ventajas también en otras disposiciones. Por ejemplo, la FIGURA 45 muestra un diagrama de bloques de una implementación A207 del codificador de banda alta A200 que incluye un calculador de factor de ganancia de banda alta A235 que está configurado para calcular los factores de ganancia basándose en la señal de banda alta sintetizada S130 en lugar de en una relación entre la señal de banda alta S30 y una señal basada en la señal de excitación de banda estrecha S80. La FIGURA 46 muestra un diagrama de bloques del calculador de factor de ganancia de banda alta A235, que incluye instancias del calculador de envolvente G10 y el calculador de factor G20 descritos en el presente documento. El codificador de banda alta A207 también incluye una instancia del suavizador de factor de ganancia G80 que está configurado para realizar una operación de suavizado en los factores de ganancia de acuerdo con cualquiera de las implementaciones descritas en el presente documento.
[0179] La FIGURA 47 muestra un diagrama de flujo de un procedimiento FM10 de procesamiento de señales acuerdo con un modo de realización. La tarea FT10 calcula una variación en el tiempo entre una pluralidad de factores de ganancia. La tarea FT20 calcula un factor de suavizado basándose en la variación calculada. La tarea FT30 suaviza al menos uno de los factores de ganancia de acuerdo con el factor de suavizado. En un ejemplo, la variación calculada es una diferencia entre los adyacentes de la pluralidad de factores de ganancia.
[0180] La cuantificación de los factores de ganancia introduce un error aleatorio que generalmente no está correlacionado de una trama a la siguiente. Este error puede hacer que los factores de ganancia cuantificados sean menos suaves que los factores de ganancia no cuantificados y puede reducir la calidad perceptiva de la señal descodificada. La cuantificación independiente de los factores de ganancia (o vectores de factor de ganancia) en general aumenta la cantidad de fluctuación espectral de trama a trama en comparación con los factores de ganancia (o vectores de factor de ganancia) no cuantificados, y estas fluctuaciones de ganancia pueden hacer que la señal descodificada no suene natural.
[0181] Típicamente, un cuantificador está configurado para asignar un valor de entrada a uno de un conjunto de valores de salida discretos. Se dispone de un número limitado de valores de salida, de tal manera que un intervalo de valores de entrada se asigna a un único valor de salida. La cuantificación aumenta la eficiencia de codificación porque un índice que indica el valor de salida correspondiente puede transmitirse en menos bits que el valor de entrada original. La FIGURA 48 muestra un ejemplo de una asignación unidimensional realizada típicamente mediante un cuantificador escalar.
[0182] El cuantificador también podría ser un cuantificador vectorial, y los factores de ganancia se cuantifican típicamente usando un cuantificador vectorial. La FIGURA 49 muestra un ejemplo sencillo de una asignación multidimensional realizada mediante un cuantificador vectorial. En este ejemplo, el espacio de entrada se divide en varias regiones de Voronoi (por ejemplo, de acuerdo con un criterio de vecino más cercano). La cuantificación asigna cada valor de entrada a un valor que representa la región de Voronoi correspondiente (normalmente, el centroide), que se muestra en el presente documento como un punto. En este ejemplo, el espacio de entrada se divide en seis regiones, de tal manera que cualquier valor de entrada se puede representar mediante un índice que tiene solo seis estados diferentes.
[0183] Si la señal de entrada es muy suave, a veces puede suceder que la salida cuantificada es mucho menos suave, de acuerdo con un paso mínimo entre los valores en el espacio de salida de la cuantificación. La FIGURA 50a muestra un ejemplo de una señal unidimensional suave que varía solo dentro de un nivel de cuantificación (solo se muestra aquí un nivel de este tipo), y la FIGURA 50b muestra un ejemplo de esta señal después de la cuantificación. Incluso aunque la entrada en la FIGURA 50a varía solo en un intervalo pequeño, la salida resultante en la FIGURA 50b contiene transiciones más abruptas y es mucho menos suave. Un efecto de este tipo puede producir artefactos audibles, y puede ser deseable reducir este efecto para los factores de ganancia. Por ejemplo, el rendimiento de cuantificación de factor de ganancia se puede mejorar incorporando la conformación de ruido temporal.
[0184] En un procedimiento de acuerdo con un modo de realización, se calcula una serie de factores de ganancia para cada trama (u otro bloque) de voz en el codificador, y la serie se cuantifica vectorialmente para una transmisión eficiente al descodificador. Después de la cuantificación, se almacena el error de cuantificación (definido como la diferencia entre el vector de parámetros cuantificado y no cuantificado). El error de cuantificación de la trama N-1 se reduce mediante un factor de ponderación y se añade al vector de parámetros de la trama N, antes de cuantificar el vector de parámetros de la trama N. Puede ser deseable que el valor del factor de ponderación sea menor si la diferencia entre las envolventes de ganancia estimadas actuales y anteriores es relativamente grande.
[0185] En un procedimiento de acuerdo con un modo de realización, el vector de error de cuantificación de factor de ganancia se calcula para cada trama y se multiplica por un factor de ponderación b que tiene un valor menor que 1,0. Antes de la cuantificación, el error de cuantificación escalado para la trama anterior se añade al vector de factor de ganancia (valor de entrada V10). Una operación de cuantificación de un procedimiento de este tipo se puede describir mediante una expresión como la siguiente:
Figure imgf000033_0001
donde s (n) es el vector de factor de ganancia suavizado perteneciente a la trama n, y(n) es el vector de factor de ganancia cuantificado perteneciente a la trama n, Q(-) es una operación de cuantificación de vecino más cercano, y b es el factor de ponderación.
[0186] Una implementación 435 del cuantificador 430 está configurada para producir un valor de salida cuantificado V30 de un valor suavizado V20 de un valor de entrada V10 (por ejemplo, un vector de factor de ganancia), donde el valor suavizado V20 se basa en un factor de ponderación b V40 y un error de cuantificación de un valor de salida anterior V30a. Un cuantificador de este tipo se puede aplicar para reducir las fluctuaciones de ganancia sin retardo adicional. La FIGURA 51 muestra un diagrama de bloques de una implementación A208 del codificador de banda alta A202 que incluye el cuantificador 435. Se observa que un codificador de este tipo también se puede implementar sin incluir uno o ambos del atenuador de factor de ganancia G30 y el suavizador de factor de ganancia G80. También se observa que se puede usar una implementación del cuantificador 435 para el cuantificador 430 en el codificador de banda alta A204 (FIGURA 38) o el codificador de banda alta A207 (FIGURA 47), que se puede implementar con o sin uno o ambos del atenuador de factor de ganancia G30 y el suavizador de factor de ganancia G80.
[0187] La FIGURA 52 muestra un diagrama de bloques de una implementación 435a del cuantificador 430, en el que los valores que pueden ser particulares de esta implementación se indican mediante el índice a. En este ejemplo, se calcula un error de cuantificación restando el valor actual al valor suavizado V20a al valor de salida actual V30a descuantificado mediante el cuantificador inverso Q20. El error se almacena en un elemento de retardo DE10. El propio valor suavizado V20a es una suma del valor de entrada actual V10 y el error de cuantificación de la trama anterior ponderado (por ejemplo, multiplicado) por el factor de escala V40. El cuantificador 435a también se puede implementar de tal manera que el factor de ponderación V40 se aplica en cambio antes del almacenamiento del error de cuantificación en el elemento de retardo DE10.
[0188] La FIGURA 50c muestra un ejemplo de una secuencia (descuantificada) de valores de salida V30a como la producida por el cuantificador 435a en respuesta a la señal de entrada de la FIGURA 50a. En este ejemplo, el valor de b se fija en 0,5. Se puede ver que la señal de la FIGURA 50c es más suave que la señal fluctuante de la FIGURA 50a.
[0189] Puede ser deseable usar una función recursiva para calcular la cantidad de realimentación. Por ejemplo, el error de cuantificación se puede calcular con respecto al valor de entrada actual en lugar de con respecto al valor suavizado actual. Un procedimiento de este tipo se puede describir mediante una expresión tal como la siguiente:
Figure imgf000033_0002
donde x(n) es el vector de factor de ganancia de entrada perteneciente a la trama n.
[0190] La FIGURA 53 muestra un diagrama de bloques de una implementación 435b del cuantificador 430, en el que los valores que pueden ser particulares de esta implementación se indican mediante el índice b. En este ejemplo, se calcula un error de cuantificación restando el valor de entrada actual V10 al valor de salida actual V30b descuantificado mediante el cuantificador inverso Q20. El error se almacena en el elemento de retardo DE10. El valor suavizado V20b es una suma del valor de entrada actual V10 y el error de cuantificación de la trama anterior ponderado (por ejemplo, multiplicado) por el factor de escala V40. El cuantificador 230b también se puede implementar de tal manera que el factor de ponderación V40 se aplica en cambio antes del almacenamiento del error de cuantificación en el elemento de retardo DE10. También es posible usar diferentes valores del factor de ponderación V40 en la implementación 435a en comparación con la implementación 435b.
[0191] La FIGURA 50d muestra un ejemplo de una secuencia (descuantificada) de valores de salida V30b como la producida por el cuantificador 435b en respuesta a la señal de entrada de la FIGURA 50a. En este ejemplo, el valor del factor de ponderación b se fija en 0,5. Se puede ver que la señal de la FIGURA 50d es más suave que la señal fluctuante de la FIGURA 50a.
[0192] Se observa que los modos de realización mostrados en el presente documento se pueden implementar sustituyendo o aumentando un cuantificador existente Q10 de acuerdo con una disposición como la mostrada en la FIGURA 52 o 53. Por ejemplo, el cuantificador Q10 se puede implementar como un cuantificador vectorial predictivo, un cuantificador de múltiples etapas, un cuantificador de vectores divididos, o de acuerdo con cualquier otro esquema para la cuantificación de factor de ganancia.
[0193] En un ejemplo, el valor del factor de ponderación b se fija en un valor deseado entre 0 y 1. De forma alternativa, se puede desear configurar el cuantificador 435 para ajustar el valor del factor de ponderación b dinámicamente. Por ejemplo, se puede desear que el cuantificador 435 esté configurado para ajustar el valor del factor de ponderación b dependiendo de un grado de fluctuación ya presente en los factores de ganancia no cuantificados o en los vectores de factor de ganancia. Cuando la diferencia entre los factores de ganancia actuales y anteriores o los vectores de factor de ganancia es grande, el valor del factor de ponderación b está próximo a cero y casi no hay resultados de conformación de ruido. Cuando el factor de ganancia actual o el vector difiere poco del anterior, el valor del factor de ponderación b está próximo a 1,0. De esta manera, las transiciones en la envolvente de ganancia a lo largo del tiempo (por ejemplo, las atenuaciones aplicadas mediante una implementación del atenuador de factor de ganancia G30) se pueden mantener, minimizando el difuminado cuando la envolvente de ganancia está cambiando, mientras que las fluctuaciones se pueden reducir cuando la envolvente de ganancia es relativamente constante de una trama o subtrama a la siguiente.
[0194] Como se muestra en la FIGURA 54, otras implementaciones del cuantificador 435a y el cuantificador 435b incluyen una instancia del elemento de retardo F30 y el calculador de factor F40 como se ha descrito anteriormente que están dispuestos para calcular una implementación variable V42 del factor de escala V40. Por ejemplo, una instancia de este tipo del calculador de factor F40 se puede configurar para calcular el factor de escala V42 basándose en la magnitud de una diferencia entre valores de entrada adyacentes V10 y de acuerdo con una asignación como la mostrada en la FIGURA 45a o 45b.
[0195] El valor del factor de ponderación b se puede hacer proporcional a una distancia entre factores de ganancia o vectores de factor de ganancia consecutivos, y se puede usar cualquiera de varias distancias. Típicamente se usa la norma euclidiana, pero otras que se pueden usar incluyen la distancia de Manhattan (norma 1), la distancia de Chebyshev (norma infinito), la distancia de Mahalanobis y la distancia de Hamming.
[0196] En las FIGURAS 50a-d se puede apreciar que, en una base de trama por trama, un procedimiento de conformación de ruido temporal como se describe en el presente documento puede aumentar el error de cuantificación. Aunque el error al cuadrado absoluto de la operación de cuantificación puede aumentar, sin embargo, una ventaja potencial es que el error de cuantificación se puede mover a una parte diferente del espectro. Por ejemplo, el error de cuantificación se puede mover a frecuencias más bajas, volviéndose por tanto más suave. Como la señal de entrada también es suave, se puede obtener una señal de salida más suave como una suma de la señal de entrada y el error de cuantificación suavizado.
[0197] La FIGURA 55a muestra un diagrama de flujo de un procedimiento de procesamiento de señales QM10 de acuerdo con un modo de realización. La tarea QT10 calcula el primer y el segundo vectores de factor de ganancia, que pueden corresponder a tramas adyacentes de una señal de voz. La tarea QT20 genera un primer vector cuantificado cuantificando un tercer vector que se basa en al menos una porción del primer vector. La tarea QT30 calcula un error de cuantificación del primer vector cuantificado. Por ejemplo, la tarea QT30 se puede configurar para calcular una diferencia entre el primer vector cuantificado y el tercer vector. La tarea QT40 calcula un cuarto vector basándose en el error de cuantificación. Por ejemplo, la tarea QT40 se puede configurar para calcular el cuarto vector como la suma de una versión escalada del error de cuantificación y al menos una porción del segundo vector. La tarea QT50 cuantifica el cuarto vector.
[0198] La FIGURA 55b muestra un diagrama de flujo de un procedimiento de procesamiento de señales QM20 de acuerdo con un modo de realización. La tarea QT10 calcula el primer y el segundo factores de ganancia, que pueden corresponder a tramas o subtramas adyacentes de una señal de voz. La tarea QT20 genera un primer factor de ganancia cuantificado cuantificando un tercer valor basándose en el primer vector de ganancia. La tarea QT30 calcula un error de cuantificación del primer factor de ganancia cuantificado. Por ejemplo, la tarea QT30 se puede configurar para calcular una diferencia entre el primer factor de ganancia cuantificado y el tercer vector. La tarea QT40 calcula un factor de ganancia filtrado basándose en el error de cuantificación. Por ejemplo, la tarea QT40 se puede configurar para calcular el factor de ganancia filtrado como la suma de una versión escalada del error de cuantificación y el segundo factor de ganancia. La tarea QT50 cuantifica el factor de ganancia filtrado.
[0199] Como se ha mencionado anteriormente, los modos de realización que se han descrito en el presente documento incluyen implementaciones que pueden usarse para realizar codificación incorporada, soportando la 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 sobre una base de coste entre chips, conjuntos de chips, dispositivos y/o redes que tienen soporte de banda ancha con compatibilidad de versiones anteriores, y aquellos que solo tienen soporte de banda estrecha. El soporte para codificación de banda alta como se describe en el presente documento también se puede usar junto con una técnica para soportar codificación de banda baja, y un sistema, procedimiento o aparato de acuerdo con dicho modo de realización puede soportar la codificación de componentes de frecuencia desde, por ejemplo, aproximadamente 50 o 100 Hz hasta aproximadamente 7 u 8 kHz.
[0200] Como se ha mencionado anteriormente, la adición de soporte de banda alta a un codificador de voz puede mejorar la inteligibilidad, especialmente en cuanto a la diferenciación de fricativas. Aunque dicha diferenciación se puede obtener habitualmente mediante un oyente humano desde el contexto particular, el soporte de banda alta puede servir como una característica de habilitación en reconocimiento de voz y otras aplicaciones de interpretación de máquina, tales como sistemas para la navegación automatizada por menús de voz y/o procesamiento automático de llamadas.
[0201] Un aparato de acuerdo con un modo de realización puede estar incorporado en un dispositivo portátil para comunicaciones inalámbricas tal como un teléfono móvil o un asistente digital personal (PDA). De forma alternativa, dicho aparato puede estar incluido en otro dispositivo de comunicaciones tal como un teléfono VoIP, un ordenador personal configurado para soportar comunicaciones VoIP, o un dispositivo de red configurado para enrutar comunicaciones telefónicas o de VoIP. Por ejemplo, un aparato de acuerdo con un modo de realización se puede implementar en un chip o conjunto de chips para un dispositivo de comunicaciones. Dependiendo de la aplicación particular, dicho dispositivo puede incluir también características tales como conversión de analógica a digital y/o de digital a analógica de una señal de voz, circuitos para realizar la amplificación y/ u otras operaciones de procesamiento de señales en una señal de voz, y/o circuitos de radiofrecuencia para la transmisión y/o recepción de la señal de voz codificada.
[0202] Se contempla y divulga explícitamente que los modos de realización pueden incluir y/o usarse con una o más de las otras características divulgadas en la Solicitud de Patente Provisional de EE.UU. No. 60/673,965 y/o en la Solicitud de Patente de EE.UU. No. 11/XXX.XXX, expediente del apoderado No. 050551, de las cuales esta solicitud reivindica la prioridad. También se contempla y divulga explícitamente que los modos de realización pueden incluir y/o usarse con una o más de las otras características divulgadas en la Solicitud de Patente Provisional de EE.UU. No. 60/667,901 y/o cualquiera de las solicitudes de patente relacionadas identificadas anteriormente. Dichas 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 están sustancialmente ausentes en la banda estrecha. Dichas características incluyen el suavizado fijo o adaptativo de representaciones de coeficientes tales como LSF de banda baja y/o banda alta (por ejemplo, usando una estructura como la mostrada en la FIGURA 43 o 44 y descrita en el presente documento para suavizar cada uno de uno o más, posiblemente la totalidad, de los elementos de una serie de vectores de LSF a lo largo del tiempo). Dichas características incluyen la conformación fija o adaptativa del ruido asociado con la cuantificación de representaciones de coeficientes tales como LSF.
[0203] La presentación anterior de los modos de realización descritos se proporciona para permitir que cualquier experto en la técnica realice o use la presente invención. Son posibles diversas modificaciones de estos modos de realización, y los principios genéricos presentados en el presente documento se pueden aplicar también a otros modos de realización. Por ejemplo, un modo de realización se puede implementar en parte o en su totalidad como un circuito por cable, como una configuración de circuito fabricada en un circuito integrado específico de aplicación, o como un programa de firmware cargado en un almacenamiento no volátil o un programa de software cargado a partir de o en un medio de almacenamiento de datos como código legible por máquina, siendo dicho código instrucciones ejecutables mediante 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 memoria de semiconductor (que puede incluir, sin limitación, RAM (memoria de acceso aleatorio) dinámica o estática, ROM (memoria de solo 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 magnético u óptico. El término "software" debería entenderse como que incluye código fuente, código de lenguaje ensamblador, código de máquina, código binario, firmware, macrocódigo, microcódigo, uno o más conjuntos o secuencias de instrucciones ejecutables mediante una matriz de elementos lógicos y cualquier combinación de dichos ejemplos.
[0204] Los diversos elementos de implementaciones de los generadores de excitación de banda alta A300 y B300, el codificador de banda alta A100, el descodificador de banda alta B200, el codificador de voz de banda ancha A100, y el descodificador de voz de banda ancha B100 pueden implementarse como dispositivos electrónicos y/u ópticos que residen, 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 dicha limitación. Uno o más elementos de un aparato de este tipo pueden implementarse total o parcialmente como uno o más conjuntos de instrucciones dispuestos para ejecutarse en una o más matrices fijas o programables de elementos lógicos (por ejemplo, transistores, puertas) tales como microprocesadores, procesadores incorporados, núcleos IP, procesadores de señales digitales, FPGA (matrices de puertas programables por campo), ASSP (productos estándar específicos de la aplicación) y ASIC (circuitos integrados específicos de la aplicación). También es posible que uno o más elementos de este tipo tengan una estructura en común (por ejemplo, un procesador usado para ejecutar porciones de código correspondientes a diferentes elementos en momentos diferentes, un conjunto de instrucciones ejecutadas para llevar a cabo las tareas correspondientes a diferentes elementos en momentos diferentes, o una disposición de dispositivos electrónicos y/u ópticos que realizan operaciones para diferentes elementos en momentos diferentes).
Además, es posible que uno o más de dichos elementos se utilicen para realizar tareas o ejecutar otros conjuntos de instrucciones que no están directamente relacionados con una operación del aparato, tal como una tarea relacionada con otra operación de un dispositivo o sistema en el que el aparato está incorporado.
[0205] La FIGURA 30 muestra un diagrama de flujo de un procedimiento M100, de acuerdo con un modo de realización, de codificación de una porción de banda alta de una señal de voz que tiene una porción de banda estrecha y la porción de banda alta. La tarea X100 calcula un conjunto de parámetros de filtro que caracterizan una envolvente espectral de la porción de banda alta. La tarea X200 calcula una señal ampliada espectralmente aplicando una función no lineal a una señal obtenida a partir de la porción de banda estrecha. La tarea X300 genera una señal de banda alta sintetizada de acuerdo con (A) el conjunto de parámetros de filtro y (B) una señal de excitación de banda alta basada en la señal ampliada espectralmente. La tarea X400 calcula una envolvente de ganancia basándose en una relación entre (C) la energía de la porción de banda alta y (D) la energía de una señal obtenida a partir de la porción de banda estrecha.
[0206] La FIGURA 31 a muestra un diagrama de flujo de un procedimiento M200 de generación de una señal de excitación de banda alta de acuerdo con un modo de realización. La tarea Y100 calcula una señal ampliada armónicamente aplicando una función no lineal a una señal de excitación de banda estrecha obtenida a partir de una porción de banda estrecha de una señal de voz. La tarea Y200 mezcla la señal ampliada armónicamente con una señal de ruido modulada 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 de acuerdo con otro modo de realización que incluye las tareas Y300 y Y400. La tarea Y300 calcula una envolvente de dominio de tiempo de acuerdo con la energía en el tiempo de una entre la señal de excitación de banda estrecha y la señal ampliada armónicamente. La tarea Y400 modula una señal de ruido de acuerdo con la envolvente de dominio de tiempo para producir la señal de ruido modulada.
[0207] La FIGURA 32 muestra un diagrama de flujo de un procedimiento M300 de acuerdo con un modo de realización, de descodificación de una porción de banda alta de una señal de voz que tiene una porción de banda estrecha y la porción de banda alta. La tarea Z100 recibe un conjunto de parámetros de filtro que caracterizan una envolvente espectral de la porción de banda alta y un conjunto de factores de ganancia que caracterizan una envolvente temporal de la porción de banda alta. La tarea Z200 calcula una señal ampliada espectralmente aplicando una función no lineal a una señal obtenida a partir de la porción de banda estrecha. La tarea Z300 genera una señal de banda alta sintetizada de acuerdo con (A) el conjunto de parámetros de filtro y (B) una señal de excitación de banda alta basada en la señal ampliada 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 obtenida a partir de la porción de banda estrecha, a la señal ampliada espectralmente, a la señal de excitación de banda alta, o a la señal sintetizada de banda alta.
[0208] Los modos de realización también incluyen procedimientos adicionales de codificación y descodificación de voz como se divulgan expresamente en el presente documento, por ejemplo, mediante descripciones de modos de realización estructurales configurados para realizar dichos procedimientos. Cada uno de estos procedimientos también pueden realizarse de forma tangible (por ejemplo, en uno o más medios de almacenamiento de datos como se ha mencionado anteriormente) como uno o más conjuntos de instrucciones legibles y/o ejecutables mediante una máquina que incluye una matriz de elementos lógicos (por ejemplo, un procesador, un microprocesador, un microcontrolador u otra máquina de estados finitos). Por tanto, la presente invención no pretende limitarse a los modos de realización mostrados anteriormente, sino que en cambio se le ha de conceder el alcance más amplio conforme a las reivindicaciones adjuntas.

Claims (16)

  1. REIVINDICACIONES
    i . Un procedimiento para procesamiento de señales, dicho procedimiento que comprende:
    calcular una envolvente de una primera señal que se basa en una porción de baja frecuencia de una señal de voz;
    calcular una envolvente de una segunda señal que se basa en una porción de alta frecuencia de la señal de voz;
    calcular una primera pluralidad de valores de factor de ganancia de acuerdo con una relación variable en el tiempo entre las envolventes de la primera y la segunda señales; y
    basándose en la primera pluralidad de valores de factor de ganancia, calcular una pluralidad de valores de factor de ganancia suavizados,
    en el que cada uno de la pluralidad de valores de factor de ganancia suavizados se basa en una suma de (A) un factor de ganancia de la primera pluralidad, ponderado mediante un primer peso, que está asociado con un primer intervalo de tiempo y (B) un valor de factor de ganancia suavizado, ponderado mediante un segundo peso, que está asociado con un intervalo de tiempo que comienza antes que el primer intervalo de tiempo, y caracterizado por que
    al menos uno entre los primer y el segundo pesos se basa en una distancia entre los valores de factor de ganancia de la primera pluralidad que están asociados con intervalos de tiempo sucesivos, o se basa en una diferencia entre (C) el valor de factor de ganancia de la primera pluralidad y (D) un valor de factor de ganancia de la primera pluralidad que está asociado con un intervalo de tiempo que comienza antes que el primer intervalo de tiempo.
  2. 2. Un procedimiento para procesamiento de señales, dicho procedimiento que comprende:
    calcular una envolvente de una primera señal que se basa en una porción de baja frecuencia de una señal de voz;
    calcular una envolvente de una segunda señal que se basa en una porción de alta frecuencia de la señal de voz;
    calcular una primera pluralidad de valores de factor de ganancia de acuerdo con una relación variable en el tiempo entre las envolventes de las primera y segunda señales;
    basándose en la primera pluralidad de valores de factor de ganancia, calcular una pluralidad de valores de factor de ganancia suavizados; y caracterizado por que
    basándose en una variación en el tiempo de una relación entre las envolventes de las primera y segunda señales, atenuar al menos una de la primera pluralidad de valores de factor de ganancia, en el que al menos uno de la pluralidad de valores de factor de ganancia suavizados se basa en el al menos un valor del factor de ganancia atenuado de la primera pluralidad.
  3. 3. El procedimiento para procesamiento de señales, de acuerdo con la reivindicación 1 o 2, en el que cada uno de la pluralidad de valores de factor de ganancia suavizados se basa en al menos uno de la primera pluralidad de valores de factor de ganancia y al menos un valor de factor de ganancia suavizado.
  4. 4. El procedimiento para procesamiento de señales, de acuerdo con la reivindicación 1 o 2, en el que cada uno de la pluralidad de valores de factor de ganancia suavizados se basa en una suma ponderada de al menos uno de la primera pluralidad de valores de factor de ganancia y al menos un valor de factor de ganancia suavizado.
  5. 5. El procedimiento para procesamiento de señales, de acuerdo con la reivindicación 1, en el que una suma de los primer y segundo pesos es igual a uno.
  6. 6. El procedimiento para procesamiento de señales, de acuerdo con la reivindicación 1 o 2, en el que dicho cálculo de una envolvente de una primera señal que se basa en una porción de baja frecuencia de una señal de voz comprende calcular una envolvente de una señal que se basa en una señal de excitación obtenida a partir de la porción de baja frecuencia.
  7. 7. El procedimiento para procesamiento de señales, de acuerdo con la reivindicación 6, en el que dicho cálculo de una envolvente de una primera señal que se basa en una porción de baja frecuencia de una señal de voz comprende calcular una envolvente de una señal que se basa en una extensión espectral de la señal de excitación.
  8. 8. El procedimiento de procesamiento de señales, de acuerdo con la reivindicación 6, dicho procedimiento que comprende calcular una pluralidad de parámetros de filtro de acuerdo con la porción de alta frecuencia, en el que dicho cálculo de una envolvente de una primera señal que se basa en una porción de baja frecuencia de una señal de voz comprende calcular una envolvente de una señal que se basa en la señal de excitación y en la pluralidad de parámetros de filtro.
  9. 9. Un procedimiento de procesamiento de señales, de acuerdo con la reivindicación 1 o 2, en el que dicho cálculo de una primera pluralidad de valores de factor de ganancia de acuerdo con una relación variable en el tiempo comprende calcular la pluralidad de valores de factor de ganancia de acuerdo con una relación entre las primera y segunda envolventes.
  10. 10. Un aparato que comprende:
    medios (G10a) para calcular una envolvente de una primera señal que se basa en una porción de baja frecuencia de una señal de voz;
    medios (G10b) para calcular una envolvente de una segunda señal que se basa en una porción de alta frecuencia de la señal de voz;
    medios (G20) para calcular una primera pluralidad de valores de factor de ganancia de acuerdo con una relación variable en el tiempo entre las envolventes de las primera y segunda señales; y
    medios (G80) para calcular una pluralidad de valores de factor de ganancia suavizados basándose en la primera pluralidad de valores de factor de ganancia,
    en el que cada uno de la pluralidad de valores de factor de ganancia suavizados se basa en una suma de (A) un factor de ganancia de la primera pluralidad, ponderado mediante un primer peso, que está asociado con un primer intervalo de tiempo y (B) un valor de factor de ganancia suavizado, ponderado mediante un segundo peso, que está asociado con un intervalo de tiempo que comienza antes que el primer intervalo de tiempo, y caracterizado por que
    al menos uno entre los primer y segundo pesos se basa en una distancia entre los valores de factor de ganancia de la primera pluralidad que están asociados con intervalos de tiempo sucesivos, o se basa en una diferencia entre (C) el valor de factor de ganancia de la primera pluralidad y (D) un valor de factor de ganancia de la primera pluralidad que está asociado con un intervalo de tiempo que comienza antes que el primer intervalo de tiempo.
  11. 11. Aparato que comprende:
    medios (G10a) para calcular una envolvente de una primera señal que se basa en una porción de baja frecuencia de una señal de voz;
    medios (G10b) para calcular una envolvente de una segunda señal que se basa en una porción de alta frecuencia de la señal de voz;
    medios (G20) para calcular una primera pluralidad de valores de factor de ganancia de acuerdo con una relación variable en el tiempo entre las envolventes de las primera y segunda señales;
    medios (G80) para calcular una pluralidad de valores de factor de ganancia suavizados basándose en la primera pluralidad de valores de factor de ganancia; y caracterizado por
    medios para atenuar al menos uno de la primera pluralidad de valores de factor de ganancia basándose en una variación en el tiempo de una relación entre las envolventes de las primera y segunda señales, en el que los medios para calcular una pluralidad de valores de factor de ganancia suavizados son para calcular al menos uno de la pluralidad de valores de factor de ganancia suavizados basándose en al menos un valor de factor de ganancia atenuado de la primera pluralidad.
  12. 12. El aparato de acuerdo con la reivindicación 10 u 11, en el que dichos medios (G10a) para calcular una envolvente de una primera señal están configurados para calcular una envolvente de una señal que se basa en una ampliación espectral de una señal de excitación obtenida a partir de la porción de baja frecuencia.
  13. 13. El aparato de acuerdo con la reivindicación 10 u 11, dicho aparato que comprende medios para calcular una pluralidad de parámetros de filtro de acuerdo con la porción de alta frecuencia,
    en el que dichos medios para calcular una envolvente de una primera señal están configurados para calcular una envolvente de una señal que se basa en la pluralidad de parámetros de filtro y en una señal de excitación obtenida a partir de la porción de baja frecuencia.
  14. 14. El aparato de acuerdo con la reivindicación 10 u 11, en el que dichos medios (G20) para calcular una primera pluralidad de valores de factor de ganancia están configurados para calcular la primera pluralidad de valores de factor de ganancia de acuerdo con una relación entre las primera y segunda envolventes.
  15. 15. El aparato de acuerdo con la reivindicación 10, en el que una suma de los primer y segundo pesos es igual a uno.
  16. 16. Un medio legible por ordenador, que comprende instrucciones que, al ejecutarse en un procesador, provocan que el procesador realice los procedimientos citados en cualquiera de las reivindicaciones 1 a 9.
ES06750901T 2005-04-22 2006-04-21 Sistemas, procedimientos y aparatos para el suavizado del factor de ganancia Active ES2705589T3 (es)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US67396505P 2005-04-22 2005-04-22
PCT/US2006/014993 WO2006116025A1 (en) 2005-04-22 2006-04-21 Systems, methods, and apparatus for gain factor smoothing

Publications (1)

Publication Number Publication Date
ES2705589T3 true ES2705589T3 (es) 2019-03-26

Family

ID=36741298

Family Applications (1)

Application Number Title Priority Date Filing Date
ES06750901T Active ES2705589T3 (es) 2005-04-22 2006-04-21 Sistemas, procedimientos y aparatos para el suavizado del factor de ganancia

Country Status (14)

Country Link
US (2) US8892448B2 (es)
EP (2) EP1875463B1 (es)
KR (2) KR100947421B1 (es)
CN (3) CN101199003B (es)
DK (1) DK1875463T3 (es)
ES (1) ES2705589T3 (es)
HU (1) HUE040628T2 (es)
NO (1) NO20075509L (es)
PL (1) PL1875463T3 (es)
PT (1) PT1875463T (es)
SI (1) SI1875463T1 (es)
TR (1) TR201821299T4 (es)
TW (2) TWI324336B (es)
WO (2) WO2006116024A2 (es)

Families Citing this family (111)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4903053B2 (ja) * 2004-12-10 2012-03-21 パナソニック株式会社 広帯域符号化装置、広帯域lsp予測装置、帯域スケーラブル符号化装置及び広帯域符号化方法
SG163556A1 (en) 2005-04-01 2010-08-30 Qualcomm Inc Systems, methods, and apparatus for wideband speech coding
PT1875463T (pt) 2005-04-22 2019-01-24 Qualcomm Inc Sistemas, métodos e aparelho para nivelamento de fator de ganho
US20070047743A1 (en) * 2005-08-26 2007-03-01 Step Communications Corporation, A Nevada Corporation Method and apparatus for improving noise discrimination using enhanced phase difference value
US7415372B2 (en) * 2005-08-26 2008-08-19 Step Communications Corporation Method and apparatus for improving noise discrimination in multiple sensor pairs
US7619563B2 (en) 2005-08-26 2009-11-17 Step Communications Corporation Beam former using phase difference enhancement
US7436188B2 (en) * 2005-08-26 2008-10-14 Step Communications Corporation System and method for improving time domain processed sensor signals
US20070050441A1 (en) * 2005-08-26 2007-03-01 Step Communications Corporation,A Nevada Corporati Method and apparatus for improving noise discrimination using attenuation factor
US20070047742A1 (en) * 2005-08-26 2007-03-01 Step Communications Corporation, A Nevada Corporation Method and system for enhancing regional sensitivity noise discrimination
US7472041B2 (en) * 2005-08-26 2008-12-30 Step Communications Corporation Method and apparatus for accommodating device and/or signal mismatch in a sensor array
WO2007083269A1 (en) * 2006-01-17 2007-07-26 Koninklijke Philips Electronics N.V. Detection of the presence of television signals embedded in noise using cyclostationary toolbox
US8532984B2 (en) * 2006-07-31 2013-09-10 Qualcomm Incorporated Systems, methods, and apparatus for wideband encoding and decoding of active frames
US8260609B2 (en) * 2006-07-31 2012-09-04 Qualcomm Incorporated Systems, methods, and apparatus for wideband encoding and decoding of inactive frames
US9454974B2 (en) * 2006-07-31 2016-09-27 Qualcomm Incorporated Systems, methods, and apparatus for gain factor limiting
US8725499B2 (en) * 2006-07-31 2014-05-13 Qualcomm Incorporated Systems, methods, and apparatus for signal change detection
JP4827661B2 (ja) * 2006-08-30 2011-11-30 富士通株式会社 信号処理方法及び装置
US8639500B2 (en) * 2006-11-17 2014-01-28 Samsung Electronics Co., Ltd. Method, medium, and apparatus with bandwidth extension encoding and/or decoding
KR100788706B1 (ko) * 2006-11-28 2007-12-26 삼성전자주식회사 광대역 음성 신호의 부호화/복호화 방법
KR101379263B1 (ko) 2007-01-12 2014-03-28 삼성전자주식회사 대역폭 확장 복호화 방법 및 장치
CN101606195B (zh) * 2007-02-12 2012-05-02 杜比实验室特许公司 用于年长或听力受损的收听者的改进的语音与非语音音频比值
US8195454B2 (en) 2007-02-26 2012-06-05 Dolby Laboratories Licensing Corporation Speech enhancement in entertainment audio
KR101411900B1 (ko) * 2007-05-08 2014-06-26 삼성전자주식회사 오디오 신호의 부호화 및 복호화 방법 및 장치
WO2009001874A1 (ja) * 2007-06-27 2008-12-31 Nec Corporation オーディオ符号化方法、オーディオ復号方法、オーディオ符号化装置、オーディオ復号装置、プログラム、およびオーディオ符号化・復号システム
BRPI0722269A2 (pt) 2007-11-06 2014-04-22 Nokia Corp Encodificador para encodificar um sinal de áudio, método para encodificar um sinal de áudio; decodificador para decodificar um sinal de áudio; método para decodificar um sinal de áudio; aparelho; dispositivo eletrônico; produto de programa de comoputador configurado para realizar um método para encodificar e para decodificar um sinal de áudio
US20100250260A1 (en) * 2007-11-06 2010-09-30 Lasse Laaksonen Encoder
US8688441B2 (en) * 2007-11-29 2014-04-01 Motorola Mobility Llc Method and apparatus to facilitate provision and use of an energy value to determine a spectral envelope shape for out-of-signal bandwidth content
KR101413967B1 (ko) * 2008-01-29 2014-07-01 삼성전자주식회사 오디오 신호의 부호화 방법 및 복호화 방법, 및 그에 대한 기록 매체, 오디오 신호의 부호화 장치 및 복호화 장치
US8433582B2 (en) * 2008-02-01 2013-04-30 Motorola Mobility Llc Method and apparatus for estimating high-band energy in a bandwidth extension system
US20090201983A1 (en) * 2008-02-07 2009-08-13 Motorola, Inc. Method and apparatus for estimating high-band energy in a bandwidth extension system
EP2255534B1 (en) * 2008-03-20 2017-12-20 Samsung Electronics Co., Ltd. Apparatus and method for encoding using bandwidth extension in portable terminal
AU2009256551B2 (en) * 2008-06-13 2015-08-13 Nokia Technologies Oy Method and apparatus for error concealment of encoded audio data
CN103077722B (zh) 2008-07-11 2015-07-22 弗劳恩霍夫应用研究促进协会 提供时间扭曲激活信号以及使用该时间扭曲激活信号对音频信号编码
MY154452A (en) 2008-07-11 2015-06-15 Fraunhofer Ges Forschung An apparatus and a method for decoding an encoded audio signal
US8463412B2 (en) * 2008-08-21 2013-06-11 Motorola Mobility Llc Method and apparatus to facilitate determining signal bounding frequencies
US9947340B2 (en) 2008-12-10 2018-04-17 Skype Regeneration of wideband speech
GB0822537D0 (en) 2008-12-10 2009-01-14 Skype Ltd Regeneration of wideband speech
GB2466201B (en) * 2008-12-10 2012-07-11 Skype Ltd Regeneration of wideband speech
CN101604525B (zh) * 2008-12-31 2011-04-06 华为技术有限公司 基音增益获取方法、装置及编码器、解码器
GB2466670B (en) * 2009-01-06 2012-11-14 Skype Speech encoding
GB2466673B (en) 2009-01-06 2012-11-07 Skype Quantization
GB2466671B (en) * 2009-01-06 2013-03-27 Skype Speech encoding
GB2466675B (en) 2009-01-06 2013-03-06 Skype Speech coding
US8463599B2 (en) * 2009-02-04 2013-06-11 Motorola Mobility Llc Bandwidth extension method and apparatus for a modified discrete cosine transform audio coder
JP4932917B2 (ja) 2009-04-03 2012-05-16 株式会社エヌ・ティ・ティ・ドコモ 音声復号装置、音声復号方法、及び音声復号プログラム
JP5422664B2 (ja) 2009-10-21 2014-02-19 パナソニック株式会社 音響信号処理装置、音響符号化装置および音響復号装置
US20110096942A1 (en) * 2009-10-23 2011-04-28 Broadcom Corporation Noise suppression system and method
US10115386B2 (en) * 2009-11-18 2018-10-30 Qualcomm Incorporated Delay techniques in active noise cancellation circuits or other circuits that perform filtering of decimated coefficients
EP2502231B1 (en) * 2009-11-19 2014-06-04 Telefonaktiebolaget L M Ericsson (PUBL) Bandwidth extension of a low band audio signal
GB2476043B (en) * 2009-12-08 2016-10-26 Skype Decoding speech signals
US8447617B2 (en) * 2009-12-21 2013-05-21 Mindspeed Technologies, Inc. Method and system for speech bandwidth extension
EP2357649B1 (en) 2010-01-21 2012-12-19 Electronics and Telecommunications Research Institute Method and apparatus for decoding audio signal
US9525569B2 (en) * 2010-03-03 2016-12-20 Skype Enhanced circuit-switched calls
AU2011241424B2 (en) * 2010-04-14 2016-05-05 Voiceage Evs Llc Flexible and scalable combined innovation codebook for use in CELP coder and decoder
US8600737B2 (en) 2010-06-01 2013-12-03 Qualcomm Incorporated Systems, methods, apparatus, and computer program products for wideband speech coding
JP4923161B1 (ja) * 2010-09-29 2012-04-25 シャープ株式会社 移動通信システム、移動局装置、基地局装置、通信方法および集積回路
CN102800317B (zh) * 2011-05-25 2014-09-17 华为技术有限公司 信号分类方法及设备、编解码方法及设备
US9059786B2 (en) * 2011-07-07 2015-06-16 Vecima Networks Inc. Ingress suppression for communication systems
ITTO20110890A1 (it) 2011-10-05 2013-04-06 Inst Rundfunktechnik Gmbh Interpolationsschaltung zum interpolieren eines ersten und zweiten mikrofonsignals.
CN103035248B (zh) * 2011-10-08 2015-01-21 华为技术有限公司 音频信号编码方法和装置
US9444452B2 (en) 2012-02-24 2016-09-13 Parade Technologies, Ltd. Frequency hopping algorithm for capacitance sensing devices
US10448161B2 (en) 2012-04-02 2019-10-15 Qualcomm Incorporated Systems, methods, apparatus, and computer-readable media for gestural manipulation of a sound field
JP5998603B2 (ja) * 2012-04-18 2016-09-28 ソニー株式会社 音検出装置、音検出方法、音特徴量検出装置、音特徴量検出方法、音区間検出装置、音区間検出方法およびプログラム
JP5997592B2 (ja) * 2012-04-27 2016-09-28 株式会社Nttドコモ 音声復号装置
US20140006017A1 (en) * 2012-06-29 2014-01-02 Qualcomm Incorporated Systems, methods, apparatus, and computer-readable media for generating obfuscated speech signal
CN103928031B (zh) * 2013-01-15 2016-03-30 华为技术有限公司 编码方法、解码方法、编码装置和解码装置
WO2014118156A1 (en) 2013-01-29 2014-08-07 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Apparatus and method for synthesizing an audio signal, decoder, encoder, system and computer program
PL3067890T3 (pl) 2013-01-29 2018-06-29 Fraunhofer Ges Forschung Koder audio, dekoder audio, sposób dostarczania zakodowanej informacji audio, sposób dostarczania zdekodowanej informacji audio, program komputerowy i zakodowana reprezentacja, wykorzystujące adaptacyjne względem sygnału powiększanie szerokości pasma
US9741350B2 (en) 2013-02-08 2017-08-22 Qualcomm Incorporated Systems and methods of performing gain control
WO2014136629A1 (ja) 2013-03-05 2014-09-12 日本電気株式会社 信号処理装置、信号処理方法および信号処理プログラム
US9570087B2 (en) 2013-03-15 2017-02-14 Broadcom Corporation Single channel suppression of interfering sources
ES2671006T3 (es) * 2013-06-21 2018-06-04 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Reconstrucción de una trama de voz
PL3011554T3 (pl) * 2013-06-21 2019-12-31 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Szacowanie opóźnienia wysokości tonu
CN108198564B (zh) 2013-07-01 2021-02-26 华为技术有限公司 信号编码和解码方法以及设备
FR3008533A1 (fr) * 2013-07-12 2015-01-16 Orange Facteur d'echelle optimise pour l'extension de bande de frequence dans un decodeur de signaux audiofrequences
CN104301064B (zh) 2013-07-16 2018-05-04 华为技术有限公司 处理丢失帧的方法和解码器
CN104299614B (zh) * 2013-07-16 2017-12-29 华为技术有限公司 解码方法和解码装置
EP2830065A1 (en) 2013-07-22 2015-01-28 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Apparatus and method for decoding an encoded audio signal using a cross-over filter around a transition frequency
KR101790641B1 (ko) * 2013-08-28 2017-10-26 돌비 레버러토리즈 라이쎈싱 코오포레이션 하이브리드 파형-코딩 및 파라미터-코딩된 스피치 인핸스
TWI557726B (zh) * 2013-08-29 2016-11-11 杜比國際公司 用於決定音頻信號的高頻帶信號的主比例因子頻帶表之系統和方法
CN104517610B (zh) 2013-09-26 2018-03-06 华为技术有限公司 频带扩展的方法及装置
CN104517611B (zh) 2013-09-26 2016-05-25 华为技术有限公司 一种高频激励信号预测方法及装置
US9620134B2 (en) * 2013-10-10 2017-04-11 Qualcomm Incorporated Gain shape estimation for improved tracking of high-band temporal characteristics
US9564141B2 (en) * 2014-02-13 2017-02-07 Qualcomm Incorporated Harmonic bandwidth extension of audio signals
US9697843B2 (en) * 2014-04-30 2017-07-04 Qualcomm Incorporated High band excitation signal generation
CN105336336B (zh) 2014-06-12 2016-12-28 华为技术有限公司 一种音频信号的时域包络处理方法及装置、编码器
CN105336338B (zh) 2014-06-24 2017-04-12 华为技术有限公司 音频编码方法和装置
CN105225666B (zh) 2014-06-25 2016-12-28 华为技术有限公司 处理丢失帧的方法和装置
US9984699B2 (en) * 2014-06-26 2018-05-29 Qualcomm Incorporated High-band signal coding using mismatched frequency ranges
US9626983B2 (en) * 2014-06-26 2017-04-18 Qualcomm Incorporated Temporal gain adjustment based on high-band signal characteristic
CN106486129B (zh) * 2014-06-27 2019-10-25 华为技术有限公司 一种音频编码方法和装置
KR101591597B1 (ko) * 2014-07-02 2016-02-19 한양대학교 산학협력단 G.722 코덱 패킷손실은닉 및 최급강하법을 이용한 적응형 뮤팅 시스템 및 방법
ES2837107T3 (es) * 2015-02-26 2021-06-29 Fraunhofer Ges Forschung Aparato y método para procesar una señal de audio para obtener una señal de audio procesada usando una envolvente en el dominio del tiempo objetivo
WO2016142002A1 (en) 2015-03-09 2016-09-15 Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E.V. Audio encoder, audio decoder, method for encoding an audio signal and method for decoding an encoded audio signal
US9837089B2 (en) * 2015-06-18 2017-12-05 Qualcomm Incorporated High-band signal generation
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
US9613628B2 (en) * 2015-07-01 2017-04-04 Gopro, Inc. Audio decoder for wind and microphone noise reduction in a microphone array system
EP3182411A1 (en) * 2015-12-14 2017-06-21 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Apparatus and method for processing an encoded audio signal
EP3242295B1 (en) * 2016-05-06 2019-10-23 Nxp B.V. A signal processor
TWI594231B (zh) * 2016-12-23 2017-08-01 瑞軒科技股份有限公司 分頻壓縮電路,音訊處理方法以及音訊處理系統
CN106856623B (zh) * 2017-02-20 2020-02-11 鲁睿 基带语音信号通讯噪声抑制方法及系统
US10553222B2 (en) 2017-03-09 2020-02-04 Qualcomm Incorporated Inter-channel bandwidth extension spectral mapping and adjustment
US10200727B2 (en) 2017-03-29 2019-02-05 International Business Machines Corporation Video encoding and transcoding for multiple simultaneous qualities of service
US10825467B2 (en) * 2017-04-21 2020-11-03 Qualcomm Incorporated Non-harmonic speech detection and bandwidth extension in a multi-source environment
US20190051286A1 (en) * 2017-08-14 2019-02-14 Microsoft Technology Licensing, Llc Normalization of high band signals in network telephony communications
WO2019197349A1 (en) * 2018-04-11 2019-10-17 Dolby International Ab Methods, apparatus and systems for a pre-rendered signal for audio rendering
US10847172B2 (en) * 2018-12-17 2020-11-24 Microsoft Technology Licensing, Llc Phase quantization in a speech encoder
US10957331B2 (en) 2018-12-17 2021-03-23 Microsoft Technology Licensing, Llc Phase reconstruction in a speech decoder
AU2021357364B2 (en) * 2020-10-09 2024-06-27 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Apparatus, method, or computer program for processing an encoded audio scene using a parameter smoothing
BR112023006291A2 (pt) * 2020-10-09 2023-05-09 Fraunhofer Ges Forschung Dispositivo, método ou programa de computador para processar uma cena de áudio codificada usando uma conversão de parâmetro
CN114935698B (zh) * 2022-04-07 2025-03-18 苏州恩巨网络有限公司 背景噪声的识别方法、装置、电子设备和存储介质
NO348059B1 (en) * 2022-07-01 2024-07-08 Pexip AS Method and audio processing device for voice anonymization

Family Cites Families (131)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3158693A (en) 1962-08-07 1964-11-24 Bell Telephone Labor Inc Speech interpolation communication system
US3855416A (en) 1972-12-01 1974-12-17 F Fuller Method and apparatus for phonation analysis leading to valid truth/lie decisions by fundamental speech-energy weighted vibratto component assessment
US3855414A (en) 1973-04-24 1974-12-17 Anaconda Co Cable armor clamp
JPS59139099A (ja) 1983-01-31 1984-08-09 株式会社東芝 音声区間検出装置
US4616659A (en) 1985-05-06 1986-10-14 At&T Bell Laboratories Heart rate detection utilizing autoregressive analysis
US4630305A (en) 1985-07-01 1986-12-16 Motorola, Inc. Automatic gain selector for a noise suppression system
US4747143A (en) 1985-07-12 1988-05-24 Westinghouse Electric Corp. Speech enhancement system having dynamic gain control
US4862168A (en) 1987-03-19 1989-08-29 Beard Terry D Audio digital/analog encoding and decoding
US4805193A (en) 1987-06-04 1989-02-14 Motorola, Inc. Protection of energy information in sub-band coding
US4852179A (en) 1987-10-05 1989-07-25 Motorola, Inc. Variable frame rate, fixed bit rate vocoding method
JP2707564B2 (ja) 1987-12-14 1998-01-28 株式会社日立製作所 音声符号化方式
US5285520A (en) 1988-03-02 1994-02-08 Kokusai Denshin Denwa Kabushiki Kaisha Predictive coding apparatus
JPH0639229B2 (ja) * 1988-08-29 1994-05-25 株式会社大井製作所 パワーシートスライド装置
US5077798A (en) 1988-09-28 1991-12-31 Hitachi, Ltd. Method and system for voice coding based on vector quantization
US5086475A (en) 1988-11-19 1992-02-04 Sony Corporation Apparatus for generating, recording or reproducing sound source data
EP0500913B1 (en) 1990-09-19 1998-01-21 Koninklijke Philips Electronics N.V. System comprising a record carrier and a reading device
JP2779886B2 (ja) 1992-10-05 1998-07-23 日本電信電話株式会社 広帯域音声信号復元方法
JP3191457B2 (ja) 1992-10-31 2001-07-23 ソニー株式会社 高能率符号化装置、ノイズスペクトル変更装置及び方法
US5455888A (en) * 1992-12-04 1995-10-03 Northern Telecom Limited Speech bandwidth extension method and apparatus
DE69428030T2 (de) 1993-06-30 2002-05-29 Sony Corp., Tokio/Tokyo Digitales signalkodierungsgerät, dazugehöriges dekodiergerät und aufzeichnungsträger
WO1995010760A2 (en) 1993-10-08 1995-04-20 Comsat Corporation Improved low bit rate vocoders and methods of operation therefor
US5684920A (en) 1994-03-17 1997-11-04 Nippon Telegraph And Telephone Acoustic signal transform coding method and decoding method having a high efficiency envelope flattening method therein
US5487087A (en) 1994-05-17 1996-01-23 Texas Instruments Incorporated Signal quantizer with reduced output fluctuation
US5797118A (en) 1994-08-09 1998-08-18 Yamaha Corporation Learning vector quantization and a temporary memory such that the codebook contents are renewed when a first speaker returns
JP2770137B2 (ja) 1994-09-22 1998-06-25 日本プレシジョン・サーキッツ株式会社 波形データ圧縮装置
US5699477A (en) 1994-11-09 1997-12-16 Texas Instruments Incorporated Mixed excitation linear prediction with fractional pitch
FI97182C (fi) 1994-12-05 1996-10-25 Nokia Telecommunications Oy Menetelmä vastaanotettujen huonojen puhekehysten korvaamiseksi digitaalisessa vastaanottimessa sekä digitaalisen tietoliikennejärjestelmän vastaanotin
JP3365113B2 (ja) 1994-12-22 2003-01-08 ソニー株式会社 音声レベル制御装置
EP0732687B2 (en) * 1995-03-13 2005-10-12 Matsushita Electric Industrial Co., Ltd. Apparatus for expanding speech bandwidth
US6263307B1 (en) 1995-04-19 2001-07-17 Texas Instruments Incorporated Adaptive weiner filtering using line spectral frequencies
US5706395A (en) 1995-04-19 1998-01-06 Texas Instruments Incorporated Adaptive weiner filtering using a dynamic suppression factor
JP3334419B2 (ja) 1995-04-20 2002-10-15 ソニー株式会社 ノイズ低減方法及びノイズ低減装置
US5699485A (en) 1995-06-07 1997-12-16 Lucent Technologies Inc. Pitch delay modification during frame erasures
US5704003A (en) 1995-09-19 1997-12-30 Lucent Technologies Inc. RCELP coder
US6097824A (en) 1997-06-06 2000-08-01 Audiologic, Incorporated Continuous frequency dynamic range audio compressor
JP3707116B2 (ja) 1995-10-26 2005-10-19 ソニー株式会社 音声復号化方法及び装置
US5737716A (en) 1995-12-26 1998-04-07 Motorola Method and apparatus for encoding speech using neural network technology for speech classification
US5689615A (en) 1996-01-22 1997-11-18 Rockwell International Corporation Usage of voice activity detection for efficient coding of speech
TW307960B (en) 1996-02-15 1997-06-11 Philips Electronics Nv Reduced complexity signal transmission system
EP0814458B1 (en) 1996-06-19 2004-09-22 Texas Instruments Incorporated Improvements in or relating to speech coding
JP3246715B2 (ja) 1996-07-01 2002-01-15 松下電器産業株式会社 オーディオ信号圧縮方法,およびオーディオ信号圧縮装置
DE69713633T2 (de) 1996-11-07 2002-10-31 Matsushita Electric Industrial Co., Ltd. Verfahren zur Erzeugung eines Vektorquantisierungs-Codebuchs
US6009395A (en) 1997-01-02 1999-12-28 Texas Instruments Incorporated Synthesizer and method using scaled excitation signal
US6202046B1 (en) 1997-01-23 2001-03-13 Kabushiki Kaisha Toshiba Background noise/speech classification method
US6041297A (en) 1997-03-10 2000-03-21 At&T Corp Vocoder for coding speech by using a correlation between spectral magnitudes and candidate excitations
US5890126A (en) 1997-03-10 1999-03-30 Euphonics, Incorporated Audio data decompression and interpolation apparatus and method
US6385235B1 (en) 1997-04-22 2002-05-07 Silicon Laboratories, Inc. Direct digital access arrangement circuitry and method for connecting to phone lines
EP0878790A1 (en) 1997-05-15 1998-11-18 Hewlett-Packard Company Voice coding system and method
SE512719C2 (sv) 1997-06-10 2000-05-02 Lars Gustaf Liljeryd En metod och anordning för reduktion av dataflöde baserad på harmonisk bandbreddsexpansion
US6889185B1 (en) 1997-08-28 2005-05-03 Texas Instruments Incorporated Quantization of linear prediction coefficients using perceptual weighting
US6122384A (en) 1997-09-02 2000-09-19 Qualcomm Inc. Noise suppression system and method
US6029125A (en) 1997-09-02 2000-02-22 Telefonaktiebolaget L M Ericsson, (Publ) Reducing sparseness in coded speech signals
AU4661497A (en) 1997-09-30 1999-03-22 Qualcomm Incorporated Channel gain modification system and method for noise reduction in voice communication
JPH11205166A (ja) 1998-01-19 1999-07-30 Mitsubishi Electric Corp ノイズ検出装置
US6301556B1 (en) 1998-03-04 2001-10-09 Telefonaktiebolaget L M. Ericsson (Publ) Reducing sparseness in coded speech signals
WO1999065017A1 (en) * 1998-06-09 1999-12-16 Matsushita Electric Industrial Co., Ltd. Speech coding apparatus and speech decoding apparatus
US6385573B1 (en) 1998-08-24 2002-05-07 Conexant Systems, Inc. Adaptive tilt compensation for synthesized speech residual
US6449590B1 (en) 1998-08-24 2002-09-10 Conexant Systems, Inc. Speech encoder using warping in long term preprocessing
JP4170458B2 (ja) 1998-08-27 2008-10-22 ローランド株式会社 波形信号の時間軸圧縮伸長装置
US6353808B1 (en) 1998-10-22 2002-03-05 Sony Corporation Apparatus and method for encoding a signal as well as apparatus and method for decoding a signal
KR20000047944A (ko) 1998-12-11 2000-07-25 이데이 노부유끼 수신장치 및 방법과 통신장치 및 방법
JP4354561B2 (ja) 1999-01-08 2009-10-28 パナソニック株式会社 オーディオ信号符号化装置及び復号化装置
US6223151B1 (en) 1999-02-10 2001-04-24 Telefon Aktie Bolaget Lm Ericsson Method and apparatus for pre-processing speech signals prior to coding by transform-based speech coders
WO2000070769A1 (fr) 1999-05-14 2000-11-23 Matsushita Electric Industrial Co., Ltd. Procede et appareil d'elargissement de la bande d'un signal audio
US6604070B1 (en) 1999-09-22 2003-08-05 Conexant Systems, Inc. System of encoding and decoding speech signals
JP4792613B2 (ja) 1999-09-29 2011-10-12 ソニー株式会社 情報処理装置および方法、並びに記録媒体
US6715125B1 (en) 1999-10-18 2004-03-30 Agere Systems Inc. Source coding and transmission with time diversity
KR100675309B1 (ko) 1999-11-16 2007-01-29 코닌클리케 필립스 일렉트로닉스 엔.브이. 광대역 오디오 송신 시스템, 송신기, 수신기, 코딩 디바이스, 디코딩 디바이스와, 송신 시스템에서 사용하기 위한 코딩 방법 및 디코딩 방법
CA2290037A1 (en) 1999-11-18 2001-05-18 Voiceage Corporation Gain-smoothing amplifier device and method in codecs for wideband speech and audio signals
US7260523B2 (en) 1999-12-21 2007-08-21 Texas Instruments Incorporated Sub-band speech coding system
WO2001052241A1 (en) 2000-01-11 2001-07-19 Matsushita Electric Industrial Co., Ltd. Multi-mode voice encoding device and decoding device
US6757395B1 (en) 2000-01-12 2004-06-29 Sonic Innovations, Inc. Noise reduction apparatus and method
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
JP3681105B2 (ja) 2000-02-24 2005-08-10 アルパイン株式会社 データ処理方式
US6523003B1 (en) * 2000-03-28 2003-02-18 Tellabs Operations, Inc. Spectrally interdependent gain adjustment techniques
US6757654B1 (en) 2000-05-11 2004-06-29 Telefonaktiebolaget Lm Ericsson Forward error correction in speech coding
US7330814B2 (en) 2000-05-22 2008-02-12 Texas Instruments Incorporated Wideband speech coding with modulated noise highband excitation system and method
US7136810B2 (en) 2000-05-22 2006-11-14 Texas Instruments Incorporated Wideband speech coding system and method
EP1158495B1 (en) 2000-05-22 2004-04-28 Texas Instruments Incorporated Wideband speech coding system and method
JP2002055699A (ja) 2000-08-10 2002-02-20 Mitsubishi Electric Corp 音声符号化装置および音声符号化方法
AU2001282098A1 (en) 2000-08-25 2002-03-04 Koninklijke Philips Electronics N.V. Method and apparatus for reducing the word length of a digital input signal and method and apparatus for recovering the digital input signal
US7386444B2 (en) 2000-09-22 2008-06-10 Texas Instruments Incorporated Hybrid speech coding and system
US6947888B1 (en) 2000-10-17 2005-09-20 Qualcomm Incorporated Method and apparatus for high performance low bit-rate coding of unvoiced speech
JP2002202799A (ja) 2000-10-30 2002-07-19 Fujitsu Ltd 音声符号変換装置
JP3558031B2 (ja) 2000-11-06 2004-08-25 日本電気株式会社 音声復号化装置
US7346499B2 (en) 2000-11-09 2008-03-18 Koninklijke Philips Electronics N.V. Wideband extension of telephone speech for higher perceptual quality
SE0004163D0 (sv) 2000-11-14 2000-11-14 Coding Technologies Sweden Ab Enhancing perceptual performance of high frequency reconstruction coding methods by adaptive filtering
SE0004187D0 (sv) 2000-11-15 2000-11-15 Coding Technologies Sweden Ab Enhancing the performance of coding systems that use high frequency reconstruction methods
US7230931B2 (en) 2001-01-19 2007-06-12 Raze Technologies, Inc. Wireless access system using selectively adaptable beam forming in TDD frames and method of operation
AU2002218501A1 (en) 2000-11-30 2002-06-11 Matsushita Electric Industrial Co., Ltd. Vector quantizing device for lpc parameters
GB0031461D0 (en) 2000-12-22 2001-02-07 Thales Defence Ltd Communication sets
US20040204935A1 (en) 2001-02-21 2004-10-14 Krishnasamy Anandakumar Adaptive voice playout in VOP
JP2002268698A (ja) 2001-03-08 2002-09-20 Nec Corp 音声認識装置と標準パターン作成装置及び方法並びにプログラム
US20030028386A1 (en) 2001-04-02 2003-02-06 Zinser Richard L. Compressed domain universal transcoder
SE522553C2 (sv) 2001-04-23 2004-02-17 Ericsson Telefon Ab L M Bandbreddsutsträckning av akustiska signaler
DE50104998D1 (de) 2001-05-11 2005-02-03 Siemens Ag Verfahren zur erweiterung der bandbreite eines schmalbandig gefilterten sprachsignals, insbesondere eines von einem telekommunikationsgerät gesendeten sprachsignals
WO2003003350A1 (en) 2001-06-28 2003-01-09 Koninklijke Philips Electronics N.V. Wideband signal transmission system
US6879955B2 (en) 2001-06-29 2005-04-12 Microsoft Corporation Signal modification based on continuous time warping for low bit rate CELP coding
SE0202159D0 (sv) * 2001-07-10 2002-07-09 Coding Technologies Sweden Ab Efficientand scalable parametric stereo coding for low bitrate applications
JP2003036097A (ja) 2001-07-25 2003-02-07 Sony Corp 情報検出装置及び方法、並びに情報検索装置及び方法
TW525147B (en) 2001-09-28 2003-03-21 Inventec Besta Co Ltd Method of obtaining and decoding basic cycle of voice
US6895375B2 (en) * 2001-10-04 2005-05-17 At&T Corp. System for bandwidth extension of Narrow-band speech
US6988066B2 (en) 2001-10-04 2006-01-17 At&T Corp. Method of bandwidth extension for narrow-band speech
TW526468B (en) 2001-10-19 2003-04-01 Chunghwa Telecom Co Ltd System and method for eliminating background noise of voice signal
JP4245288B2 (ja) 2001-11-13 2009-03-25 パナソニック株式会社 音声符号化装置および音声復号化装置
US20030108108A1 (en) * 2001-11-15 2003-06-12 Takashi Katayama Decoder, decoding method, and program distribution medium therefor
JP2005509928A (ja) 2001-11-23 2005-04-14 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ オーディオ信号帯域幅拡張
CA2365203A1 (en) 2001-12-14 2003-06-14 Voiceage Corporation A signal modification method for efficient coding of speech signals
US6751587B2 (en) 2002-01-04 2004-06-15 Broadcom Corporation Efficient excitation quantization in noise feedback coding with general noise shaping
JP4290917B2 (ja) 2002-02-08 2009-07-08 株式会社エヌ・ティ・ティ・ドコモ 復号装置、符号化装置、復号方法、及び、符号化方法
JP3826813B2 (ja) 2002-02-18 2006-09-27 ソニー株式会社 ディジタル信号処理装置及びディジタル信号処理方法
ATE318405T1 (de) * 2002-09-19 2006-03-15 Matsushita Electric Ind Co Ltd Audiodecodierungsvorrichtung und -verfahren
JP3756864B2 (ja) 2002-09-30 2006-03-15 株式会社東芝 音声合成方法と装置及び音声合成プログラム
KR100841096B1 (ko) 2002-10-14 2008-06-25 리얼네트웍스아시아퍼시픽 주식회사 음성 코덱에 대한 디지털 오디오 신호의 전처리 방법
US20040098255A1 (en) 2002-11-14 2004-05-20 France Telecom Generalized analysis-by-synthesis speech coding method, and coder implementing such method
US7242763B2 (en) 2002-11-26 2007-07-10 Lucent Technologies Inc. Systems and methods for far-end noise reduction and near-end noise compensation in a mixed time-frequency domain compander to improve signal quality in communications systems
CA2415105A1 (en) 2002-12-24 2004-06-24 Voiceage Corporation A method and device for robust predictive vector quantization of linear prediction parameters in variable bit rate speech coding
KR100480341B1 (ko) 2003-03-13 2005-03-31 한국전자통신연구원 광대역 저전송률 음성 신호의 부호화기
WO2004097797A1 (en) 2003-05-01 2004-11-11 Nokia Corporation Method and device for gain quantization in variable bit rate wideband speech coding
JP4212591B2 (ja) 2003-06-30 2009-01-21 富士通株式会社 オーディオ符号化装置
US20050004793A1 (en) * 2003-07-03 2005-01-06 Pasi Ojala Signal adaptation for higher band coding in a codec utilizing band split coding
FI118550B (fi) 2003-07-14 2007-12-14 Nokia Corp Parannettu eksitaatio ylemmän kaistan koodaukselle koodekissa, joka käyttää kaistojen jakoon perustuvia koodausmenetelmiä
US7428490B2 (en) 2003-09-30 2008-09-23 Intel Corporation Method for spectral subtraction in speech enhancement
KR100587953B1 (ko) 2003-12-26 2006-06-08 한국전자통신연구원 대역-분할 광대역 음성 코덱에서의 고대역 오류 은닉 장치 및 그를 이용한 비트스트림 복호화 시스템
CA2454296A1 (en) 2003-12-29 2005-06-29 Nokia Corporation Method and device for speech enhancement in the presence of background noise
JP4259401B2 (ja) 2004-06-02 2009-04-30 カシオ計算機株式会社 音声処理装置及び音声符号化方法
US8000967B2 (en) 2005-03-09 2011-08-16 Telefonaktiebolaget Lm Ericsson (Publ) Low-complexity code excited linear prediction encoding
US8155965B2 (en) 2005-03-11 2012-04-10 Qualcomm Incorporated Time warping frames inside the vocoder by modifying the residual
SG163556A1 (en) 2005-04-01 2010-08-30 Qualcomm Inc Systems, methods, and apparatus for wideband speech coding
PT1875463T (pt) 2005-04-22 2019-01-24 Qualcomm Inc Sistemas, métodos e aparelho para nivelamento de fator de ganho

Also Published As

Publication number Publication date
CN101199003A (zh) 2008-06-11
TWI317933B (en) 2009-12-01
DK1875463T3 (en) 2019-01-28
US20060282262A1 (en) 2006-12-14
TR201821299T4 (tr) 2019-01-21
WO2006116025A1 (en) 2006-11-02
EP1875464A2 (en) 2008-01-09
CN101199004B (zh) 2011-11-09
EP1875464B1 (en) 2012-12-05
WO2006116024A2 (en) 2006-11-02
EP1875464B9 (en) 2020-10-28
TW200707410A (en) 2007-02-16
PT1875463T (pt) 2019-01-24
PL1875463T3 (pl) 2019-03-29
EP1875463B1 (en) 2018-10-17
US20060277039A1 (en) 2006-12-07
KR100956878B1 (ko) 2010-05-11
EP1875463A1 (en) 2008-01-09
WO2006116024A3 (en) 2007-03-22
KR20080002996A (ko) 2008-01-04
CN101199004A (zh) 2008-06-11
NO20075509L (no) 2007-12-27
TWI324336B (en) 2010-05-01
CN102110440B (zh) 2012-09-26
US9043214B2 (en) 2015-05-26
HUE040628T2 (hu) 2019-03-28
US8892448B2 (en) 2014-11-18
KR100947421B1 (ko) 2010-03-12
TW200710824A (en) 2007-03-16
CN102110440A (zh) 2011-06-29
KR20080003912A (ko) 2008-01-08
CN101199003B (zh) 2012-01-11
SI1875463T1 (sl) 2019-02-28

Similar Documents

Publication Publication Date Title
ES2705589T3 (es) Sistemas, procedimientos y aparatos para el suavizado del factor de ganancia
JP5161069B2 (ja) 広帯域音声符号化のためのシステム、方法、及び装置
ES2350494T3 (es) Procedimiento y aparatos para codificar y decodificar una parte de banda alta de una señal de habla.
RU2420817C2 (ru) Системы, способы и устройство для ограничения коэффициента усиления