ES2663013T3 - Sistemas y procedimientos para determinar un conjunto de factores de interpolación - Google Patents
Sistemas y procedimientos para determinar un conjunto de factores de interpolación Download PDFInfo
- Publication number
- ES2663013T3 ES2663013T3 ES13770729.5T ES13770729T ES2663013T3 ES 2663013 T3 ES2663013 T3 ES 2663013T3 ES 13770729 T ES13770729 T ES 13770729T ES 2663013 T3 ES2663013 T3 ES 2663013T3
- Authority
- ES
- Spain
- Prior art keywords
- interpolation
- frame
- current frame
- previous frame
- lsf
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 88
- 239000013598 vector Substances 0.000 claims abstract description 229
- 230000003595 spectral effect Effects 0.000 claims abstract description 60
- 230000005236 sound signal Effects 0.000 claims abstract description 12
- 230000002194 synthesizing effect Effects 0.000 claims abstract description 4
- 230000015572 biosynthetic process Effects 0.000 claims description 67
- 238000003786 synthesis reaction Methods 0.000 claims description 67
- 238000011002 quantification Methods 0.000 claims description 36
- 230000004044 response Effects 0.000 claims description 33
- 230000008569 process Effects 0.000 claims description 14
- 238000004590 computer program Methods 0.000 claims description 4
- 230000001052 transient effect Effects 0.000 claims description 2
- 238000013139 quantization Methods 0.000 abstract description 10
- 230000005284 excitation Effects 0.000 description 75
- 238000004458 analytical method Methods 0.000 description 30
- 230000003044 adaptive effect Effects 0.000 description 25
- 238000004891 communication Methods 0.000 description 23
- 238000010586 diagram Methods 0.000 description 23
- 238000013459 approach Methods 0.000 description 20
- 230000006870 function Effects 0.000 description 15
- 230000005540 biological transmission Effects 0.000 description 11
- 238000005516 engineering process Methods 0.000 description 8
- 230000003287 optical effect Effects 0.000 description 7
- 230000007774 longterm Effects 0.000 description 6
- 206010011878 Deafness Diseases 0.000 description 5
- 230000009471 action Effects 0.000 description 5
- 230000009286 beneficial effect Effects 0.000 description 5
- 238000009432 framing Methods 0.000 description 5
- 238000007781 pre-processing Methods 0.000 description 5
- 230000008859 change Effects 0.000 description 4
- 230000008901 benefit Effects 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 3
- 230000006835 compression Effects 0.000 description 3
- 238000007906 compression Methods 0.000 description 3
- 125000004122 cyclic group Chemical group 0.000 description 3
- 238000013213 extrapolation Methods 0.000 description 3
- 230000002441 reversible effect Effects 0.000 description 3
- 239000007844 bleaching agent Substances 0.000 description 2
- 238000012937 correction Methods 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 239000000835 fiber Substances 0.000 description 2
- 239000004973 liquid crystal related substance Substances 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 238000005070 sampling Methods 0.000 description 2
- 230000011664 signaling Effects 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 230000006978 adaptation Effects 0.000 description 1
- 230000002411 adverse Effects 0.000 description 1
- 238000005311 autocorrelation function Methods 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005401 electroluminescence Methods 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 238000003384 imaging method Methods 0.000 description 1
- 230000001771 impaired effect Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000011835 investigation Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000008447 perception Effects 0.000 description 1
- 230000000737 periodic effect Effects 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
- 239000011800 void material Substances 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Classifications
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L19/00—Speech 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/005—Correction of errors induced by the transmission channel, if related to the coding algorithm
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L19/00—Speech 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/04—Speech 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/06—Determination or coding of the spectral characteristics, e.g. of the short-term prediction coefficients
- G10L19/07—Line spectrum pair [LSP] vocoders
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Human Computer Interaction (AREA)
- Computational Linguistics (AREA)
- Acoustics & Sound (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Spectroscopy & Molecular Physics (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
- Complex Calculations (AREA)
- Television Systems (AREA)
Abstract
Un procedimiento (800) para determinar un conjunto de factores de interpolación mediante un dispositivo electrónico, comprendiendo el procedimiento: determinar, para tramas de una señal de audio, una energía de trama actual y una energía de trama anterior; determinar (806), si la relación (933) de la energía de trama actual y la energía de trama anterior está fuera de un rango, un conjunto de factores de interpolación (769, 1069, 1197a-d) basado en la relación (933) de 10 la energía de trama actual y la energía de trama anterior y un indicador de modo de predicción (1031); interpolar los vectores de frecuencia espectral de la línea de subtrama, LSF, (747) basándose en el conjunto de factores de interpolación para producir vectores LSF interpolados (751); y sintetizar (808) una señal de voz basada en los vectores LSF interpolados (751), en el que el indicador de modo de predicción es indicativo de si se utiliza una cuantificación predictiva o no predictiva para una trama.
Description
5
10
15
20
25
30
35
40
45
50
55
60
65
DESCRIPCION
Sistemas y procedimientos para determinar un conjunto de factores de interpolación CAMPO TÉCNICO
[1] La presente divulgación se refiere en general a dispositivos electrónicos. Más específicamente, la presente divulgación se refiere a sistemas y procedimientos para determinar un conjunto de factores de interpolación.
ANTECEDENTES
[2] En las últimas décadas, el uso de dispositivos electrónicos se ha vuelto común. En particular, los avances en la tecnología electrónica han reducido el coste de dispositivos electrónicos cada vez más complejos y útiles. La reducción del coste y la demanda de consumo han proliferado el uso de dispositivos electrónicos de tal forma que están prácticamente omnipresentes en la sociedad moderna. El uso de dispositivos electrónicos se ha expandido, por lo que ha aumentado la demanda de nuevas y mejoradas características de los dispositivos electrónicos. Más específicamente, se demandan con frecuencia dispositivos electrónicos que realicen nuevas funciones y/o que realicen funciones más rápido, más eficientemente o con mayor calidad.
[3] Algunos dispositivos electrónicos (por ejemplo, teléfonos celulares, teléfonos inteligentes, grabadoras de audio, videocámaras, ordenadores, etc.) utilizan señales de audio. Estos dispositivos electrónicos pueden codificar, almacenar y/o transmitir las señales de audio. Por ejemplo, un teléfono inteligente puede obtener, codificar y transmitir una señal de voz para una llamada telefónica, mientras que otro teléfono inteligente puede recibir y descodificar la señal de voz.
[4] Sin embargo, surgen desafíos particulares en la codificación, transmisión y descodificación de señales de audio. Por ejemplo, una señal de audio puede estar codificada para reducir la cantidad de ancho de banda requerida para transmitir la señal de audio. Cuando se pierde una parte de la señal de audio en la transmisión, puede ser difícil presentar una señal de audio descodificada con precisión. Como puede observarse a partir de este análisis, pueden ser beneficiosos los sistemas y procedimientos que mejoren la descodificación
[5] En el documento US 6 574 593 B1, se divulga un sistema de compresión de voz capaz de codificar una señal de voz en un flujo de bits para una descodificación posterior para generar voz sintetizada. El sistema de compresión de voz optimiza el ancho de banda consumido por el flujo de bits al equilibrar la velocidad de transmisión de bits media deseada con la calidad de percepción de la voz reconstruida. El sistema de compresión de voz comprende un códec de velocidad máxima, un códec de mitad de velocidad, un códec de un cuarto de velocidad y un códec de un octavo de velocidad. Los códecs se activan selectivamente basándose en una selección de velocidad. Además, los códecs de velocidad máxima y mitad de velocidad se activan selectivamente basándose de una clasificación de tipo. Cada códec se activa selectivamente para codificar y descodificar las señales de voz a diferentes velocidades de transmisión de bits enfatizando diferentes aspectos de la señal de voz para mejorar la calidad general de la voz sintetizada.
SUMARIO
[6] Se describe un procedimiento para determinar un conjunto de factores de interpolación mediante un dispositivo electrónico. El procedimiento incluye una energía de trama actual y una energía de trama anterior. El procedimiento incluye además determinar si la relación entre la energía de trama actual y la energía de trama anterior está fuera de un rango, un conjunto de factores de interpolación basado en la relación entre la energía de trama actual y la energía de trama anterior está fuera de un rango y un indicador de modo de predicción El procedimiento incluye además interpolar vectores de frecuencia espectral de línea (LSF) de subtrama basados en el conjunto de factores de interpolación para producir vectores LSF interpolados y sintetizar una señal de voz basada en los vectores LSF interpolados. El indicador de modo de predicción es indicativo de si se utiliza la cuantificación predictiva o no predictiva para una trama.
[7] La determinación del conjunto de factores de interpolación puede basarse en el grado en que la relación entre la energía de trama actual y la energía de trama anterior está fuera del rango. El grado en el que la relación entre la energía de trama actual y la energía de trama anterior está fuera del rango se puede determinar basándose en uno o más umbrales fuera del rango.
[8] El indicador de modo de predicción puede indicar uno de los dos modos de predicción. El indicador de modo de predicción puede indicar uno de tres o más modos de predicción.
[9] La energía de trama actual y la energía de trama anterior pueden basarse, respectivamente, en una energía de respuesta de impulso de filtro de síntesis de trama actual y una energía de respuesta de impulso de filtro de síntesis de trama anterior. La relación entre la energía de trama actual y la energía de trama anterior se puede determinar que está fuera del rango cuando la relación es menor que un umbral.
5
10
15
20
25
30
35
40
45
50
55
60
65
[10] La interpolación de los vectores LSF de subtrama basados en el conjunto de factores de interpolación puede incluir multiplicar un vector LSF de extremo de trama actual por un primer factor de interpolación, multiplicar un vector LSF de extremo de trama anterior por un segundo factor de interpolación y multiplicar un vector lSf de mitad de trama actual por un factor de diferencia.
[11] El conjunto de factores de interpolación puede incluir dos o más factores de interpolación.
[12] El procedimiento puede incluir la utilización de un conjunto de factores de interpolación por defecto si el valor no está fuera del rango.
[13] El indicador de modo de predicción puede indicar un modo de predicción de trama actual. El indicador de modo de predicción puede indicar un modo de predicción de trama anterior.
[14] También se describe un producto de programa informático para determinar un conjunto de factores de interpolación. El producto de programa informático incluye un medio legible por ordenador tangible no transitorio con instrucciones. Las instrucciones incluyen un código para hacer que un dispositivo electrónico lleve a cabo uno de los procedimientos descritos anteriormente.
[15] También se describe un aparato para determinar un conjunto de factores de interpolación. El aparato incluye medios para determinar una energía de trama actual y una energía de trama anterior. El aparato incluye además medios para determinar, si la relación de energía de trama actual y energía de trama anterior está fuera de un rango, un conjunto de factores de interpolación basado en la relación de energía de trama actual y energía de trama anterior y un indicador de modo de predicción. El aparato incluye además medios para interpolar vectores de frecuencia espectral de línea de subtrama (LSF) basados en el conjunto de factores de interpolación para producir vectores LSF interpolados y medios para sintetizar una señal de voz basada en los vectores LSF interpolados. El indicador de modo de predicción es indicativo de si se utiliza la cuantificación predictiva o no predictiva para una trama.
BREVE DESCRIPCIÓN DE LOS DIBUJOS
[16]
La figura 1 es un diagrama de bloques que ilustra un ejemplo general de un codificador y un descodificador;
La figura 2 es un diagrama de bloques que ilustra un ejemplo de una implementación básica de un codificador y un descodificador;
La figura 3 es un diagrama de bloques que ilustra un ejemplo de un codificador de voz de banda ancha y un descodificador de voz de banda ancha;
La figura 4 es un diagrama de bloques que ilustra un ejemplo más específico de un codificador;
La figura 5 es un diagrama que ilustra un ejemplo de tramas en el tiempo;
La figura 6 es un diagrama de flujo que ilustra una configuración de un procedimiento para codificar una señal de voz mediante un codificador;
La figura 7 es un diagrama de bloques que ilustra una configuración de un dispositivo electrónico configurado para determinar un conjunto de factores de interpolación;
La figura 8 es un diagrama de flujo que ilustra una configuración de un procedimiento para determinar un conjunto de factores de interpolación mediante un dispositivo electrónico;
La figura 9 es un diagrama de bloques que ilustra ejemplos de módulos de determinación de valores;
La figura 10 es un diagrama de bloques que ilustra un ejemplo de un módulo de determinación de conjunto de factores de interpolación;
La figura 11 es un diagrama que ilustra un ejemplo de determinación de un conjunto de factores de interpolación;
La figura 12 es un diagrama que ilustra otro ejemplo de determinación de un conjunto de factores de interpolación;
La figura 13 incluye gráficos de ejemplos de formas de onda de voz sintetizadas;
5
10
15
20
25
30
35
40
45
50
55
60
65
La figura 14 incluye gráficos de ejemplos adicionales de formas de onda de voz sintetizadas;
La figura 15 es un diagrama de bloques que ilustra una configuración de un dispositivo de comunicación inalámbrica en el que pueden implementarse sistemas y procedimientos para determinar un conjunto de factores de interpolación; y
La figura 16 ilustra diversos componentes que pueden utilizarse en un dispositivo electrónico.
DESCRIPCIÓN DETALLADA
[17] Ahora se describen diversas configuraciones con referencia a las figuras, donde los números de referencia similares pueden indicar elementos funcionalmente similares. Los sistemas y procedimientos que se describen y se ilustran en general en las figuras en el presente documento pueden disponerse y diseñarse en una amplia diversidad de configuraciones diferentes. Por lo tanto, la siguiente descripción más detallada de varias configuraciones, como se representa en las figuras, no pretende limitar el alcance, como se reivindica, sino que es simplemente representativa de los sistemas y procedimientos.
[18] La figura 1 es un diagrama de bloques que ilustra un ejemplo general de un codificador 104 y un descodificador 108. El codificador 104 recibe una señal de voz 102. La señal de voz 102 puede ser una señal de voz en cualquier rango de frecuencias. Por ejemplo, la señal de voz 102 puede muestrearse a 16 kilobits por segundo (kbps) y puede ser una señal de banda ancha con un rango de frecuencias aproximado de 0-16 kilohercios (kHz) o 0-14 kHz, una señal de banda ancha con un rango de frecuencias aproximado de 0-8 kHz o una señal de banda estrecha con un rango de frecuencias aproximado de 0-4 kHz. En otros ejemplos, la señal de voz 102 puede ser una señal de banda baja con un rango de frecuencias aproximado de 50-300 hercios (Hz) o una señal de banda alta con un rango de frecuencias aproximado de 4-8 kHz. Otros posibles rangos de frecuencia para la señal de voz 102 incluyen 300-3400 Hz (por ejemplo, el rango de frecuencias de la red telefónica pública conmutada (PSTN)), 14-20 kHz, 16-20 kHz y 16-32 kHz.
[19] El codificador 104 codifica la señal de voz 102 para producir una señal de voz codificada 106. En general, la señal de voz codificada 106 incluye uno o más parámetros que representan la señal de voz 102. Uno o más de los parámetros pueden ser cuantificados. Entre los ejemplos de uno o más parámetros se incluyen parámetros de filtro (por ejemplo, factores de ponderación, frecuencias espectrales de línea (LSF), indicadores de modo de predicción, pares espectrales de línea (LSP), frecuencias espectrales de inmitancia (ISF), pares espectrales de inmitancia (ISP), coeficientes de correlación parcial (PARCOR), coeficientes de reflexión y/o valores de relación de área logarítmica, etc.) y parámetros incluidos en una señal de excitación codificada (por ejemplo, factores de ganancia, índices de libro de códigos adaptativos, ganancias de libro de códigos adaptativas, índices de libro de códigos fijos y/o ganancias de libro de códigos fijas, etc.). Los parámetros pueden corresponder a una o más bandas de frecuencias. El descodificador 108 descodifica la señal de voz codificada 106 para producir una señal de voz descodificada 110. Por ejemplo, el descodificador 108 construye la señal de voz descodificada 110 basándose en el uno o más parámetros incluidos en la señal de voz codificada 106. La señal de voz descodificada 110 puede ser una reproducción aproximada de la señal de voz original 102.
[20] El codificador 104 puede implementarse en hardware (por ejemplo circuitería), software, o una combinación de ambos. Por ejemplo, el codificador 104 puede implementarse como un circuito integrado de aplicación específica (ASIC) o como un procesador con instrucciones. De forma similar, el descodificador 108 puede implementarse en hardware (por ejemplo circuitería), software, o una combinación de ambos. Por ejemplo, el descodificador 108 puede implementarse como un circuito integrado de aplicación específica (ASIC) o como un procesador con instrucciones. El codificador 104 y el descodificador 108 pueden implementarse en dispositivos electrónicos separados o en el mismo dispositivo electrónico.
[21] La figura 2 es un diagrama de bloques que ilustra un ejemplo de una implementación básica de un codificador 204 y un descodificador 208. El codificador 204 puede ser un ejemplo del codificador 104 descrito en conexión con la figura 1. El codificador 204 puede incluir un módulo de análisis 212, una transformada de coeficientes 214, un cuantificador A 216, un cuantificador inverso A 218, una transformada de coeficientes inversos A 220, un filtro de análisis 222 y un cuantificador B 224. Uno o más de los componentes del codificador 204 y/o el descodificador 208 puede implementarse en hardware (por ejemplo, circuitería), software, o una combinación de ambos.
[22] El codificador 204 recibe una señal de voz 202. Debe observarse que la señal de voz 202 puede incluir cualquier rango de frecuencias como se describió anteriormente en conexión con la figura 1 (por ejemplo, una banda completa de frecuencias de voz o una sub-banda de frecuencias de voz).
[23] En este ejemplo, el módulo de análisis 212 codifica la envolvente espectral de una señal de voz 202 como un conjunto de coeficientes de predicción lineal (LP) (por ejemplo, coeficientes de filtro de análisis A(z), que pueden aplicarse para producir un filtro de síntesis multipolar 1/A(z), donde z es un número complejo). El módulo de análisis 212 típicamente procesa la señal de entrada como una serie de tramas no superpuestas de la señal de voz 202, con
5
10
15
20
25
30
35
40
45
50
55
60
65
un nuevo conjunto de coeficientes que se calcula para cada trama o subtrama. En algunas configuraciones, el período de trama puede ser un período durante el cual se puede esperar que la señal de voz 202 sea localmente estacionaria. Un ejemplo común del período de trama es 20 milisegundos (ms) (equivalentes a 160 muestras a una velocidad de muestreo de 8 kHz, por ejemplo). En un ejemplo, el módulo de análisis 212 está configurado para calcular un conjunto de diez coeficientes de predicción lineal para caracterizar la estructura formante de cada trama de 20 ms. En otro ejemplo, se puede utilizar una velocidad de muestreo de 12,8 kHz para una trama de 20 ms. En este ejemplo, el tamaño de trama es de 256 muestras y el módulo de análisis 212 puede calcular un conjunto de 16 coeficientes de predicción lineal (por ejemplo, coeficientes de predicción lineal de orden 16). Si bien estos son ejemplos de estructuras que pueden implementarse de acuerdo con los sistemas y procedimientos divulgados en el presente documento, debe observarse que estos ejemplos no deben limitar el alcance de los sistemas y procedimientos divulgados, que pueden aplicarse a cualquier estructura. También es posible implementar el módulo de análisis 212 para procesar la señal de voz 202 como una serie de tramas superpuestas.
[24] El módulo de análisis 212 puede configurarse para analizar las muestras de cada trama directamente, o las muestras pueden ponderarse primero de acuerdo con una función de ventanas (por ejemplo, una ventana de Hamming). El análisis también puede realizarse sobre una ventana que sea más grande que la trama, como una ventana de 30 ms. Esta ventana puede ser simétrica (por ejemplo, 5-20-5, de tal manera que incluya los 5 ms 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 ms de la trama anterior). El módulo de análisis 212 está configurado típicamente para calcular los coeficientes de predicción lineal usando una recursión Levinson-Durbin o el algoritmo Leroux-Gueguen. En otra implementación, el módulo de análisis 212 puede configurarse para calcular un conjunto de coeficientes cepstrales para cada trama en lugar de un conjunto de coeficientes de predicción lineales.
[25] La velocidad de salida del codificador 204 puede reducirse significativamente, con relativamente poco efecto sobre la calidad de reproducción, cuantificando los coeficientes. Los coeficientes de predicción lineal son difíciles de cuantificar de manera eficiente y habitualmente se asignan a otra representación, como LSF para cuantificación y/o codificación por entropía. En el ejemplo de la figura 2, la transformada de coeficiente 214 transforma el conjunto de coeficientes en un vector LSF correspondiente (por ejemplo, un conjunto de LSF). Otras representaciones uno a uno de los coeficientes incluyen LSP, coeficientes PARCOR, coeficientes de reflexión, valores de relación de área logarítmica, ISP e ISF. Por ejemplo, los ISF pueden usarse en el códec AMR-WB (banda ancha adaptativa de múltiples velocidades) GSM (Sistema Global para Comunicaciones Móviles). Por conveniencia, el término "frecuencias espectrales de línea", "LSFs", "vectores LSF" y términos relacionados se pueden usar para referirse a uno o más de LSF, LSP, ISF, ISP, coeficientes PARCOR, coeficientes de reflexión y valores de relación de área logarítimica Típicamente, una transformada entre un conjunto de coeficientes y un vector LSF correspondiente es reversible, pero algunas configuraciones pueden incluir implementaciones del codificador 204, en las que la transformada no es reversible sin error.
[26] El cuantificador A 216 está configurado para cuantificar el vector LSF (u otra representación de coeficientes). El codificador 204 puede emitir el resultado de esta cuantificación como parámetros de filtro 228. El cuantificador A 216 incluye típicamente un cuantificador vectorial que codifica el vector de entrada (por ejemplo, el vector LSF) como un índice a una entrada de vector correspondiente en una tabla o libro de códigos.
[27] Como se ve en la figura 2, el codificador 204 también genera una señal residual haciendo pasar la señal de voz 202 a través de un filtro de blanqueo 222 (también llamado un filtro de blanqueo o de error de predicción) que está configurado de acuerdo con el conjunto de coeficientes. El filtro de análisis 222 puede implementarse como un filtro de respuesta de impulso finito (FIR) o un filtro de respuesta de impulso infinito (IIR). Esta señal residual típicamente contendrá información importante desde el punto de vista perceptual de la trama de voz, tal como estructura a largo plazo relacionada con el tono, que no está representada en los parámetros de filtro 228. El cuantificador B 224 está configurado para calcular una representación cuantificada de esta señal residual para salida como señal de excitación codificada 226. En algunas configuraciones, el cuantificador B 224 incluye 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 adicional o alternativa, el cuantificador B 224 puede configurarse para enviar uno o más parámetros a partir de los cuales el vector puede generarse dinámicamente en el descodificador 208, en lugar de recuperarse del almacenamiento, como en un procedimiento de libro de códigos disperso. Tal procedimiento se utiliza en esquemas de codificación tales como CELP algebraico (predicción lineal de excitación de códigos) y códecs tales como 3GPP2 (Asociación de Tercera Generación 2), EVRC (Códec de Velocidad Variable Mejorado). En algunas configuraciones, la señal de excitación codificada 226 y los parámetros de filtro 228 pueden incluirse en una señal de voz codificada 106.
[28] Es deseable que el codificador 204 genere la señal de excitación codificada 226 de acuerdo con los mismos valores de los parámetros de filtro que estarán disponibles para el descodificador correspondiente 208. De esta manera, la señal de excitación codificada resultante 226 puede ya tener en cuenta hasta cierto punto las no desviaciones en esos valores de parámetros, tales como el error de cuantificación. En consecuencia, puede ser beneficioso configurar el filtro de análisis 222 usando los mismos valores de coeficiente que estarán disponibles en el descodificador 208. En el ejemplo básico del codificador 204 como se ilustra en la figura 2, el cuantificador inverso A 218 descuantifica los parámetros de filtro 228. La transformada del coeficiente inverso A 220 asigna los valores
5
10
15
20
25
30
35
40
45
50
55
60
65
resultantes nuevamente a un conjunto correspondiente de coeficientes. Este conjunto de coeficientes se utiliza para configurar el filtro de análisis 222 para generar la señal residual que se cuantifica mediante el cuantificador B 224.
[29] Algunas implementaciones del codificador 204 están configuradas para calcular la señal de excitación codificada 226 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 204 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 204 puede configurarse para utilizar un número de 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 voz original 202 en un dominio ponderado perceptualmente.
[30] El descodificador 208 puede incluir cuantificador inverso B 230, cuantificador inverso C 236, transformada de coeficiente inverso B 238 y un filtro de síntesis 234. El cuantificador inverso C 236 descuantifica los parámetros de filtro 228 (un vector LSF, por ejemplo) y la transformada de coeficiente inverso B 238 transforma el vector LSF en un conjunto de coeficientes (por ejemplo, como se describió anteriormente con referencia al cuantificador inverso A 218 y la transformada de coeficiente inverso A 220 del codificador 204). El cuantificador inverso B 230 descuantifica la señal de excitación codificada 226 para producir una señal de excitación 232. Basándose en los coeficientes y la señal de excitación 232, el filtro de síntesis 234 sintetiza una señal de voz descodificada 210. En otras palabras, el filtro de síntesis 234 está configurado para formar espectralmente la señal de excitación 232 de acuerdo con los coeficientes descuantificados para producir la señal de voz descodificada 210. En algunas configuraciones, el descodificador 208 también puede proporcionar la señal de excitación 232 a otro descodificador, que puede usar la señal de excitación 232 para obtener una señal de excitación de otra banda de frecuencias (por ejemplo, una banda alta). En algunas implementaciones, el descodificador 208 puede configurarse para proporcionar información adicional a otro descodificador que se refiera a la señal de excitación 232, tal como inclinación espectral, ganancia de tono y retardo, y modo de voz.
[31] El sistema del codificador 204 y el descodificador 208 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 de libro de códigos es una familia popular de codificación de análisis por síntesis. Las implementaciones de dichos codificadores pueden realizar la codificación de forma de onda del residuo, incluidas 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), relajación CELP (RCELP), excitación de pulso regular (RPE), excitación multipusos (MPE), CELP multipulsos (MPE-CELP), y predicción lineal excitada de suma de vectores (VSELP). Los procedimientos de codificación relacionados incluyen codificación de excitación multibanda (MBE) y de interpolación de forma 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 utiliza 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 kbps 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 GSM de múltiples velocidades adaptativas (GSM-AMR); y el códec 4GV™ (Vocoder™ de Cuarta Generación) (QUALCOMM Incorporated, San Diego, California). El codificador 204 y el descodificador 208 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 utilizada para accionar el filtro descrito para reproducir la señal de voz.
[32] Incluso después de que el filtro de análisis 222 haya eliminado la envolvente espectral aproximada de la señal de voz 202, puede permanecer una cantidad considerable de estructura armónica fina, especialmente para voz sonora. La estructura periódica está relacionada con el tono, y diferentes sonidos sonoros emitidos por el mismo altavoz pueden tener diferentes estructuras formantes pero estructuras de tono similares.
[33] La eficiencia de codificación y/o la calidad de la voz pueden aumentarse utilizando uno o más valores de parámetros para codificar características de la estructura de tono. Una característica importante de la estructura del tono es la frecuencia del primer armónico (también llamada la frecuencia fundamental), que está típicamente en la gama de 60 a 400 hercios (Hz). Esta característica se codifica típicamente como la inversa de la frecuencia fundamental, también llamada el retardo del 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 altavoces masculinos tienden a tener mayores retardos de tono que las señales de voz de los altavoces femeninos.
[34] 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 cruces de cero y funciones de autocorrelación normalizadas (NACFs). La periodicidad también puede ser indicada por 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).
5
10
15
20
25
30
35
40
45
50
55
60
65
[35] El codificador 204 puede incluir uno o más módulos configurados para codificar la estructura armónica a largo plazo de la señal de voz 202. En algunos enfoques a codificación CELP, el codificador 204 incluye un módulo de análisis de codificación predictiva lineal (LPC) de bucle abierto, que codifica las características a corto plazo o 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 de corto plazo se codifican como coeficientes (por ejemplo, parámetros de filtro 228), y las características a largo plazo se codifican como valores para parámetros tales como retardo de tono y ganancia de tono. Por ejemplo, el codificador 204 puede configurarse para emitir la señal de excitación de banda estrecha codificada 226 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 (por ejemplo, mediante el cuantificador B 224) puede incluir la selección de tales índices y el cálculo de dichos valores. La codificación de la estructura de tono puede también incluir interpolación de una forma de onda de prototipo de tono, cuya operación puede incluir calcular una diferencia entre pulsos de tono sucesivos. El modelado de la estructura a largo plazo puede ser inhabilitado para tramas que corresponden a voz sorda, que típicamente es ruidosa y no estructurada.
[36] Algunas implementaciones del descodificador 208 pueden configurarse para emitir la señal de excitación 232 a otro descodificador (por ejemplo, un descodificador de banda alta) después de que se haya restaurado la estructura a largo plazo (tono o estructura armónica). Por ejemplo, un descodificador de este tipo puede configurarse para emitir la señal de excitación 232 como una versión descuantificada de la señal de excitación codificada S50. Por supuesto, también es posible implementar el descodificador 208 de tal manera que el otro descodificador realice la descuantificación de la señal de excitación codificada 226 para obtener la señal de excitación 232.
[37] La figura 3 es un diagrama de bloques que ilustra un ejemplo de un codificador de voz de banda ancha 342 y un descodificador de voz de banda ancha 358. Uno o más componentes del codificador de voz de banda ancha 342 y/o el descodificador de voz de banda ancha 358 pueden implementarse en hardware (por ejemplo, circuitería), software o una combinación de ambos. El codificador de voz de banda ancha 342 y el descodificador de voz de banda ancha 358 pueden implementarse en dispositivos electrónicos separados o en el mismo dispositivo electrónico.
[38] El codificador de voz de banda ancha 342 incluye el banco de filtros A 344, un primer codificador de banda 348 y un segundo codificador de banda 350. El banco de filtros A 344 está configurado para filtrar una señal de voz de banda ancha 340 para producir una señal de primera banda 346a (por ejemplo, una señal de banda estrecha) y una señal de segunda banda 346b (por ejemplo, una señal de banda alta).
[39] El primer codificador de banda 348 está configurado para codificar la señal de primera banda 346a para producir parámetros de filtro 352 (por ejemplo, parámetros de filtro de banda estrecha (NB)) y una señal de excitación codificada 354 (por ejemplo, una señal de excitación de banda estrecha codificada). En algunas configuraciones, el primer codificador de banda 348 puede producir los parámetros de filtro 352 y la señal de excitación codificada 354 como índices de libro de códigos o en otra forma cuantificada. En algunas configuraciones, el primer codificador de banda 348 puede implementarse de acuerdo con el codificador 204 descrito en conexión con la figura 2.
[40] El segundo codificador de banda 350 está configurado para codificar la señal de segunda banda 346b (por ejemplo, una señal de banda alta) de acuerdo con la información en la señal de excitación codificada 354 para producir parámetros de codificación de segunda banda 356 (por ejemplo, parámetros de codificación de banda alta). El segundo codificador 350 de banda puede configurarse para producir parámetros de codificación de segunda banda 356 como índices de libro de códigos o en otra forma cuantificada. Un ejemplo particular del codificador de voz de banda ancha 342 está configurado para codificar la señal de voz de banda ancha 340 a una velocidad de aproximadamente 8,55 kbps, siendo utilizados aproximadamente 7,55 kbps para los parámetros de filtro 352 y la señal de excitación codificada 354, y siendo utilizado aproximadamente 1 Kbps para los parámetros de codificación de segunda banda 356. En algunas implementaciones, los parámetros de filtro 352, la señal de excitación codificada 354 y los parámetros de codificación de segunda banda 356 se pueden incluir en una señal de voz codificada 106.
[41] En algunas configuraciones, el segundo codificador de banda 350 puede implementarse de manera similar al codificador 204 descrito en conexión con la figura 2. Por ejemplo, el segundo codificador de banda 350 puede producir parámetros de filtro de segunda banda (como parte de los parámetros de codificación de segunda banda 356, por ejemplo) como se describe en relación con el codificador 204 descrito en relación con la figura 2. Sin embargo, el segundo codificador de banda 350 puede diferir en algunos aspectos. Por ejemplo, el segundo codificador de banda 350 puede incluir un segundo generador de excitación de banda, que puede generar una segunda señal de excitación de banda basándose en la señal de excitación codificada 354. El segundo codificador de banda 350 puede utilizar la segunda señal de excitación de banda para producir una señal de segunda banda sintetizada y para determinar un segundo factor de ganancia de banda. En algunas configuraciones, el segundo codificador de banda 350 puede cuantificar el segundo factor de ganancia de banda. Por consiguiente, los ejemplos
5
10
15
20
25
30
35
40
45
50
55
60
65
de los parámetros de codificación de segunda banda incluyen parámetros de filtro de segunda banda y un factor de ganancia de segunda banda cuantificado.
[42] Puede ser beneficioso combinar los parámetros de filtro 352, la señal de excitación codificada 354 y los parámetros de codificación de segunda banda 356 en un solo flujo de bits. Por ejemplo, puede ser beneficioso 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 almacenamiento, como una señal de voz de banda ancha codificada. En algunas configuraciones, el codificador de voz de banda ancha 342 incluye un multiplexor (no mostrado) configurado para combinar los parámetros de filtro 352, la señal de excitación codificada 354 y los parámetros de codificación de segunda banda 356 en una señal multiplexada. Los parámetros de filtro 352, la señal de excitación codificada 354 y los parámetros de codificación de segunda banda 356 pueden ser ejemplos de parámetros incluidos en una señal de voz codificada 106 como se describe en relación con la figura 1.
[43] En algunas implementaciones, un dispositivo electrónico que incluye el codificador de voz de banda ancha 342 también puede incluir circuitos configurados para transmitir la señal multiplexada a un canal de transmisión tal como un canal cableado, óptico o inalámbrico. Tal dispositivo electrónico 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 velocidad) 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, protocolo de control de transmisión / protocolo de Internet (TCP/IP), cdma2000, etc.).
[44] Puede ser beneficioso que el multiplexor esté configurado para incorporar los parámetros de filtro 352 y la señal de excitación codificada 354 como un subflujo separable de la señal multiplexada, de modo que los parámetros de filtro 352 y la señal de excitación codificada 354 puedan recuperarse y descodificarse independientemente de otra parte de la señal multiplexada tal como una señal de banda alta y/o banda baja. Por ejemplo, la señal multiplexada puede disponerse de manera que los parámetros de filtro 352 y la señal de excitación codificada 354 puedan recuperarse eliminando los parámetros de codificación de segunda banda 356. Una ventaja potencial de tal característica es evitar la necesidad de transcodificar los parámetros de codificación de segunda banda 356 antes de pasarlos a un sistema que soporte la descodificación de los parámetros de filtro 352 y la señal de excitación codificada 354 pero no soporte la descodificación de los parámetros de codificación de segunda banda 356.
[45] El descodificador de voz de banda ancha 358 puede incluir un descodificador de primera banda 360, un descodificador de segunda banda 366 y un banco de filtros B 368. El descodificador de primera banda 360 (por ejemplo, un descodificador de banda estrecha) está configurado para descodificar los parámetros de filtro 352 y la señal de excitación codificada 354 para producir una señal de primera banda descodificada 362a (por ejemplo, una señal de banda estrecha descodificada). El descodificador de segunda banda 366 está configurado para descodificar los parámetros de codificación de segunda banda 356 de acuerdo con una señal de excitación 364 (por ejemplo, una señal de excitación de banda estrecha), basándose en la señal de excitación codificada 354, para producir una señal de segunda banda descodificada 362b (por ejemplo, señal de banda alta descodificada). En este ejemplo, el descodificador de primera banda 360 está configurado para proporcionar la señal de excitación 364 al descodificador de segunda banda 366. El banco de filtros B 368 está configurado para combinar la señal de primera banda descodificada 362a y la señal de segunda banda descodificada 362b para producir una señal de voz de banda ancha descodificada 370.
[46] Algunas implementaciones del descodificador de voz de banda ancha 358 pueden incluir un desmultiplexor (no mostrado) configurado para producir los parámetros de filtro 352, la señal de excitación codificada 354 y los parámetros de codificación de segunda banda 356 a partir de una señal multiplexada. Un dispositivo electrónico que incluye el descodificador de voz de banda ancha 358 puede incluir circuitería configurada para recibir la señal multiplexada desde un canal de transmisión tal como un canal por cable, óptico o inalámbrico. Un dispositivo electrónico de este tipo también puede configurarse 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 velocidad) 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).
[47] El banco de filtros A 344 en el codificador de voz de banda ancha 342 está configurado para filtrar una señal de entrada de acuerdo con un esquema de banda dividida para producir una señal de primera banda 346a (por ejemplo, una señal de banda estrecha o de sub-banda de baja frecuencia) y una señal de segunda banda 346b (por ejemplo, una señal de banda alta o de sub-banda de alta frecuencia). Dependiendo de 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 A 344 que produce más de dos sub-bandas. Por ejemplo, el banco de filtros A 344 puede estar configurado para producir una o más señales de banda baja que incluyen componentes en una gama de frecuencias por debajo de la que tiene la señal de primera banda 346a (tal como la gama de 50-300 hercios (Hz), por ejemplo). También es posible que el banco de filtros A 344 esté configurado para producir una o más señales de banda alta adicionales que incluyen componentes en una gama de frecuencias por encima de la que tiene la señal de segunda banda 346b (tal como una gama de 14-
5
10
15
20
25
30
35
40
45
50
55
60
65
20, 16-20 o 16-32 kilohercios (kHz), por ejemplo). En dicha configuración, el codificador de voz de banda ancha 342 puede implementarse para codificar la señal o señales por separado y un multiplexor puede configurarse para incluir la señal o señales codificadas adicionales en una señal multiplexada (como una o más partes separables, por ejemplo).
[48] La figura 4 es un diagrama de bloques que ilustra un ejemplo más específico de un codificador 404. En particular, la figura 4 ilustra una arquitectura de análisis por síntesis CELP para codificación de voz de velocidad de transmisión de bits baja. En este ejemplo, el codificador 404 incluye un módulo de preprocesamiento y entramado 472, un módulo de análisis 476, una transformada de coeficientes 478, un cuantificador 480, un filtro de síntesis 484, un sumador 488, un filtro de ponderación perceptual y un módulo de minimización de errores 492 y un módulo de estimación de excitación 494. Debe observarse que el codificador 404 y uno o más de los componentes del codificador 404 pueden implementarse en hardware (por ejemplo, circuitería), software o una combinación de ambos.
[49] La señal de voz 402 (por ejemplo, voz de entrada s) puede ser una señal electrónica que contiene información de voz. Por ejemplo, una señal de voz acústica puede ser capturada por un micrófono y muestreada para producir la señal de voz 402. En algunas configuraciones, la señal de voz 402 se puede muestreada a 16 kbps. La señal de voz 402 puede comprender un rango de frecuencias como se describió anteriormente en conexión con la figura 1.
[50] La señal de voz 402 puede proporcionarse al módulo de entramado y preprocesamiento 472. El módulo de entramado y preprocesamiento 472 puede dividir la señal de voz 402 en una serie de tramas. Cada trama puede ser un período de tiempo particular. Por ejemplo, cada trama puede corresponder a 20 ms de la señal de voz 402. El módulo de entramado y preprocesamiento 472 puede realizar otras operaciones en la señal de voz 402, tal como el filtrado (por ejemplo, uno o más filtros de paso bajo, paso alto y paso de banda). De acuerdo con esto, el módulo de entramado y preprocesamiento 472 puede producir una señal de voz preprocesada 474 (por ejemplo, S(a), donde a es un número de muestra) basándose en la señal de voz 402.
[51] El módulo de análisis 476 puede determinar un conjunto de coeficientes (por ejemplo, filtro de análisis de predicción lineal A(z)). Por ejemplo, el módulo de análisis 476 puede codificar la envolvente espectral de la señal de voz preprocesada 474 como un conjunto de coeficientes como se describe en relación con la figura 2.
[52] Los coeficientes se pueden proporcionar a la transformada de coeficiente 478. La transformada de coeficiente 478 transforma el conjunto de coeficientes en un vector LSF correspondiente (por ejemplo, LSF, LSP, ISF, ISP, etc.) como se describió anteriormente en conexión con la figura 2.
[53] El vector LSF se proporciona al cuantificador 480. El cuantificador 480 cuantifica el vector LSF en un vector LSF cuantificado 482. Por ejemplo, el cuantificador 480 puede realizar la cuantificación del vector en el vector LSF para producir el vector LSF cuantificado 482. Esta cuantificación puede ser no predictiva (por ejemplo, no se usa un vector LSF de trama anterior en el proceso de cuantificación) o predictivo (por ejemplo, se usa un vector LSF de trama anterior en el proceso de cuantificación).
[54] En algunas configuraciones, se puede utilizar uno de los dos modos de predicción: modo de cuantificación predictiva o modo de cuantificación no predictiva. En el modo de cuantificación no predictiva, la cuantificación del vector LSF para una trama es independiente de cualquier vector LSF de trama anterior. En el modo de cuantificación predictiva, la cuantificación del vector LSF para una trama depende de un vector LSF de trama anterior.
[55] En otras configuraciones, se pueden utilizar tres o más modos de predicción. En estas configuraciones, cada uno de los tres o más modos de predicción indica un grado de dependencia con respecto al cual la cuantificación del vector LSF para una trama depende de un vector LSF de trama anterior. En un ejemplo, se pueden utilizar tres modos de predicción. Por ejemplo, en un primer modo de predicción, un vector LSF para una trama se cuantifica independientemente de (por ejemplo, sin dependencia de) cualquier vector LSF de trama anterior. En un segundo modo de predicción, un vector LSF se cuantifica dependiendo de un LSF de trama anterior, pero con una menor dependencia que en un tercer modo de predicción. En el tercer modo de predicción, un vector LSF se cuantifica dependiendo de un LSF de trama anterior con una mayor dependencia que en el segundo modo de predicción.
[56] Los modos de predicción pueden controlarse mediante coeficientes de predicción. En algunas configuraciones, por ejemplo, un vector LSF de trama actual puede cuantificarse basándose en un vector LSF de trama anterior y coeficientes de predicción. Los modos de predicción con una mayor dependencia de la trama anterior pueden utilizar coeficientes de predicción más altos que los modos de predicción con una menor dependencia. Los coeficientes de predicción más altos pueden ponderar el vector LSF de trama anterior más alto, mientras que los coeficientes de predicción inferiores pueden ponderar el vector LSF de trama anterior inferior al cuantificar un vector LSF de trama actual.
5
10
15
20
25
30
35
40
45
50
55
60
65
[57] El cuantificador 480 puede producir un indicador de modo de predicción 431 que indica el modo de predicción para cada trama. El indicador de modo de predicción 431 puede enviarse a un descodificador. En algunas configuraciones, el indicador de modo de predicción 431 puede indicar uno de los dos modos de predicción (por ejemplo, si se utiliza la cuantificación predictiva o la cuantificación no predictiva) para una trama. Por ejemplo, el indicador de modo de predicción 431 puede indicar si una trama está cuantificado basándose en una trama anterior (por ejemplo, predictiva) o no (por ejemplo, no predictiva). En otras configuraciones, el indicador de modo de predicción 431 puede indicar uno de tres o más modos de predicción (que corresponden a tres o más grados de dependencia de los que la cuantificación del vector LSF para una trama depende en un vector LSF de trama anterior).
[58] En algunas configuraciones, el indicador de modo de predicción 431 puede indicar el modo de predicción de la trama actual. En otras configuraciones, el indicador de modo de predicción 431 puede indicar el modo de predicción de trama anterior. En otras configuraciones más, se pueden utilizar múltiples indicadores de modo de predicción 431 por trama. Por ejemplo, pueden enviarse dos indicadores de modo de predicción de tramas 431 correspondientes a una trama, donde el primer indicador de modo de predicción 431 indica un modo de predicción utilizado para la trama actual y un segundo indicador de modo de predicción 431 indica un modo de predicción utilizado para la trama anterior.
[59] En algunas configuraciones, los vectores LSF pueden generarse y/o cuantificarse en una base de subtrama. En algunas implementaciones, solo los vectores LSF cuantificados correspondientes a ciertas subtramas (por ejemplo, la subtrama última o de extremo de cada trama) pueden enviarse a un descodificador. En algunas configuraciones, el cuantificador 480 también puede determinar un vector de ponderación cuantificado 429. Los vectores de ponderación se pueden usar para cuantificar vectores LSF (por ejemplo, vectores LSF de mitad) entre vectores LSF correspondientes a las subtramas enviadas (por ejemplo, vectores LSF de extremo). Los vectores de ponderación pueden cuantificarse. Por ejemplo, el cuantificador 480 puede determinar un índice de un libro de códigos o tabla de búsqueda correspondiente a un vector de ponderación que mejor se adecue al vector de ponderación real. Los vectores de ponderación cuantificados 429 (por ejemplo, los índices) se pueden enviar a un descodificador. El vector LSF cuantificado 482, el indicador de modo de predicción 431 y/o el vector de ponderación cuantificado 429 pueden ser ejemplos de los parámetros de filtro 228 descritos anteriormente en relación con la figura 2.
[60] Los vectores LSF cuantificados se proporcionan al filtro de síntesis 484. El filtro de síntesis 484 produce una señal de voz sintetizada 486 (por ejemplo, voz reconstruida S (a)) basándose en el vector LSF cuantificado 482 y una señal de excitación 496. Por ejemplo, el filtro de síntesis 484 filtra la señal de excitación 496 basándose en el vector LSF cuantificado 482 (por ejemplo, 1/A(z)).
[61] La señal de voz sintetizada 486 se resta de la señal de voz preprocesada 474 mediante el sumador 488 para producir una señal de error 490 (también denominada señal de error de predicción). La señal de error 490 puede representar el error entre la señal de voz preprocesada 474 y su estimación (por ejemplo, la señal de voz sintetizada 486). La señal de error 490 se proporciona al filtro de ponderación perceptual y al módulo de minimización de errores 492.
[62] El filtro de ponderación perceptual y el módulo de minimización de errores 492 producen una señal de error ponderado 493 en función de la señal de error 490. Por ejemplo, no todos los componentes (por ejemplo, componentes de frecuencia) de la señal de error 490 afectan a la calidad perceptual de una señal de voz sintetizada por igual. El error en algunas bandas de frecuencias tiene un mayor impacto en la calidad de la voz que el error en otras bandas de frecuencias. El filtro de ponderación perceptual y el módulo de minimización de errores 492 pueden producir una señal de error ponderado 493 que reduce el error en componentes de frecuencia con un mayor impacto en la calidad de la voz y distribuye más errores en otros componentes de frecuencia con un menor impacto en la calidad de la voz.
[63] El módulo de estimación de excitación 494 genera una señal de excitación 496 y una señal de excitación codificada 498 basándose en la señal de error ponderado 493 del filtro de ponderación perceptual y el módulo de minimización de errores 492. Por ejemplo, el módulo de estimación de excitación 494 estima uno o más parámetros que caracterizan la señal de error 490 o la señal de error ponderado 493. La señal de excitación codificada 498 puede incluir uno o más parámetros y puede enviarse a un descodificador. En un enfoque CELP, por ejemplo, el módulo de estimación de excitación 494 puede determinar parámetros tales como un índice de libro de códigos adaptativo (o tono), una ganancia de libro de códigos adaptativa (o tono), un índice de libro de códigos fijo y una ganancia de libro de códigos fija que caracteriza la señal de error 490 (por ejemplo, señal de error ponderado 493). Basándose en estos parámetros, el módulo de estimación de excitación 494 puede generar la señal de excitación 496, que se proporciona al filtro de síntesis 484. En este enfoque, el índice de libro de códigos adaptativo, la ganancia de libro de códigos adaptativa (por ejemplo, una ganancia de libro de códigos adaptativa cuantificada), un índice de libro de códigos fijo y una ganancia de libro de códigos fija (por ejemplo, una ganancia de libro de códigos fija cuantificada) pueden enviarse a un descodificador como señal de excitación codificada 498.
5
10
15
20
25
30
35
40
45
50
[64] La señal de excitación codificada 226 puede ser un ejemplo de la señal de excitación codificada 226
descrita anteriormente en conexión con la figura 2. Por consiguiente, el vector LSF cuantificado 482, el indicador de modo de predicción 431, la señal de excitación codificada 498 y/o el vector de ponderación cuantificado 429 pueden incluirse en una señal de voz codificada 106 como se describió anteriormente en conexión con la figura 1.
[65] La figura 5 es un diagrama que ilustra un ejemplo de tramas 503 a lo largo del tiempo 501. Cada trama 503
está dividida en un número de subtramas 505. En el ejemplo ilustrado en la figura 5, la trama anterior A 503a incluye 4 subtramas 505a-d, la trama anterior B 503b incluye 4 subtramas 505e-h y la trama actual C 503c incluye 4 subtramas 505i-1. Una trama típica 503 puede ocupar un período de tiempo de 20 ms y puede incluir 4 subtramas, aunque pueden usarse tramas de diferentes longitudes y/o diferentes números de subtramas. Cada trama puede denotarse con un número de una trama correspondiente, donde n denota una trama actual (por ejemplo, una trama actual C 503c). Además, cada subtrama se puede denotar con un número de subtrama k correspondiente.
[66] La figura 5 puede usarse para ilustrar un ejemplo de cuantificación de LSF en un codificador (por ejemplo,
k
codificador 404). Cada subtrama k en la trama n tiene un vector LSF correspondiente Xn , k = {1,2, 3, 4} para usar en los filtros de análisis y síntesis. Un vector LSF de extremo trama actual 527 (por ejemplo, el vector LSF de la
6 6 4
subtrama de extremo de la trama n-ésima) se denota Xn, donde Xn = Xn. Un vector LSF de mitad de trama actual
771
525 (por ejemplo, el vector LSF de la trama n-ésima) se denota Xn . Un "vector LSF de mitad" es un vector LSF
6 6
entre otros vectores LSF (por ejemplo, entre Xn _^ y Xn) en el tiempo 501. Un ejemplo de un vector LSF de
Q Q 4
extremo de trama anterior 523 se ilustra en la figura 5 y se denota , donde = . Como se usa en
el presente documento, el término "trama anterior" puede referirse a cualquier trama antes de trama actual (por ejemplo, n-1, n-2, n-3, etc.). En consecuencia, un "vector LSF de extremo de trama anterior" puede ser un vector LSF de extremo correspondiente a cualquier trama anterior a la trama actual. En el ejemplo ilustrado en la figura 5, el vector LSF de extremo de trama anterior 523 corresponde a la última subtrama 505h de la trama anterior B 503b (por ejemplo, una trama n-1), que precede inmediatamente a la trama actual C 503c (por ejemplo, una trama n).
[67] Cada vector LSF es M dimensional, donde cada dimensión del vector LSF corresponde a un único valor LsF. Por ejemplo, M es típicamente 16 para voz de banda ancha (por ejemplo, voz muestreada a 16 kHz). La
k
dimensión i-ésima LSF de la subtrama k-ésima de la trama n se denota como X ¿ n, donde i = {1, 2,..., M}.
Q
[68] En el proceso de cuantificación de la trama n, el vector LSF de extremo Xn puede cuantificarse primero.
Q
Esta cuantificación puede ser no predictiva (por ejemplo, el vector LSF de extremo de trama anterior Xn _ ^ no se
Q
usa en el proceso de cuantificación) o predictivo (por ej., el vector LSF de extremo de trama anterior Xn _ ^ se usa en el proceso de cuantificación). Como se describió anteriormente, se pueden utilizar dos o más modos de
771
predicción. Un vector LSF de mitad puede entonces cuantificarse. Por ejemplo, un codificador puede
771
seleccionar un vector de ponderación tal que X¿ n sea como se proporciona en la ecuación (1).
X Un = w¿,n- X eitn + (1- W¿ ^ • X ^ ± (1)
[69] La dimensión i-ésima del vector de ponderación w n corresponde a una sola ponderación y se denota
por W¿ n, donde i = {1, 2,..., M}. También se debe tener en cuenta que W¿ n no está limitado. En particular, si 0 <
6 6
W¿ n < 1 produce un valor (por ejemplo, una interpolación) delimitada por X¿ n y X¿ n _ ^ y W¿ n<0 o W¿ n > 1, el
vector LSF de mitad resultante X^2 podría estar fuera del rango [X^n X ^n _ -j_] (por ejemplo, una extrapolación 6 6
basada en y ) Un codificador puede determinar (por ejemplo, seleccionar) un vector de ponderación
tal que el vector LSF de mitad cuantificado sea más cercano al valor de LSF de mitad real en el codificador basándose en alguna medida de distorsión, como error cuadrático medio (MSE) o distorsión espectral de registro (LSD). En el proceso de cuantificación, el codificador transmite los índices de cuantificación del vector LSF de
Q
extremo de trama actual y el índice del vector de ponderación , que permite reconstruir un descodificador
Xe y X222 -*-n y ■A-n .
5
10
15
20
25
30
35
40
45
50
55
60
k 6 Til 6
[70] Los vectores LSF de subtrama Xn pueden interpolarse basándose en X¿ n_^, X¿ n y X ¿ n utilizando los factores de interpolación ak y Pkcomo se da mediante la ecuación (2).
Xn = ak • Xn + Pk • Xn _ ±+ (1- ak - Pk) • X™ (2)
Cabe señalar que ak y Pk pueden ser tales que 0 < (ak, Pk) < 1. Los factores de interpolación ak y Pk puede ser valores predeterminados tanto para el codificador como para el descodificador.
[71] Dado que los vectores LSF en la trama actual dependen del vector LSF de extremo de trama anterior
Q
Xn _ ]_, la calidad de la voz de la trama actual puede verse afectada negativamente cuando se estima el vector LSF de extremo de trama anterior (por ejemplo, cuando se produce un borrado de trama). Por ejemplo, el vector LSF de
mitad de trama actual X^1 y los vectores LSF de subtrama X^ de la trama actual (excepto X^, por ejemplo) se puede interpolar basándose en un vector LSF de extremo de trama anterior estimado. Esto puede dar como resultado coeficientes de filtro de síntesis desajustados entre el codificador y el descodificador, lo cual puede producir artefactos en la señal de voz sintetizada.
[72] La figura 6 es un diagrama de flujo que ilustra una configuración de un procedimiento 600 para codificar una señal de voz 402 mediante un codificador 404. Por ejemplo, un dispositivo electrónico que incluye un codificador 404 puede realizar el procedimiento 600. La figura 6 ilustra los procedimientos de cuantificación LSF para una trama n actual.
[73] El codificador 404 puede obtener 602 un vector LSF de extremo cuantificado de trama anterior. Por ejemplo, el codificador 404 puede cuantificar un LSF de extremo correspondiente a una trama anterior (por ejemplo,
Q
Xn _ -j_) seleccionando un vector de libro de códigos que esté más cerca del LSF de extremo correspondiente a la trama anterior n - 1.
Q
[74] El codificador 404 puede cuantificar 604 un vector LSF de extremo de trama actual (por ejemplo, ) El codificador 404 cuantifica 604 el vector LSF de extremo de trama actual basándose en el vector LSF de extremo de trama anterior si se usa la cuantificación LSF predictiva. Sin embargo, la cuantificación 604 del vector LSF de trama actual no se basa en el vector LSF de extremo de trama anterior si se utiliza una cuantificación no predictiva para el LSF de extremo de trama actual.
772
[75] El codificador 404 puede cuantificar 606 un vector LSF de mitad de trama actual (por ejemplo, ) determinando un vector de ponderación (por ejemplo, Wn). Por ejemplo, el codificador 404 puede seleccionar un vector de ponderación que dé como resultado un vector LSF de mitad cuantificado que esté más cerca del vector LSF de mitad real. Como se ilustra en la ecuación (1), el vector LSF de mitad cuantificado puede basarse en el vector de ponderación, el vector LSF de extremo de trama anterior y el vector LSF de extremo de trama actual.
[76] El codificador 404 puede enviar 608 un vector LSF de extremo de trama actual cuantificada y el vector de ponderación a un descodificador. Por ejemplo, el codificador 404 puede proporcionar el vector LSF de extremo de trama actual y el vector de ponderación a un transmisor en un dispositivo electrónico, que puede transmitirlos a un descodificador en otro dispositivo electrónico.
[77] Algunas configuraciones de los sistemas y procedimientos divulgados en el presente documento proporcionan enfoques para determinar factores de interpolación de LSF basándose en una o más propiedades de trama actuales y una o más propiedades de trama anteriores. Por ejemplo, los sistemas y procedimientos divulgados en el presente documento se pueden aplicar en un sistema de codificación de voz que opera en condiciones de canal deterioradas. Algunos sistemas de codificación de voz realizan interpolación y/o extrapolación de LSF entre LSF de trama actual y LSF de trama anterior en una base de subtrama. Sin embargo, los artefactos de voz pueden resultar bajo condiciones de borrado de trama, dependiendo de un vector LSF estimado debido a una trama borrada, donde el vector LSF estimado se utiliza para generar vectores LSF de subtrama para una trama recibida correctamente.
[78] La figura 7 es un diagrama de bloques que ilustra una configuración de un dispositivo electrónico 737 configurado para determinar un conjunto de factores de interpolación. El dispositivo electrónico 737 incluye un descodificador 708. El descodificador 708 produce una señal de voz descodificada 759 (por ejemplo, una señal de voz sintetizada) basada en vectores de ponderación cuantificados 729, vectores LSF cuantificados 782, un indicador de modo de predicción 731 y/o una señal de excitación codificada 798. Uno o más de los descodificadores descritos anteriormente pueden implementarse de acuerdo con el descodificador 708 descrito en conexión con la figura 7. El dispositivo electrónico 737 incluye además un detector de tramas borradas 743. El detector de tramas borradas 743
5
10
15
20
25
30
35
40
45
50
55
60
65
puede implementarse por separado del descodificador 708 o puede implementarse en el descodificador 708. El detector de una trama borrada 743 detecta una trama borrada (por ejemplo, una trama que no se recibe o se recibe con errores) y puede proporcionar un indicador de trama borrada 767 cuando se detecta una trama borrada. Por ejemplo, el detector de tramas borradas 743 puede detectar una trama borrada basándose en una o más de una función resumen, suma de comprobación, código de repetición, bit(s) de paridad, comprobación de redundancia cíclica (CRC), etc.
[79] Debe observarse que uno o más de los componentes incluidos en el dispositivo electrónico 737 y/o el descodificador 708 pueden implementarse en hardware (por ejemplo, circuitería), software, o una combinación de ambos. Por ejemplo, uno o más del módulo de determinación de valor 761 y el módulo de determinación de conjunto de factores de interpolación 765 pueden implementarse en hardware (por ejemplo, circuitería), software o una combinación de ambos. También debe observarse que las flechas dentro de los bloques en la figura 7 u otros diagramas de bloques en el presente documento pueden indicar un acoplamiento directo o indirecto entre los componentes. Por ejemplo, el módulo de determinación de valor 761 puede acoplarse al módulo de determinación de conjunto de factores de interpolación 765.
[80] El descodificador 708 produce una señal de voz descodificada 759 (por ejemplo, una señal de voz sintetizada) basándose en los parámetros recibidos. Entre los ejemplos de los parámetros recibidos se incluyen vectores LSF cuantificados 782, vectores de ponderación cuantificados 729, un indicador de modo de predicción 731 y una señal de excitación codificada 798. El descodificador 708 incluye uno o más cuantificadores inversos A 745, un módulo de interpolación 749, una transformada de coeficientes inversos 753, un filtro de síntesis 757, un módulo de determinación de valor 761, un módulo de determinación de conjuntos de factores de interpolación 765 y un cuantificador inverso B 773.
[81] El descodificador 708 recibe vectores LSF cuantificados 782 (por ejemplo, LSF, LSP, ISF, ISP, coeficientes de PARCOR, coeficientes de reflexión o valores de relación de área logarítmica cuantificados) y vectores de ponderación cuantificados 729. Los vectores LSF cuantificados recibidos 782 pueden corresponder a un subconjunto de subtramas. Por ejemplo, los vectores LSF cuantificados 782 solo pueden incluir vectores LSF de extremo cuantificados que corresponden a la última subtrama de cada trama. En algunas configuraciones, los vectores LSF cuantificados 782 pueden ser índices correspondientes a una tabla de consulta o un libro de códigos. De forma adicional o alternativa, los vectores de ponderación cuantificados 729 pueden ser índices correspondientes a una tabla de consulta o libro de códigos.
[82] El dispositivo electrónico 737 y/o el descodificador 708 pueden recibir el indicador de modo de predicción 731 desde un codificador. Como se describió anteriormente, el indicador de modo de predicción 731 indica un modo de predicción para cada trama. Por ejemplo, el indicador de modo de predicción 731 puede indicar uno de dos o más modos de predicción para una trama. Más específicamente, el indicador de modo de predicción 731 puede indicar si se utiliza la cuantificación predictiva o la cuantificación no predictiva y/o un grado de dependencia del cual la cuantificación del vector LSF para una trama depende en un vector LSF de trama anterior. Como se describió anteriormente en conexión con la figura 4, el indicador de modo de predicción 731 puede indicar uno o más modos de predicción correspondientes a una trama actual (por ejemplo, una trama n) y/o una trama anterior (por ejemplo, una trama n-1).
[83] Cuando se recibe una trama correctamente, el cuantificador inverso A 745 descuantifica los vectores LSF cuantificados recibidos 729 para producir vectores LSF descuantificados 747. Por ejemplo, el cuantificador inverso A 745 puede buscar vectores LSF descuantificados 747 basados en índices (por ejemplo, los vectores LSF cuantificados 782) correspondientes a una tabla de consulta o libro de códigos. La descuantificación de los vectores LSF cuantificados 782 también puede basarse en el indicador de modo de predicción 731. Los vectores LSF descuantificados 747 pueden corresponder a un subconjunto de subtramas (por ejemplo, vectores LSF de extremo
Q
correspondiente a la última subtrama de cada trama). Además, el cuantificador inverso A 745 descuantifica los vectores de ponderación cuantificados 729 para producir vectores ponderados descuantificados 739. Por ejemplo, el cuantificador inverso A 745 puede buscar vectores de ponderación descuantificados 739 basados en índices (por ejemplo, los vectores de ponderación cuantificados 729) correspondientes a una tabla de consulta o libro de códigos.
[84] Cuando una trama es una trama borrada, el detector de tramas borradas 743 puede proporcionar un indicador de trama borrada 767 al cuantificador inverso A 745. Cuando se produce una trama borrada, uno o más vectores LSF cuantificados 782 y/o uno o más vectores de ponderación cuantificados 729 pueden no recibirse o pueden contener errores. En este caso, el cuantificador inverso A 745 puede estimar uno o más vectores LSF
Q
descuantificados 747 (por ejemplo, un vector LSF de extremo de la trama borrada ) basándose en uno o más vectores LSF de una trama anterior (por ejemplo, una trama antes de la trama borrada). De forma adicional o alternativa, el cuantificador inverso A 745 puede estimar uno o más vectores de ponderación descuantificados 739 cuando se produce una trama borrada. Los vectores LSF descuantificados 747 (por ejemplo, vectores LSF de extremo) pueden proporcionarse al módulo de interpolación 749 y opcionalmente al módulo de determinación de valor 761.
5
10
15
20
25
30
35
40
45
50
55
[85] El módulo de determinación de valor 761 determina un valor 763 basado en una propiedad de trama actual y una propiedad de trama anterior. El valor 763 es una medida que indica un grado de cambio entre una propiedad de trama anterior y una propiedad de trama actual. Entre los ejemplos de propiedades de trama se incluyen energía de impulso de filtro de síntesis (por ejemplo, ganancia de filtro de síntesis), coeficientes de reflexión e inclinaciones espectrales. Los cambios abruptos en las propiedades de la trama pueden ser atípicos en la voz y pueden ocasionar artefactos en la señal de voz sintetizada si no se abordan. Por consiguiente, el valor 763 puede utilizarse para abordar posibles artefactos en el caso de un borrado de trama.
[86] En algunas configuraciones, el valor 763 puede ser una relación de energía. Por ejemplo, el módulo de determinación de valor 761 puede determinar una relación de energía (por ejemplo, R) de una energía de respuesta de impulso de filtro de síntesis de trama actual (por ejemplo, En) y una energía de respuesta de impulso de filtro de síntesis de trama anterior (por ejemplo, En-1).
[87] En un enfoque, el módulo de determinación de valor 761 puede determinar una relación de energía de la
siguiente manera. El módulo de determinación de valor 761 puede obtener un vector LSF de extremo de trama
6 6 actual (por ejemplo, ) y un vector LSF de extremo de trama anterior (por ejemplo, ) a partir de los vectores
LSF descuantificados 747. El módulo de determinación de valor 761 puede realizar una transformada de coeficiente
inverso en el vector LSF de extremo de trama actual y un vector LSF de extremo de trama anterior para obtener un
1
filtro de síntesis de extremo de trama actual (por ejemplo, ) y un filtro de síntesis de extremo de trama
An \z)
1
anterior (por ejemplo, —-----—), respectivamente. El módulo de determinación de valor 761 puede determinar las
An-1 (z)
respuestas de impulso del filtro de síntesis de extremo de trama actual y el filtro de síntesis de extremo de trama
Q Q
anterior. Por ejemplo, las respuestas de impulso de los filtros de síntesis correspondientes a Xn_ ^ y Xn pueden denotarse respectivamente hn-1(i) y hn(i), donde i es un índice de muestra de la respuesta de impulso. Debe observarse que las respuestas de impulso (por ejemplo, hn -1(i) y hn(i)) se pueden truncar, ya que el filtro de síntesis de extremo de trama actual y el filtro de síntesis de trama anterior son filtros de respuesta de impulso infinita (I IR).
[88] Una energía de impulso de filtro de síntesis de trama actual es un ejemplo de una propiedad de trama actual. Además, una energía de respuesta de impulso de filtro de síntesis de trama anterior es un ejemplo de una propiedad de trama anterior. En algunas configuraciones, el módulo de determinación de valor 761 puede determinar la energía de impulso de filtro de síntesis de trama actual (por ejemplo, En) y la energía de respuesta de impulso de filtro de síntesis de trama anterior (por ejemplo, En-1) de acuerdo con la ecuación (3).
En = Zfft n (i)
(3)
[89] En la ecuación (3), i es el índice de la muestra y N es la longitud de la respuesta de impulso truncada h n(i). Como se ilustra por la ecuación (3), la energía de impulso de filtro de síntesis de trama actual y la energía de respuesta de impulso de filtro de síntesis de trama anterior pueden estar truncadas. En algunas configuraciones, N puede ser 128 muestras. Las energías de respuesta de impulso del filtro de síntesis (por ejemplo, En y En-1) pueden
Q
ser estimaciones de ganancias de los filtros de síntesis correspondientes (que se basan en vectores LSF y
Q
, por ejemplo).
[90] El módulo de determinación de valor 761 puede determinar la relación de energía entre la energía de impulso de filtro de síntesis de trama actual (por ejemplo, En) y la energía de respuesta de impulso de filtro de síntesis de trama anterior (por ejemplo, En-1) de acuerdo con la ecuación (4).
R =
En
En-1
(4)
[91] En algunas configuraciones, el valor 763 puede ser multidimensional. Por ejemplo, el módulo de determinación de valor 761 puede determinar un valor 763 como un conjunto de coeficientes de reflexión. Por ejemplo, el módulo de determinación de valor 761 puede determinar un primer coeficiente de reflexión de trama actual (por ejemplo, R0n) y un primer coeficiente de reflexión de trama anterior (por ejemplo, R0n-1). En algunas configuraciones, uno o más de los coeficientes de reflexión pueden obtenerse de uno o más vectores LSF (por ejemplo, vectores LSF descuantificados 747) y/o vectores de coeficientes de predicción lineal. Por ejemplo, los coeficientes de reflexión pueden basarse en coeficientes de LPC. El valor 763 puede incluir el primer coeficiente de reflexión de trama actual y el primer coeficiente de reflexión la trama anterior. En consecuencia, el valor 763 puede indicar un cambio (si lo hay) entre un primer coeficiente de reflexión de trama actual (por ejemplo, R0n) y un primer coeficiente de reflexión de trama anterior (por ejemplo, R0n-1). En otras configuraciones, el valor 763 puede incluir
5
10
15
20
25
30
35
40
45
50
55
60
una o más inclinaciones espectrales de cada trama, que se puede determinar como una relación entre la energía de banda alta (por ejemplo, la mitad superior de un rango espectral) y la energía de banda baja (por ejemplo, la mitad inferior de un rango espectral).
[92] El valor 763 puede proporcionarse al módulo de determinación de conjunto de factores de interpolación 765. El módulo de determinación de conjunto de factores de interpolación 765 puede determinar si el valor 763 (por ejemplo, una relación de energía, coeficientes de reflexión o inclinaciones espectrales) está fuera de un rango. El rango especifica un dominio de valores 763 que son característicos de la voz normal. Por ejemplo, el rango puede separar los valores 763 que típicamente ocurren en la voz normal de los valores 763 que no ocurren y/o son raros en la voz normal. Por ejemplo, los valores 763 que están fuera del rango pueden indicar características de una trama que se producen junto con una trama borrada y/o una ocultación de borrado de trama inadecuada. En consecuencia, el módulo de determinación de conjunto de factores de interpolación 765 puede determinar si una trama exhibe características que no ocurren o que son raras en la voz normal basándose en el valor 763 y el rango.
[93] En algunas configuraciones, el rango puede ser multidimensional. Por ejemplo, el rango puede definirse en dos o más dimensiones. En estas configuraciones, un valor multidimensional 763 puede estar fuera del rango si cada dimensión de valor 763 está fuera de cada dimensión de rango. Debe observarse que determinar si el valor 763 está fuera de un rango (por ejemplo, un primer rango) puede significar equivalentemente determinar si el valor 763 está dentro de otro rango (por ejemplo, un complemento del primer rango).
[94] El rango puede basarse en uno o más umbrales. En un ejemplo, un único umbral puede separar los valores 763 dentro del rango de los valores 763 fuera del rango. Por ejemplo, todos los valores 763 por encima del umbral pueden estar dentro del rango y todos los valores 763 por debajo del umbral pueden estar fuera del rango. De forma alternativa, todos los valores 763 por debajo del umbral pueden estar dentro del rango y todos los valores 763 por encima del umbral pueden estar fuera del rango. En otro ejemplo, dos umbrales pueden separar los valores 763 dentro del rango de los valores 763 fuera del rango. Por ejemplo, todos los valores 763 entre los umbrales pueden estar dentro del rango, mientras que todos los valores 763 que están por debajo del umbral inferior y por encima del umbral superior pueden estar fuera del rango. De forma alternativa, todos los valores 763 entre los umbrales pueden estar fuera del rango, mientras que todos los valores 763 que están por debajo del umbral inferior y por encima del umbral superior pueden estar dentro del rango. Como se ilustra en estos ejemplos, el rango puede ser continuo o discontinuo. En ejemplos adicionales, se pueden utilizar más de dos umbrales. En algunas configuraciones, un rango multidimensional puede basarse en al menos dos umbrales, donde un primer umbral corresponde a una dimensión del rango y un segundo umbral corresponde a otra dimensión del rango.
[95] En algunas configuraciones, el módulo de determinación de conjunto de factores de interpolación 765 puede determinar si el valor 763 está fuera del rango determinando si la relación de energía (R) es menor que uno o más umbrales y/o mayor que uno o más umbrales. En otras configuraciones, el módulo de determinación de conjunto de factores de interpolación 765 puede determinar si el valor 763 está fuera del rango determinando si el cambio entre el primer coeficiente de reflexión (R0) (o inclinación espectral, por ejemplo) de una trama anterior y una trama actual está fuera de un rango multidimensional. Por ejemplo, el dispositivo electrónico 737 puede determinar si el primer coeficiente de reflexión de trama anterior (por ejemplo, R0n-1) es mayor que un primer umbral y el primer coeficiente de reflexión de trama actual (por ejemplo, R0n) es menor que un segundo límite.
[96] Si el valor 763 no está fuera del rango, el módulo de determinación de conjunto de factores de interpolación 765 puede utilizar un conjunto de factores de interpolación por defecto. El conjunto de factores de interpolación por defecto puede ser un conjunto de factores de interpolación fijos que se utiliza cuando no se ha producido un borrado de tramas (por ejemplo, en condiciones de canal limpio). Por ejemplo, el módulo de determinación de conjunto de factores de interpolación 765 puede proporcionar un conjunto de factores de interpolación por defecto como el conjunto de factores de interpolación 769 cuando el valor 763 no está fuera del rango.
[97] El módulo de determinación de conjunto de factores de interpolación 765 puede determinar un conjunto de factores de interpolación 769. Por ejemplo, el módulo de determinación de conjunto de factores de interpolación 765 puede determinar un conjunto de factores de interpolación 769 basado en el valor 763 y un indicador de modo de predicción 731 si el valor 763 está fuera del rango. Un conjunto de factores de interpolación es un conjunto de dos o más factores de interpolación. Por ejemplo, un conjunto de factores de interpolación puede incluir factores de interpolación a y p. En algunas configuraciones, un conjunto de factores de interpolación puede incluir un factor de diferencia que se basa en otros factores de interpolación en el conjunto de factores de interpolación. Por ejemplo, un conjunto de factores de interpolación puede incluir factores de interpolación a, p y un factor de diferencia 1 - a - p. En algunas configuraciones, un conjunto de factores de interpolación puede incluir dos o más factores de interpolación para una o más subtramas. Por ejemplo, un conjunto de factores de interpolación puede incluir ak, (3k y un factor de
diferencia 1 - ak - (3k para la subtrama k-ésima, donde k = {1,..., K} y K es un número de subtramas en una trama. Los factores de interpolación (y el factor de diferencia, por ejemplo) se utilizan para interpolar vectores LSF descuantificados 747.
5
10
15
20
25
30
35
40
45
50
55
60
[98] Si el valor 763 está fuera del rango, el módulo de determinación de conjunto de factores de interpolación 765 puede determinar (por ejemplo, seleccionar) el conjunto de factores de interpolación 769 de un grupo de conjuntos de factores de interpolación basados en el valor 763 y el indicador de modo de predicción 731. Por ejemplo, los sistemas y procedimientos divulgados en el presente documento pueden proporcionar un mecanismo de adaptación para cambiar entre conjuntos de factores de interpolación predefinidos (por ejemplo, diferentes conjuntos
de ay (S) basándose en el valor de 763 y el indicador de modo de predicción 731.
[99] Cabe señalar que algunos enfoques conocidos solo utilizan un factor de interpolación fijo. Por ejemplo, un enfoque conocido provisto por las especificaciones del Códec de Velocidad Variable Mejorada B (EVRC-B) solo puede utilizar un factor de interpolación fijo. En los enfoques que usan interpolación fija, es posible que los factores de interpolación no cambien o que no se puedan adaptar. Sin embargo, de acuerdo con los sistemas y procedimientos divulgados en el presente documento, el dispositivo electrónico 737 puede determinar de forma adaptativa diferentes conjuntos de factores de interpolación (por ejemplo, seleccionar de forma adaptativa un conjunto de factores de interpolación de un grupo de conjuntos de factores de interpolación múltiples) basándose en el valor 763 y/o el indicador de modo de predicción 731. En algunos casos, se puede utilizar un conjunto de factores de interpolación por defecto. El conjunto de factores de interpolación por defecto puede ser el mismo que el conjunto de factores de interpolación que se utiliza en el caso del canal limpio (sin una trama borrada, por ejemplo). Los sistemas y procedimientos divulgados en el presente documento pueden detectar casos para desviarse del conjunto de factores de interpolación por defecto.
[100] Los sistemas y procedimientos divulgados en el presente documento pueden proporcionar los beneficios de una mayor flexibilidad cuando se manejan posibles artefactos causados por borrados de tramas. Otro beneficio de los sistemas y procedimientos divulgados en el presente documento puede ser que no se requiere señalización adicional. Por ejemplo, tal vez no se necesite señalización adicional más allá del indicador de modo de predicción 731, los vectores LSF cuantificados 782 y/o la señal de excitación codificada 798 para implementar los sistemas y procedimientos divulgados en el presente documento.
[101] En algunas configuraciones, la determinación del conjunto de factores de interpolación 769 puede basarse en uno o más umbrales fuera del rango. Por ejemplo, se pueden determinar diferentes conjuntos de factores de interpolación basándose en el grado en que el valor 763 está fuera del rango determinado basándose en uno o más umbrales fuera del rango. En otras configuraciones, no se pueden utilizar umbrales fuera del rango. En estas configuraciones, solo se pueden utilizar uno o más umbrales que limiten el rango. Por ejemplo, el conjunto de factores de interpolación 769 puede determinarse basándose en que el valor 763 está fuera del rango y basándose en el indicador de modo de predicción 731. La determinación del conjunto de factores de interpolación 769 se puede realizar de acuerdo con uno o más enfoques. Los ejemplos de algunos enfoques se dan de la siguiente manera.
[102] En un enfoque, el módulo de determinación del conjunto de factores de interpolación 765 puede determinar un conjunto de factores de interpolación 769 (por ejemplo, ak, (3ky 1 - ak - fík) basándose en la relación de energía (por ejemplo, R). En particular, si R está fuera del rango, se puede suponer que el LSF de extremo de la trama borrada (por ejemplo, la trama n-1) se estima incorrectamente. Por lo tanto, se puede seleccionar un conjunto
diferente de ak Sk y 1 - ak - Sk de modo que se otorgue más ponderación de interpolación al vector LSF de
Q
extremo de trama actual (por ejemplo, una trama recibida correctamente) . Esto puede ayudar a reducir los artefactos en la señal de voz sintetizada (por ejemplo, la señal de voz descodificada 759).
[103] Junto con la relación de energía (R), el indicador de modo de predicción 731 también se puede utilizar en algunas configuraciones. El indicador de modo de predicción 731 puede corresponder a la trama actual (por ejemplo,
Q
a la cuantificación del vector LSF de extremo de trama actual). En este enfoque, el conjunto de factores de interpolación se puede determinar basándose en si un modo de predicción de tramas es predictivo o no predictivo. Si la trama actual (por ejemplo, la trama n) utiliza cuantificación no predictiva, se puede suponer que el LSF de extremo
Q
de trama actual está correctamente cuantificado Por lo tanto, se puede otorgar una mayor ponderación de
Q
interpolación al LSF de extremo de trama actual en comparación con el caso donde el LSF de extremo de trama
Q
actual Xn se cuantifica con cuantificación predictiva. Por consiguiente, el módulo de determinación de conjunto de factores de interpolación 765 utiliza la relación de energía (R) y si la trama actual utiliza cuantificación predictiva o no predictiva (por ejemplo, la naturaleza predictiva o no predictiva del cuantificador de LSF de traman) para determinar el conjunto de factores de interpolación 769 en este enfoque.
[104] El listado (1) a continuación ilustra ejemplos de conjuntos de factores de interpolación que pueden usarse en este enfoque. El módulo de determinación de conjunto de factores de interpolación 765 puede determinar (por ejemplo, seleccionar) uno de los conjuntos de factores de interpolación basándose en el valor 763 y el indicador de modo de predicción 731. En algunas configuraciones, los factores de interpolación pueden pasar de una dependencia de vector LSF de trama anterior a una dependencia de vector LSF de trama actual incrementada. Los factores de interpolación (por ejemplo, factores de ponderación) se dan en el listado (1), donde cada fila se ordena
5
10
15
20
25
30
35
40
45
50
55
60
65
como fík, 1 - ak - (3ky ak, donde cada fila corresponde a cada subframa k y k = {1, 2, 3, 4}. Por ejemplo, la primera fila de cada conjunto de factores de interpolación incluye factores de interpolación para la primera subtrama, la segunda fila incluye factores de interpolación para la segunda subtrama y así sucesivamente. Por ejemplo, si Interpolation_factor_set_A se determina como el conjunto de factores de interpolación 769, el módulo de interpolación 749 se aplica ai = 0.30, pi = 0.00 y 1 - ai - pi = 0,70 para la primera subtrama de acuerdo con la Ecuación (2) en el proceso de interpolación Debe observarse que los conjuntos de factores de interpolación dados en el listado (1) son ejemplos. Se pueden utilizar otros conjuntos de factores de interpolación de acuerdo con los sistemas y procedimientos divulgados en el presente documento.
Interpolation_factor_set_A = {0.00, 0.70, 0.30,
0.00, 0.00, 1.00,
0.00, 0.00, 1.00,
0.00, 0.00, 1.00};
Interpolation_factor_set_B = {0.15, 0.70, 0.15,
0.05, 0.65, 0.30,
0.00, 0.50, 0.50,
0.00, 0.0, 1.00};
Interpolation_factor_set_C = {0.10, 0.70, 0.20,
0.00, 0.30, 0.70,
0.00, 0.10, 0.90,
0.00, 0.00, 1.00};
Interpolation_factor_set_D = {0.30, 0.50, 0.20,
0.15, 0.65, 0.20,
0.05, 0.55, 0.40,
0.00, 0.00, 1.00};
Interpolation_factor_set_E = {0.55, 0.45, 0.00,
0.05, 0.95, 0.00,
0.00. 0.55. 0,45 0.00. 0.00. 1.00};
Listado (1)
[105] En el listado (2), un conjunto de factores de interpolación 769 (por ejemplo, "pt_int_coeffs") puede determinarse seleccionando uno de los conjuntos de factores de interpolación del listado (1) basándose en la relación de energía (R) (por ejemplo, el valor 763) y el indicador de modo de predicción 731 para la trama actual (por ejemplo, "frame_n_mode"). Por ejemplo, un conjunto de factores de interpolación 769 puede determinarse basándose en si un modo de predicción de trama actual es no predictivo o predictivo y basándose en dos umbrales (por ejemplo, TH1, TH2) que pueden utilizarse para determinar si y hasta qué grado R está fuera de un rango. En el listado (2), el rango puede definirse como R> TH2.
if ((R<TH1) && (frame_n_mode == non-predictive))
pt_int_coeffs = Interpolation_factor_set_A; else if ((R<TH1) && (frame_n_mode == predictive))
pt_int_coeffs = Interpolation_factor_set_B; else if ((R<TH2) && (frame_n_mode == non-predictive)
/*R is between TH1 and TH2 and non-predictive quantization is utilized*/ pt_int_coeffs = Interpolation_factor_set_C; else if ((R<TH2) && (frame_n_mode == predictive))
/*R is between TH1 and TH2 and predictive quantization is utilized*/ pt_int_coeffs = Interpolation_factor_set_D; else /* default */
pt_int_coeffs = Interpolation_factor_set_E;
Listado (2)
[106] El listado (2) en consecuencia ilustra un ejemplo de determinación de si el valor está fuera de un rango y la determinación de un conjunto de factores de interpolación basándose en el valor y un modo de predicción de tramas si el valor está fuera del rango. Como se ilustra en el listado (2), se puede utilizar un conjunto de factores de interpolación por defecto (por ejemplo, Interpolation_factor_set_E) si el valor no está fuera del rango. En el listado (2), uno de los conjuntos de factores de interpolación AD puede determinarse de forma adaptativa basándose en el grado en el que R se encuentra fuera del rango. Específicamente, Interpolation_factor_set_D se puede seleccionar si R está fuera del rango (por ejemplo, R <TH2) e Interpolation_factor_set_B se puede seleccionar si R está fuera del rango en mayor grado (por ejemplo, R <TH1). En consecuencia, TH1 es un ejemplo de un umbral fuera del rango. El listado (2) también ilustra Interpolation_factor_set_E como un conjunto de factores de interpolación por defecto para ser utilizado cuando R no está fuera del rango. En un ejemplo, TH1=0,3 and TH2=0,5.
5
10
15
20
25
30
35
40
45
50
55
60
[107] En otro enfoque, un conjunto de factores de interpolación puede determinarse basándose en el primer coeficiente de reflexión de trama anterior (por ejemplo, R0n-1) y el primer coeficiente de reflexión de trama actual (por ejemplo, R0n) y/o el indicador de modo de predicción 731. Por ejemplo, si el primer coeficiente de reflexión de trama anterior es mayor que un primer umbral (por ejemplo, R0n-1 > TH1) y el primer coeficiente de reflexión de trama actual es menor que un segundo umbral (por ejemplo, R0n <TH2), entonces se puede determinar un conjunto diferente de factores de interpolación. Por ejemplo, R0n_1 > TH1 puede indicar una trama anterior altamente sorda, mientras que R0n <TH2 puede indicar una trama actual altamente sonora. En este caso, el módulo de determinación de conjunto de factores de interpolación 765 puede determinar un conjunto de factores de interpolación 769 que reduce la dependencia de la trama altamente sonora (por ejemplo, la trama n-1). Además, el indicador de modo de predicción 731 puede utilizarse junto con los primeros coeficientes de reflexión para determinar un conjunto de factores de interpolación 769 similar al enfoque anterior como se ilustra en el listado (2).
[108] En algunas configuraciones, el módulo de determinación de conjunto de factores de interpolación 765 puede determinar de forma adicional o alternativa el conjunto de factores de interpolación 769 basándose en un modo de predicción de trama anterior. Por ejemplo, el modo de predicción de trama anterior puede ser información lateral enviada en una trama actual (por ejemplo, una trama n) con respecto al modo de predicción de trama (por ejemplo, cuantificación LSF predictiva o no predictiva) de una trama anterior (por ejemplo, una trama borrada n-1). Por ejemplo, si el indicador de modo de predicción 731 indica que la cuantificación LSF para la trama n-1 no era predictiva, entonces el módulo de determinación de conjunto de factores de interpolación 765 puede seleccionar Interpolation_factor_set_A en el listado (1) con la menor dependencia en el vector LSF de trama anterior. Esto se
XV Q
debe a que el vector LSF de extremo de trama anterior estimado (que puede estimarse mediante
extrapolación basada en la ocultación de borrado de trama, por ejemplo) puede ser bastante diferente del vector LSF
Q
de extremo de trama anterior real . Debe observarse que el modo de predicción de trama anterior puede ser
uno de dos o más modos de predicción que indiquen un grado de dependencia según el cual la cuantificación del vector LSF para la trama anterior depende de un vector LSF de trama anterior.
[109] En algunas configuraciones, el funcionamiento del módulo de determinación de valor 761 y/o el módulo de determinación de conjunto de factores de interpolación 765 puede estar condicionado al indicador de trama borrada 767. Por ejemplo, el módulo de determinación de valor 761 y el módulo de determinación de conjunto de factores de interpolación 765 solo pueden funcionar para una o más tramas después de que se indique una trama borrada. Mientras el módulo de determinación de conjunto de factores de interpolación 765 no está funcionando, el módulo de interpolación 749 puede utilizar un conjunto de factores de interpolación por defecto. En otras configuraciones, el módulo de determinación de valor 761 y el módulo de determinación de conjunto de factores de interpolación 765 pueden funcionar para cada trama, independientemente de los borrados de la trama.
[110] Los vectores LSF descuantificados 747 y los vectores de ponderación descuantificados 739 pueden proporcionarse al módulo de interpolación 749. El módulo de interpolación 749 puede determinar un vector LSF de
771
mitad de trama actual (por ejemplo, ) basándose en los vectores LSF descuantificados 747 (por ejemplo, un
6 6
vector LSF de extremo de trama actual y un vector LSF de extremo de trama anterior ) y un vector de
ponderación descuantificado 739 (por ejemplo, un vector de ponderación de trama actual ) Esto se puede lograr de acuerdo con la Ecuación (1), por ejemplo.
[111] El módulo de interpolación 749 interpola los vectores LSF descuantificados 747 y el vector LSF de mitad de trama actual basándose en el conjunto de factores de interpolación 769 para generar vectores LSF de subtrama (por
k
ejemplo, vectores LSF de subtrama para la trama actual). Por ejemplo, el módulo de interpolación 749 puede
k 6 771 6
interpolar los vectores LSF de subtrama basándose en , y utilizando factores de
interpolación ak y fik de acuerdo con la ecuación X^ = ak • X^ + • fík • X^ _ ^ + (1- ak - ¡3k ) • X™ . Los
factores de interpolación ak y (3k pueden ser tales que 0 < (ak /3k) £1. Aquí, k es un número de subtrama entero, donde 1 < k < K - 1, donde K es el número total de subtramas en la trama actual. El módulo de interpolación 749 interpola por consiguiente los vectores LSF correspondientes a cada subtrama en la trama actual.
[112] El módulo de interpolación 749 proporciona vectores LSF 751 a la transformada de coeficiente inverso 753. La transformada de coeficiente inverso 753 transforma los vectores LSF 751 en coeficientes 755 (por ejemplo, coeficientes de filtro para un filtro de síntesis 1/A(z)). Los coeficientes 755 se proporcionan al filtro de síntesis 757.
[113] El cuantificador inverso B 773 recibe y descuantifica una señal de excitación codificada 798 para producir una señal de excitación 775. En un ejemplo, la señal de excitación codificada 798 puede incluir un índice de libro de códigos fijo, una ganancia de libro de códigos fija cuantificada, un índice de libro de códigos adaptativo y una ganancia de libro de códigos adaptativa cuantificada. En este ejemplo, el cuantificador inverso B 773 busca una entrada de libro de códigos fija (por ejemplo, vector) basándose en el índice de libro de códigos fijo y aplica una
5
10
15
20
25
30
35
40
45
50
55
60
ganancia de libro de códigos fija descuantificada a la entrada de libro de códigos fija para obtener una contribución de libro de códigos fija. Además, el cuantificador inverso B 773 busca una entrada de libro de códigos adaptativa basada en el índice de libro de códigos adaptativo y aplica una ganancia de libro de códigos adaptativa descuantificada a la entrada de libro de códigos adaptativa para obtener una contribución de libro de códigos adaptativa. El cuantificador inverso B 773 puede sumar entonces la contribución del libro de códigos fija y la contribución del libro de códigos adaptativa para producir la señal de excitación 775.
[114] El filtro de síntesis 757 filtra la señal de excitación 775 de acuerdo con los coeficientes 755 para producir una señal de voz descodificada 759. Por ejemplo, los polos del filtro de síntesis 757 se pueden configurar de acuerdo con los coeficientes 755. La señal de excitación 775 se pasa a continuación a través del filtro de síntesis 757 para producir la señal de voz descodificada 759 (por ejemplo, una señal de voz sintetizada).
[115] La figura 8 es un diagrama de flujo que ilustra una configuración de un procedimiento 800 para determinar un conjunto de factores de interpolación mediante un dispositivo electrónico 737. El dispositivo electrónico 737 puede determinar 802 un valor 763 basado en una propiedad de trama actual y una propiedad de trama anterior. En un ejemplo, el dispositivo electrónico 737 puede determinar una relación de energía basada en una energía de respuesta de impulso de filtro de síntesis de trama actual y una energía de respuesta de impulso de filtro de síntesis de trama anterior como se describe en conexión con la figura 7. En otros ejemplos, el dispositivo electrónico 737 puede determinar un valor 763 como coeficientes de reflexión múltiples o inclinaciones espectrales como se describió anteriormente en conexión con la figura 7.
[116] El dispositivo electrónico 737 puede determinar 804 si el valor 763 está fuera de un rango. Por ejemplo, el dispositivo electrónico 737 puede determinar 804 si el valor 763 está fuera de un rango basado en uno o más umbrales como se describió anteriormente en conexión con la figura 7. Por ejemplo, el dispositivo electrónico 737 puede determinar 804 si una relación de energía (R) es menor que uno o más umbrales y/o mayor que uno o más umbrales. De forma adicional o alternativa, el dispositivo electrónico 737 puede determinar 804 si un primer coeficiente de reflexión de trama anterior (por ejemplo, R0n -1) es mayor que un primer umbral y un primer coeficiente de reflexión de trama actual (por ejemplo, R0n) es menor que un segundo umbral
[117] Si el valor 763 no está fuera del rango (por ejemplo, dentro del rango), el dispositivo electrónico 737 puede utilizar 810 un conjunto de factores de interpolación por defecto. Por ejemplo, el dispositivo electrónico 737 puede aplicar el conjunto de factores de interpolación por defecto para interpolar LSF de subtrama basándose en un vector LSF de extremo de trama anterior, un vector LSF de mitad de trama actual y un vector LSF de extremo de trama actual.
[118] Si el valor está fuera del rango, el dispositivo electrónico 737 puede determinar 806 un conjunto de factores de interpolación 769 basado en el valor 763 y un indicador de modo de predicción 731. Por ejemplo, si el valor 763 está fuera del rango, el dispositivo electrónico 737 puede determinar 806 (por ejemplo, seleccionar) el conjunto de factores de interpolación 769 de un grupo de conjuntos de factores de interpolación basándose en el valor 763 y el indicador de modo de predicción 731 como se ha descrito anteriormente en conexión con la figura 7. Por ejemplo, diferentes conjuntos de factores de interpolación pueden determinarse 806 basándose en un modo de predicción (por ejemplo, modo de predicción de trama actual y/o un modo de predicción de trama anterior) y/o en función del grado en que el valor 763 está fuera del rango como se determina basándose en uno o más umbrales fuera del rango. En algunas configuraciones, el conjunto de factores de interpolación que se determina 806 cuando el valor está fuera del rango puede no ser el conjunto de factores de interpolación por defecto.
[119] El dispositivo electrónico 737 puede interpolar vectores LSF de subtrama basándose en el conjunto de factores de interpolación 769 como se describió anteriormente en conexión con la figura 7. Por ejemplo, la interpolación de los vectores LSF de subtrama basándose en el conjunto de factores de interpolación 769 puede
Q
incluir la multiplicación de un vector LSF de extremo de trama actual (por ejemplo, ) por un primer factor de interpolación (por ejemplo, ak), la multipliacación de un vector LSF de extremo de trama anterior (por ejemplo, Xn_ -j_) por un segundo factor de interpolación (por ejemplo, /3k) y la multiplicación de un vector LSF de mitad de trama actual (por ejemplo, X^1)) por un factor de diferencia (por ejemplo, (1 - ak - /3k)). Esto puede repetirse para
los factores de interpolación correspondientes (por ejemplo, ak y j3k) para cada subtrama k en una trama. Esto se puede lograr de acuerdo con la Ecuación (2), por ejemplo.
[120] El dispositivo electrónico 737 puede sintetizar 808 una señal de voz. Por ejemplo, el dispositivo electrónico 737 puede sintetizar una señal de voz pasando una señal de excitación 775 a través de un filtro de síntesis 757 como se describió anteriormente en conexión con la figura 7. Los coeficientes 755 del filtro de síntesis 757 pueden basarse en vectores LSF 751 que se interpolan basándose en el conjunto de factores de interpolación 769. En algunas configuraciones y/o instancias, el procedimiento 800 puede repetirse para una o más tramas.
5
10
15
20
25
30
35
40
45
50
55
60
[121] Debe observarse que uno o más de los pasos, funciones o procedimientos descritos en conexión con la figura 8 pueden combinarse en algunas configuraciones. Por ejemplo, algunas configuraciones del dispositivo electrónico 737 pueden determinar 804 si el valor 763 está fuera del rango y determinar 806 un conjunto de factores de interpolación basándose en el valor y el indicador de modo de predicción 731 como parte del mismo paso. También se debe tener en cuenta que uno o más de los pasos, funciones o procedimientos se pueden dividir en varios pasos, funciones o procedimientos en algunas configuraciones.
[122] Cabe señalar que el códec de velocidad variable mejorada B (EVRC-B) puede utilizar una aproximación para terminar la dependencia del vector LSF de trama anterior utilizando la variación del primer coeficiente de reflexión entre la trama actual (por ejemplo, la trama n) y la trama anterior (por ejemplo, la trama n-1). Sin embargo, los sistemas y procedimientos divulgados en el presente documento son diferentes de ese enfoque por al menos las siguientes razones.
[123] El enfoque conocido elimina por completo la dependencia del vector LSF de extremo de trama anterior
XV Q
estimado correspondiente a la trama borrada. Sin embargo, algunas configuraciones de los sistemas y
XV Q
procedimientos divulgados en el presente documento utilizan el LSF de extremo de trama anterior estimado correspondiente a la trama borrada. Además, algunas configuraciones de los sistemas y procedimientos descritos en el presente documento utilizan técnicas de interpolación adaptativa para una recuperación más suave. Por ejemplo, un conjunto de factores de interpolación puede determinarse de forma adaptativa, en lugar de simplemente utilizar un conjunto de factores de interpolación por defecto. Además, algunas configuraciones de los sistemas y
771
procedimientos divulgados en el presente documento utilizan un vector LSF de mitad (por ejemplo, ) además del
6 6
vector LSF de extremo de la trama anterior y el vector LSF de extremo de trama actual en el proceso de
interpolación de LSF.
[124] Algunas configuraciones de los sistemas y procedimientos divulgados en el presente documento utilizan el modo de predicción de trama actual (como se indica mediante un indicador de modo de predicción, por ejemplo) en el proceso de determinación del conjunto de factores de interpolación de LSF. Los enfoques conocidos solo pueden depender del tipo de trama (utilizando un primer coeficiente de reflexión, por ejemplo), mientras que los sistemas y procedimientos divulgados en el presente documento pueden utilizar propiedades de trama así como la posibilidad de propagación de error considerando un modo de predicción de trama (por ejemplo, la predicción utilizada por el cuantificador LSF).
[125] La figura 9 es un diagrama de bloques que ilustra ejemplos de módulos de determinación de valor 961a-c. En particular, el módulo de determinación de valor A 961a, el módulo de determinación de valor B 961b y el módulo de determinación de valor C 961c pueden ser ejemplos del módulo de determinación de valor 761 descrito en conexión con la figura 7. El módulo de determinación de valor A 961a, el módulo de determinación de valor B 961b y el módulo de determinación de valor C 961c y/o uno o más componentes del mismo pueden implementarse en hardware (por ejemplo, circuitería), software o una combinación de ambos.
[126] El módulo de determinación de valor A 961a determina una relación de energía 933 (por ejemplo, R) basándose en una propiedad de trama actual (por ejemplo, una energía de impulso de filtro de síntesis de trama actual (por ejemplo, En)) y una propiedad de trama anterior (por ejemplo, energía de respuesta de impulso de filtro de síntesis de trama anterior (por ejemplo, En-1)). La relación de energía 933 puede ser un ejemplo del valor 763 descrito en relación con la figura 7. El módulo de determinación de valor A 961a incluye una transformada de coeficiente inverso 977, un módulo de determinación de respuesta de impulso 979 y un módulo de determinación de relación de energía 981.
[127] La transformada de coeficiente inverso 977 obtiene un vector LSF de extremo de trama actual (por ejemplo,
6 6 ) y un vector LSF de extremo de trama anterior (por ejemplo, ) a partir de los vectores LSF
descuantificados A 947a. La transformada de coeficiente inverso 977 transforma el vector LSF de extremo de trama
actual y el vector LSF de extremo de trama anterior para obtener coeficientes para un filtro de síntesis de extremo
1 1
de trama actual (por ejemplo, ) y un filtro de síntesis de extremo de trama anterior (por ejemplo, —-----— ),
An (z) An—i (z)
respectivamente. Los coeficientes para el filtro de síntesis de extremo de trama actual y el filtro de síntesis de extremo de trama anterior se proporcionan al módulo de determinación de respuesta de impulso 979.
[128] El módulo de determinación de respuesta de impulso 979 determina las respuestas de impulso del filtro de síntesis de extremo de trama actual y el filtro de síntesis de extremo de trama anterior. Por ejemplo, el módulo de determinación de respuesta de impulso 979 excita el filtro de síntesis de extremo de trama actual y el filtro de síntesis de extremo de trama anterior con señales de impulso, lo cual produce respuestas de impulso truncadas (por ejemplo, hn-1(i) y hn(i)). Las respuestas de impulso truncadas se proporcionan al módulo de determinación de relación de energía 981.
5
10
15
20
25
30
35
40
45
50
55
60
65
[129] El módulo de determinación de relación de energía 981 determina una energía de impulso de filtro de síntesis de trama actual truncada (por ejemplo, En) y una energía de respuesta de impulso de filtro de síntesis de trama anterior truncada (por ejemplo, En-1) de acuerdo con la ecuación (3). El módulo de determinación de relación de energía 981 determina entonces la relación de energía 933 entre la energía de impulso de filtro de síntesis de trama actual (por ejemplo, En) y la energía de respuesta de impulso de filtro de síntesis de trama anterior (por ejemplo, En-1) de acuerdo con la ecuación (4).
[130] El módulo de determinación de valor B 961b determina inclinaciones espectrales 935 basadas en una señal de voz 901. El módulo de determinación de valor B 961b incluye un módulo de determinación de energía espectral 983 y un módulo de determinación de inclinación espectral 985. El módulo de determinación de energía espectral 983 puede obtener una señal de voz 901. El módulo de determinación de energía espectral 983 puede transformar una señal de voz de trama anterior y una señal de voz de trama actual en una señal de voz de dominio de frecuencia de trama anterior y una señal de voz de dominio de frecuencia de trama actual a través de una transformada de Fourier rápida (FFT).
[131] El módulo de determinación de energía espectral 983 puede determinar energía espectral de banda baja de trama anterior y energía espectral de banda alta de trama anterior. Por ejemplo, cada una de la señal de voz de dominio de frecuencia de trama anterior y la señal de voz de dominio de frecuencia de trama actual pueden dividirse en bandas para calcular la energía por banda. Por ejemplo, el módulo de determinación de energía espectral 983 puede sumar los cuadrados de cada muestra en la mitad inferior de la señal de voz de dominio de frecuencia de trama anterior para obtener la energía espectral de banda baja de trama anterior. Además, el módulo de determinación de energía espectral 983 puede sumar los cuadrados de cada muestra en la mitad superior de la señal de voz de dominio de frecuencia de trama anterior para obtener la energía espectral de banda superior de trama anterior.
[132] El módulo de determinación de energía espectral 983 puede determinar la energía espectral de banda baja de trama actual y la energía espectral de banda alta de trama actual. Por ejemplo, el módulo de determinación de energía espectral 983 puede sumar los cuadrados de cada muestra en la mitad inferior de la señal de voz de dominio de frecuencia de trama actual para obtener la energía espectral de banda baja de trama actual. Además, el módulo de determinación de energía espectral 983 puede sumar los cuadrados de cada muestra en la mitad superior de la señal de voz de dominio de frecuencia de trama actual para obtener la energía espectral de banda superior de trama actual.
[133] La energía espectral de banda baja de trama anterior, la energía espectral de banda alta de trama anterior, la energía espectral de banda baja de trama actual y la energía espectral de banda alta de trama actual pueden proporcionarse al módulo de determinación de inclinación espectral 985. El módulo de determinación de inclinación espectral 985 divide la energía espectral de banda alta de trama anterior por la energía espectral de banda baja de trama anterior para producir una inclinación espectral de trama anterior. El módulo de determinación de inclinación espectral 985 divide la energía espectral de banda alta de trama actual por la energía espectral de banda baja de trama actual para producir una inclinación espectral de trama actual. La inclinación espectral de trama anterior 935 y la inclinación espectral de trama actual 935 pueden proporcionarse como el valor 763.
[134] El módulo de determinación del valor C 961c determina los primeros coeficientes de reflexión 907 (por ejemplo, un primer coeficiente de reflexión de trama anterior y un primer coeficiente de reflexión de trama actual) basándose en los coeficientes LPC 903. Por ejemplo, el módulo de determinación de valor C 961c incluye un primer módulo de determinación de coeficiente de reflexión 905. En algunas configuraciones, el primer módulo de determinación de coeficientes de reflexión 905 puede determinar los primeros coeficientes de reflexión 907 basados en los coeficientes de LPC 903 de acuerdo con el listado (3). En particular, el listado (3) ilustra un ejemplo de código C que puede utilizarse para convertir los coeficientes LPC 903 en primeros coeficientes de reflexión 907. Se pueden utilizar otros enfoques conocidos para determinar los primeros coeficientes de reflexión. Debe observarse que aunque un primer coeficiente de reflexión 907 puede transportar inclinación espectral, puede no ser numéricamente igual a la inclinación espectral 935 (por ejemplo, relación de energía de banda alta a energía de banda baja) como se determina mediante el módulo de determinación de valor B 961 b.
*a2rc()
*
Convert from LPC to Reflection Coeff
*____________________________________________________________________________*/
void a2rc (
float *a, /* i : LPC coefficients */
float *refl, /* o : Reflection coefficients */
short lpcorder /* i : LPC order */
)
{
float f[M];
5
10
15
20
25
30
35
40
45
50
55
60
65
}
short m, j, n;
float km, denom, x;
for (m = 0; m < lpcorder; m++)
{
f[m] =-a[m];
}
/* Initialization */
for (m = lpcorder - 1; m >= 0; m--)
{
km = f[m];
if (km <= -1.0 i km >= 1.0)
{
return;
}
refl[m] = -km;
denom = 1.0f/(1.0f-km*km);
for (j = 0; j < m / 2; j++)
{
n = m - 1 - j;
x = denom * f[j] + km * denom * f[n]; f[n] = denom * f[n] + km * denom * f[j]; f[j] = x;
}
if (m & 1)
{
f[j] = denom * f[j] + km * denom * f[j];
}
}
return;
Listado (3)
[135] La figura 10 es un diagrama de bloques que ilustra un ejemplo de un módulo de determinación de conjunto de factores de interpolación 1065. El módulo de determinación de conjunto de factores de interpolación 1065 puede implementarse en hardware (por ejemplo circuitería), software, o una combinación de ambos. El módulo de determinación de conjunto de factores de interpolación 1065 incluye umbrales 1087 y conjuntos de factores de interpolación 1089. Uno o más de los umbrales 1087 especifican un rango como se describió anteriormente en conexión con la figura 7.
[136] El módulo de determinación de conjunto de factores de interpolación 1065 obtiene un valor 1063 (por ejemplo, una relación de energía 933, una o más inclinaciones espectrales 935 y/o uno o más primeros coeficientes de reflexión 907). El módulo de determinación de conjunto de factores de interpolación 1065 puede determinar si el valor 1063 está fuera del rango y puede determinar un conjunto de factores de interpolación 1069 basado en el valor 1063 y un indicador de modo de predicción 1031 si el valor 1063 está fuera del rango.
[137] En un ejemplo como se describe en relación con el listado (1) y el listado (2) anterior, el valor 1063 es una relación de energía R y el módulo de determinación de conjunto de factores de interpolación 1065 incluye dos umbrales, un primer umbral TH1 y un segundo umbral TH2. Además, el módulo de determinación de conjunto de factores de interpolación 1065 incluye cinco conjuntos de factores de interpolación 1089, donde Interpolation_factor_set_E es un conjunto de factores de interpolación por defecto. Además, el indicador de modo de predicción 1031 solo puede indicar uno de los dos modos de predicción para la trama actual en este ejemplo: predictivo o no predictivo.
[138] En este ejemplo, el rango está especificado por el segundo umbral TH2. Si la relación de energía R es mayor o igual que el segundo umbral TH2, entonces la relación de energía R está dentro del rango y el módulo de determinación de conjunto de factores de interpolación 1065 proporciona el conjunto de factores de interpolación por defecto (Interpolation_factor_set_E) como el conjunto de factores de interpolación 1069. Sin embargo, si la relación de energía R es menor que el segundo umbral TH2, entonces el módulo de determinación de conjunto de factores de interpolación 1065 determinará uno de los conjuntos de factores de interpolación 1089 basándose en la relación de energía R y el indicador de modo de predicción 1031.
[139] Específicamente, si la relación de energía R es menor que el primer umbral TH1 y el indicador de modo de predicción 1031 indica el modo no predictivo, entonces el módulo de determinación del conjunto de factores de interpolación 1065 proporciona Interpolation_factor_set_A como el conjunto de factores de interpolación 1069. Si la relación de energía R es menor que el primer umbral TH1 y el indicador de modo de predicción 1031 indica el modo predictivo, entonces el módulo de determinación de conjunto de factores de interpolación 1065 proporciona
5
10
15
20
25
30
35
40
45
50
55
60
65
Interpolation_factor_set_B como el conjunto de factores de interpolación 1069. Si la relación de energía R es (mayor que el primer umbral TH1 y) menor que el segundo umbral TH2 y el indicador de modo de predicción 1031 indica el modo no predictivo, entonces el módulo de determinación del conjunto de factores de interpolación 1065 proporciona Interpolation_factor_set_C como el conjunto de factores de interpolación 1069. Si la relación de energía R es (mayor que el primer umbral TH1 y) menor que el segundo umbral TH2 y el indicador de modo de predicción 1031 indica el modo predictivo, entonces el módulo de determinación del conjunto de factores de interpolación 1065 proporciona Interpolation_factor_set_D como el conjunto de factores de interpolación 1069.
[140] En otro ejemplo, el valor 1063 es un conjunto de coeficientes de reflexión, que incluye un primer coeficiente de reflexión de trama anterior R0n -1 y un primer coeficiente de reflexión de trama actual R0n. Además, el módulo de determinación de conjunto de factores de interpolación 1065 incluye dos umbrales, un primer umbral TH1 y un segundo umbral TH2 (que no debe confundirse con los umbrales TH1 y TH2 descritos en el ejemplo anterior y el listado (2)). Además, el módulo de determinación de conjunto de factores de interpolación 1065 incluye tres conjuntos de factores de interpolación 1089, donde un tercer conjunto de factores de interpolación es un conjunto de factores de interpolación por defecto. Además, el indicador de modo de predicción 1031 solo puede indicar uno de los dos modos de predicción para la trama actual en este ejemplo: predictivo o no predictivo.
[141] En este ejemplo, el rango es un rango multidimensional especificado por el primer umbral TH1 y el segundo umbral TH2. Si el primer coeficiente de reflexión de trama anterior R0n -1 es menor o igual que el primer umbral TH1 y el primer coeficiente de reflexión de trama actual R0n es mayor o igual que el segundo umbral TH2, entonces el valor 1063 está dentro del rango y el módulo de determinación de conjunto de factores de interpolación 1065 proporciona el conjunto de factores de interpolación por defecto (Interpolation_factor_set_C) como el conjunto de factores de interpolación 1069.
[142] Si el primer coeficiente de reflexión de trama anterior R0n -1 es mayor que el primer umbral TH1 y el primer coeficiente de reflexión de trama actual R0n es menor que el segundo umbral TH2, entonces el valor 1063 está fuera del rango. En este caso, el módulo de determinación de conjunto de factores de interpolación 1065 proporciona un primer conjunto de factores de interpolación 1089 como el conjunto de factores de interpolación 1069 si el indicador de modo de predicción 1031 indica que el modo de predicción de trama actual es no predictivo o un segundo conjunto de factores de interpolación 1089 como el conjunto de factores de interpolación 1069 si el indicador de modo de predicción 1031 indica que el modo de predicción de trama actual es predictivo.
[143] La figura 11 es un diagrama que ilustra un ejemplo de determinación de un conjunto de factores de interpolación. En particular, la figura 11 ilustra un ejemplo de determinación de un conjunto de factores de interpolación basado en una relación de energía 1191 y un indicador de modo de predicción de acuerdo con el listado (2). En este ejemplo, el primer umbral 1193a (TH1) es 0,3 y el segundo umbral 1193b (TH2) es 0,5. Como se ilustra, el rango 1195 está especificado por el segundo umbral 1193b (por ejemplo, el rango 1195 es mayor o igual que el segundo umbral 1193b) y el primer umbral 1193a está fuera del rango 1195.
[144] Si la relación de energía 1191 está dentro del rango 1195, el dispositivo electrónico 737 puede utilizar Interpolation_factor_set_E 1199, que es un conjunto de factores de interpolación por defecto. Si la relación de energía 1191 es menor que el primer umbral 1193a (fuera del rango 1195) y el modo de predicción de trama actual es no predictivo, el dispositivo electrónico 737 puede determinar Interpolation_factor_set_A 1197a. Si la relación de energía 1191 es menor que el primer umbral 1193a (fuera del rango 1195) y el modo de predicción de trama actual es predictivo, el dispositivo electrónico 737 puede determinar Interpolation_factor_set_B 1197b. Si la relación de energía 1191 es mayor o igual que el primer umbral 1193a y menor que el segundo umbral 1193b (fuera del rango 1195) y el modo de predicción de trama actual es no predictivo, el dispositivo electrónico 737 puede determinar Interpolation_factor_set_C 1197c. Si la relación de energía 1191 es mayor o igual que el primer umbral 1193a y menor que el segundo umbral 1193b (fuera del rango 1195) y el modo de predicción de trama actual es predictivo, el dispositivo electrónico 737 puede determinar Interpolation_factor_set_D 1197d.
[145] La figura 12 es un diagrama que ilustra otro ejemplo de determinación de un conjunto de factores de interpolación. En particular, la figura 12 ilustra un ejemplo de determinación de un conjunto de factores de interpolación basado en un primer coeficiente de reflexión de trama actual 1201, un primer coeficiente de reflexión de trama anterior 1203 y un indicador de modo de predicción. En este ejemplo, un primer umbral 1211a (TH1) es 0,65 y el segundo umbral 1211b (TH2) es -0,42. Como se ilustra, el rango 1209 es un rango multidimensional especificado por el primer umbral 1211a y el segundo umbral 1211b (por ejemplo, el rango 1209 es menor o igual que el primer umbral 1211a para la primera dimensión del coeficiente de reflexión de trama anterior y mayor o igual al segundo umbral 1211b para la primera dimensión del coeficiente de reflexión de trama actual).
[146] Si el valor indicado por el primer coeficiente de reflexión de trama anterior 1203 y el primer coeficiente de reflexión de trama actual está dentro del rango 1209, el dispositivo electrónico 737 puede utilizar un tercer conjunto de factores de interpolación 1207, que es un conjunto de factores de interpolación por defecto. Si el primer coeficiente de reflexión de trama anterior 1203 es mayor que el primer umbral 1211a y el primer coeficiente de reflexión de trama actual 1201 es menor que el segundo umbral 1211b (fuera del rango 1209) y el modo de predicción de trama actual es no predictivo, el dispositivo electrónico 737 puede determinar un primer conjunto de
5
10
15
20
25
30
35
40
45
50
55
60
65
factores de interpolación 1205a. Si el primer coeficiente de reflexión de trama anterior 1203 es mayor que el primer umbral 1211a y el primer coeficiente de reflexión de trama actual 1201 es menor que el segundo umbral 1211b (fuera del rango 1209) y el modo de predicción de la trama actual es predictivo, el dispositivo electrónico 737 puede determinar un segundo conjunto de factores de interpolación 1205b.
[147] Más específicamente, se comprueba que el primer coeficiente de reflexión de trama anterior 1203 sea > 0,65. Las tramas sordas típicamente tienen un primer coeficiente de reflexión positivo grande. Además, se comprueba que el primer coeficiente de reflexión de trama actual 1201 sea < -0,42. Las tramas sonoras típicamente tienen un primer coeficiente de reflexión negativo grande. El dispositivo electrónico 737 puede utilizar interpolación de LSF adaptativa en estas condiciones, donde el primer coeficiente de reflexión de la trama anterior 1203 indica que la trama anterior era una trama sorda y el primer coeficiente de reflexión de la trama actual 1201 indica que la trama actual es una trama sonora.
[148] En algunas configuraciones, se pueden usar umbrales adicionales o alternativos. Por ejemplo, un dispositivo electrónico puede utilizar interpolación de LSF adaptativa (por ejemplo, determinar otros conjuntos de factores de interpolación) en el escenario opuesto donde la trama anterior era sonora y la trama actual es sorda. Por ejemplo, si el primer coeficiente de reflexión de trama anterior es menor que un tercer umbral (por ejemplo, <-0.42, indicando una trama sonora) y el primer coeficiente de reflexión de trama actual es mayor que un cuarto umbral (por ejemplo,> 0.65, indicando una trama sorda), el dispositivo electrónico 737 puede determinar un cuarto conjunto de factores de interpolación si el modo de predicción de trama actual es no predictivo o puede determinar un quinto conjunto de factores de interpolación si el modo de predicción de trama actual es predictivo.
[149] La figura 13 incluye gráficos 1319a-c de ejemplos de formas de onda de voz sintetizadas. Los ejes horizontales de los gráficos 1319a-c se ilustran en el tiempo 1315 (por ejemplo, minutos, segundos, milisegundos). Los ejes verticales de los gráficos 1319a-c se ilustran en las respectivas amplitudes 1313a-c (por ejemplo, amplitudes de muestra de voltaje o corriente). La figura 13 indica una trama de 20 ms 1317 de las formas de onda de voz sintetizadas.
[150] El gráfico A 1319a ilustra un ejemplo de una forma de onda de voz sintetizada, donde no ha ocurrido borrado de una trama (por ejemplo, en un caso de canal limpio). En consecuencia, la trama 1317 para el gráfico A 1319a se puede observar como una referencia para comparación.
[151] El gráfico B 1319b ilustra otro ejemplo de una forma de onda de voz sintetizada. La trama 1317 en el gráfico B 1319b es una primera trama recibida correctamente después de una trama borrada. En el gráfico B 1319b, los sistemas y procedimientos divulgados en el presente documento no se aplican a la trama 1317. Como se puede observar, la trama 1317 en el gráfico B 1319b muestra artefactos 1321 que no aparecen en el caso descrito en relación con el gráfico A 1319a.
[152] El gráfico C 1319c ilustra otro ejemplo de una forma de onda de voz sintetizada. La trama 1317 en el gráfico C 1319c es la primera trama recibida correctamente después de una trama borrada. En el gráfico C 1319c, los sistemas y procedimientos divulgados en el presente documento se aplican a la trama 1317. Por ejemplo, el dispositivo electrónico 737 puede determinar un conjunto de factores de interpolación basado en el valor 763 y el indicador de modo de predicción 731 para la trama 1317 (por ejemplo, la trama n en la ecuación (2)). Como puede observarse, la trama 1317 en el gráfico C 1319c no exhibe los artefactos de voz 1321 de la trama 1317 en el gráfico B 1319b. Por ejemplo, el esquema de interpolación de LSF adaptativo descrito en el presente documento puede evitar o reducir los artefactos de voz en la voz sintetizada después de una trama borrada.
[153] La figura 14 incluye gráficos 1419a-c de ejemplos adicionales de formas de onda de voz sintetizadas. Los ejes horizontales de los gráficos 1419a-c se ilustran en el tiempo 1415 (por ejemplo, minutos, segundos, milisegundos). Los ejes verticales de los gráficos 1419a-c se ilustran en las respectivas amplitudes 1413a-c (por ejemplo, amplitudes de muestra de voltaje o corriente). La figura 14 indica una trama de 20 ms 1417 de las formas de onda de voz sintetizadas.
[154] El gráfico A 1419a ilustra un ejemplo de una forma de onda de voz sintetizada, donde no ha ocurrido borrado de una trama (por ejemplo, en un caso de canal limpio). En consecuencia, la trama 1417 para el gráfico A 1419a se puede observar como una referencia para comparación.
[155] El gráfico B 1419b ilustra otro ejemplo de una forma de onda de voz sintetizada. La trama 1417 en el gráfico B 1419b es una primera trama recibida correctamente después de una trama borrada. En el gráfico B 1419b, los sistemas y procedimientos divulgados en el presente documento no se aplican a la trama 1417. Como puede observarse, la trama 1417 en el gráfico B 1419b exhibe artefactos 1421 que no aparecen en el caso descrito en conexión con el gráfico A 1419a.
[156] El gráfico C 1419c ilustra otro ejemplo de una forma de onda de voz sintetizada. La trama 1417 en el gráfico C 1419c es la primera trama recibida correctamente después de una trama borrada. En el gráfico C 1419c, los sistemas y procedimientos divulgados en el presente documento se aplican a la trama 1417. Por ejemplo, el
5
10
15
20
25
30
35
40
45
50
55
60
65
dispositivo electrónico 737 puede determinar un conjunto de factores de interpolación basado en el valor 763 y el indicador de modo de predicción 731 para la trama 1417 (por ejemplo, la trama n en la ecuación (2)). Como puede observarse, la trama 1417 en el gráfico C 1419c no exhibe los artefactos de voz 1421 de la trama 1417 en el gráfico B 1419b. Por ejemplo, el esquema de interpolación de LSF adaptativo descrito en el presente documento puede evitar o reducir los artefactos de voz en la voz sintetizada después de una trama borrada.
[157] La figura 15 es un diagrama de bloques que ilustra una configuración de un dispositivo de comunicación inalámbrica 1537 en el que pueden implementarse sistemas y procedimientos para determinar un conjunto de factores de interpolación. El dispositivo de comunicación inalámbrica 1537 ilustrado en la figura 15 puede ser un ejemplo de al menos uno de los dispositivos electrónicos descritos en el presente documento. El dispositivo de comunicación inalámbrica 1537 puede incluir un procesador de aplicaciones 1533. El procesador de aplicaciones 1533 en general procesa instrucciones (por ejemplo, ejecuta programas) para realizar funciones en el dispositivo de comunicación inalámbrica 1537. El procesador de aplicaciones 1533 puede acoplarse a un codificador/descodificador de audio (códec) 1531.
[158] El códec de audio 1531 puede usarse para codificar y/o descodificar señales de audio. El códec de audio 1531 puede acoplarse al menos a un altavoz 1523, un auricular 1525, un conector de salida 1527 y/o al menos un micrófono 1529. Los altavoces 1523 pueden incluir uno o más transductores electroacústicos que convierten las señales eléctricas o electrónicas en señales acústicas. Por ejemplo, los altavoces 1523 pueden usarse para reproducir música o emitir una conversación de altavoz telefónico, etc. El auricular 1525 puede ser otro altavoz o transductor electroacústico que puede usarse para emitir señales acústicas (por ejemplo, señales de voz) a un usuario. Por ejemplo, el auricular 1525 puede usarse de tal forma que únicamente un usuario puede escuchar de forma fiable la señal acústica. El conector de salida 1527 puede usarse para acoplar otros dispositivos al dispositivo de comunicación inalámbrica 1537 para emitir audio, tales como los auriculares. Los altavoces 1523, el auricular 1525 y/o el conector de salida 1527 pueden usarse, en general, para emitir una señal de audio a partir del códec de audio 1531. El al menos un micrófono 1529 puede ser un transductor acústico-eléctrico que convierte una señal acústica (tal como la voz de un usuario) en señales eléctricas o electrónicas que se proporcionan al códec de audio 1531.
[159] El códec de audio 1531 (por ejemplo, un descodificador) puede incluir un módulo de determinación de valor 1561 y/o un módulo de determinación de conjunto de factores de interpolación 1565. El módulo de determinación de valor 1561 puede determinar un valor como se describió anteriormente. El módulo de determinación de conjunto de factores de interpolación 1565 puede determinar un conjunto de factores de interpolación como se describió anteriormente.
[160] El procesador de aplicaciones 1533 también puede acoplarse a un circuito de gestión de alimentación 1543. Un ejemplo del circuito de gestión de alimentación 1543 es un circuito integrado de gestión de alimentación (PMIC), que puede usarse para gestionar el consumo de alimentación eléctrica del dispositivo de comunicación inalámbrica 1537. El circuito de gestión de alimentación 1543 puede acoplarse a una batería 1545. La batería 1545 puede proporcionar, en general, alimentación eléctrica al dispositivo de comunicación inalámbrica 1537. Por ejemplo, la batería 1545 y/o el circuito de gestión de alimentación 1543 pueden acoplarse a al menos uno de los elementos incluidos en el dispositivo de comunicación inalámbrica 1537.
[161] El procesador de aplicaciones 1533 puede acoplarse a al menos un dispositivo de entrada 1547 para recibir una entrada. Los ejemplos de dispositivos de entrada 1547 incluyen sensores infrarrojos, sensores de imagen, acelerómetros, sensores táctiles, teclados, etc. Los dispositivos de entrada 1547 pueden permitir la interacción del usuario con el dispositivo de comunicación inalámbrica 1537. El procesador de aplicaciones 1533 también puede acoplarse a uno o más dispositivos de salida 1549. Los ejemplos de dispositivos de salida 1549 incluyen impresoras, proyectores, pantallas, dispositivos hápticos, etc. Los dispositivos de salida 1549 pueden permitir que el dispositivo de comunicación inalámbrica 1537 produzca una salida que puede experimentarse por un usuario.
[162] El procesador de aplicaciones 1533 puede acoplarse a una memoria de aplicaciones 1551. La memoria de aplicaciones 1551 puede ser cualquier dispositivo electrónico que sea capaz de almacenar información electrónica. Los ejemplos de una memoria de aplicaciones 1551 incluyen memoria de acceso aleatorio dinámico síncrono de doble velocidad de datos (DDRAM), memoria de acceso aleatorio dinámico síncrono (SDRAM), memoria flash, etc. La memoria de aplicaciones 1551 puede proporcionar almacenamiento para el procesador de aplicaciones 1533. Por ejemplo, la memoria de aplicaciones 1551 puede almacenar datos y/o instrucciones para el funcionamiento de programas que se ejecutan en el procesador de aplicaciones 1533.
[163] El procesador de aplicaciones 1533 puede acoplarse a un controlador de pantalla 1553 que, a su vez, puede acoplarse a una pantalla 1555. El controlador de pantalla 1553 puede ser un bloque de hardware que se usa para generar imágenes en la pantalla 1555. Por ejemplo, el controlador de pantalla 1553 puede trasladar instrucciones y/o datos desde el procesador de aplicaciones 1533 en imágenes que pueden presentarse en la pantalla 1555. Los ejemplos de la pantalla 1555 incluyen paneles de pantalla de cristal líquido (LCD), los paneles de diodos emisores de luz (LED), pantallas de tubo de rayos catódicos (CRT), pantallas de plasma, etc.
5
10
15
20
25
30
35
40
45
50
55
60
65
[164] El procesador de aplicaciones 1533 puede acoplarse a un procesador de banda base 1535. El procesador de banda base 1535 en general procesa señales de comunicación. Por ejemplo, el procesador de banda base 1535 puede desmodular y/o descodificar las señales recibidas. De forma adicional o alternativa, el procesador de banda base 1535 puede codificar y/o modular señales en preparación para la transmisión.
[165] El procesador de banda base 1535 puede acoplarse a la memoria de banda base 1557. La memoria de banda base 1557 puede ser cualquier dispositivo electrónico capaz de almacenar información electrónica, tal como SDRAM, DDRAM, memoria flash, etc. El procesador de banda base 1535 puede leer información (por ejemplo, instrucciones y/o datos) de y/o escribir información en la memoria de banda base 1557. De forma adicional o alternativa, el procesador de banda base 1535 puede usar instrucciones y/o datos almacenados en la memoria de banda base 1557 para realizar operaciones de comunicación.
[166] El procesador de banda base 1535 puede acoplarse a un transceptor de radiofrecuencia (RF) 1536. El transceptor RF 1536 puede acoplarse a un amplificador de potencia 1539 y una o más antenas 1541. El transceptor RF 1536 puede transmitir y/o recibir señales de radiofrecuencia. Por ejemplo, el transceptor RF 1536 puede transmitir una señal RF usando un amplificador de potencia 1539 y al menos una antena 1541. El transceptor RF 1536 también puede recibir señales RF usando la una o más antenas 1541. Debe observarse que uno o más de los elementos incluidos en el dispositivo de comunicación inalámbrica 1537 se pueden acoplar a un bus general que puede permitir la comunicación entre los elementos.
[167] La figura 16 ilustra diversos componentes que pueden utilizarse en un dispositivo electrónico 1637. Los componentes ilustrados pueden localizarse en la misma estructura física o en alojamientos o estructuras separados. El dispositivo electrónico 1637 descrito en relación con la figura 16 puede implementarse de acuerdo con uno o más de los dispositivos electrónicos descritos en el presente documento. El dispositivo electrónico 1637 incluye un procesador 1673. El procesador 1673 puede ser un microprocesador de propósito general con un único o varios chips (por ejemplo, un ARM), un microprocesador para fines especiales (por ejemplo, un procesador de señales digitales (DSP)), un microcontrolador, una matriz de puertas programable, etc. El procesador 1673 puede denominarse una unidad de procesamiento central (CPU). Aunque únicamente se muestra un único procesador 1673 en el dispositivo electrónico 1637 de la figura 16, en una configuración alternativa, puede usarse una combinación de procesadores (por ejemplo, un ARM y DSP).
[168] El dispositivo electrónico 1637 también incluye una memoria 1667 en comunicación electrónica con el procesador 1673. Es decir, el procesador 1673 puede leer información de y/o escribir información en la memoria 1667. La memoria 1667 puede ser cualquier componente electrónico capaz de almacenar información electrónica. La memoria 1667 puede ser una memoria de acceso aleatorio (RAM), una memoria de solo lectura (ROM), medios de almacenamiento de disco óptico, medios de almacenamiento ópticos, dispositivos de memoria flash en RAM, una memoria interna incluida con el procesador, una memoria de solo lectura programable (PROM), una memoria de solo lectura programable borrable (EPROM), PROM eléctricamente borrable (EEPROM), registros, y así sucesivamente, incluyendo combinaciones de los mismos.
[169] Los datos 1671a e instrucciones 1669a pueden almacenarse en la memoria 1667. Las instrucciones 1669a pueden incluir uno o más programas, rutinas, sub-rutinas, funciones, procedimientos, etc. Las instrucciones 1669a pueden incluir una única sentencia legible por ordenador o muchas sentencias legibles por ordenador. Las instrucciones 1669a pueden ejecutarse mediante el procesador 1673 para implementar uno o más de los procedimientos, funciones y métodos descritos anteriormente. La ejecución de las instrucciones 1669a puede implicar el uso de los datos 1671a que se almacenan en la memoria 1667. La figura 16 muestra algunas instrucciones 1669b y datos 1671b que se cargan en el procesador 1673 (que pueden proceder de las instrucciones 1669a y los datos 1671a).
[170] El dispositivo electrónico 1637 también puede incluir una o más interfaces de comunicación 1677 para comunicarse con otros dispositivos electrónicos. Las interfaces de comunicación 1677 pueden basarse en tecnología de comunicación alámbrica, tecnología de comunicación inalámbrica, o ambas. Los ejemplos de diferentes tipos de interfaces de comunicación 1677 incluyen un puerto serie, un puerto paralelo, un bus serie universal (USB), un adaptador Ethernet, una interfaz de bus IEEE 1394, una interfaz de bus de interfaz de sistema para ordenador pequeño (SCSI), un puerto de comunicación de infrarrojos (IR), un adaptador de comunicación inalámbrica Bluetooth, y así sucesivamente.
[171] El dispositivo electrónico 1637 también puede incluir uno o más dispositivos de entrada 1679 y uno o más dispositivos de salida 1683. Los ejemplos de diferentes tipos de dispositivos de entrada 1679 incluyen un teclado, un ratón, un micrófono, un dispositivo de control remoto, un botón, una palanca de mando, una rueda de desplazamiento, un panel táctil, un lápiz óptico, etc. Por ejemplo, el dispositivo electrónico 1637 puede incluir uno o más micrófonos 1681 para capturar señales acústicas. En una configuración, un micrófono 1681 puede ser un transductor que convierte señales acústicas (por ejemplo, voz, conversación) en señales eléctricas o electrónicas. Los ejemplos de diferentes tipos de dispositivos de salida 1683 incluyen un altavoz, una impresora, etc. Por ejemplo, el dispositivo electrónico 1637 puede incluir uno o más altavoces 1685. En una configuración, un altavoz 1685 puede ser un transductor que convierte las señales eléctricas o electrónicas en señales acústicas. Un tipo específico de
5
10
15
20
25
30
35
40
45
50
55
60
65
dispositivo de salida que puede incluirse típicamente en un dispositivo electrónico 1637 es un dispositivo de pantalla 1687. Los dispositivos de pantalla 1687 usados con las configuraciones divulgadas en el presente documento pueden utilizar cualquier tecnología de proyección de imágenes adecuada, tal como un tubo de rayos catódicos (CRT), una pantalla de cristal líquido (LCD), un diodo emisor de luz (LED), plasma de gas, electroluminiscencia, o similares. También puede proporcionarse un controlador de pantalla 1689, para convertir los datos almacenados en la memoria 1667 en texto, gráficos y/o imágenes en movimiento (según sea apropiado) que se muestran en el dispositivo de pantalla 1687.
[172] Los diversos componentes del dispositivo electrónico 1637 pueden acoplarse juntos mediante uno o más buses, que pueden incluir un bus de potencia, un bus de señal de control, un bus de señal de estado, un bus de datos, etc. Con fines de simplicidad, los diversos buses se ilustran en la figura 16 como un sistema de bus 1675. Se ha de observar que la figura 16 ilustra únicamente una configuración posible de un dispositivo electrónico 1637. Pueden utilizarse diversas arquitecturas y componentes diferentes.
[173] En la descripción anterior, los números de referencia se han usado a veces junto con diversos términos. Cuando se usa un término junto con un número de referencia, este puede pretender referirse a un elemento específico que se muestra en una o más de las figuras. Cuando se usa un término sin un número de referencia, este puede pretender referirse en general al término sin limitación a ninguna figura particular.
[174] El término "determinación" incluye una amplia variedad de acciones y, por lo tanto, "determinación" puede incluir el cálculo, la computación, el procesamiento, la obtención, la investigación, la consulta (por ejemplo, la consulta en una tabla, la consulta en una base de datos o en otra estructura de datos), la verificación y similares. Además, "determinación" puede incluir la recepción (por ejemplo, la recepción de información), el acceso, (por ejemplo, el acceso a datos de una memoria) y similares. Así mismo, "determinación" puede incluir la resolución, la selección, la elección, el establecimiento y similares.
[175] La expresión "en base a" no significa "únicamente en base a", a menos que se especifique expresamente lo contrario. En otras palabras, la frase "en base a" describe tanto "únicamente en base a" y "al menos en base a".
[176] Se ha de observar que una o más de las características, funciones, procedimientos, componentes, elementos, estructuras, etc., que se describen en relación con una cualquiera de las configuraciones descritas en el presente documento pueden combinarse con una o más de las funciones, procedimientos, componentes, elementos, estructuras, etc., que se describen en relación con cualquiera de las demás configuraciones descritas en el presente documento, cuando sean compatibles. En otras palabras, puede implementarse cualquier combinación compatible de las funciones, procedimientos, componentes, elementos, etc., que se describen en el presente documento de acuerdo con los sistemas y procedimientos divulgados en el presente documento.
[177] Las funciones descritas en el presente documento pueden almacenarse en forma de una o más instrucciones en un medio legible por procesador o legible por ordenador. La expresión "medio legible por ordenador" se refiere a cualquier medio disponible al que se pueda acceder mediante un ordenador o un procesador. A modo de ejemplo, y no de manera limitativa, tal medio puede comprender una RAM, ROM, EEPROM, memoria flash, CD-ROM u otro almacenamiento de disco óptico, almacenamiento de disco magnético u otros dispositivos de almacenamiento magnéticos, o cualquier otro medio que pueda usarse para almacenar código de programa deseado en forma de instrucciones o estructuras de datos y al que se pueda acceder por un ordenador. Los discos, tal y como se usan en el presente documento, incluyen discos compactos (CD), discos de láser, discos ópticos, discos versátiles digitales (DVD), discos flexibles y discos Blu-ray®, en el que los discos habitualmente reproducen datos de manera magnética o de manera óptica con láser. Ha de apreciarse que un medio legible por ordenador puede ser tangible y no transitorio. La expresión "producto de programa informático" se refiere a un dispositivo o procesador de computación junto con un código o instrucciones (por ejemplo, un "programa") que puede ejecutarse, procesarse o computarse mediante el dispositivo o procesador de computación. Como se usa en el presente documento, el término "código" puede referirse a software, instrucciones, código o datos que son ejecutables por un dispositivo o procesador de computación.
[178] El software o las instrucciones pueden transmitirse también a través de un medio de transmisión. Por ejemplo, si el software se transmite desde una sede de la Red, un servidor u otra fuente remota usando un cable coaxial, un cable de fibra óptica, un par trenzado, una línea de abonado digital (DSL) o tecnologías inalámbricas tales como infrarrojos, radio y microondas, entonces el cable coaxial, el cable de fibra óptica, el par trenzado, la DSL o las tecnologías inalámbricas tales como infrarrojos, radio y microondas se incluyen en la definición de medio de transmisión.
[179] Los procedimientos divulgados en el presente documento comprenden uno o más pasos o acciones para conseguir el procedimiento descrito. Los pasos y/o acciones del procedimiento pueden intercambiarse entre sí sin apartarse del alcance de las reivindicaciones. En otras palabras, a menos que se requiera un orden específico de los pasos o acciones para una operación apropiada del procedimiento que se describe, el orden y/o el uso de pasos y/o acciones específicos puede modificarse sin apartarse del alcance de las reivindicaciones.
[180] Se entenderá que las reivindicaciones no están limitadas a la configuración y a los componentes precisos ilustrados anteriormente. Pueden hacerse diversas modificaciones, cambios y variantes en la disposición, operación y detalles de los sistemas, procedimientos y aparatos descritos en el presente documento sin apartarse del alcance de las reivindicaciones.
5
Claims (15)
- 5101520253035404550556065REIVINDICACIONES1. Un procedimiento (800) para determinar un conjunto de factores de interpolación mediante un dispositivo electrónico, comprendiendo el procedimiento:determinar, para tramas de una señal de audio, una energía de trama actual y una energía de trama anterior;determinar (806), si la relación (933) de la energía de trama actual y la energía de trama anterior está fuera de un rango, un conjunto de factores de interpolación (769, 1069, 1197a-d) basado en la relación (933) de la energía de trama actual y la energía de trama anterior y un indicador de modo de predicción (1031);interpolar los vectores de frecuencia espectral de la línea de subtrama, LSF, (747) basándose en el conjunto de factores de interpolación para producir vectores LSF interpolados (751); ysintetizar (808) una señal de voz basada en los vectores LSF interpolados (751),en el que el indicador de modo de predicción es indicativo de si se utiliza una cuantificación predictiva o no predictiva para una trama.
- 2. El procedimiento según la reivindicación 1, en el que la determinación del conjunto de factores de interpolación se basa en un grado en el que la relación (933) de la energía de trama actual y la energía de trama anterior está fuera del rango.
- 3. El procedimiento según la reivindicación 2, en el que el grado en el que la relación (933) de energía de trama actual y energía de trama anterior está fuera del rango se determina basándose en uno o más umbrales (1087, 1193a-b) fuera del rango.
- 4. El procedimiento según la reivindicación 1, en el que la energía la trama actual y la energía de trama anterior se basan, respectivamente, en una energía de respuesta de impulso de filtro de síntesis de trama actual y una energía de respuesta de impulso de filtro de síntesis de trama anterior, y en el que la relación (933) de la energía de trama actual y de la energía de trama anterior se determina que está fuera del rango cuando la relación es menor que un umbral.
- 5. El procedimiento según la reivindicación 1, en el que el conjunto de factores de interpolación incluye dos o más factores de interpolación.
- 6. El procedimiento según la reivindicación 1, en el que la interpolación de vectores LSF de subtrama basados en el conjunto de factores de interpolación comprende multiplicar un vector LSF de extremo de trama actual por un primer factor de interpolación, multiplicar un vector LSF de extremo de trama anterior por un segundo factor de interpolación y multiplicar un vector LSF de mitad de trama actual por un factor de diferencia.
- 7. El procedimiento según la reivindicación 1, que comprende además utilizar (810) un conjunto de factores de interpolación por defecto si el valor no está fuera del rango.
- 8. El procedimiento según la reivindicación 1, en el que el indicador de modo de predicción indica un modo de predicción de trama actual.
- 9. El procedimiento según la reivindicación 1, en el que el indicador de modo de predicción indica un modo de predicción de trama anterior.
- 10. Un producto de programa informático para determinar un conjunto de factores de interpolación, comprendiendo el producto de programa informático un medio legible por ordenador tangible no transitorio que tiene instrucciones sobre el mismo para llevar a cabo un procedimiento de acuerdo con cualquiera de las reivindicaciones 1 a 9.
- 11. Un aparato para determinar un conjunto de factores de interpolación, comprendiendo el aparato:medios para determinar, para las tramas de una señal de audio, una energía de trama actual y una energía de trama anterior;medios para determinar (806), si la relación (933) de energía de trama actual y energía de trama anterior está fuera de un rango, un conjunto de factores de interpolación (769) basado en la relación (933) de energía de trama actual y trama anterior y un indicador de modo de predicción;medios para interpolar vectores de frecuencia espectral de línea de subtrama, LSF, (747) basándose en el conjunto de factores de interpolación (769) para producir vectores LSF interpolados (751); y101520medios para sintetizar (808) una señal de voz basada en los vectores LSF interpolados (751),en el que el indicador de modo de predicción es indicativo de si se utiliza una cuantificación predictiva o nopredictiva para una trama.
- 12. El aparato de la reivindicación 11, en el que la determinación del conjunto de factores de interpolación se basa en un grado en el que la relación (933) de la energía de trama actual y la energía de trama anterior está fuera del rango.
- 13. El aparato de la reivindicación 12, en el que el grado en el que la relación (933) de la energía de trama actual y la energía de trama anterior está fuera del rango se determina basándose en uno o más umbrales (1087, 1193a-b, 1211 a-b) fuera del rango.
- 14. El aparato de la reivindicación 11, el que la energía de trama actual y la energía de trama anterior se basan, respectivamente, en una energía de respuesta de impulso de filtro de síntesis de trama actual y una energía de respuesta de impulso de filtro de síntesis de trama anterior, y en el que la relación (933) de la energía de trama actual y la energía de trama anterior se determina que está fuera del rango cuando la relación es menor que un umbral.
- 15. El aparato de la reivindicación 11 que comprende medios para llevar a cabo un procedimiento de acuerdo con cualquiera de las reivindicaciones 5 a 9.
Applications Claiming Priority (5)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US201361767461P | 2013-02-21 | 2013-02-21 | |
| US201361767461P | 2013-02-21 | ||
| US14/015,834 US9336789B2 (en) | 2013-02-21 | 2013-08-30 | Systems and methods for determining an interpolation factor set for synthesizing a speech signal |
| US201314015834 | 2013-08-30 | ||
| PCT/US2013/057867 WO2014130084A1 (en) | 2013-02-21 | 2013-09-03 | Systems and methods for determining an interpolation factor set |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| ES2663013T3 true ES2663013T3 (es) | 2018-04-10 |
Family
ID=51351892
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| ES13770729.5T Active ES2663013T3 (es) | 2013-02-21 | 2013-09-03 | Sistemas y procedimientos para determinar un conjunto de factores de interpolación |
Country Status (23)
| Country | Link |
|---|---|
| US (1) | US9336789B2 (es) |
| EP (1) | EP2959483B1 (es) |
| JP (1) | JP6109968B2 (es) |
| KR (1) | KR101750645B1 (es) |
| CN (1) | CN105074820B (es) |
| AU (1) | AU2013378790B2 (es) |
| BR (1) | BR112015020134B1 (es) |
| CA (1) | CA2898171C (es) |
| DK (1) | DK2959483T3 (es) |
| ES (1) | ES2663013T3 (es) |
| HU (1) | HUE036987T2 (es) |
| IL (1) | IL240159B (es) |
| MY (1) | MY182586A (es) |
| PH (1) | PH12015501619B1 (es) |
| PL (1) | PL2959483T3 (es) |
| PT (1) | PT2959483T (es) |
| RU (1) | RU2607260C1 (es) |
| SG (1) | SG11201505450XA (es) |
| SI (1) | SI2959483T1 (es) |
| TW (1) | TWI518677B (es) |
| UA (1) | UA114233C2 (es) |
| WO (1) | WO2014130084A1 (es) |
| ZA (1) | ZA201506959B (es) |
Families Citing this family (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| ES2726193T3 (es) * | 2014-08-28 | 2019-10-02 | Nokia Technologies Oy | Cuantificación de parámetros de audio |
| 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 |
| CN111554322B (zh) * | 2020-05-15 | 2025-05-27 | 腾讯科技(深圳)有限公司 | 一种语音处理方法、装置、设备及存储介质 |
| US12475901B2 (en) * | 2020-10-05 | 2025-11-18 | Nokia Technologies Oy | Quantisation of audio parameters |
Family Cites Families (26)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US4975956A (en) | 1989-07-26 | 1990-12-04 | Itt Corporation | Low-bit-rate speech coder using LPC data reduction processing |
| US5012518A (en) | 1989-07-26 | 1991-04-30 | Itt Corporation | Low-bit-rate speech coder using LPC data reduction processing |
| US5832436A (en) * | 1992-12-11 | 1998-11-03 | Industrial Technology Research Institute | System architecture and method for linear interpolation implementation |
| US5502713A (en) * | 1993-12-07 | 1996-03-26 | Telefonaktiebolaget Lm Ericsson | Soft error concealment in a TDMA radio system |
| FR2729247A1 (fr) * | 1995-01-06 | 1996-07-12 | Matra Communication | Procede de codage de parole a analyse par synthese |
| JPH09152896A (ja) | 1995-11-30 | 1997-06-10 | Oki Electric Ind Co Ltd | 声道予測係数符号化・復号化回路、声道予測係数符号化回路、声道予測係数復号化回路、音声符号化装置及び音声復号化装置 |
| KR20000064913A (ko) | 1997-02-10 | 2000-11-06 | 요트.게.아. 롤페즈 | 저ㄴ송 시스템, 수신기, 및 재구성된 음성 신호 유도 방법 |
| EP0878790A1 (en) | 1997-05-15 | 1998-11-18 | Hewlett-Packard Company | Voice coding system and method |
| US6604070B1 (en) | 1999-09-22 | 2003-08-05 | Conexant Systems, Inc. | System of encoding and decoding speech signals |
| US6574593B1 (en) | 1999-09-22 | 2003-06-03 | Conexant Systems, Inc. | Codebook tables for encoding and decoding |
| AU7486200A (en) * | 1999-09-22 | 2001-04-24 | Conexant Systems, Inc. | Multimode speech encoder |
| US6615169B1 (en) * | 2000-10-18 | 2003-09-02 | Nokia Corporation | High frequency enhancement layer coding in wideband speech codec |
| US20040083097A1 (en) | 2002-10-29 | 2004-04-29 | Chu Wai Chung | Optimized windows and interpolation factors, and methods for optimizing windows, interpolation factors and linear prediction analysis in the ITU-T G.729 speech coding standard |
| JP4365653B2 (ja) * | 2003-09-17 | 2009-11-18 | パナソニック株式会社 | 音声信号送信装置、音声信号伝送システム及び音声信号送信方法 |
| US8725501B2 (en) * | 2004-07-20 | 2014-05-13 | Panasonic Corporation | Audio decoding device and compensation frame generation method |
| US8260611B2 (en) * | 2005-04-01 | 2012-09-04 | Qualcomm Incorporated | Systems, methods, and apparatus for highband excitation generation |
| FR2884989A1 (fr) * | 2005-04-26 | 2006-10-27 | France Telecom | Procede d'adaptation pour une interoperabilite entre modeles de correlation a court terme de signaux numeriques. |
| US8260609B2 (en) * | 2006-07-31 | 2012-09-04 | Qualcomm Incorporated | Systems, methods, and apparatus for wideband encoding and decoding of inactive frames |
| US8532984B2 (en) * | 2006-07-31 | 2013-09-10 | Qualcomm Incorporated | Systems, methods, and apparatus for wideband encoding and decoding of active frames |
| AU2007318506B2 (en) * | 2006-11-10 | 2012-03-08 | Iii Holdings 12, Llc | Parameter decoding device, parameter encoding device, and parameter decoding method |
| CN100550712C (zh) * | 2007-11-05 | 2009-10-14 | 华为技术有限公司 | 一种信号处理方法和处理装置 |
| US20090319263A1 (en) | 2008-06-20 | 2009-12-24 | Qualcomm Incorporated | Coding of transitional speech frames for low-bit-rate applications |
| GB2466670B (en) | 2009-01-06 | 2012-11-14 | Skype | Speech encoding |
| US8428938B2 (en) * | 2009-06-04 | 2013-04-23 | Qualcomm Incorporated | Systems and methods for reconstructing an erased speech frame |
| KR101461774B1 (ko) | 2010-05-25 | 2014-12-02 | 노키아 코포레이션 | 대역폭 확장기 |
| CN103620675B (zh) * | 2011-04-21 | 2015-12-23 | 三星电子株式会社 | 对线性预测编码系数进行量化的设备、声音编码设备、对线性预测编码系数进行反量化的设备、声音解码设备及其电子装置 |
-
2013
- 2013-08-30 US US14/015,834 patent/US9336789B2/en active Active
- 2013-09-03 AU AU2013378790A patent/AU2013378790B2/en active Active
- 2013-09-03 CA CA2898171A patent/CA2898171C/en active Active
- 2013-09-03 MY MYPI2015702607A patent/MY182586A/en unknown
- 2013-09-03 CN CN201380073344.9A patent/CN105074820B/zh active Active
- 2013-09-03 HU HUE13770729A patent/HUE036987T2/hu unknown
- 2013-09-03 ES ES13770729.5T patent/ES2663013T3/es active Active
- 2013-09-03 PL PL13770729T patent/PL2959483T3/pl unknown
- 2013-09-03 SI SI201330951T patent/SI2959483T1/en unknown
- 2013-09-03 SG SG11201505450XA patent/SG11201505450XA/en unknown
- 2013-09-03 PT PT137707295T patent/PT2959483T/pt unknown
- 2013-09-03 WO PCT/US2013/057867 patent/WO2014130084A1/en not_active Ceased
- 2013-09-03 EP EP13770729.5A patent/EP2959483B1/en active Active
- 2013-09-03 JP JP2015559225A patent/JP6109968B2/ja active Active
- 2013-09-03 UA UAA201509011A patent/UA114233C2/uk unknown
- 2013-09-03 DK DK13770729.5T patent/DK2959483T3/en active
- 2013-09-03 BR BR112015020134-2A patent/BR112015020134B1/pt active IP Right Grant
- 2013-09-03 KR KR1020157024862A patent/KR101750645B1/ko active Active
- 2013-09-03 RU RU2015139814A patent/RU2607260C1/ru active
-
2014
- 2014-01-10 TW TW103101043A patent/TWI518677B/zh active
-
2015
- 2015-07-22 PH PH12015501619A patent/PH12015501619B1/en unknown
- 2015-07-27 IL IL240159A patent/IL240159B/en active IP Right Grant
- 2015-09-18 ZA ZA2015/06959A patent/ZA201506959B/en unknown
Also Published As
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| CA2897938C (en) | Systems and methods for mitigating potential frame instability | |
| ES2758501T3 (es) | Sistemas y procedimientos para controlar una velocidad de codificación promedio | |
| US9208775B2 (en) | Systems and methods for determining pitch pulse period signal boundaries | |
| ES2663013T3 (es) | Sistemas y procedimientos para determinar un conjunto de factores de interpolación | |
| HK1212500B (zh) | 用於确定内插因数组的系统和方法 | |
| HK1212087B (zh) | 用於减低潜在的帧不稳定性的系统和方法 |