ES2347473T3 - Procedimiento y aparato de deteccion de componentes tonales de señales de audio. - Google Patents

Procedimiento y aparato de deteccion de componentes tonales de señales de audio. Download PDF

Info

Publication number
ES2347473T3
ES2347473T3 ES06850882T ES06850882T ES2347473T3 ES 2347473 T3 ES2347473 T3 ES 2347473T3 ES 06850882 T ES06850882 T ES 06850882T ES 06850882 T ES06850882 T ES 06850882T ES 2347473 T3 ES2347473 T3 ES 2347473T3
Authority
ES
Spain
Prior art keywords
value
signal processing
coding
voice
audio according
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
ES06850882T
Other languages
English (en)
Inventor
Sharath Manjunath
Ananthapadmanabhan Kandhadai
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Qualcomm Inc
Original Assignee
Qualcomm Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Qualcomm Inc filed Critical Qualcomm Inc
Application granted granted Critical
Publication of ES2347473T3 publication Critical patent/ES2347473T3/es
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L19/00Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
    • G10L19/04Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis using predictive techniques
    • G10L19/08Determination or coding of the excitation function; Determination or coding of the long-term prediction parameters
    • G10L19/12Determination or coding of the excitation function; Determination or coding of the long-term prediction parameters the excitation function being a code excitation, e.g. in code excited linear prediction [CELP] vocoders
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L19/00Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
    • G10L19/04Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis using predictive techniques
    • G10L19/16Vocoder architecture
    • G10L19/18Vocoders using multiple modes
    • G10L19/22Mode decision, i.e. based on audio signal content versus external parameters
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L19/00Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
    • G10L19/02Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis using spectral analysis, e.g. transform vocoders or subband vocoders
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L19/00Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
    • G10L19/04Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis using predictive techniques
    • G10L19/16Vocoder architecture
    • G10L19/18Vocoders using multiple modes
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L25/00Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00
    • G10L25/78Detection of presence or absence of voice signals

Abstract

Un procedimiento de procesamiento de señales de audio, comprendiendo dicho procedimiento: llevar a cabo una operación de codificación en una porción de tiempo de una señal de audio digitalizada, en el que dicha operación de codificación incluye una pluralidad ordenada de iteraciones; en cada una de la pluralidad ordenada de iteraciones, calcular un valor de una medida de ganancia de la operación de codificación; para cada uno de una primera pluralidad de valores de umbral, determinar la iteración, entre la pluralidad ordenada, en la que se produce un cambio en un estado de una primera relación entre el valor calculado y el valor de umbral, y almacenar una indicación de la iteración; y comparar al menos una de las indicaciones almacenadas con al menos un valor de umbral correspondiente.

Description

Procedimiento y aparato de detección de componentes tonales de señales de audio.
Solicitudes relacionadas Campo
La presente divulgación se refiere al procesamiento de señales.
Antecedentes
La transmisión de voz mediante técnicas digitales se ha generalizado, particularmente en la telefonía de larga distancia, la telefonía por conmutación de paquetes tal como voz sobre IP (VoIP) y la telefonía de radio digital tal como la telefonía celular. Tal proliferación ha creado interés en determinar la cantidad mínima de información que puede enviarse por un canal manteniendo al mismo tiempo la calidad percibida de la voz reconstruida. Si la voz se transmite simplemente mediante muestro y digitalización, puede requerirse una velocidad de transmisión de datos del orden de sesenta y cuatro kilobits por segundo (kbps) para conseguir una calidad de voz comparable a la de un teléfono por cable analógico convencional. Sin embargo, a través del uso del análisis de voz, seguido de una codificación, transmisión y resíntesis apropiadas en el receptor, puede conseguirse una reducción significativa en la velocidad de transmisión de datos.
Los dispositivos que están configurados para comprimir la voz mediante la extracción de parámetros relacionados con un modelo de generación de voz humana se denominan "codificadores de voz". Un codificador de voz incluye normalmente un codificador y un descodificador. El codificador divide la señal de voz entrante en bloques de tiempo (o "tramas"), analiza cada trama para extraer determinados parámetros relevantes y cuantifica los parámetros en una representación binaria, tal como un conjunto de bits o un paquete de datos binarios. Los paquetes de datos se transmiten por el canal de comunicación (es decir, una conexión de red cableada o inalámbrica) hasta un receptor que incluye un descodificador. El descodificador recibe y procesa paquetes de datos, los descuantifica para generar los parámetros y vuelve a crear tramas de voz utilizando los parámetros descuantificados.
La función del codificador de voz es comprimir la señal de voz digitalizada en una señal de baja velocidad binaria eliminando las redundancias naturales que son inherentes en la voz. La compresión digital se consigue representando la trama de voz de entrada con un conjunto de parámetros y utilizando cuantificación para representar los parámetros con un conjunto de bits. Si la trama de voz de entrada presenta un número de bits N_{i} y el paquete de datos correspondiente generado por el codificador de voz presenta un número de bits N_{o}, el factor de compresión conseguido por el codificador de voz es C_{r} = N_{i}/N_{o}. El reto es mantener una alta calidad de voz de la voz descodificada obteniendo al mismo tiempo el factor de compresión objetivo. El rendimiento de un codificador de voz depende de (1) la calidad del funcionamiento del modelo de voz, o de la combinación del proceso de análisis y el proceso de síntesis descritos anteriormente, y (2) de la calidad del proceso de cuantificación de parámetros llevado a cabo a la velocidad binaria objetivo de N_{o} bits por trama. El objetivo del modelo de voz es por tanto capturar el contenido de información de la señal de voz, para proporcionar una calidad de voz objetivo, con un pequeño conjunto de parámetros para cada
trama.
Los codificadores de voz pueden implementarse como codificadores en el dominio de tiempo, los cuales tratan de capturar la forma de onda de la voz en el dominio de tiempo empleando un procesamiento de alta resolución en el tiempo para codificar pequeños segmentos de voz (normalmente subtramas de cinco milisegundos (ms)) a la vez. Para cada subtrama se obtiene un representante de alta precisión a partir de un espacio de libro de códigos mediante varios algoritmos de búsqueda conocidos en la técnica. Como alternativa, los codificadores de voz pueden implementarse como codificadores en el dominio de frecuencia, los cuales llevan a cabo un proceso de análisis para capturar el espectro de voz a corto plazo de la trama de voz de entrada con un conjunto de parámetros y utilizan un proceso de síntesis correspondiente para volver a crear la forma de onda de voz a partir de los parámetros espectrales. El cuantificador de parámetros conserva los parámetros representándolos con representaciones almacenadas de vectores de código según técnicas de cuantificación conocidas, tales como las descritas en el documento Vector Quantization and Signal Compression (1992) de A. Gersho y R.M. Gray.
Un codificador de voz en el dominio de tiempo ampliamente conocido es el codificador predictivo lineal excitado por código (CELP). Un ejemplo de un codificador de este tipo se describe en el documento Digital Processing of Speech Signals 396-453 (1978), de L.B. Rabiner y R.W. Schafer. En un codificador CELP se eliminan las correlaciones, o redundancias, a corto plazo de la señal de voz mediante un análisis de predicción lineal (LP), el cual obtiene los coeficientes de un filtro de formantes a corto plazo. Aplicando el filtro de predicción a corto plazo a la trama de voz entrante se genera una señal de residuo LP, la cual se modela y se cuantifica adicionalmente con parámetros de filtro de predicción a largo plazo y un libro de códigos estocástico posterior. Por lo tanto, la codificación CELP divide la tarea de codificar la forma de onda de voz de dominio de tiempo en distintas tareas de codificación de los coeficientes de filtro a corto plazo LP y de codificación del residuo LP. La codificación en el dominio de tiempo puede llevarse a cabo a una velocidad fija (es decir, usando el mismo número de bits N_{o} para cada trama) o a una velocidad variable (en la que se utilizan diferentes velocidades binarias para diferente tipos de contenidos de trama). Los codificadores de velocidad variable tratan de utilizar solamente la cantidad de bits necesaria para codificar los parámetros de códec a un nivel adecuado para obtener una calidad objetivo. Un codificador CELP de velocidad variable a modo de ejemplo se describe en la patente estadounidense número 5.414.796 (Jacobs et al., expedida el 9 de mayo de 1995).
Los codificadores en el dominio de tiempo, tales como el codificador CELP, se basan normalmente en un alto número de bits N_{o} por trama para conservar la exactitud de la forma de onda de la voz en el dominio de tiempo. Tales codificadores proporcionan normalmente una excelente calidad de voz siempre que el número de bits N_{o} por trama sea relativamente grande (por ejemplo, 8 kbps o superior), y se utilizan de manera satisfactoria en aplicaciones comerciales de alta velocidad. Sin embargo, a bajas velocidades binarias (4 kbps o inferiores), un codificador en el dominio de tiempo puede fallar a la hora de conservar una alta calidad y un rendimiento robusto debido al número limitado de bits disponibles. Por ejemplo, el limitado espacio de libro de códigos disponible a una baja velocidad binaria puede afectar a la capacidad de correspondencia de formas de onda de un codificador convencional en el dominio de tiempo.
Un codificador de voz puede estar configurado para seleccionar un modo y/o una velocidad de codificación particulares según una o más cualidades de la señal que va a codificarse. Por ejemplo, un codificador de voz puede estar configurado para distinguir tramas que contienen voz de tramas que contienen señales que no son de voz, tales como tonos de señalización, y para utilizar diferentes modos de codificación para codificar las tramas de voz y las tramas que no son de voz.
La patente estadounidense número 4.689.760 (Lee et al.) da a conocer un procedimiento que puede aplicarse en la descodificación de audio para discriminar señales DTMF con respecto a señales de voz estableciendo umbrales de la energía residual de predicción lineal como una medida de ganancia de codificación. En particular, la velocidad del descenso de energía residual desde la primera hasta la última iteración de las iteraciones llevadas a cabo para una única trama de señal de audio se toma como una indicación para la discriminación voz-tono.
Resumen
Según la invención se proporciona un procedimiento de procesamiento de señales de audio como el expuesto en la reivindicación 1, un medio de almacenamiento de datos como el expuesto en la reivindicación 17 y un aparato para procesar señales de audio como el expuesto en la reivindicación 18. Realizaciones preferidas se exponen en las reivindicaciones dependientes.
Breve descripción de los dibujos
La Figura 1 muestra un ejemplo de un espectro de una señal de voz.
La Figura 2 muestra un ejemplo de un espectro de una señal tonal.
La Figura 3 muestra un diagrama de flujo de un procedimiento M100 según una configuración desvelada.
La Figura 4A muestra un diagrama esquemático de una realización de forma directa de un filtro de síntesis.
La Figura 4B muestra un diagrama esquemático de una realización reticular de un filtro de síntesis.
La Figura 5 muestra un diagrama de flujo de una implementación M110 del procedimiento M100.
La Figura 6 muestra un listado de seudocódigo de una implementación del algoritmo de Leroux-Gueguen.
La Figura 7 muestra un listado de seudocódigo que incluye implementaciones de tareas T100 y T200.
La Figura 8 muestra un ejemplo de una estructura lógica para una tarea T300.
Las Figuras 9A y 9B muestran ejemplos de diagramas de flujo para la tarea T300.
La Figura 10 muestra un listado de seudocódigo que incluye implementaciones de las tareas T100, T200 y T300.
La Figura 11 muestra un ejemplo de un módulo lógico para la tarea T300.
La Figura 12 muestra un ejemplo de un procedimiento de prueba para una configuración de una tarea T400.
La Figura 13 muestra un diagrama de flujo de una implementación de la tarea T400.
La Figura 14 muestra gráficos de una medida de ganancia G_{i} frente al índice de iteración i para cuatro ejemplos diferentes A a D de porciones de tiempo.
La Figura 15 muestra un ejemplo de una estructura lógica para la tarea T400.
La Figura 16A muestra un diagrama de bloques de un aparato A100 según una configuración desvelada.
La Figura 16B muestra un diagrama de bloques de una implementación A200 del aparato A100.
La Figura 17 muestra un diagrama de un sistema de telefonía celular.
La Figura 18 muestra un diagrama de un sistema que incluye dos codificadores y dos descodificadores.
La Figura 19A muestra un diagrama de bloques de un codificador.
La Figura 19B muestra un diagrama de bloques de un descodificador.
La Figura 20 muestra un diagrama de flujo de tareas para la selección de modo.
La Figura 21 muestra un diagrama de flujo de otra implementación de la tarea T400.
La Figura 22 muestra un diagrama de flujo de una implementación adicional de la tarea T400.
Descripción detallada
Sistemas, procedimientos y aparatos para la detección de señales que presentan picos espectrales con un ancho de banda estrecho (también denominados "componentes tonales" o "tonos") se describen en este documento con referencia a las reivindicaciones adjuntas. El alcance de las configuraciones descritas incluye implementaciones que llevan a cabo tal detección utilizando parámetros de un esquema de análisis de codificación de predicción lineal (LPC) como el utilizado normalmente en codificadores de voz, reduciendo de ese modo la complejidad computacional a diferencia de un enfoque que utiliza un detector de tonos aparte.
A no ser que quede expresamente limitado por su contexto, el término "calcular" se utiliza en este documento para indicar cualquiera de sus significados habituales, tal como computar, generar y seleccionar a partir de una lista de valores. Cuando se utilice el término "comprender" en la presente descripción y en las reivindicaciones, no excluye otros elementos u operaciones. El término "A se basa en B" se utiliza para indicar cualquiera de sus significados habituales, incluyendo los casos (i) "A es igual a B" y (ii) "A se basa al menos en B".
Ejemplos de tonos incluyen señales especiales encontradas con frecuencia en telefonía, tales como tonos de progreso de llamada (por ejemplo, un tono de llamada, una señal de ocupado, un tono de no disponibilidad de número, un tono de protocolo de facsímil u otro tono de señalización). Otros ejemplos de componentes tonales son las señales de multifrecuencia de doble tono (DTMF), las cuales incluyen una frecuencia del conjunto {697 Hz, 770 Hz, 852 Hz, 941 Hz} y una frecuencia del conjunto {1209 Hz, 1336 Hz, 1477 Hz, 1633 Hz}. Tales señales DTMF se utilizan comúnmente para la señalización de marcación por tonos. También es común que un usuario utilice un teclado para generar tonos DTMF durante una llamada telefónica para interactuar con un sistema automático en el otro extremo de la llamada, tal como un sistema de correo de voz u otro sistema que tenga un mecanismo de selección automático tal como un menú.
En general, una señal tonal se define por los inventores como una señal que contiene muy pocos tonos (por ejemplo, menos de ocho). La envolvente espectral de una señal tonal presenta picos agudos en las frecuencias de esos tonos, donde el ancho de banda de la envolvente espectral en torno a un pico de este tipo (como los mostrados en el ejemplo de la Figura 2) es mucho más pequeño que el ancho de banda de la envolvente espectral en torno a un pico normal de una señal de voz (como los mostrados en el ejemplo de la Figura 1). Por ejemplo, el ancho de banda de 3 dB de un pico correspondiente a un componente tonal puede ser inferior a 100 Hz y puede ser inferior a 50 Hz, 20 Hz, 10 Hz o incluso 5 Hz.
Puede ser deseable detectar si la entrada de señal en un codificador de voz es una señal tonal en lugar de algún tipo de señal de voz. Normalmente, las señales tonales no pasan muy bien a través de un codificador de voz, especialmente a bajas velocidades binarias, y el resultado después de la descodificación no suena normalmente como los tonos. Las envolventes espectrales de las señales tonales son diferentes de las envolventes de las señales de voz, y los procesos de clasificación tradicionales de los códecs de voz pueden fallar a la hora de seleccionar un modo de codificación adecuado para tramas que contengan componentes tonales. Por lo tanto, puede ser deseable detectar una señal tonal de manera que pueda usarse un modo apropiado para codificarla.
Por ejemplo, algunos códecs de voz utilizan un modo de predicción lineal excitada por ruido (NELP) para codificar tramas sordas. Aunque un modo NELP puede ser adecuado para formas de onda que se asemejen al ruido, es posible que tal modo produzca un mal resultado si se utiliza para codificar una señal tonal. Los modos de interpolación de forma de onda (WI), los cuales incluyen el modo de interpolación de forma de onda de prototipo (PWI) y el modo de periodo de tono de prototipo (PPP), son muy adecuados para codificar formas de onda que tengan un fuerte componente periódico. Sin embargo, en comparación con otro modo de codificación a la misma velocidad, un modo NELP o WI puede producir un mal resultado si se utiliza para codificar una señal que tenga dos o más componentes tonales, tal como una que incluye una señal DTMF. Es posible que el uso de tales modos de codificación a bajas velocidades binarias (tales como media velocidad (por ejemplo, 4 kbps), un cuarto de velocidad (por ejemplo, 2 kbps), o inferiores), las cuales pueden ser deseables para aumentar la capacidad del sistema, produzca un rendimiento incluso peor para señales tonales. Puede ser deseable utilizar un modo de codificación que pueda aplicarse de manera más general, tal como un modo de predicción lineal excitada por código (CELP) o un modo de codificación de voz sinusoidal, para codificar una señal tonal.
También puede ser deseable controlar la velocidad a la que se codifica una señal tonal. Tal control puede ser especialmente deseable en un codificador de voz de velocidad variable que elija una de entre una pluralidad de velocidades para codificar la trama de entrada. Por ejemplo, con el fin de conseguir una reproducción de alta calidad de una señal especial tal como un tono de llamada o un tono DTMF, un códec de voz de velocidad variable puede configurarse para usar la velocidad más alta posible, o una velocidad sustancialmente alta, o un modo de codificación especial para codificar una señal en la que se haya detectado la presencia de al menos uno tono.
Pueden surgir problemas cuando se lleva a cabo un esquema de codificación predictivo lineal (LPC) sobre una señal tonal. Por ejemplo, los fuertes picos espectrales de una señal tonal pueden volver inestable el filtro LPC correspondiente, pueden complicar la conversión de los coeficientes LPC a otra forma para la transmisión (tal como pares espectrales lineales, frecuencias espectrales lineales, o pares espectrales de inmitancia), y/o pueden reducir la eficacia de cuantificación. Por lo tanto, puede ser deseable detectar una señal tonal de manera que el esquema LPC pueda modificarse (por ejemplo, poniendo a cero parámetros del modelo LPC que estén por encima de un orden particular).
La Figura 3 muestra un diagrama de flujo de un procedimiento M100 según una configuración desvelada. La tarea T100 lleva a cabo una operación de codificación iterativa, tal como un análisis LPC, en una porción de tiempo de una señal de audio digitalizada (donde T100-i indica la iteración i-ésima y r indica el número de iteraciones). La porción de tiempo, o "trama", se selecciona normalmente para que sea lo bastante corta como para que pueda esperarse que la envolvente espectral de la señal permanezca relativamente estacionaria. Una longitud de trama típica es de 20 milisegundos, lo que corresponde a 160 muestras a una tasa de muestreo típica de 8 kHz, aunque puede utilizarse cualquier longitud de trama o tasa de muestreo que se consideren adecuadas para la aplicación particular. En algunas aplicaciones, las tramas no están solapadas, mientras que en otras aplicaciones se utiliza un esquema de tramas solapadas. En un ejemplo de un esquema de tramas solapadas, cada trama se expande para incluir muestras de la trama anterior y de la trama futura adyacentes. En otro ejemplo, cada trama se expande solamente para incluir muestras de la trama anterior adyacente. En los ejemplos particulares descritos posteriormente se adopta un esquema de tramas no solapadas.
\vskip1.000000\baselineskip
Un esquema de codificación de predicción lineal (LPC) modela una señal que va a codificarse s como una suma de una señal de excitación u y una combinación lineal de p muestras anteriores en la señal, como en la siguiente expresión:
1
\vskip1.000000\baselineskip
en la que G denota un factor de ganancia para la señal de entrada s, y n denota una muestra o índice de tiempo. Según un esquema de este tipo, la señal de entrada s puede modelarse como una señal origen de excitación u que activa un filtro todo polos (o autorregresivo) de orden p que presenta la siguiente forma:
2
\vskip1.000000\baselineskip
Para cada porción de tiempo (por ejemplo, trama) de la señal de entrada, la tarea T100 extrae un conjunto de parámetros de modelo que estiman la envolvente espectral a largo plazo de la señal. Normalmente, tal extracción se lleva a cabo a una velocidad de 50 tramas por segundo. La información que caracteriza estos parámetros se transfiere en alguna forma a un descodificador, posiblemente con otros datos tales como información que caracteriza a la señal de excitación u, donde se utiliza para volver a crear la señal de entrada s.
El orden p del modelo LPC puede ser cualquier valor considerado adecuado para la aplicación particular, tal como 4, 6, 8, 10, 12, 16, 20 ó 24. En algunas configuraciones, la tarea T100 está configurada para extraer los parámetros de modelo tal como un conjunto de p coeficientes de filtro a_{i}. En el descodificador, estos coeficientes pueden utilizarse para implementar un filtro de síntesis según una realización de forma directa como la mostrada en la Figura 4A. Como alternativa, la tarea T100 puede configurarse para extraer los parámetros de modelo como un conjunto de p coeficientes de reflexión k_{i}, los cuales pueden utilizarse en el descodificador para implementar un filtro de síntesis según una realización reticular como la mostrada en la Figura 4B. La realización de forma directa es normalmente más sencilla y tiene un coste computacional más bajo, pero los coeficientes de filtro LPC son menos robustos para los errores de redondeo y de cuantificación que los coeficientes de reflexión, de modo que una realización reticular puede preferirse en un sistema que utilice un cálculo de punto fijo o que, de lo contrario, tenga una precisión limitada. (Debe observarse que en algunas descripciones de la técnica, los signos de los parámetros de modelo están invertidos en la expresión (1) anterior y en las implementaciones mostradas en las Figuras 4A y 4B).
Un codificador está configurado normalmente para transmitir los parámetros de modelo a través de un canal de transmisión en forma cuantificada. Los coeficientes de filtro LPC no están acotados y pueden tener un gran intervalo dinámico, y es habitual convertir estos coeficientes a otra forma antes de la cuantificación, tal como pares espectrales lineales (LSP), frecuencias espectrales lineales (LSF) o pares espectrales de inmitancia (ISP). Otras operaciones, tales como ponderación perceptual, también pueden llevarse a cabo sobre los parámetros de modelo antes de la conversión y/o la cuantificación.
También puede ser deseable que el codificador transmita información relacionada con la señal de excitación u. Algunos codificadores detectan y transmiten la frecuencia o periodo fundamentales de una señal de voz sonora, de manera que el descodificador utiliza un tren de impulsos en esa frecuencia como una excitación para la señal de voz sonora y una excitación de ruido aleatorio para señales de voz sordas. Otros codificadores o modos de codificación utilizan los coeficientes de filtro para extraer la señal de excitación u en el codificador y codificar la excitación utilizando uno o más libros de códigos. Por ejemplo, un modo de codificación CELP utiliza normalmente un libro de códigos fijo y un libro de códigos adaptativo para modelar la señal de excitación, de manera que la señal de excitación se codifica comúnmente como un índice para el libro de códigos fijo y como un índice para el libro de códigos adaptativo. Puede ser deseable utilizar un modo de codificación CELP para transmitir una señal tonal.
La tarea T100 puede configurarse según cualquiera de las diversas operaciones de codificación iterativas conocidas para calcular parámetros de modelo LPC tales como coeficientes de filtro y/o de reflexión. Tales operaciones de codificación están configuradas normalmente para resolver la expresión (1) de manera iterativa calculando un conjunto de coeficientes que minimicen un error cuadrático medio. Una operación de este tipo puede clasificarse generalmente como un procedimiento de autocorrelación o como un procedimiento de covarianza.
Un procedimiento de autocorrelación calcula el conjunto de coeficientes de filtro y/o de coeficientes de reflexión empezando a partir de valores de la función de autocorrelación de la señal de entrada. Una operación de codificación de este tipo incluye normalmente una tarea de inicialización en la que una función de división en ventanas w[n] se aplica a la porción de tiempo (por ejemplo, la trama) para poner a cero la señal fuera de la porción. Puede ser deseable utilizar una función de división en ventanas de sección decreciente que tenga bajas ponderaciones de muestras en cada extremo de la ventana, lo que puede ayudar a reducir el efecto de los componentes fuera de la ventana. Por ejemplo, puede ser deseable utilizar una ventana de coseno alzado, tal como la siguiente función de ventana de
Hamming:
3
en la que N es el número de muestras en la porción de tiempo.
Otras ventanas de sección decreciente que pueden utilizarse incluyen las ventanas de Hanning, de Blackman, de Kaiser y de Bartlett. La parte dividida en ventanas s_{w}[n] puede calcularse según una expresión como la siguiente:
4
La función de división en ventanas no necesita ser simétrica, de manera que una mitad de la ventana puede ponderarse de diferente manera que la otra mitad. También puede usarse una ventana híbrida, tal como una ventana de coseno de Hamming o una ventana que tenga dos mitades de ventanas diferentes (por ejemplo, dos ventanas de Hamming de diferentes tamaños).
Valores de la función de autocorrelación, de la porción de tiempo pueden calcularse según una expresión como la siguiente:
5
También puede ser deseable llevar a cabo una o más operaciones de preprocesamiento en los valores de autocorrelación antes de calcular las iteraciones. Por ejemplo, los valores de autocorrelación R(m) pueden suavizarse espectralmente llevando a cabo una operación como la siguiente:
6
El preprocesamiento de los valores de autocorrelación también puede incluir normalizar los valores (por ejemplo, con respecto al valor R(0), el cual indica la energía total de la porción de tiempo).
Un procedimiento de autocorrelación para calcular parámetros de modelo LPC implica llevar a cabo un proceso iterativo para resolver una ecuación que incluya una matriz de Toeplitz. En algunas implementaciones de un procedimiento de autocorrelación, la tarea T100 está configurada para llevar a cabo una serie de iteraciones según cualquiera de los algoritmos recursivos ampliamente conocidos de Levinson y/o de Durbin para resolver tales ecuaciones. Tal y como se muestra en el siguiente listado de seudocódigo, un algoritmo de este tipo genera los coeficientes de filtro a_{i} como los valores para 1 \leq i \leq p, utilizando los coeficientes de reflexión k_{i} como intermediarios:
7
en el que los valores de autocorrelación de entrada pueden preprocesarse tal y como se ha descrito anteriormente.
El término E_{i} indica la energía del error (o residuo) que permanece después de la iteración i. A medida que la serie de iteraciones se ejecuta, la energía residual se reduce progresivamente de manera que E_{i} \leq E_{i-1}. La Figura 5 muestra un diagrama de flujo de una implementación M110 del procedimiento M100 que incluye una implementación T110 de la tarea T100 configurada para realizar cálculos de k_{i}, a_{i} y E_{i} según un algoritmo como el descrito anteriormente, donde T110-0 indica una o más tareas de inicialización y/o de preprocesamiento como las descritas en este documento, tales como la división en ventanas de la trama, el cálculo de los valores de autocorrelación, el suavizado espectral de los valores de autocorrelación, etc.
En otras implementaciones de un procedimiento de autocorrelación, la tarea T100 está configurada para llevar a cabo una serie de iteraciones para calcular los coeficientes de reflexión k_{i} (denominados también como coeficientes de correlación parcial (PARCOR), coeficientes PARCOR negativos, o parámetros de Schur-Szego) en lugar de los coeficientes de filtro a_{i}. Un algoritmo que puede utilizarse en la tarea T100 para obtener los coeficientes de reflexión es el algoritmo de Leroux-Gueguen, el cual utiliza estimaciones de respuesta de impulso e como intermediarias y se expresa en el siguiente listado de seudocódigo:
8
El algoritmo de Leroux-Gueguen se implementa normalmente utilizando dos matrices EP, EN en lugar de las matrices e. La Figura 6 muestra un listado de seudocódigo para una implementación de este tipo que incluye calcular un término E(h) de error (o de energía residual) en cada iteración. Otros procedimientos iterativos ampliamente conocidos que pueden utilizarse para obtener los coeficientes de reflexión k_{i} a partir de los valores de autocorrelación incluyen los algoritmos recursivos de Schur, los cuales pueden configurarse para un cálculo en paralelo eficaz.
Tal y como se ha mencionado anteriormente, los coeficientes de reflexión pueden utilizarse para implementar una realización reticular del filtro de síntesis. Como alternativa, los coeficientes de filtro LPC pueden obtenerse a partir de los coeficientes de reflexión a través de una recursión como la mostrada en el siguiente listado de seudocódigo:
9
Los procedimientos de covarianza son otra clase de operaciones de codificación que pueden utilizarse en la tarea T100 para calcular de manera iterativa un conjunto de coeficientes para minimizar un error cuadrático medio. Un procedimiento de covarianza comienza a partir de valores de la función de covarianza de la señal de entrada y aplica normalmente una ventana de análisis a la señal de error en lugar de a la señal de voz de entrada. En este caso, la ecuación matricial que va a resolverse incluye una matriz definida positiva y simétrica en lugar de una matriz de Toeplitz, de manera que los algoritmos de Levinson-Durbin y de Leroux-Gueguen no son adecuados, pero puede utilizarse la descomposición de Cholesky para obtener los coeficientes de filtro a_{i} de una manera eficaz. Aunque un procedimiento de covarianza puede conservar una alta resolución espectral, no garantiza la estabilidad del filtro resultante. El uso de los procedimientos de covarianza es menos común que el uso de los procedimientos de autocorrelación.
Para algunas o todas las iteraciones de la operación de codificación, la tarea T200 calcula un valor correspondiente de una medida relacionada con una ganancia de la operación de codificación. Puede ser deseable calcular la medida de ganancia como una relación entre una medida de la energía de señal inicial (por ejemplo, la energía de la trama dividida en ventanas) y una medida de la energía del residuo actual. En un ejemplo de este tipo, la medida de ganancia G_{i} para la iteración i se calcula según la siguiente expresión:
10
En este caso, el factor G_{i} representa hasta ahora la ganancia de predicción LPC de la operación de codificación. La ganancia de predicción también puede calcularse a partir de los coeficientes de reflexión k_{i} según la siguiente expresión:
11
En otro ejemplo de este tipo, puede ser deseable calcular la medida de ganancia G_{i} para representar el error de predicción LPC actual, como en las siguientes expresiones:
12
La medida de ganancia G_{i} también puede calcularse según otras expresiones que, por ejemplo, también incluyan el producto \sum\limits^{i}_{j=1}(1-k^{2}_{j}), o una relación entre E_{o} y E_{i}, como un factor o un término. La medida de ganancia G_{i} puede expresarse en una escala lineal o en otro dominio, tal como en una escala logarítmica (por ejemplo, log E_{0}/E_{i} ó log E_{i}/E_{0}). Implementaciones adicionales de la tarea T200 calculan la medida de ganancia en función de un cambio en la energía residual (por ejemplo, G_{i} = \DeltaE_{i} = E_{i} - E_{i-1}).
Normalmente, la medida de ganancia G_{i} se calcula en cada iteración (por ejemplo, las tareas T200-i mostradas en las Figuras 3 y 5), aunque también es posible implementar la tarea T200 de manera que la medida de ganancia G_{i} se calcule solamente cada dos iteraciones, cada tres iteraciones, etc. El siguiente listado de seudocódigo muestra un ejemplo de una modificación del listado de seudocódigo (2) anterior que puede utilizarse para llevar a cabo implementaciones en ambas tareas T100 y T200:
13
La Figura 7 muestra un ejemplo de una modificación del listado de seudocódigo de la Figura 6 que puede utilizarse para llevar a cabo implementaciones de ambas tareas T100 y T200.
Cuando uno o más tonos están presentes en la señal que está analizándose, la energía residual puede reducirse rápidamente entre dos de las iteraciones. La tarea T300 determina y registra una indicación de la primera iteración en la que se produce un cambio en un estado de una relación entre el valor de la medida de ganancia y un valor de umbral T. Para un caso en el que la medida de ganancia se calcula como E_{0}/E_{i}, por ejemplo, la tarea T300 puede configurarse para registrar una indicación de la primera iteración en la que un estado de la relación "G_{i} > T" (o "G_{i}\geqT") cambia de falso a verdadero o, de manera equivalente, en la que un estado de la relación "G_{i}\leqT" (o "G_{i} < T") cambia de verdadero a falso. Para un caso en el que la medida de ganancia se calcula como E_{i}/E_{0}, por ejemplo, la tarea T300 puede configurarse para registrar una indicación de la primera iteración en la que un estado de la relación "G_{i} > T" (o "G_{i}\geqT") cambia de verdadero a falso o, de manera equivalente, en la que un estado de la relación "G_{i}\leqT" (o "G_{i} <T") cambia de falso a verdadero.
La indicación almacenada de la primera iteración en la que se produce el cambio de estado pertinente también se denomina como una "orden de parada", y la operación que determina si se ha producido el cambio de estado pertinente también se denomina como "actualizar la orden de parada". Una orden de parada puede almacenar el valor de índice i de la iteración objetivo o puede almacenar alguna otra indicación del valor de índice i. En este documento se supone que la tarea T300 está configurada para inicializar cada orden de parada a un valor por defecto de cero, aunque también se contemplan expresamente configuraciones dadas a conocer en este documento en las que la tarea T300 está configurada para inicializar cada orden de parada a algún otro valor por defecto (por ejemplo, p) o en las que el estado de una bandera de actualización respectiva se utiliza para indicar si la orden de parada contiene un valor válido. En este último tipo de configuración de la tarea T300, por ejemplo, si el estado de una bandera de actualización ha cambiado para impedir una actualización adicional, entonces se supone que la orden de parada correspondiente contiene un valor válido.
La tarea T300 puede configurarse para mantener más de una orden de parada (por ejemplo, dos o más). Es decir, la tarea T300 puede configurarse para determinar, para cada uno de una pluralidad de q umbrales T_{j} diferentes (donde 1 \leq j \leq q), la primera iteración en la que se produce un cambio en un estado de una relación entre el valor de la medida de ganancia y el valor de umbral T_{j}, y para almacenar una indicación de la iteración (por ejemplo, en una posición de memoria correspondiente). Para una configuración en la que G_{i} aumenta monotónicamente con i (por ejemplo, G_{i} = E_{0}/E_{i}), puede ser deseable disponer los umbrales en una progresión de manera que T_{j} < T_{j+1}. Para una configuración en la que G_{i} disminuye monotónicamente con i (por ejemplo, G_{i} = E_{i}/E_{0}), puede ser deseable disponer los umbrales en una progresión de manera que T_{j} > T_{j+1}. En un ejemplo particular, la tarea T300 está configurada para mantener tres órdenes de parada. Un ejemplo de un conjunto de umbrales T_{j} que puede utilizarse en un caso de este tipo es T_{1} = 6,8 dB, T_{2} = 8,1 dB y T_{3} = 8,6 dB (por ejemplo, para G_{i} = E_{0}/E_{i}). Otro ejemplo de un conjunto de umbrales T_{j} que puede utilizarse en un caso de este tipo es T_{1} = 15 dB, T_{2} = 20 dB y T_{3} = 30 dB (por ejemplo, para G_{i} = E_{0}/E_{i}).
La tarea T300 puede configurarse para actualizar la(s) orden(es) de parada cada vez que la tarea T200 calcule un valor para la medida de ganancia G_{i} (por ejemplo, en cada iteración de la tarea T 100), de manera que las órdenes de parada son actuales cuando la serie de iteraciones se completa. Como alternativa, la tarea T300 puede configurarse para actualizar la(s) orden(es) de parada después de que la serie de iteraciones se haya completado, por ejemplo, procesando de manera iterativa los valores de medida de ganancia G_{i} de las respectivas iteraciones que se hayan registrado por la tarea T200.
La Figura 8 muestra un ejemplo de una estructura lógica que puede utilizarse por la tarea T300 para actualizar algún número q de órdenes de parada en serie y/o en paralelo. En este ejemplo, cada módulo j de la estructura determina si la medida de ganancia es mayor que (como alternativa, no inferior a) un valor de umbral T_{j} correspondiente para la orden de parada S_{j}. Si este resultado es verdadero, y la bandera de actualización para la orden de parada también tiene valor verdadero, entonces la orden de parada se actualiza para indicar el índice de la iteración, y el estado de la bandera de actualización se modifica para impedir una actualización adicional de la orden de parada.
Las Figuras 9A y 9B muestran ejemplos de diagramas de flujo que pueden reproducirse exactamente en implementaciones alternativas de la tarea T300 para actualizar cada una de un conjunto de órdenes de parada en serie y/o en paralelo. En estos ejemplos, el estado de la relación se evalúa solamente si la bandera de actualización respectiva todavía tiene valor verdadero. En el ejemplo de la Figura 9B, la orden de parada se incrementa en cada iteración hasta que la medida de ganancia G_{i} alcance el umbral T_{j} (como alternativa, lo supere), punto en el que la tarea T300 inhabilita un incremento adicional de la orden de parada modificando el estado de la bandera de actualización.
El siguiente listado de seudocódigo muestra un ejemplo de una modificación del listado de seudocódigo (4) anterior que puede utilizarse para llevar a cabo implementaciones de todas las tareas T100, T200 y T300:
14
En este ejemplo, el listado (5) incluye una implementación de la tarea T300 mostrada en la Figura 9B. La Figura 10 muestra un ejemplo de una modificación del listado de seudocódigo de la Figura 7 que puede utilizarse para llevar a cabo implementaciones de todas las tareas T100, T200 y T300.
En algunas configuraciones, puede ser deseable que la tarea T300 actualice una orden de parada solamente después de que se hayan fijado los valores de las órdenes de parada anteriores a la misma. Por ejemplo, puede ser deseable que diferentes órdenes de parada tengan diferentes valores (por ejemplo, excepto para órdenes de parada que tengan el valor por defecto). La Figura 11 muestra un ejemplo de este tipo de un módulo que puede reproducirse exactamente en una implementación alternativa de la tarea T300 en la que la actualización de una orden de parada se suspende hasta que se haya fijado el valor de la orden de parada anterior.
La tarea T400 compara una o más de las órdenes de parada con un valor de umbral. La Figura 12 muestra un ejemplo de un procedimiento de prueba para una configuración de la tarea T400 que prueba las órdenes de parada secuencialmente en orden creciente. En este ejemplo, la tarea T400 compara cada orden de parada S_{i} con un par correspondiente de umbrales superior e inferior (excepto para la última orden de parada Sq, la cual se prueba solamente con un umbral inferior en este ejemplo particular) hasta que se tome una decisión en cuanto a la tonalidad de la porción de tiempo. La Figura 13 muestra un diagrama de flujo de una implementación de la tarea T400 que lleva a cabo tal procedimiento de prueba en serie para un caso en el que q es igual a tres. En otro ejemplo, una o más de las relaciones "<" en una tarea de este tipo se sustituye por la relación "\leq".
Tal y como se muestra en la Figura 12, un posible primer resultado de la prueba es que la orden de parada tenga un valor inferior a (como alternativa, no mayor que) el umbral inferior correspondiente. Un resultado de este tipo puede indicar que se obtuvo más ganancia de predicción a índices de iteración bajos de lo que se esperaría para una señal de voz. En este ejemplo, la tarea T400 está configurada para clasificar la porción de tiempo como una señal tonal.
Un posible segundo resultado de la prueba es que la orden de parada tenga un valor entre el umbral inferior y el umbral superior, lo que puede indicar que la distribución de energía espectral es típica de una señal de voz. En este ejemplo, la tarea T400 está configurada para clasificar la porción de tiempo como no tonal.
Un posible tercer resultado de la prueba es que la orden de parada tenga un valor mayor que (como alternativa, no inferior a) el umbral superior correspondiente. Un resultado de este tipo puede indicar que se obtuvo menos ganancia de predicción a índices de iteración bajos de lo que se esperaría para una señal de voz. En este ejemplo, la tarea T400 está configurada para continuar el procedimiento de prueba hasta la siguiente orden de parada en un caso de este tipo.
La Figura 14 muestra gráficos de la medida de ganancia G_{i} frente al índice de iteración i para cuatro ejemplos diferentes A a D de porciones de tiempo. En estos gráficos, el eje vertical indica la magnitud de la medida de ganancia G_{i}, el eje horizontal indica el índice de iteración i, y p tiene el valor 12. Tal y como se indica en los gráficos, en estos ejemplos los umbrales de medida de ganancia T_{1}, T_{2} y T_{3} tienen asignados los valores 8, 19 y 34, respectivamente, y los umbrales de orden de parada T_{L1}, T_{U1}, T_{L2}, T_{U2} y T_{L3} tienen asignados los valores 3, 4, 7, 8 y 11, respectivamente. (En general, no es necesario que T_{Li} sea adyacente a T_{Ui}, o que T_{Ui} sea inferior a T_{L(i+1)}, para cualquier índice i).
Usando estos valores de umbral, todas las porciones de tiempo mostradas en los gráficos A a D se clasifican como tonales por la implementación particular de la tarea T400 mostrada en la Figura 13. La porción de tiempo del gráfico A se clasifica como tonal ya que S_{1} es inferior a T_{L1}. Las porciones de tiempo de los gráficos B y C se clasifican como tonales ya que para ambas porciones S_{1} es mayor que T_{U1} y S_{2} es inferior a T_{L2}. Debe observarse también que el gráfico C muestra un ejemplo en el que dos órdenes de parada diferentes tienen el mismo valor. La porción de tiempo del gráfico D se clasifica como tonal ya que S_{1} y S_{2} son mayores que S_{U1} y S_{U2}, respectivamente, y S_{3} es inferior a T_{L3}.
La Figura 15 muestra un ejemplo de una estructura lógica para la tarea T400 en la que las pruebas mostradas en la Figura 13 pueden llevarse a cabo en paralelo.
Puede apreciarse que en la implementación de la tarea T400 mostrada en la Figura 13, la secuencia de prueba termina una vez que se haya tomado una decisión de tonalidad, incluso si solo se ha examinado la primera de las órdenes de parada. El alcance de las implementaciones del procedimiento M100 también incluye configuraciones de la tarea T400 en las que la secuencia de pruebas continúa. En una configuración de este tipo, una porción de tiempo se clasifica como tonal si cualquiera de las órdenes de parada presenta un valor inferior a (como alternativa, no mayor que) el umbral inferior correspondiente. En otra configuración de este tipo, una porción de tiempo se clasifica como tonal si la mayoría de las órdenes de parada presentan valores inferiores a (como alternativa, no mayores que) los umbrales inferiores correspondientes.
La Figura 21 muestra un diagrama de flujo de otra implementación de la tarea T400 que prueba las órdenes de parada secuencialmente en orden decreciente. En este ejemplo se utilizan dos órdenes de parada (es decir, q = 2). El intervalo de valores particulares que puede utilizarse en una implementación de este tipo incluye el conjunto T_{1} = 15 dB, T_{2} = 30 dB, T_{L1} = 4, T_{L2} = 4 y T_{U2} = 6. En otro ejemplo, una o más de las relaciones "<" en una tarea de este tipo se sustituye por la relación "\leq".
La Figura 22 muestra un diagrama de flujo de una implementación adicional de la tarea T400 que prueba las órdenes de parada secuencialmente en orden decreciente, comparándose cada orden de parada Sq con un umbral T_{Sq} correspondiente. En este ejemplo se utilizan dos órdenes de parada (es decir, q = 2). El intervalo de valores particulares que puede utilizarse en una implementación de este tipo incluye el conjunto T_{1} = 15 dB, T_{2} = 30 dB, T_{S1} = 4 y T_{S2} = 4. En otro ejemplo, una o más de las relaciones "<" en una tarea de este tipo se sustituye por la relación "\leq".
Esta implementación también ilustra un caso en el que el resultado de la tarea T400 puede ser contingente en una o más condiciones. Ejemplos de tales condiciones incluyen una o más cualidades de la porción de tiempo, tal como el estado de una relación entre la inclinación espectral (es decir, el primer coeficiente de reflexión) de la porción de tiempo y un valor de umbral. Ejemplos de tales condiciones incluyen además uno o más historiales de la señal, tal como el resultado de la tarea T400 para una o más de las porciones de tiempo anteriores.
Tal y como se muestra en las Figuras 3 y 5, la tarea T400 puede configurarse para ejecutarse después de se haya completado la serie de iteraciones. Sin embargo, el alcance contemplado de las implementaciones del procedimiento M100 incluye además implementaciones que están configuradas para llevar a cabo la tarea T400 si se actualiza una orden de parada e implementaciones que están configuradas para llevar a cabo la tarea T400 en cada iteración.
El alcance de las implementaciones del procedimiento M100 incluye además implementaciones que están configuradas para llevar a cabo una o más acciones en respuesta al resultado de la tarea T400. Por ejemplo, puede ser deseable truncar o terminar de otra manera una LP u otra operación de codificación de voz cuando la trama que está codificándose es tonal. Tal y como se ha indicado anteriormente, los altos picos espectrales de una señal tonal pueden provocar inestabilidad en un filtro LPC, y la conversión de los coeficientes LPC a otra forma para la transmisión (tal como pares espectrales lineales, frecuencias espectrales lineales o pares espectrales de inmitancia) también puede verse afectada si la señal tiene picos.
Algunas implementaciones del procedimiento M100 están configuradas para truncar el análisis LPC según el índice de iteración i indicado por la orden de parada en la que se alcanzó la clasificación de tonalidad en la tarea T400. Por ejemplo, un procedimiento de este tipo puede configurarse para reducir las magnitudes de los coeficientes LPC (por ejemplo, los coeficientes de filtro) para el índice i y superiores, por ejemplo, asignando valores de cero a esos coeficientes. Tal truncado puede llevarse a cabo después de que se haya completado la serie de iteraciones. Como alternativa, para una implementación de este tipo en la que la tarea T400 se lleva a cabo en cada iteración o cuando se actualiza una orden de parada, tal truncado puede incluir finalizar la serie de iteraciones de la tarea T100 antes de que se llegue a la iteración p-ésima.
Tal y como se ha indicado anteriormente, otras implementaciones del procedimiento M100 pueden estar configuradas para seleccionar un modo y/o una velocidad de codificación adecuados en función del resultado de la tarea T400. Un modo de codificación de propósito general, tal como una predicción lineal excitada por código (CELP) o un modo de codificación sinusoidal, puede dejar pasar cualquier forma de onda parecida. Por lo tanto, una manera de transferir el tono de manera satisfactoria al descodificador es obligar al codificador a que utilice un modo de codificación de este tipo (por ejemplo, CELP a velocidad completa). Un codificador de voz con módem aplica normalmente varios criterios para determinar cómo va a codificarse cada trama (tales como límites de velocidad), de manera que forzar un modo de codificación particular puede requerir invalidar muchas otras decisiones.
El alcance de las implementaciones del procedimiento M100 incluye además implementaciones que tienen tareas que están configuradas para identificar la frecuencia o el tipo del tono o tonos. En ese caso, puede ser deseable utilizar un modo de codificación especial para enviar esa información en lugar de codificar la porción de tiempo. Un procedimiento de este tipo puede iniciar la ejecución de una tarea de identificación de frecuencia (por ejemplo, en lugar de continuar un procedimiento de codificación de voz para esa trama) en función del resultado de la tarea T400. Por ejemplo, puede utilizarse una disposición de filtros de ranura para identificar las frecuencias del o de los componentes de frecuencia más fuertes de la porción de tiempo. Un filtro de este tipo puede configurarse para dividir el espectro de frecuencia (o alguna parte del mismo) en contenedores (bins) que tengan un ancho de, por ejemplo, 100 Hz o 200 Hz. La tarea de identificación de frecuencia puede examinar todo el espectro o la porción de tiempo o, como alternativa, solo contenedores o regiones de frecuencia seleccionados (tales como regiones que incluyan las frecuencias de tonos de señalización comunes tales como señales DTMF).
En caso de que se identifiquen los dos tonos de una señal DTMF, puede ser deseable utilizar un modo de codificación especial para transmitir un dígito correspondiente a la señal DTMF identificada en lugar de los propios tonos o una identificación de las frecuencias reales. La tarea de identificación de frecuencia también puede configurarse para detectar la duración de uno o más tonos, información que puede transmitirse al descodificador. Un codificador de voz que lleve a cabo una implementación de este tipo del procedimiento M100 también puede configurarse para transmitir información tal como la frecuencia, la amplitud y/o la duración de tono a un descodificador a través de un canal secundario de un esquema de canales de transmisión, tal como un canal de datos o de señalización, en lugar de a través de un canal de tráfico.
El procedimiento M100 puede utilizarse en el contexto de un codificador de voz o puede aplicarse de manera independiente (por ejemplo para proporcionar una detección de tono en un dispositivo diferente a un codificador de voz). La Figura 16A muestra un diagrama de bloques de un aparato A100 según una configuración desvelada que también puede utilizarse en un codificador de voz, tal como un detector de tono, y/o como parte de otro dispositivo o sistema.
El aparato A100 incluye un calculador de coeficientes A110 que está configurado para llevar a cabo una operación de codificación iterativa para calcular una pluralidad de coeficientes (por ejemplo, coeficientes de filtro y/o coeficientes de reflexión) a partir de una porción de tiempo de una señal de audio digitalizada. Por ejemplo, el calculador de coeficientes A110 puede configurarse para llevar a cabo una implementación de la tarea T100 descrita en este documento.
El calculador de coeficientes A110 puede configurarse para llevar a cabo la operación de codificación iterativa según un procedimiento de autocorrelación descrito en este documento. La Figura 16B muestra un diagrama de bloques de una implementación A200 del aparato A100 que también incluye un calculador de autocorrelaciones A105 configurado para calcular valores de autocorrelación de la porción de tiempo. El calculador de autocorrelaciones A105 también puede configurarse para llevar a cabo un suavizado espectral de los valores de autocorrelación tal y como se describe en este documento.
El aparato A100 incluye un calculador de medidas de ganancia A120 configurado para calcular, en cada una de la pluralidad ordenada de iteraciones, un valor de una medida relacionada con una ganancia de la operación de codificación. El valor de la medida de ganancia puede ser una ganancia de predicción o un error de predicción. El valor de la medida de ganancia puede calcularse en función de una relación entre una medida de la energía de la porción de tiempo y una medida de la energía residual en la iteración. Por ejemplo, el calculador de medidas de ganancia A120 puede configurarse para llevar a cabo una implementación de la tarea T200 descrita en este documento.
El aparato A100 incluye además una primera unidad de comparación A130 configurada para almacenar una indicación de la iteración, entre la pluralidad ordenada, en la que se produce un cambio en un estado de una primera relación entre el valor calculado y un primer valor de umbral. La indicación de la iteración puede implementarse como una orden de parada, y la primera unidad de comparación A130 puede configurarse para actualizar una o más órdenes de parada. Por ejemplo, la primera unidad de comparación A130 puede configurarse para llevar a cabo una implementación de la tarea T300 descrita en este documento.
El aparato A100 incluye además una segunda unidad de comparación A140 configurada para comparar la indicación almacenada con un segundo valor de umbral. La segunda unidad de comparación A140 puede configurarse para clasificar la porción de tiempo como tonal o como no tonal en función de un resultado de la comparación. Por ejemplo, la segunda unidad de comparación A140 puede configurarse para llevar a cabo una implementación de la tarea T400 descrita en este documento. Una implementación adicional del aparato A100 incluye una implementación de un selector de modo 202 descrito posteriormente que está configurado para seleccionar un modo de codificación y/o una velocidad de codificación en función de la salida de la segunda unidad de comparación A140.
Los diversos elementos de las implementaciones del aparato A100 pueden implementarse como dispositivos electrónicos y/u ópticos que residan, por ejemplo, en el mismo chip o entre dos o más chips de un conjunto de chips, aunque también se contemplan otras disposiciones sin tal limitación. Uno o más elementos de un aparato de este tipo pueden implementarse completamente o en parte como uno o más conjuntos de instrucciones dispuestas para ejecutarse en una o más disposiciones fijas o programables de elementos lógicos (por ejemplo, transistores, puertas) tales como microprocesadores, procesadores embebidos, núcleos IP, procesadores de señales digitales, FPGA (matrices de puertas programables de campo), ASSP (productos estándar de aplicación específica) y ASIC (circuitos integrados de aplicación específica).
Es posible utilizar uno o más elementos de una implementación del aparato A100 para llevar a cabo tareas o ejecutar otros conjuntos de instrucciones que no estén directamente relacionadas con una operación el aparato, tal como una tarea relacionada con otra operación de un dispositivo o sistema en el que esté embebido el aparato. También es posible que uno o más elementos de una implementación del aparato A100 tengan una estructura en común (por ejemplo, un procesador utilizado para ejecutar partes de código correspondientes a diferentes elementos en momentos diferentes, un conjunto de instrucciones ejecutadas para llevar a cabo tareas correspondientes a diferentes elementos en momentos diferentes, o una disposición de dispositivos electrónicos y/u ópticos que lleven a cabo operaciones para diferentes elementos en momentos diferentes). Tal y como se muestra en los listados de seudocódigo (4) y (5) anteriores y en los listados de seudocódigo de las Figuras 7 y 10, por ejemplo, uno o más elementos de una implementación del aparato A100 pueden implementarse incluso como diferentes partes del mismo bucle.
Las configuraciones descritas anteriormente pueden utilizarse en uno o más dispositivos (por ejemplo, codificadores de voz) de un sistema de comunicaciones de telefonía inalámbrica configurado para utilizar una interfaz inalámbrica CDMA (acceso múltiple por división de código). Sin embargo, los expertos en la técnica entenderán que los procedimientos y aparatos que incluyen las características descritas en este documento pueden residir en cualquiera de varios sistemas de comunicación utilizando una amplia gama de tecnologías conocidas por los expertos en la técnica. Por ejemplo, un experto en la técnica apreciará que los procedimientos y aparatos descritos anteriormente pueden aplicarse a cualquier sistema de comunicación digital, independientemente del esquema de transmisión físico y/u lógico, e independientemente de si tal sistema es cableado y/o inalámbrico, de conmutación de circuitos y/o de conmutación de paquetes, etc., y el uso de estos procedimientos y/o aparatos con tales sistemas se contempla y se da a conocer de manera expresa.
Tal y como se ilustra en Figura 17, un sistema de telefonía celular incluye generalmente una pluralidad de unidades de abonado móviles 10, una pluralidad de estaciones base 12, controladores de estación base (BSC) 14 y un centro de conmutación móvil (MSC) 16. El MSC 16 está configurado para interactuar con una red telefónica pública conmutada (PSTN) 18 convencional. El MSC 16 está configurado además para interactuar con los BSC 14. Los BSC 14 están acoplados a las estaciones base 12 a través de líneas de retroceso. Las líneas de retroceso pueden configurarse para soportar cualquiera de varias interfaces conocidas incluyendo, por ejemplo, E1/T1, ATM, IP, PPP, Frame Relay, HDSL, ADSL o xDSL. Debe entenderse que puede haber más de dos BSC 14 en el sistema. Cada estación base 12 incluye de manera ventajosa al menos un sector (no mostrado), comprendiendo cada sector una antena omnidireccional o una antena que apunta a una dirección particular radialmente desde la estación base 12. Como alternativa, cada sector puede comprender dos antenas para la recepción de diversidad. Cada estación base 12 puede estar diseñada de manera ventajosa para soportar una pluralidad de asignaciones de frecuencia. En un sistema CDMA, la intersección de un sector y de una asignación de frecuencia puede denominarse como un canal CDMA. Las estaciones base 12 también pueden conocerse como subsistemas de transceptor de estación base (BTS) 12. Como alternativa, "estación base" puede utilizarse en la industria para referirse colectivamente a un BSC 14 y a uno o más BTS 12. Los BTS 12 también pueden denotarse como "emplazamientos de célula" 12. Como alternativa, los sectores individuales de un BTS 12 dado pueden denominarse como emplazamientos de célula. Las unidades de abonado móviles 10 son normalmente teléfonos celulares o PCS 10. Un sistema de este tipo puede configurarse para utilizarse según la norma IS-95 u otra norma CDMA. Un sistema de este tipo también puede configurarse para transportar tráfico de voz a través de uno o más protocolos de conmutación de paquetes, tales como VoIP.
Durante el funcionamiento típico del sistema de telefonía celular, las estaciones base 12 reciben conjuntos de señales de enlace inverso desde conjuntos de unidades móviles 10. Las unidades móviles 10 llevan a cabo llamadas telefónicas u otras comunicaciones. Cada señal de enlace inverso recibida por una estación base 12 dada se procesa en esa estación base 12. Los datos resultantes se reenvían a los BSC 14. Los BSC 14 proporcionan asignación de recursos de llamada y funcionalidad de gestión de movilidad incluyendo el control de los traspasos continuos entre las estaciones base 12. Los BSC 14 encaminan además los datos recibidos al MSC 16, el cual proporciona servicios de encaminamiento adicionales para interactuar con la PSTN 18. De manera similar, la PSTN 18 interactúa con el MSC 16, y el MSC 16 interactúa con los BSC 14, que a su vez controlan las estaciones base 12 para transmitir conjuntos de señales de enlace directo a conjuntos de unidades móviles 10.
La Figura 18 muestra un diagrama de un sistema que incluye dos codificadores 100, 106 que pueden configurarse para llevar a cabo una implementación de la tarea T400 descrita en este documento y/o que pueden configurarse para incluir una implementación del aparato A100 descrito en este documento. El primer codificador 100 recibe muestras de voz digitalizadas s(n) y codifica las muestras s(n) para su transmisión a través de un medio de transmisión y/o canal de comunicaciones 102 hasta un primer descodificador 104. El descodificador 104 descodifica las muestras de voz codificadas y sintetiza una señal de voz de salida sSYNTH(n). Para la transmisión en el sentido contrario, un segundo codificador 106 codifica muestras de voz digitalizadas s(n), las cuales se transmiten a través de un medio de transmisión y/o canal de comunicaciones 108. Un segundo descodificador 110 recibe y descodifica las muestras de voz codificadas, generando una señal de voz de salida sintetizada sSYNTH(n). El codificador 100 y el descodificador 110 pueden implementarse conjuntamente en un transceptor tal como un teléfono celular. Asimismo, el codificador 106 y el descodificador 104 pueden implementarse conjuntamente en un transceptor tal como un teléfono celular.
Las muestras de voz s(n) representan señales de voz que se han digitalizado y cuantificado según cualquiera de varios procedimientos conocidos en la técnica incluyendo, por ejemplo, la modulación por impulsos codificados (PCM), y la ley A o ley \mu de compresión-expansión. Tal y como se conoce en la técnica, las muestras de voz s(n) se organizan en tramas de datos de entrada en las que cada trama comprende un número predeterminado de muestras de voz digitalizadas s(n). En una configuración a modo de ejemplo se utiliza una tasa de muestreo de 8 kHz, comprendiendo cada trama de 20 milisegundos 160 muestras. En las configuraciones descritas posteriormente, la velocidad de transmisión de datos puede variar de manera ventajosa por cada trama entre velocidad completa, media velocidad, un cuarto de velocidad y un octavo de velocidad (correspondiéndose en el ejemplo a 13,2, 6,2, 2,6 y 1 kbps, respectivamente). Variar la velocidad de transmisión de datos es potencialmente ventajoso ya que las velocidades binarias más bajas pueden emplearse de manera selectiva para tramas que contengan relativamente menos información de voz. Tal y como entienden los expertos en la técnica, pueden utilizarse otras tasas de muestreo, tamaños de trama y velocidades de transmisión de datos.
El primer codificador 100 y el segundo descodificador 110 comprenden conjuntamente un primer codificador de voz, o códec de voz. El codificador de voz puede configurarse para utilizarse en cualquier tipo de dispositivo de comunicaciones para transmitir señales de voz a través de un canal cableado y/o inalámbrico, incluyendo, por ejemplo, las unidades de abonado, los BTS, o los BSC descritos anteriormente con referencia a la Figura 17. De manera similar, el segundo codificador 106 y el primer descodificador 104 comprenden conjuntamente un segundo codificador de voz. Los expertos en la técnica entenderán que los codificadores de voz pueden implementarse con un procesador de señales digitales (DSP), un circuito integrado de aplicación específica (ASIC), lógica de puertas discreta, firmware o cualquier módulo de software programable convencional y un microprocesador. El módulo de software puede residir en memoria RAM, memoria flash, registros, o cualquier otra forma de medio de almacenamiento grabable conocido en la técnica. Como alternativa, cualquier máquina de estados, controlador o procesador convencionales pueden sustituir al microprocesador. ASIC a modo de ejemplo diseñados específicamente para la codificación de voz se describen en las patentes estadounidenses números 5.727.123 (McDonough et al, expedida el 10 de marzo de 1998) y 5.784.532 (McDonough et al., expedida el 21 de julio de 1998).
En la Figura 19A, un codificador 200 que puede utilizarse en un codificador de voz incluye un selector de modo 202, un módulo de estimación de tono 204, un módulo de análisis LP 206, un filtro de análisis LP 208, un módulo de cuantificación LP 210 y un módulo de cuantificación de residuo 212. Las tramas de voz de entrada s(n) se proporcionan al selector de modo 202, al módulo de estimación de tono 204, al módulo de análisis LP 206 y al filtro de análisis LP 208. El selector de modo 202 genera una indicación de modo M en función de la periodicidad, energía, relación de señal a ruido (SNR) o tasa de cruce por cero, entre otras características, de cada trama de voz de entrada s(n). El selector de modo 202 también puede configurarse para generar la indicación de modo M en función de un resultado de la tarea T400, y/o de una salida de la segunda unidad de comparación A140, correspondiente a la detección de una señal tonal.
El modo M puede indicar un modo de codificación tal como CELP, NELP o PPP como los descritos en este documento y también puede indiciar una velocidad de codificación. En el ejemplo mostrado en la Figura 19A, el selector de modo 202 también genera un índice de modo I_{M} (por ejemplo, una versión codificada de la indicación de modo M para la transmisión). Varios procedimientos de clasificación de tramas de voz según la periodicidad se describen en la patente estadounidense número 5.911.128 (DeJaco, expedida el 8 de junio de 1999). Tales procedimientos también se incorporan en las normas provisionales TIA/EIA IS-127 y TIA/EIA IS-733 de la Asociación de la Industria de las Telecomunicaciones. Un esquema de decisión de modo a modo de ejemplo también se describe en la patente estadounidense número 6.691.084 (Manjunath et al., expedida el 10 de febrero de 2004).
El módulo de estimación de tono 204 genera un índice de tono Ip y un valor de retardo P_{0} en función de cada trama de voz de entrada s(n). El módulo de análisis LP 206 lleva a cabo un análisis predictivo lineal en cada trama de voz de entrada s(n) para generar un conjunto de parámetros LP (por ejemplo, coeficientes de filtro a). Los parámetros LP se reciben por el módulo de cuantificación LP 210, posiblemente después de la conversión a otra forma tal como LSP, LSF o LSP (como alternativa, tal conversión puede producirse en el módulo 210). En este ejemplo, el módulo de cuantificación LP 210 también recibe la indicación de modo M, llevando a cabo de ese modo el proceso de cuantificación de una manera dependiente del modo.
El módulo de cuantificación LP 210 genera un índice LP I_{LP} (por ejemplo, un índice en un libro de códigos de cuantificación) y un conjunto cuantificado de parámetros LP \hat{a}. El filtro de análisis LP 208 recibe el conjunto cuantificado de parámetros LP \hat{a} además de la trama de voz de entrada s(n). El filtro de análisis LP 208 genera una señal de residuo LP u[n], la cual representa el error entre las tramas de voz de entrada s(n) y la voz reconstruida en función de los parámetros estimados \hat{a} lineales y cuantificados. El residuo LP u[n] y la indicación de modo M se proporcionan al módulo de cuantificación de residuo 212. En este ejemplo, el conjunto cuantificado de parámetros LP \hat{a} también se proporciona al módulo de cuantificación de residuo 212. En función de estos valores, el módulo de cuantificación de residuo 212 genera un índice de residuo I_{R} y una señal de residuo cuantificada \hat{u}[n]. Cada uno de los codificadores 100 y 106 mostrados en la Figura 18 puede configurarse para incluir una implementación del codificador 200 junto con una implementación del aparato A100.
En la Figura 19B, un descodificador 300 que puede usarse en un codificador de voz incluye un módulo de descodificación de parámetros LP 302, un módulo de descodificación de residuo 304, un módulo de descodificación de modo 306 y un filtro de síntesis LP 308. El módulo de descodificación de modo 306 recibe y descodifica un índice de modo I_{M}, generando a partir del mismo una indicación de modo M. El módulo de descodificación de parámetros LP 302 recibe el modo M y un índice LP I_{LP}. El módulo de descodificación de parámetros LP 302 descodifica los valores recibidos para generar un conjunto cuantificado de parámetros LP \hat{a}. El módulo de descodificación de residuo 304 recibe un índice de residuo I_{R}, un índice de tono I_{P} y el índice de modo I_{M}. El módulo de descodificación de residuo 304 descodifica los valores recibidos para generar una señal de residuo cuantificada \hat{u}[n]. La señal de residuo cuantificada \hat{u}[n] y el conjunto cuantificado de parámetros LP \hat{a} se reciben por el filtro de síntesis LP 308, el cual sintetiza una señal de voz de salida descodificada \hat{s}[n] a partir de los mismos. Cada uno de los descodificadores 104 y 110 mostrados en la Figura 18 pueden configurarse para incluir una implementación del descodificador 300.
La Figura 20 muestra un diagrama de flujo de tareas de selección de modo que pueden llevarse a cabo por un codificador de voz que incluya una implementación del selector de modo 202. En la tarea 400, el selector de modo recibe muestras digitales de una señal de voz en tramas sucesivas. Tras recibir una trama dada, el selector de modo avanza hasta la tarea 402. En la tarea 402, el selector de modo detecta la energía de la trama. La energía es una medida de la actividad de voz de la trama. La detección de voz se lleva a cabo sumando los cuadrados de las amplitudes de las muestras de voz digitalizadas y comparando la energía resultante con un valor de umbral. La tarea 402 puede configurarse para adaptar este valor de umbral en función del nivel variable de ruido de fondo. Un detector de actividad de voz de umbral variable a modo de ejemplo se describe en la patente estadounidense mencionada anteriormente número 5.414.796. Algunos sonidos de voz sordos pueden ser muestras de energía extremadamente bajas que puede codificarse por error como ruido de fondo. Para reducir la posibilidad de un error de este tipo, la inclinación espectral (por ejemplo, el primer coeficiente de reflexión) de muestras de baja energía puede utilizarse para distinguir la voz sorda del ruido de fondo, tal y como se describe en la patente estadounidense mencionada anteriormente número 5.414.796.
Después de detectar la energía de la trama, el selector de modo avanza hasta la tarea 404. (Una implementación alternativa del selector de modo 202 está configurada para recibir la energía de trama de otro elemento del codificador de voz). En la tarea 404, el selector de modo determina si la energía de trama detectada es suficiente para clasificar la trama como conteniendo información de voz. Si la energía de trama detectada cae por debajo de un nivel de umbral predefinido, el codificador de voz avanza hasta la tarea 406. En la tarea 406, el codificador de voz codifica la trama como ruido de fondo (es decir, silencio). En una configuración, la trama de ruido de fondo se codifica a 1/8 de velocidad (por ejemplo, 1 kbps). Si en la tarea 404 la energía de trama detectada alcanza o supera el nivel de umbral predefinido, la trama se clasifica como voz y el selector de modo avanza hasta la tarea 408.
En la tarea 408, el selector de modo determina si la trama es voz sorda. Por ejemplo, la tarea 408 puede configurarse para examinar la periodicidad de la trama. Varios procedimientos conocidos de determinación de periodicidad incluyen, por ejemplo, el uso de cruces por cero y el uso de funciones de autocorrelación normalizadas (NACF). En particular, utilizar cruces por cero y NACF para detectar la periodicidad se describe en las patentes estadounidenses mencionadas anteriormente números 5.911.128 y 6.691.084. Además, los procedimientos anteriores utilizados para distinguir voz sonora de voz sorda se incorporan en las normas provisionales TIA/EIA IS-127 y TIA/EIA IS-733 de la Asociación de la Industria de las Telecomunicaciones. Si en la tarea 408 se determina que la trama es de voz sorda, el codificador de voz avanza hasta la tarea 410. En la tarea 410, el codificador de voz codifica la trama como voz sorda. En una configuración, las tramas de voz sordas se codifican a un cuarto de la velocidad (por ejemplo, a 2,6 kbps). Si en la tarea 408 se determina que la trama no es de voz sorda, el selector de modo avanza hasta la tarea 412.
En la tarea 412, el selector de modo determina si la trama es de voz de transición. La tarea 412 puede configurarse para utilizar procedimientos de detección de periodicidad conocidos en la técnica (por ejemplo, tal y como se describe en la patente estadounidense mencionada anteriormente número 5.911.128). Si se determina que la trama es de voz de transición, el codificador de voz avanza hasta la tarea 414. En la tarea 414, la trama se codifica como voz de transición (es decir, transición desde voz sorda a voz sonora). En una configuración, la trama de voz de transición se codifica según un procedimiento de codificación interpoladora de múltiples impulsos descrito en la patente estadounidense número 6.260.017 (Das et al., expedida el 10 de julio de 2001). Un modo CELP también puede utilizarse para codificar tramas de voz de transición. En otra configuración, la trama de voz de transición se codifica a velocidad completa (por ejemplo, 13,2 kbps).
Si en la tarea 412, el selector de modo determina que la trama no es de voz de transición, el codificador de voz avanza hasta la tarea 416. En la tarea 416, el codificador de voz codifica la trama como voz sonora. En una configuración, las tramas de voz sonoras pueden codificarse a media velocidad (por ejemplo, 6,2 kbps), o a un cuarto de velocidad, utilizando un modo de codificación PPP. También es posible codificar tramas de voz sonoras a velocidad completa utilizando un modo de codificación PPP u otro modo de codificación (por ejemplo, 13,2 kbps u 8 kbps en un codificador CELP de 8k). Sin embargo, los expertos en la técnica apreciarán que codificar tramas sonoras a media o a un cuarto de velocidad permite al codificador ahorrar un ancho de banda valioso aprovechando la naturaleza de estado estable de las tramas sonoras. Además, independientemente de la velocidad utilizada para codificar la voz sonora, la voz sonora se codifica de manera ventajosa utilizando información de tramas anteriores.
La descripción anterior de un códec de voz multimodo describe el procesamiento de una trama de entrada que contiene voz. Obsérvese que se utiliza un proceso de clasificación de los contenidos de la trama para seleccionar el mejor modo mediante el cual codificar la trama. Varios modos de codificador/descodificador se describen en las siguientes secciones. Los diferentes modos de codificador/descodificador funcionan según diferentes modos de codificación. Determinados modos son más eficaces en partes de codificación de la señal de voz s(n) que presenten determinadas propiedades. Tal y como se ha indicado anteriormente, el selector de modo 202 puede configurarse para invalidar una decisión de codificación tal y como se muestra en la Figura 20 (por ejemplo, generada por la tarea 408 y/o 412), en función del resultado de la tarea T400 y/o de una salida de la segunda unidad de comparación A140.
En una configuración se elige un modo "predictivo lineal excitado por código" (CELP) para codificar tramas clasificadas como voz de transición. El modo CELP excita un modelo de tracto vocal predictivo lineal con una versión cuantificada de la señal residual de predicción lineal. De todos los modos de codificador/descodificador descritos en este documento, CELP produce generalmente la reproducción de voz más precisa pero requiere la mayor velocidad binaria. En una configuración, el modo CELP lleva a cabo una codificación a 8500 bits por segundo. En otra configuración, la codificación CELP de una trama se lleva a cabo a una velocidad seleccionada entre la velocidad completa y la mitad de velocidad. Un modo CELP también puede seleccionarse según un resultado de la tarea T400 y/o una salida de la segunda unidad de comparación A140, correspondiente a la detección de una señal tonal.
Un modo de "periodo de tono de prototipo" (PPP) puede elegirse para codificar tramas clasificadas como voz sonora. La voz sonora contiene componentes periódicos que varían lentamente en el tiempo y que se utilizan por el modo PPP. El modo PPP codifica solamente un subconjunto de los periodos de tono dentro de cada trama. Los periodos restantes de la señal de voz se reconstruyen mediante interpolación entre estos periodos de prototipo. Al utilizar la periodicidad de la voz sonora, PPP puede conseguir una velocidad binaria más baja que CELP y producir aun así la señal de voz de una manera perceptivamente precisa. En una configuración, el modo PPP lleva a cabo una codificación a 3900 bits por segundo. En otra configuración, la codificación PPP de una trama se lleva a cabo a una velocidad seleccionada entre una velocidad completa, la mitad de la velocidad y un cuarto de la velocidad. Un modo de "interpolación de forma de onda" (WI) o de "interpolación de forma de onda de prototipo" (PWI) también puede utilizarse para codificar tramas clasificadas como voz sonora.
Un modo "predictivo lineal excitado por ruido" (NELP) puede elegirse para codificar tramas clasificadas como voz sorda. NELP utiliza una señal filtrada de ruido seudoaleatorio para modelar la voz sorda. NELP utiliza el modelo más sencillo para la voz codificada y, por lo tanto, consigue la velocidad binaria más baja. En una configuración, el modo NELP lleva a cabo una codificación a 1500 bits por segundo. En otra configuración, la codificación NELP de una trama se lleva a cabo a una velocidad seleccionada entre la mitad de velocidad y un cuarto de velocidad.
Puede utilizarse frecuentemente la misma técnica de codificación a diferentes velocidades binarias, con niveles de rendimiento variables. Por lo tanto, los diferentes modos de codificador/descodificador pueden representar diferentes técnicas de codificación o la misma técnica de codificación funcionando a diferentes velocidades binarias, o combinaciones de lo anterior. Los expertos en la técnica reconocerán que aumentando el número de modos de codificador/descodificador se permitirá una mayor flexibilidad cuando se elija un modo, lo que puede dar como resultado una velocidad binaria media más baja, pero aumentará la complejidad del sistema global. La combinación particular utilizada en cualquier sistema dado quedará dictaminada por los recursos disponibles del sistema y por el entorno específico de la señal. Un codificador de voz u otro aparato que lleve a cabo una implementación de la tarea T400 descrita en este documento y/o que incluya una implementación del aparato A100 descrito en este documento, puede configurarse para seleccionar una velocidad de configuración particular (por ejemplo, velocidad completa o media velocidad) según un resultado de la tarea T400 y/o una salida de la segunda unidad de comparación A140, que indica la detección de una señal tonal.
La presentación anterior de las configuraciones descritas se proporciona para permitir que cualquier experto en la técnica realice o utilice los procedimientos y otras estructuras dados a conocer en este documento. Los diagramas de flujo y otras estructuras mostradas y descritas en este documento son solamente ejemplos, y otras variantes de estas estructuras también están dentro del alcance de la invención. Son posibles varias modificaciones de estas configuraciones, y los principios genéricos presentados en este documento también pueden aplicarse a otras configuraciones.
Cada una de las configuraciones descritas en este documento puede implementarse en parte o totalmente como un circuito cableado, como una configuración de circuitos fabricada en un circuito integrado de aplicación específica, o como un programa de firmware cargado en memoria no volátil o como un programa de software cargado desde o en un medio de almacenamiento de datos como código legible por máquina, siendo tal código instrucciones ejecutables por una disposición de elementos lógicos tales como un microprocesador u otra unidad de procesamiento de señales digitales. El medio de almacenamiento de datos puede ser una disposición de elementos de almacenamiento tales como una memoria de semiconductor (que puede incluir sin limitación una RAM (memoria de acceso aleatorio) dinámica o estática, una ROM (memoria de solo lectura), y/o una RAM flash), o una memoria ferroeléctrica, magnetorresistiva, ovónica, polimérica o de cambio de fase; o un medio de disco tal como un disco magnético u óptico. Debe entenderse que el término "software" incluye código fuente, código de lenguaje ensamblador, código máquina, código binario, firmware, macrocódigo, microcódigo, uno o más conjuntos o secuencias de instrucciones ejecutables por una disposición de elementos lógicos, y cualquier combinación de tales ejemplos.
Cada uno de los procedimientos dados a conocer en este documento también pueden realizarse de manera tangible (por ejemplo, en uno o más medios de almacenamiento de datos como los enumerados anteriormente) como uno o más conjuntos de instrucciones legibles y/o ejecutables por una máquina que incluya una disposición de elementos lógicos (por ejemplo, un procesador, un microprocesador, un microcontrolador u otra máquina de estados finitos). Por lo tanto, la presente invención no pretende limitarse a las configuraciones mostradas anteriormente sino que en cambio debe concedérsele el alcance más amplio compatible con los principios y características novedosas dados a conocer de cualquier manera en este documento, incluyendo las reivindicaciones adjuntas como campo, las cuales forman una parte de la invención original.

Claims (30)

1. Un procedimiento de procesamiento de señales de audio, comprendiendo dicho procedimiento:
llevar a cabo una operación de codificación en una porción de tiempo de una señal de audio digitalizada, en el que dicha operación de codificación incluye una pluralidad ordenada de iteraciones;
en cada una de la pluralidad ordenada de iteraciones, calcular un valor de una medida de ganancia de la operación de codificación;
para cada uno de una primera pluralidad de valores de umbral, determinar la iteración, entre la pluralidad ordenada, en la que se produce un cambio en un estado de una primera relación entre el valor calculado y el valor de umbral, y almacenar una indicación de la iteración; y
comparar al menos una de las indicaciones almacenadas con al menos un valor de umbral correspondiente.
\vskip1.000000\baselineskip
2. El procedimiento de procesamiento de señales de audio según la reivindicación 1, en el que dicha comparación de al menos una de las indicaciones almacenadas con al menos un valor de umbral correspondiente incluye comparar la al menos una de las indicaciones almacenadas con un valor correspondiente de una segunda pluralidad de valores de umbral.
3. El procedimiento de procesamiento de señales de audio según la reivindicación 1, en el que la operación de codificación es una operación de codificación predictiva lineal.
4. El procedimiento de procesamiento de señales de audio según la reivindicación 1, en el que dicha realización de una operación de codificación incluye calcular una pluralidad de coeficientes de filtro relacionados con la porción de tiempo.
5. El procedimiento de procesamiento de señales de audio según la reivindicación 4, comprendiendo dicho procedimiento, en respuesta a un resultado de dicha comparación, reducir la magnitud de al menos uno de los coeficientes de filtro.
6. El procedimiento de procesamiento de señales de audio según la reivindicación 1, en el que dicha realización de una operación de codificación incluye calcular una pluralidad de coeficientes de reflexión relacionados con la porción de tiempo.
7. El procedimiento de procesamiento de señales de audio según la reivindicación 6, en el que dicho cálculo de un valor de una medida de ganancia incluye calcular el valor en función de al menos uno de la pluralidad de coeficientes de reflexión.
8. El procedimiento de procesamiento de señales de audio según la reivindicación 1, en el que la medida de ganancia de la operación de codificación es una entre A) una ganancia de predicción y B) un error de predicción.
9. El procedimiento de procesamiento de señales de audio según la reivindicación 1, en el que dicha comparación de al menos una de las indicaciones almacenadas con al menos un valor de umbral correspondiente incluye comparar al menos una de las indicaciones almacenadas con cada uno de un valor de umbral superior correspondiente y un valor de umbral inferior correspondiente.
10. El procedimiento de procesamiento de señales de audio según la reivindicación 1, en el que la medida de ganancia de la operación de codificación está basada en una relación entre A) la energía de la porción de tiempo y B) la energía de un residuo de la iteración correspondiente de la operación de codificación.
11. El procedimiento de procesamiento de señales de audio según la reivindicación 1, en el que, para cada uno de la primera pluralidad de valores de umbral, el estado de la primera relación entre el valor calculado y el valor de umbral presenta A) un primer valor cuando el valor calculado es mayor que el valor de umbral y B) un segundo valor, diferente del primer valor, cuando el valor calculado es inferior al valor de umbral.
12. El procedimiento de procesamiento de señales de audio según la reivindicación 1, comprendiendo dicho procedimiento seleccionar, en función de un resultado de dicha comparación, un modo de codificación para la porción de tiempo.
13. El procedimiento de procesamiento de señales de audio según la reivindicación 1, comprendiendo dicho procedimiento, en respuesta a un resultado de dicha comparación, utilizar al menos un índice de libro de códigos para codificar una señal de excitación de la porción de tiempo.
\newpage
14. El procedimiento de procesamiento de señales de audio según la reivindicación 1, comprendiendo dicho procedimiento, en respuesta a un resultado de dicha comparación, identificar una señal de multifrecuencia de doble tono incluida en la porción de tiempo.
15. El procedimiento de procesamiento de señales de audio según la reivindicación 1, comprendiendo dicho procedimiento, en respuesta a un resultado de dicha comparación, determinar una frecuencia de cada uno de los al menos dos componentes de frecuencia de la porción de tiempo.
16. El procedimiento de procesamiento de señales de audio según la reivindicación 1, comprendiendo dicho procedimiento, en función de al menos una de las indicaciones almacenadas, decidir que la porción de tiempo es una de entre A) una señal de voz y B) una señal tonal, donde dicha decisión incluye dicha comparación de al menos una de las indicaciones almacenadas con al menos un valor de umbral correspondiente.
17. Un medio de almacenamiento de datos que contiene instrucciones legibles por máquina que describen el procedimiento según la reivindicación 1.
18. Un aparato de procesamiento de señales de audio, comprendiendo dicho aparato:
medios para llevar a cabo una operación de codificación en una porción de tiempo de una señal de audio digitalizada, en el que dicha operación de codificación incluye una pluralidad ordenada de iteraciones;
medios para calcular, en cada una de la pluralidad ordenada de iteraciones, un valor de una medida de ganancia de la operación de codificación;
medios para determinar, para cada uno de una primera pluralidad de valores de umbral, la iteración, entre la pluralidad ordenada, en la que se produce un cambio en un estado de una primera relación entre el valor calculado y el valor de umbral, y para almacenar una indicación de la iteración; y
medios para comparar al menos una de las indicaciones almacenadas con al menos un valor de umbral correspondiente.
19. El aparato de procesamiento de señales de audio según la reivindicación 18, en el que dichos medios para comparar al menos una de las indicaciones almacenadas con al menos un valor de umbral correspondiente están configurados para comparar la al menos una de las indicaciones almacenadas con un valor correspondiente de una segunda pluralidad de valores de umbral.
20. El aparato de procesamiento de señales de audio según la reivindicación 18, en el que la medida de ganancia de la operación de codificación es una entre A) una ganancia de predicción y B) un error de predicción.
21. El aparato de procesamiento de señales de audio según la reivindicación 18, en el que la medida de ganancia de la operación de codificación está basada en una relación entre A) la energía de la porción de tiempo y B) la energía de un residuo de la iteración correspondiente de la operación de codificación.
22. El aparato de procesamiento de señales de audio según la reivindicación 18, en el que dichos medios para comparar al menos una de las indicaciones almacenadas con al menos un valor de umbral correspondiente están configurados para comparar al menos una de las indicaciones almacenadas con cada uno de un valor de umbral superior correspondiente y un valor de umbral inferior correspondiente.
23. El aparato de procesamiento de señales de audio según la reivindicación 18, en el que, para cada uno de la primera pluralidad de valores de umbral, el estado de la primera relación entre el valor calculado y el valor de umbral presenta A) un primer valor cuando el valor calculado es mayor que el valor de umbral y B) un segundo valor, diferente del primer valor, cuando el valor calculado es inferior al valor de umbral.
24. El aparato de procesamiento de señales de audio según la reivindicación 18, comprendiendo dicho aparato medios para seleccionar, en función de una salida de dichos medios de comparación, un modo de codificación para la porción de tiempo.
25. El aparato según la reivindicación 18, en el que los medios para llevar a cabo una operación de codificación es un calculador de coeficientes (A110), configurado para llevar a cabo una operación de codificación para calcular una pluralidad de coeficientes; los medios de cálculo son un calculador de medidas de ganancia (A120); y los medios de comparación comprenden una primera unidad de comparación (A130) configurada para determinar, para cada uno de una primera pluralidad de valores de umbral, la iteración, entre la pluralidad ordenada, en la que se produce un cambio en un estado de una primera relación entre el valor calculado y el valor de umbral, y para almacenar una indicación de la iteración; y
una segunda unidad de comparación (A140) configurada para comparar al menos una de las indicaciones almacenadas con al menos un valor de umbral correspondiente.
26. El aparato de procesamiento de señales de audio según la reivindicación 25, en el que dicha segunda unidad de comparación (A140) está configurada para comparar la al menos una de las indicaciones almacenadas con un valor correspondiente de una segunda pluralidad de valores de umbral.
27. El aparato de procesamiento de señales de audio según la reivindicación 25, en el que dicha segunda unidad de comparación (A140) está configurada para comparar al menos una de las indicaciones almacenadas con cada uno de un valor de umbral superior correspondiente y un valor de umbral inferior correspondiente.
28. El aparato de procesamiento de señales de audio según la reivindicación 25, comprendiendo dicho aparato un selector de modo (202) configurado para seleccionar, en función de una salida de dicha segunda unidad de comparación (A140), un modo de codificación para la porción de tiempo.
29. Un teléfono celular que incluye el aparato según la reivindicación 25 y configurado para llevar a cabo, en función de una salida de dicha segunda unidad de comparación (A140), al menos uno de entre A) seleccionar un modo de codificación para la porción de tiempo y B) reducir una magnitud de al menos uno de entre la pluralidad de coeficientes.
30. Un codificador de voz que incluye el aparato según la reivindicación 25 y configurado para llevar a cabo, en función de una salida de dicha segunda unidad de comparación, al menos uno de entre A) seleccionar un modo de codificación para la porción de tiempo y B) reducir una magnitud de al menos uno de entre la pluralidad de coeficientes.
ES06850882T 2005-12-05 2006-12-05 Procedimiento y aparato de deteccion de componentes tonales de señales de audio. Active ES2347473T3 (es)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US74284605P 2005-12-05 2005-12-05
US742846P 2005-12-05

Publications (1)

Publication Number Publication Date
ES2347473T3 true ES2347473T3 (es) 2010-10-29

Family

ID=38610000

Family Applications (1)

Application Number Title Priority Date Filing Date
ES06850882T Active ES2347473T3 (es) 2005-12-05 2006-12-05 Procedimiento y aparato de deteccion de componentes tonales de señales de audio.

Country Status (10)

Country Link
US (1) US8219392B2 (es)
EP (1) EP1958187B1 (es)
JP (1) JP4971351B2 (es)
KR (1) KR100986957B1 (es)
CN (1) CN101322182B (es)
AT (1) ATE475171T1 (es)
DE (1) DE602006015682D1 (es)
ES (1) ES2347473T3 (es)
TW (1) TWI330355B (es)
WO (1) WO2007120316A2 (es)

Families Citing this family (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5621852A (en) 1993-12-14 1997-04-15 Interdigital Technology Corporation Efficient codebook structure for code excited linear prediction coding
CN1989548B (zh) * 2004-07-20 2010-12-08 松下电器产业株式会社 语音解码装置及补偿帧生成方法
EP2162880B1 (en) * 2007-06-22 2014-12-24 VoiceAge Corporation Method and device for estimating the tonality of a sound signal
US20090043577A1 (en) * 2007-08-10 2009-02-12 Ditech Networks, Inc. Signal presence detection using bi-directional communication data
WO2009077950A1 (en) * 2007-12-18 2009-06-25 Koninklijke Philips Electronics N.V. An adaptive time/frequency-based audio encoding method
EP2237266A1 (en) * 2009-04-03 2010-10-06 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Apparatus and method for determining a plurality of local center of gravity frequencies of a spectrum of an audio signal
US8730852B2 (en) * 2009-12-11 2014-05-20 At&T Intellectual Property I, L.P. Eliminating false audio associated with VoIP communications
US9584235B2 (en) * 2009-12-16 2017-02-28 Nokia Technologies Oy Multi-channel audio processing
US8818806B2 (en) * 2010-11-30 2014-08-26 JVC Kenwood Corporation Speech processing apparatus and speech processing method
WO2013125257A1 (ja) * 2012-02-20 2013-08-29 株式会社Jvcケンウッド 雑音信号抑制装置、雑音信号抑制方法、特殊信号検出装置、特殊信号検出方法、報知音検出装置、および、報知音検出方法
EP2717263B1 (en) * 2012-10-05 2016-11-02 Nokia Technologies Oy Method, apparatus, and computer program product for categorical spatial analysis-synthesis on the spectrum of a multichannel audio signal
EP2720222A1 (en) * 2012-10-10 2014-04-16 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Apparatus and method for efficient synthesis of sinusoids and sweeps by employing spectral patterns
US9167396B2 (en) * 2013-01-15 2015-10-20 Marvell World Trade Ltd. Method and apparatus to transmit data through tones
CN103428803B (zh) * 2013-08-20 2016-05-25 上海大学 一种联合机会网络编码的机会路由方法
CN106233381B (zh) * 2014-04-25 2018-01-02 株式会社Ntt都科摩 线性预测系数变换装置和线性预测系数变换方法
CN106716929B (zh) * 2014-09-22 2019-03-08 英国电讯有限公司 创建用于在dsl连接上传输数据的信道的方法和装置
GB201617408D0 (en) 2016-10-13 2016-11-30 Asio Ltd A method and system for acoustic communication of data
GB201617409D0 (en) 2016-10-13 2016-11-30 Asio Ltd A method and system for acoustic communication of data
GB201704636D0 (en) 2017-03-23 2017-05-10 Asio Ltd A method and system for authenticating a device
GB2565751B (en) 2017-06-15 2022-05-04 Sonos Experience Ltd A method and system for triggering events
GB2570634A (en) 2017-12-20 2019-08-07 Asio Ltd A method and system for improved acoustic transmission of data
US11270721B2 (en) * 2018-05-21 2022-03-08 Plantronics, Inc. Systems and methods of pre-processing of speech signals for improved speech recognition
CN112017617A (zh) * 2020-09-30 2020-12-01 许君君 一种提琴自动调弦装置及其运行方法
TWI794059B (zh) * 2022-03-21 2023-02-21 英業達股份有限公司 聲音處理方法及聲音處理裝置

Family Cites Families (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4689760A (en) 1984-11-09 1987-08-25 Digital Sound Corporation Digital tone decoder and method of decoding tones using linear prediction coding
GB8601545D0 (en) * 1986-01-22 1986-02-26 Stc Plc Data transmission equipment
DE3678717D1 (de) * 1986-04-30 1991-05-16 Ibm Verfahren und einrichtung zur tonerkennung.
US4723936A (en) 1986-07-22 1988-02-09 Versaflex Delivery Systems Inc. Steerable catheter
DE69232202T2 (de) 1991-06-11 2002-07-25 Qualcomm Inc Vocoder mit veraendlicher bitrate
EP0530645B1 (en) 1991-08-30 1999-07-14 Texas Instruments Incorporated Telephone signal classification and phone message delivery method and system
IN184794B (es) 1993-09-14 2000-09-30 British Telecomm
JPH08506434A (ja) 1993-11-30 1996-07-09 エイ・ティ・アンド・ティ・コーポレーション 通信システムにおける伝送ノイズ低減
US5784532A (en) 1994-02-16 1998-07-21 Qualcomm Incorporated Application specific integrated circuit (ASIC) for performing rapid speech compression in a mobile telephone system
CA2149163C (en) * 1994-06-28 1999-01-26 Jeffrey Wayne Daugherty Detection of tones while minimizing incorrect identification of other sounds as tones
TW271524B (es) 1994-08-05 1996-03-01 Qualcomm Inc
FR2734389B1 (fr) 1995-05-17 1997-07-18 Proust Stephane Procede d'adaptation du niveau de masquage du bruit dans un codeur de parole a analyse par synthese utilisant un filtre de ponderation perceptuelle a court terme
JP3522012B2 (ja) 1995-08-23 2004-04-26 沖電気工業株式会社 コード励振線形予測符号化装置
JPH09152894A (ja) 1995-11-30 1997-06-10 Denso Corp 有音無音判別器
JPH10105194A (ja) * 1996-09-27 1998-04-24 Sony Corp ピッチ検出方法、音声信号符号化方法および装置
DE19730130C2 (de) 1997-07-14 2002-02-28 Fraunhofer Ges Forschung Verfahren zum Codieren eines Audiosignals
AU6425698A (en) 1997-11-27 1999-06-16 Northern Telecom Limited Method and apparatus for performing spectral processing in tone detection
US6691084B2 (en) 1998-12-21 2004-02-10 Qualcomm Incorporated Multiple mode variable rate speech coding
JP2001007704A (ja) * 1999-06-24 2001-01-12 Matsushita Electric Ind Co Ltd トーン成分データの適応オーディオ符号化方法
US6275806B1 (en) 1999-08-31 2001-08-14 Andersen Consulting, Llp System method and article of manufacture for detecting emotion in voice signals by utilizing statistics for voice signal parameters
JP2001175298A (ja) 1999-12-13 2001-06-29 Fujitsu Ltd 騒音抑圧装置
US6996523B1 (en) * 2001-02-13 2006-02-07 Hughes Electronics Corporation Prototype waveform magnitude quantization for a frequency domain interpolative speech codec system
DE10134471C2 (de) 2001-02-28 2003-05-22 Fraunhofer Ges Forschung Verfahren und Vorrichtung zum Charakterisieren eines Signals und Verfahren und Vorrichtung zum Erzeugen eines indexierten Signals
US6590972B1 (en) 2001-03-15 2003-07-08 3Com Corporation DTMF detection based on LPC coefficients
US6873701B1 (en) 2001-03-29 2005-03-29 3Com Corporation System and method for DTMF detection using likelihood ratios
DE10121532A1 (de) 2001-05-03 2002-11-07 Siemens Ag Verfahren und Vorrichtung zur automatischen Differenzierung und/oder Detektion akustischer Signale
US20050159942A1 (en) 2004-01-15 2005-07-21 Manoj Singhal Classification of speech and music using linear predictive coding coefficients
US7457747B2 (en) 2004-08-23 2008-11-25 Nokia Corporation Noise detection for audio encoding by mean and variance energy ratio

Also Published As

Publication number Publication date
DE602006015682D1 (de) 2010-09-02
US20070174052A1 (en) 2007-07-26
WO2007120316A2 (en) 2007-10-25
EP1958187A2 (en) 2008-08-20
JP2009518694A (ja) 2009-05-07
TW200737128A (en) 2007-10-01
EP1958187B1 (en) 2010-07-21
WO2007120316A3 (en) 2008-01-31
CN101322182A (zh) 2008-12-10
CN101322182B (zh) 2011-11-23
ATE475171T1 (de) 2010-08-15
US8219392B2 (en) 2012-07-10
TWI330355B (en) 2010-09-11
KR20080074216A (ko) 2008-08-12
JP4971351B2 (ja) 2012-07-11
KR100986957B1 (ko) 2010-10-12

Similar Documents

Publication Publication Date Title
ES2347473T3 (es) Procedimiento y aparato de deteccion de componentes tonales de señales de audio.
US9653088B2 (en) Systems, methods, and apparatus for signal encoding using pitch-regularizing and non-pitch-regularizing coding
ES2360176T3 (es) Alisamiento de discontinuidades entre tramas de habla.
Kondoz Digital speech: coding for low bit rate communication systems
ES2349554T3 (es) Codificación de señales.
JP5373217B2 (ja) 可変レートスピーチ符号化
JP5037772B2 (ja) 音声発話を予測的に量子化するための方法および装置
ES2269112T3 (es) Codificador de voz multimodal en bucle cerrado de dominio mixto.
ES2947874T3 (es) Determinación de una función de ponderación de baja complejidad para la cuantificación de coeficientes de codificación lineal predictiva (LPC)
JP2009545779A (ja) 信号変化検出のためのシステム、方法、および装置
US9524720B2 (en) Systems and methods of blind bandwidth extension
KR20140021680A (ko) 노이즈에 강인한 스피치 코딩 모드 분류
KR100804888B1 (ko) 프레임 에러에 대한 민감도를 감소시키기 위하여 코딩 방식선택 패턴을 사용하는 예측 음성 코더
Cellario et al. CELP coding at variable rate
ES2254155T3 (es) Procedimiento y aparato para realizar el seguimiento de la fase de una señal casi periodica.