ES2145737T5 - Codificador digital de voz con predictor a largo plazo mejorado por resolucion de submuestreos. - Google Patents

Codificador digital de voz con predictor a largo plazo mejorado por resolucion de submuestreos. Download PDF

Info

Publication number
ES2145737T5
ES2145737T5 ES91905041T ES91905041T ES2145737T5 ES 2145737 T5 ES2145737 T5 ES 2145737T5 ES 91905041 T ES91905041 T ES 91905041T ES 91905041 T ES91905041 T ES 91905041T ES 2145737 T5 ES2145737 T5 ES 2145737T5
Authority
ES
Spain
Prior art keywords
filter
voice
vector
samples
excitation
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.)
Expired - Lifetime
Application number
ES91905041T
Other languages
English (en)
Other versions
ES2145737T3 (es
Inventor
Ira Alan Gerson
Mark A. Jasiuk
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.)
Motorola Solutions Inc
Original Assignee
Motorola 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
Family has litigation
First worldwide family litigation filed litigation Critical https://patents.darts-ip.com/?family=23590969&utm_source=google_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=ES2145737(T5) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Application filed by Motorola Inc filed Critical Motorola Inc
Application granted granted Critical
Publication of ES2145737T3 publication Critical patent/ES2145737T3/es
Publication of ES2145737T5 publication Critical patent/ES2145737T5/es
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L19/00Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
    • G10L19/04Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis using predictive techniques
    • G10L19/08Determination or coding of the excitation function; Determination or coding of the long-term prediction parameters
    • G10L19/12Determination or coding of the excitation function; Determination or coding of the long-term prediction parameters the excitation function being a code excitation, e.g. in code excited linear prediction [CELP] vocoders
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L19/00Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
    • G10L2019/0001Codebooks
    • G10L2019/0011Long term prediction filters, i.e. pitch estimation
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L19/00Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
    • G10L2019/0001Codebooks
    • G10L2019/0012Smoothing of parameters of the decoder interpolation

Landscapes

  • Engineering & Computer Science (AREA)
  • Computational Linguistics (AREA)
  • Signal Processing (AREA)
  • Health & Medical Sciences (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • Acoustics & Sound (AREA)
  • Multimedia (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Analogue/Digital Conversion (AREA)
  • Complex Calculations (AREA)
  • Near-Field Transmission Systems (AREA)
  • Signal Processing For Digital Recording And Reproducing (AREA)

Abstract

UN CODIFICADOR DIGITAL DE HABLA INCLUYE UN FILTRO DE LARGO PLAZO (124) CON UN PRONOSTICADOR A LARGO PLAZO DE RESOLUCION DE SUBMUESTRA MEJORADA QUE PERMITE LA RESOLUCION DE SUBMUESTRA PARA EL PARAMETRO DE RETRASO L. SE APLICA UN MARCO DE MUESTRAS N DE VECTOR DE ENTRADA DE HABLA S(N) A UN CIRCUITO DE ADICION (510). LA SALIDA DEL CIRCUITO DE ADICION (510) PRODUCE LA SALIDA DEL VECTOR B(N) PARA EL FILTRO A LARGO PLAZO (124). EL VECTOR DE SALIDA B(N) ES RETROALIMENTADO A UN BLOQUE GENERADOR (530) DE VECTOR DE RETARDO DEL PRONOSTICADOR A LARGO PLAZO. EL PARAMETRO DE RETRASO L DEL PRONOSTICADOR NOMINAL A LARGO PLAZO TAMBIEN ES INTRODUCIDO AL BLOQUE GENERADOR DEL VECTOR DE RETARDO (530). EL PARAMETRO L DE RETRASO DEL PRONOSTICADOR A LARGO PLAZO PUEDE TOMAR VALORES NO ENTEROS, QUE PUEDEN SER MULTIPLOS DE UN MEDIO, UN TERCIO, UN CUARTO O CUALQUIER OTRA FRACCION RACIONAL. EL GENERADOR DE VECTOR DE RETARDO (530) INCLUYE UNA MEMORIA QUE SOSTIENE LAS MUESTRAS ANTERIORES DE B(N). ADEMAS, TAMBIEN SE CALCULAN LAS MUESTRAS DE B(N) INTERPOLADAS POR EL GENERADOR DE VECTOR RETARDADO (530) Y SE ALMACENAN EN SU MEMORIA, POR LO MENOS UNA MUESTRA INTERPOLADA ES CALCULADA Y ALMACENADA ENTRE CADA MUESTRA ANTERIOR DE B(N). EL GENERADOR DE VECTOR RETARDADO (530) FACILITA UN VECTOR DE SALIDA Q(N) AL BLOQUE MULTIPLICADOR A LARGO PLAZO (520), QUE ESCALA LA RESPUESTA DEL PRONOSTICADOR A LARGO PLAZO POR EL COEFICIENTE BETA DEL PRONOSTICADOR A LARGO PLAZO. LA SALIDA ESCALADA BETAQ(N) SE APLICA ENTONCES AL CIRCUITO DE ADICION (510) PARA COMPLETAR LA CURVA DE RETROALIMENTACION DEL FILTRO RECURSIVO (124).

Description

Codificador digital de voz con predictor a largo plazo mejorado por resolución de submuestreos.
Fundamento de la invención
La presente invención se refiere en general a la codificación digital de voz a bajas velocidades de tráfico binario y, de un modo más particular, se refiere a un método mejorado para determinar las respuestas de salida del predictor a largo plazo para codificadores de voz de predicción lineal excitados por código.
La predicción lineal excitada por código (CELP) es una técnica de codificación de voz que tiene el potencial de producir voz sintetizada de alta calidad a bajas velocidades de tráfico binario, por ejemplo, 4,8 a 9,6 kilobits por segundo (kbps). Esta clase de codificación de voz, conocida también como codificación de predicción lineal excitada por vector o codificación estocástica, lo más probable es que se utilice en numerosas comunicaciones de voz y en aplicaciones de síntesis de voz. La CELP puede demostrar tener aplicación en particular a sistemas de encriptación digital de voz y de comunicación por radioteléfono digital en los cuales la calidad de la voz, la velocidad de flujo de datos, el tamaño y el coste son cuestiones importantes.
El término "excitado por código" o "excitado por vector" se deriva del hecho de que la secuencia de excitación para el codificador de voz se cuantifica por vectores, o sea, se utiliza una sola palabra de código para representar una secuencia, o vector, de muestras de excitación. De esta manera, se pueden emplear velocidades de flujo de datos de menos de un bit por muestra para codificar la secuencia de excitación. Los vectores de código de excitación almacenados consisten generalmente en secuencias gausianas blancas, aleatorias, independientes. Un vector de código del libro de código se elige para representar cada bloque de N muestras de excitación. Cada vector de código almacenado está representado por una palabra de código, es decir, la dirección de la posición en la memoria de vectores de código. Esta palabra de código es la que se envía ulteriormente por un canal de comunicaciones al sintetizador de voz para reconstruir la trama de voz en el receptor. Véase M. R. Schroeder y B. S. Atal, "Predicción Lineal Excitada por Código (CELP): Voz de Alta Calidad a Velocidades de Tráfico Binario muy Bajas" acta de la Conferencia Internacional de IEEE sobre Acústica, Procesamiento de Voz y Señales (ICASSP), Vol. 3, pp. 937-40, Marzo 1985, para una explicación más detallada de CELP.
En un codificador de voz de CELP, el vector del código de excitación procedente del libro de código se aplica a dos filtros lineales variables en función del tiempo que modelan las características de la señal de voz de entrada. El primer filtro incluye un predictor de largo plazo en su bucle de realimentación, que tiene un largo retardo, por ejemplo de 2 a 15 milisegundos, empleado para introducir la periodicidad de tono o altura de la voz emitida. El segundo filtro incluye un predictor de corto plazo en su bucle de realimentación, que tiene un retardo corto, por ejemplo de menos de 2 milisegundos, utilizado para introducir una estructura de envolvente espectral o formato. Por cada trama o bloque de voz, el codificador de voz aplica cada vector de código individual a los filtros para generar una señal de voz reconstruida y compara la señal de voz de entrada original con la señal reconstruida para crear una señal de error. La señal de error se pondera entonces haciéndola pasar a través de un filtro de ponderación que tiene una respuesta basada en la percepción auditiva humana. La señal óptima de excitación se determina eligiendo el vector de código que produce la señal de error ponderada que tiene la energía mínima correspondiente a la trama o bloque actual. La palabra de código para el vector de código óptimo se transmite entonces por un canal de comunicaciones.
En un sintetizador de voz de CELP, la palabra de código recibida del canal se utiliza para direccionar el libro de código de vectores de excitación. El vector de código individual se multiplica entonces por un factor de ganancia y se filtra por medio de los filtros de largo plazo y corto plazo para obtener un vector de voz reconstruida. El factor de ganancia y los parámetros de predicción se obtienen también del canal. Se ha averiguado que se puede generar una señal sintetizada de mejor calidad si el parámetro real utilizado por el sintetizador se emplea en la etapa de análisis, minimizando así los errores de cuantificación. Por lo tanto, el uso de estos parámetros de síntesis en la etapa de análisis de voz de CELP para producir voz de calidad más alta se conoce como codificación de voz de análisis por síntesis.
El predictor a corto plazo intenta predecir la muestra de salida actual s(n) mediante una combinación lineal de las muestras de salida s(n-i), inmediatamente precedentes, con arreglo a la ecuación:
s(n) = \alpha _{1} s(n-1) + \alpha _{2} s(n-2) + . . . + \alpha _{p} s(n-p) + e(n)
donde p es el orden del predictor a corto plazo y e(n) es la residual de predicción, o sea, aquella parte de s(n) que no puede estar representada por la suma ponderada de p muestras previas. El orden de predictores p es característicamente de 8 a 12, suponiendo una velocidad de muestro de 9 kilohercios (kHz). Las ponderaciones \alpha_{1} \alpha_{2}, \alpha_{p}, en esta ecuación se llaman coeficientes predictores. Los coeficientes predictores a corto plazo se determinan a partir de la señal de voz utilizando técnicas de codificación predictiva lineal (LPC) tradicionales. La respuesta de salida del filtro de corto plazo se puede expresar en la notación de transformada Z como:
1
Consúltese el artículo titulado "Codificación Predictiva de Voz a Velocidades Bajas de Tráfico Binario", IEEE Trans. Commun., Vol. COM-30 pp- 600-14, Abril 1982, por B. S. Atal, para mayor explicación de los parámetros del filtro de corto plazo.
El filtro de largo plazo, por otro lado, debe predecir la muestra de salida próxima a partir de muestras precedentes que abarcan un periodo de tiempo mucho más largo. Si se utiliza una sola muestra basada en el predictor, entonces el predictor es un predictor de una sola toma. Característicamente se emplean de una a tres tomas. La respuesta de salida para un filtro de largo plazo que incorpora un predictor de largo plazo de una sola toma viene dada por la notación de transformada z como:
B(z) = \frac{1}{1\beta z - ^{L}}
\vskip1.000000\baselineskip
Obsérvese que esta respuesta de salida está en función de exclusivamente el retardo L del filtro y el coeficiente del filtro \beta. Con respecto a voz emitida, el retardo L sería característicamente el periodo de tono o altura de la voz, o un múltiplo del mismo. A un régimen de muestreo de 8 kHz, una gama apropiada para el retardo L estaría entre 16 y 143, que corresponde a una gama de tono o altura entre 56 y 500 Hz.
El retardo L del predictor a largo plazo y el coeficiente \beta del predictor a largo plazo se pueden determinar a partir de una configuración de bucle abierto o de bucle cerrado. Utilizando la configuración de bucle abierto, el retardo L y el coeficiente \beta se calculan a partir de la señal de entrada (o su residual) directamente. En la configuración de bucle cerrado, el retardo L y el coeficiente \beta se calculan a la velocidad de bloques a partir de datos codificados que representan la salida pasada del filtro de largo plazo y la señal de voz de entrada. Utilizando los datos codificados, la determinación del retardo del predictor a largo plazo se basa en el estado real del filtro de largo plazo que exista en el sintetizador. Por lo tanto, la configuración de bucle cerrado da mejor rendimiento que el método de bucle abierto, puesto que el propio filtro de tono o altura contribuiría a la optimización de la señal de error. Además, un predictor de una sola toma funciona muy bien en la configuración de bucle cerrado.
Utilizando la configuración de bucle cerrado, la respuesta de salida b(n) del filtro de largo plazo se determina a partir de muestras de salida pasadas solamente procedentes del filtro de largo plazo y a partir de las muestras actuales de voz de entrada s(n) con arreglo a la ecuación:
b(n) = s(n) + \beta b(n-L)
Esta técnica es sencilla para retardos de tono o altura L que sean mayores que la longitud del bloque N, o sea, cuando L \geq N, puesto que el término b(n-L) representará siempre una muestra pasada para todos los números de muestras n, 0 \leq n \leq N-1. Además, en el caso de L > N, el factor de ganancia de excitación \gamma y el coeficiente del predictor a largo plazo \beta se pueden optimizar simultáneamente para valores dados de retardo L y palabra de código i. Se ha podido comprobar que esta técnica de optimización conjunta produce una mejora considerable en la calidad de la voz.
No obstante, si se deben acomodar retardos L de predictores a largo plazo menores que la longitud de bloque N, fallará el sistema de bucle cerrado. Este problema se puede presentar fácilmente cuando se trata de voz femenina de tono agudo. Por ejemplo, una voz femenina, correspondiente a una frecuencia de tono de 250 Hz, puede exigir un retardo L de predictor a largo plazo equivalente a 4 milisegundos (ms). Un tono de 250 Hz a una velocidad de muestreo de 8 kHz corresponde a un retardo L de predictor a largo plazo de 32 muestras. No obstante, no es deseable emplear una longitud de bloque N de menos de 4 ms, puesto que el vector de excitación de CELP se puede codificar más eficientemente cuando se emplean mayores longitudes de bloques (tramas). En consecuencia, utilizando un tiempo de longitud (duración) de bloque de 7,5 ms a una velocidad de muestreo de 8 kHz, la longitud de bloque N sería igual a 60 muestras. Esto significa que solamente existirían disponibles 32 muestras pasadas para predecir las 60 muestras siguientes del bloque. Puesto que, si el retardo L del predictor a largo plazo es menor que la longitud de bloque N, solamente se definen L muestras pasadas de las N muestras requeridas.
Varios enfoques alternativos se han dado en el estado actual de la técnica para abordar el problema de retardos de tono L menores que la longitud de bloque N. Para intentar optimizar conjuntamente el retardo L del predictor a largo plazo y el coeficiente \beta, el primer enfoque consistiría en intentar resolver las ecuaciones directamente, suponiendo que no estuviera presente señal de excitación alguna. Este enfoque se explica en el artículo titulado "Excitación de Impulsos Regulares - Un Nuevo Enfoque a la Codificación de Voz por Impulsos Múltiples Eficaz y Eficiente" de Kroon y otros, IEEE Transactions on Acoustic, Speech, y Signal Processing, Vol. ASSP - 34, Nº 5, Octubre 1986, pp 1054-1063. No obstante, para seguir este sistema, se debe resolver una ecuación alineal en el parámetro único \beta. Se debe resolver la cuadrática o la cúbica en \beta. La solución de la cuadrática o la cúbica en \beta no puede ponerse en práctica desde un punto de vista de cálculo. Además, todavía no es posible la optimización conjunta del coeficiente \beta con el factor de ganancia \gamma con este sistema.
Una segunda solución, la de limitar el retardo L del predictor a largo plazo para que sea mayor que la longitud de bloque N, la propuso Singhal y Atal en el artículo "Mejora de Prestaciones de Codificadores de LPC de Impulsos Múltiples a Bajas Velocidades de Tráfico Binario", acta de la Conferencia Internacional de IEEE sobre Acústica, Voz y Procesamiento de Señales, Vol. 1, 19-21 Marzo 1984, pp. 1.3.1-1.3.4. Esta constricción artificial en el retardo de tono L no representa frecuentemente con exactitud la información de tono. En consecuencia, utilizando este sistema, se degrada la calidad de la voz de tono agudo.
Una tercera solución es reducir el tamaño de la longitud de bloque N. Con una longitud de bloque más corta, el retardo L del predictor a largo plazo se puede determinar siempre a partir de muestras pasadas. No obstante, este sistema tiene una grave desventaja referente a velocidad de tráfico binario. Con una longitud de bloque más corta se debe codificar un número mayor de parámetros predictores a largo plazo y vectores de excitación y, en consecuencia, la velocidad de tráfico binario del canal debe ser mayor para acomodar la codificación extra.
Existe un segundo problema en lo que se refiere a altavoces de alta frecuencia. La velocidad de muestreo empleada en el codificador impone un límite superior sobre el rendimiento de un predictor de tono de una sola toma. Por ejemplo, si la frecuencia de tono o frecuencia audible es realmente de 485 Hz, el valor de retardo más próximo sería 16 que corresponde a 500 Hz. Esto da por resultado un error de 15 Hz correspondiente a la frecuencia del tono fundamental que degrada la calidad de la voz. Este error se multiplica por los armónicos de la frecuencia audible que produce una mayor degradación.
Por lo tanto, existe la necesidad de proporcionar un método mejorado para determinar el retardo L del predictor a largo plazo. La solución óptima debe abordar los problemas de complejidad de cálculo y de calidad de la voz para la codificación de voz de tono agudo.
La publicación IEEE Journal on Selected Areas In Communications, Febrero 1988, Volumen 6, páginas 353-363, "Una Clase de Codificadores Predictivos de Análisis por Síntesis para Codificación de Voz de Alta Calidad a Velocidades entre 4,8 y 16 Kbits/s" describe métodos para codificar y reconstruir voz utilizando valores de retardo enteros. La Patente de los EE.UU. Nº. 4.569.030, concedida el 4 de Febrero de 1986, describe un filtro recursivo que tiene un bucle que utiliza un elemento de retardo con retardo T y un elemento de retardo con retardo 2T.
Resumen de la invención
En consecuencia, un objeto general de la presente invención es proporcionar una técnica de codificación digital de voz mejorada que produce voz de alta calidad a bajas velocidades de tráfico binario.
Un objeto más específico de la presente invención es proporcionar un método para determinar parámetros de predictores a largo plazo utilizando el sistema de bucle cerrado.
Otro objeto de la presente invención es proporcionar un método mejorado para determinar la respuesta de salida de un predictor a largo plazo en el caso de que el parámetro de retardo L del predictor a largo plazo no sea un número entero.
Otro objeto de la presente invención es proporcionar un codificador de voz CELP mejorado que permite la optimización conjunta del factor de ganancia \gamma y el coeficiente del predictor a largo plazo \beta durante la búsqueda en el libro de código para hallar el vector óptimo del código de excitación.
Según algunos aspectos de la invención, se proporcionan métodos de reconstrucción de voz tal como se expone en las reivindicaciones 1 y 9 y aparatos para reconstruir voz tal como se expone en la reivindicación 11. Según otros aspectos de la invención, se proporciona un método para codificar voz tal como se expone en la reivindicación 13 y un aparato para codificar voz tal como se expone en la reivindicación 16.
Breve descripción de los dibujos
Las características de la presente invención que se cree que son de novedad se exponen de un modo particular en las reivindicaciones adjuntas. La invención, junto con otros objetos y ventajas de la misma, se podrá comprender mejor tomando como referencia la descripción que sigue conjuntamente con los dibujos adjuntos, en cuyas diversas figuras los números de referencia iguales identifican elementos iguales o semejantes, y en los que:
La figura 1 es un diagrama de bloques general de un codificador de voz predictivo, lineal, excitado por código, que ilustra la ubicación de un filtro de largo plazo para uso con la presente invención.
La figura 2A es un diagrama de bloques detallado de una realización del filtro de largo plazo de la figura 1, e ilustra la respuesta del predictor a largo plazo donde el retardo L del filtro es un entero.
La figura 2B es un esquema simplificado de un registro de desplazamiento que se puede utilizar para ilustrar el funcionamiento del predictor a largo plazo de la figura 2A.
La figura 2C es un diagrama de bloques detallado de otra realización del filtro de largo plazo de la figura 1, que ilustra la respuesta del predictor a largo plazo cuando el retardo L del filtro es un entero.
La figura 3 es un diagrama de flujo detallado que ilustra las operaciones realizadas por el filtro de largo plazo de la figura 2A.
La figura 4 es un diagrama de bloques general de un sintetizador de voz para uso de conformidad con la presente invención.
La figura 5 es un diagrama de bloques detallado del filtro de largo plazo de la figura 1 e ilustra la respuesta del predictor a largo plazo con resolución de submuestreo de conformidad con la presente invención.
Las figuras 6A y 6B son diagramas de flujo detallados que ilustran las operaciones realizadas por el filtro de largo plazo de la figura 5; y
La figura 7 es un diagrama de bloques detallado de un postfiltro de tono para interacoplar el filtro de corto plazo y el conversor D/A del sintetizador de voz de la figura 4.
Descripción detallada de la realización preferida
Refiriéndonos ahora a la figura 1, se ilustra un diagrama de bloques general del codificador de voz 100, predictivo, lineal, excitado por código, que utiliza el filtro de largo plazo de conformidad con la presente invención. Una señal de entrada acústica que se va a analizar se alimenta al codificador de voz 100 en el micrófono 102. La señal de entrada, característicamente una señal de voz. Se alimenta entonces al filtro 104. El filtro 104 presentará generalmente características de filtro de paso de banda. No obstante, si la anchura de banda de frecuencia vocal ya es adecuada, el filtro 104 puede comprender una conexión alámbrica directa.
La señal analógica de voz procedente del filtro 104 se convierte entonces en una secuencia de N muestras de impulsos y la amplitud de cada muestra de impulsos está entonces representada por un código digital en el conversor analógico a digital (A/D) 108, según se sabe en la técnica. La velocidad de muestreo se determina por señal de reloj de muestreo SC, que representa una velocidad de 8,0 kHz en la realización preferida. La señal de reloj de muestreo SC se genera junto con la señal de reloj de bloques FC por medio del reloj 112.
La salida digital de A/D 108, que puede estar representada como el vector de voz de entrada s(n), se alimenta entonces al analizador de coeficientes 110. Este vector de voz de entrada s(n) se obtiene repetitivamente en bloques separados, o sea, bloques de tiempo, cuya duración o longitud está determinada por la señal de reloj de bloques FC. En la realización preferida, el vector de voz de entrada s(n), 0 \leq n \leq N-1, representa un bloque de 7,5 ms que contiene N = 60 muestras, en el cual cada muestra está representada por 12 a 16 bits de código digital da. En esta realización, por cada bloque de voz, un conjunto de parámetros de codificación predictiva lineal (LPC) son producidos por el analizador de coeficientes 110 en una configuración de bucle abierto. Los parámetros de predictores a corto plazo \alpha_{i}, el coeficiente del predictor a largo plazo \beta, el parámetro del retardo del predictor a largo plano nominal L, los parámetros de filtro de ponderación WFP, y el factor de ganancia de excitación \gamma (junto con la mejor palabra de código de excitación I, según se describirá más adelante) se aplican al multiplexor 150 y se envían por el canal para uso por el sintetizador de voz. Consúltese el artículo titulado "Codificación Predictiva de Voz a Bajas Velocidades de Tráfico Binario", IEEE Trans. Commun., Vol. COM-30, pp. 600-14, Abril 1982, por B. S. Atal, donde exponen método representativos para generar estos parámetros correspondientes a esta realización. El vector de voz de entrada s(n) se aplica también al substractor 130 cuya función se describirá más adelante.
La ROM 120 del libro de código contiene un conjunto de M vectores de excitación u_{i}(n), donde 1 \leq i \leq M, cada uno constituido por N muestras, donde 0 \leq n \leq N-1. La ROM 120 del libro de código genera estos vectores de excitación pseudoaleatorios en respuesta a una palabra particular de un conjunto de palabras de código de excitación i. Cada uno de los M vectores de excitación está constituido por una serie de muestras gausianas, blancas, aleatorias, aún cuando se pueden emplear otros tipos de vectores de excitación con la presente invención. Si la señal de excitación se codificara a una velocidad de 0,2 bits por muestra con relación a cada una de las 60 muestras, entonces existirían 4096 palabras de código i correspondientes a los vectores de excitación posibles.
Por cada vector de excitación individual u_{i}(n), se genera un vector de voz s'_{i}(n) para comparación el vector de voz de entrada s(n). El bloque de ganancia 122 gradúa el vector de excitación u_{i}(n) por el factor de ganancia de excitación \gamma, que es constante para el bloque. El factor de ganancia de excitación \gamma puede ser precalculado por el analizador de coeficientes 110 y utilizado para analizar todos los vectores de excitación como se indica en la figura 1, o se puede optimizar conjuntamente con la búsqueda de la mejor palabra de código de excitación I y ser generado por el controlador de búsqueda en el libro de códigos 140.
La señal de excitación graduada a escala \gamma u_{i}(n) se filtra entonces por medio del filtro de largo plazo 124 y el filtro de corto plazo 126 para generar el vector de voz reconstruida s'_{i}(n). El filtro 124 utiliza los parámetros de los predictores a largo plazo \beta y L para introducir periodicidad de voz y el filtro 126 utiliza los parámetros de los predictores a corto plazo \alpha_{i} para introducir la envolvente espectral, como se ha descrito anteriormente. El filtro de largo plazo 124 se describirá con detalle con relación a las figuras siguientes. Obsérvese que los bloques 124 y 126 son realmente filtros recursivos que contienen el predictor a largo plazo y el predictor a corto plazo en sus caminos de realimentación respectivos.
El vector de voz reconstruida s'_{i}(n), correspondiente al iésimo vector de código de excitación, se compara con el mismo bloque del vector de voz de entrada s(n) restando estas dos señales en el substractor 130. El vector de diferencia e_{i}(n) representa la diferencia entre los bloques de voz originales y reconstruidos. El filtro de ponderación 132 pondera perceptualmente el vector de diferencia utilizando los parámetros WTP del filtro de ponderación generados por el analizador de coeficientes 110. Consúltese la referencia precedente con respecto a una función de transferencia representativa del filtro de ponderación. La ponderación perceptual acentúa aquellas frecuencias en las cuales el error es perceptualmente más importante al oído humano, y atenúa otras frecuencias.
El calculador de energía 134 calcula la energía del vector de diferencia ponderado e'_{i}(n) y aplica esta señal de error E_{i} al controlador de búsqueda en el libro de códigos 140. El controlador de búsqueda compara la iésima señal de error para el vector de excitación presente u_{i}(n) contra señales de error previas para determinar el vector de excitación que produce el error mínimo. El código del iésimo vector de excitación que presenta un error mínimo se emite entonces por el canal como el mejor código de excitación I. Como alternativa, el controlador de búsqueda 140 puede determinar una palabra de código particular que proporcione una señal de error que tenga un criterio predeterminado, por ejemplo que cumpla con un umbral de error predefinido.
La figura 1 ilustra una realización de la invención para un codificador de voz predictivo lineal excitado por código. En esta realización, los parámetros del filtro de largo plazo L y \beta se determinan en una configuración de bucle abierto por medio del analizador de coeficientes 110. Como variante, los parámetros del filtro de largo plazo se pueden determinar en una configuración de bucle cerrado como se describe en la referencia anteriormente mencionada de Singhal y Atal. Generalmente, el rendimiento del codificador de voz mejora utilizando parámetros del filtro de largo plazo determinados en la configuración de bucle cerrado. La estructura de novedad del predictor a largo plazo, con arreglo a la presente invención, facilita considerablemente el empleo de la determinación en bucle cerrado de estos parámetros para retardos L menores que la longitud de bloque N.
La figura 2A ilustra una realización del filtro de largo plazo 124 de la figura 1, donde L se constriñe para que sea un entero. Aunque la figura 1 muestra el vector de excitación \gamma u_{i}(n) graduado a escala a partir del bloque de ganancia 122 según se introduce en el filtro de largo plazo 124, en la figura 2A se ha utilizado un vector de voz de entrada s(n) representativo para fines de explicación. Por lo tanto, un bloque de N muestras de vector de voz de entrada s(n) se aplica al sumador 210. La salida del sumador 210 produce el vector de salida b(n) para el filtro de largo plazo 124. El vector de salida b(n) se realimenta al bloque de retardo 230 del predictor a largo plazo. El parámetro nominal de retardo L del predictor a largo plazo se introduce también en el bloque de retardo 230. El bloque de retardo del predictor a largo plazo proporciona el vector de salida q(n) al bloque multiplicador 220 del predictor a largo plazo, que gradúa a escala la respuesta del predictor a largo plazo por el coeficiente \beta del predictor a largo plazo. La salida \betaq(n) puesta a escala se aplica entonces al sumador 210 para completar el bucle de realimentación en el filtro
recursivo.
La respuesta de salida H_{n}(z) del filtro de largo plazo 124 se define en la notación de la transformada Z como:
2
donde n representa un número de muestras de un bloque que contiene N muestras, 0 \leq n \leq N-1, donde \beta representa un coeficiente de filtro, donde L representa el retardo nominal del predictor a largo plazo, y donde \lfloor(n+L)/L\rfloor representa el entero más próximo igual o menor que (n+L)/L. El retardo del predictor a largo plazo \lfloor(n+L)/L\rfloor L varía en función del número de muestras n. Por lo tanto, con arreglo a la presente invención, el retardo real del predictor a largo plazo se convierte en kL, donde L es el retardo nominal del predictor a largo plazo y donde k es un entero elegido del conjunto {1, 2, 3, 4, . . .} en función del número de muestras n. En consecuencia, la respuesta de salida del filtro de largo plazo b(n) está en función del parámetro de retardo nominal L del predictor a largo plazo y el estado del filtro FS que existe al comienzo del bloque. Esta afirmación corresponde a todos los valores de L - - aún en el caso problemático de la circunstancia en la cual el retardo de tono L es menor que la longitud del bloque N.
La función del bloque de retardo 230 del predictor a largo plazo es almacenar las muestras de entrada actuales con el fin de predecir las muestras futuras. La figura 2B representa un diagrama simplificado de un registro de desplazamiento, que puede ser útil para comprender el funcionamiento del bloque de retardo 230 del predictor a largo plazo de la figura 2A. Con respecto al número de muestras \tau, de modo que n = \tau, la muestra actual de salida b(n) se aplica a la entrada del registro de desplazamiento, que se muestra a la derecha en la figura 2B. Con respecto a la muestra siguiente n = \tau+1, la muestra previa b(n) se desplaza a la izquierda en el registro de desplazamiento. Esta muestra constituye ahora la primera muestra pasada b(n-1). Con respecto a la muestra siguiente n = \tau+2, otra muestra de b(n) se desplaza en el registro, y la muestra original se desplaza de nuevo a la izquierda para constituir la segunda muestra pasada b(n-2). Después de haberse desplazado L muestras, la muestra original se habrá desplazado a la izquierda L número de veces, de tal manera que se puede representar como b(n-L).
Según se ha mencionado anteriormente, el retardo L será característicamente el periodo de tono de voz emitida o un múltiplo de la misma. Si el retardo L es por lo menos tan largo como la longitud del bloque N, un número suficiente de muestras pasadas se habrá desplazado y almacenado para predecir el bloque siguiente de voz. Aún en el caso extremo de que L = N y de que n = N-1, b(n-L) será b(-1), que es de hecho una muestra pasada. Por lo tanto, la muestra b(n-L) se emitirá desde el registro de desplazamiento como la muestra de salida q(n).
No obstante, si el parámetro de retardo L del predictor a largo plazo es más corto que la longitud de bloque N, entonces se habrá desplazado un número insuficiente de muestras en el registro de desplazamiento al comienzo del bloque siguiente. Utilizando el ejemplo anterior, con un periodo de tono de 250 Hz, el retardo de tono L sería igual a 32. Por lo tanto, cuando L=32 y N=60, y cuando n=N-1=59, b(n-L) sería normalmente b(27), que representa una muestra futura con respecto al comienzo del bloque de 60 muestras. En otras palabras, no se han almacenado suficientes muestras pasadas para proporcionar una respuesta completa de previsión a largo plazo. La respuesta completa de previsión a largo plazo es necesaria al comienzo del bloque de tal manera que se pueda realizar el análisis en bucle cerrado de los parámetros de predicción. De conformidad con la invención en ese caso, las mismas muestras almacenadas b(n-L), 0 \leq n \leq L, se repiten de tal manera que la respuesta de salida del predictor a largo plazo esté siempre en función de las muestras que se han introducido en el bloque de retardo del predictor a largo plazo antes del comienzo del bloque (trama) actual. En lo que se refiere a la figura 2B, el registro de desplazamiento se ha ampliado, por lo tanto, para almacenar otras kL muestras, lo cual representa modificar la estructura del bloque de retardo 230 del predictor a largo plazo. Por lo tanto, según se llena el registro de desplazamiento con nuevas muestras b(n), se debe elegir k de manera que b(n-kL) represente una muestra que existía en el registro de desplazamiento antes del comienzo del bloque. Utilizando el ejemplo previo de L=32 y N=60, la muestra de salida q(32) sería una repetición de la muestra q(0), que es b(0-L)=b(32-2L) ó b(-32).
Por lo tanto, la respuesta de salida q(n) del bloque de retardo 230 del predictor a largo plazo correspondería:
q(n) = b(n - kL)
donde 0 \leq n \leq N-1 y donde k se elige como el entero mínimo de manera que (n-kL) sea negativo. De un modo más específico, si un bloque de N muestras de s(n) se introduce en el filtro 124 del predictor a largo plazo, cada número de muestras n es j \leq n \leq N+j-l donde j es el índice correspondiente a la primera muestra de un bloque de N muestras. Por lo tanto, la variable k variaría de manera que (n-kL) sea siempre menor que j. De este modo se asegura que el predictor a largo plazo utilice exclusivamente muestras disponibles anteriores al comienzo del bloque para predecir la respuesta de salida.
El funcionamiento del filtro de largo plazo 124 de la figura 2A se describirá ahora de conformidad con el diagrama de flujo de la figura 3. Comenzando en el paso 350, el número de muestras n se inicializa a cero en el paso 351. El parámetro nominal de retardo L del predictor a largo plazo y el coeficiente \beta del predictor a largo plazo se introducen en el paso 352 procedentes del analizador de coeficientes 110. En el paso 353, el número de muestras n se comprueba para ver si se ha dado salida a un bloque completo. Si n \geq N, la operación finaliza en el paso 361. Si no se han calculado todas las muestras, una muestra de señal s(n) se introduce en el paso 354. En el paso 355, la respuesta de salida del bloque de retardo 230 del predictor a largo plazo se calcula con arreglo a la ecuación:
q(n) = b(n - \lfloor (n+L)/L \rfloor L)
donde \lfloor(n+L)/L\rfloor representa el entero más próximo igual o menor que (n+L)/L. Por ejemplo, si n=56 y L=32, entonces \lfloor(n+L)/L\rfloor L) se convierte en \lfloor(56+32/32\rfloor L, que es \lfloor(2,75)\rfloor L ó 2L. En el paso 356, la respuesta de salida b(n) del filtro de largo plazo se calcula con arreglo a la ecuación:
b(n) = \beta \ q(n) + s(n)
Esto representa la función del multiplicador 220 y el sumador 210. En el paso 357, la muestra en el registro de desplazamiento se desplaza una posición a la izquierda con respecto a todas las posiciones en el registro entre b(n-2) y b(n-L_{MAX}), donde L_{MAX} representa el retardo máximo del predictor a largo plazo que se puede asignar. En la realización preferida, L_{MAX} sería igual a 143. En el paso 358, la muestra de salida b(n) se introduce en la primera posición b(n-1) del registro de desplazamiento. En el paso 359 se da salida a la muestra filtrada b(n). El número de muestras n se incrementa entonces en el paso 360 y después se comprueba en el paso 353. Cuando se han calculado todas las N muestras, el proceso finaliza en el paso 361.
La figura 2C es una realización alternativa de un filtro de largo plazo que incorpora la presente invención. El filtro 124' es la versión inversa de alimentación directa de la configuración de filtro recursivo de la figura 2A. El vector de entrada s(n) se aplica al substractor 240 y al bloque de retardo 260 del predictor a largo plazo. El vector retardado q(n) se emite al multiplicador 250, que pone a escala el vector para el coeficiente \beta del predictor a largo plazo. La respuesta de salida H_{n}(z) del filtro digital 124' viene dada en la notación de la transformada z como:
\quad
\lfloor(n+L)/L\rfloor L)
\quad
H_{n}(z) = 1-\betaz-
donde n representa el número de muestras de un bloque (trama) que contiene N muestras, 0 \leq n \leq N-1, donde \beta representa el coeficiente del filtro de largo plazo, donde L representa el retardo nominal del predictor a largo plazo, y donde \lfloor(n+L)/L\rfloor representa el entero más próximo igual o menor que (n+L)/L. La señal de salida b(n) del filtro 124' se puede definir en términos de la señal de entrada s(n) como:
b(n) = s(n) - \beta s(n- \lfloor (n+L)/L \rfloor L)
para 0 \leq n \leq N-1. Según apreciarán los expertos en la materia, la estructura del predictor a largo plazo se ha modificado de nuevo para emitir de una forma repetida las mismas muestras almacenadas del predictor a largo plazo en el caso de que el retardo L del predictor a largo plazo sea menor que la longitud de bloque N.
Refiriéndonos ahora a la figura 5, se ilustra la realización preferida del filtro de largo plazo 124 de la figura 1 que permite la resolución de submuestras para el parámetro de retardo L. Un bloque de N muestras de vector de voz de entradas s(n) se aplica al sumador 510. La salida del sumador 510 produce el vector de salida b(n) para el filtro de largo plazo 124. El vector de salida b(n) se realimenta al bloque generador de vectores retardados 530 del predictor a largo plazo. El parámetro de retardo nominal L del predictor a largo plazo se emite también al bloque generador de vectores retardados 530. El parámetro de retardo L del predictor a largo plazo puede admitir valores que no sean enteros. La realización preferida permite que L admita valores que sean múltiplos de una mitad. Otras modalidades alternativas del predictor a largo plazo con resolución de submuestras de la presente invención podría permitir valores que fueran múltiplos de un tercio o un cuarto o de cualquier otra fracción racional.
En la realización preferida, el generador de vectores retardados 530 incluye una memoria que mantiene muestras pasadas de b(n). Además, el generador de vectores retardados 530 calcula también muestras interpoladas de b(n) que se almacenan en su memoria. En la realización preferida, el estado del predictor a largo plazo, que está contenido en el generador de vectores retardados 530, tiene dos muestras por cada muestra almacenada de b(n). Una muestra corresponde a b(n) y la otra muestra representa una muestra interpolada entre dos muestras b(n) consecutivas. De esta manera, se pueden obtener muestras de b(n) del generador de vectores retardados 530 que corresponden a retardos enteros o múltiplos de mitades de retardos de muestras. La interpolación se realiza utilizando filtros de respuesta de impulsos finitos de interpolación tal como se describe en el manual de R, Crochiere y L. Rabiner titulado Multirate Digital Signal Processing, publicado por Prentice Hall en 1983. El funcionamiento del generador de retardo de vectores 530 se describirá con más detalle más adelante conjuntamente con los diagramas de flujo de las figuras 6A y 6B.
El generador de vectores retardados 530 proporcionar el vector de salida q(n) al bloque multiplicador a largo plazo 520, que pone a escala la respuesta del predictor a largo plazo para el coeficiente \beta del predictor a largo plazo. La salida \betaq(n) puesta a escala se aplica entonces al sumador 510 para completar el bucle de realimentación del filtro recursivo 124 en la figura 5.
Refiriéndonos a las figuras 6A y 6B, se ilustran diagramas de flujo detallados que detallan las operaciones realizadas por el filtro de largo plazo de la figura 5. Con arreglo a la realización preferida de la presente invención, la resolución de la memoria del predictor a largo plazo se amplía mapeando una secuencia b(n) de N puntos en un vector ex(i) de 2N puntos. Las muestras indexadas negativas de ex(i) contienen los valores pasados de resolución ampliada de la salida b(n) del filtro de largo plazo, o la historia a largo plazo de resolución ampliada. El proceso de mapeo duplica la resolución temporal de la memoria del predictor a largo plazo cada vez que se aplica. En este caso, para simplificar, se describe mapeo de una sola etapa, aún cuando se pueden ejecutar etapas adicionales en otras realizaciones de la presente invención.
Comenzando con el paso de ARRANQUE 602 en la figura 6A, el diagrama de flujo prosigue hasta el paso 604 donde se introducen L, \beta y s(n). En el paso 608, el vector q(n) se construye con arreglo a la ecuación:
\quad
q(n) = ex(2n-2L \lfloor(n+L)/L\rfloor)
\quad
para 0 \leq n \leq N-1
donde \lfloor(n+L)/L\rfloor representa el entero más próximo igual o menor que (n+L)/L y donde L es el retardo del predictor a largo plazo. Con relación a voz emitida, el retardo L del predictor a largo plazo puede ser el periodo de tono o un múltiplo del periodo de tono. L puede ser un entero o un número real cuya parte fraccional sea 0,5 en la realización preferida. Cuando la parte fraccional de L es 0,5, L tiene una resolución efectiva de la mitad de una muestra.
En el paso 610, el vector b(n) del filtro de largo plazo se calcula con arreglo a la ecuación:
\quad
b(n) = \beta q(n) + s(n)
\quad
para 0 \leq n \leq N-1
En el paso 612 se da salida al vector b(n) del filtro de largo plazo. En el paso 614, el estado de resolución ampliado ex(n) se actualiza para generar y almacenar los valores interpolados de b(n) en la memoria del generador de vectores retardados 530. El paso 614 se ilustra con más detalle en la figura 6B. Después, en el paso 616, el proceso se habrá completado y se detiene.
Entrando en el paso de ARRANQUE 622 en la figura 6B, el diagrama de flujo prosigue hasta el paso 524, donde las muestras en ex(i) que se tienen que calcular en este subbloque se ponen a cero, ex(i) = 0 para i =-M, -M+2,. . ., 2N-1, donde M se elige de modo que sea impar para filtro de interpolación de orden 2M+1. Por ejemplo, si el orden de filtro es 39, M es 19. Aunque M se haya elegido como impar para simplificar, M puede ser también par. En el paso 626, una muestra si y otra no de ex(i) para i = 0,2,. . ., 2(N-1) se inicializa con muestras de b(n) como arreglo a la ecuación:
\quad
ex(2i) = b(i)
\quad
para i = 0, 1, . . . , N-1.
Por lo tanto ex(i) para i = 0, 2,. . ., 2(N-1) mantiene ahora el vector de salida b(n), correspondiente al bloque actual, mapeado en sus índices pares, mientras que los índices impares de ex(i) para i = 1, 3,. . ., 2(N-1)+1 se inicializan con ceros.
En el paso 628, las muestras interpoladas de ex(i), inicializadas a cero, se reconstruyen por interpolación de FIR, utilizando un filtro de desplazamiento simétrico de fase cero, suponiendo que el orden de tal filtro FIR sea 2M+1 como se ha explicado anteriormente. Los coeficientes del filtro FIR son a(j), donde j = -M, -M+2,. . ., M-1, M y donde a(j) = a(-j). Solamente muestras pares asignadas para que sean las tomas de filtro FIR se utilizan en la reconstrucción de muestras, puestos que las muestras impares se han puesto a cero. En consecuencia, M+1 muestras en lugar de 2M+1 muestras se ponderan realmente y se suman por cada muestra reconstruida. La interpolación FIR se realiza con arreglo a la ecuación:
3
Obsérvese que la primera muestra que se tiene que reconstruir es ex(-M), no ex(1) como cabría esperar. Se debe a que las muestras interpoladas en índices -M,-M+2,. . .,-1 se reconstruyeron en el bloque (trama) previo utilizando una estimación de la excitación del bloque actual, puesto que las muestras reales de excitación eran entonces indefinidas. En el bloque actual esas muestras se conocen (tenemos b(n)) y, por lo tanto, las muestras de ex(i), para i=-M,-M+2,. . .,-1 se reconstruyen ahora de nuevo, con las tomas del filtro apuntando a los valores reales y no a los estimados de b(n).
El valor mayor de i en la ecuación anterior, es 2(N+1)-M. Esto significa que (M+1)/2 muestras impares de ex(i), para i=2N-M,2N-M+2,. . ., 2(N-1)+1, se tienen que reconstruir todavía. No obstante, con respecto a aquellos valores de índice i, las tomas superiores del filtro de interpolación apuntan a muestras futuras de la excitación que todavía están sin definir. Para calcular los valores de ex(i) correspondientes a esos índices, el estado futuro de ex(i) para i=2N,2N+2,. . .,2N+M-1 se amplía evaluando en el paso 630:
\quad
ex(i) = \lambda ex(i-2L),
\quad
para i = 2N,2N+2,. . ., 2N+M-1
El valor mínimo de 2L que se tiene que utilizar en este esquema es 2M+1. Esta limitación se puede suprimir si definimos;
\quad
ex(i) = \lambda ex (F(i-2L)),
\quad
para i=2N,2N+2,. . ., 2N+M-1;
\newpage
donde F(i-2L) para i-2L igual a números impares viene dada por:
4
y donde F(i-2L) para i-2L igual a números pares viene dada por:
5
El parámetro \lambda, el factor de puesta a escala de ampliación histórica, se puede poner igual a \beta, que es el coeficiente del predictor de tono, o ponerse a la unidad.
En el paso 632, con la historia de excitación así ampliada, las últimas muestras (M+1)/2 puestas a cero del bloque actual de resolución ampliada se calculan empleando:
6
Estas muestras se volverán a calcular en el subbloque siguiente, una vez que se tengan disponibles las muestras reales de excitación correspondientes a ex(i), i=2N,2N+2,. . . , 2N+M-1.
Por lo tanto b(n), para n=0, N-1 se ha mapeado en el vector ex(i), i=0,2, . . ., 2(N-1). Las muestras faltantes puestas a cero se han reconstruido utilizando un filtro de interpolación de FIR. Obsérvese que la interpolación de FIR se aplica solamente a las muestras que faltan. De este modo se tiene la seguridad de que no se introduzca distorsión innecesariamente en las muestras conocidas, que se almacenan en índices pares de ex(i). Un beneficio adicional de procesar solamente las muestras que faltan es que se reduce a la mitad el cálculo relacionado con la interpolación.
En el paso 634, la historia del predictor a largo plazo se actualiza finalmente desplazando hacia abajo el contenido del vector de excitación de resolución ampliada ex(i) por 2N puntos:
\quad
ex(i) = ex(i+2N),
\quad
para i = -2Max_L,-1
donde Max_L es el retardo máximo del predictor a largo plazo utilizado. Después, en el paso 636, el proceso habrá finalizado y se detiene.
Refiriéndonos ahora a la figura 4, se ilustra un diagrama de bloques del sintetizador de voz utilizando el filtro de largo plazo de la presente invención. El sintetizador 400 obtiene los parámetros \alpha_{i} del predictor de corto plazo, los parámetros \beta y L del predictor de largo plazo, el factor de ganancia de excitación \gamma y la palabra de código I, recibidos del canal por vía del desmultiplexor 450. La palabra de código I se aplica a la ROM 420 del libro de código para direccionar el libro de código de vectores de excitación. El vector de excitación único u_{I}(n) se multiplica entonces por el factor de ganancia \gamma en el bloque 422, se filtra por medio del filtro 424 del predictor a largo plazo y el filtro 426 del predictor a corto plazo para obtener el vector de voz reconstruida s'_{I}(n). Este vector, que representa un bloque (trama) de voz reconstruida, se aplica entonces al conversor analógico a digital (A/D) 408 para producir una señal analógica reconstruida, que se filtra en paso bajo para reducir falsedad por el filtro 404, y se aplica a un transductor de salida, por ejemplo el altavoz 402. Por lo tanto, el sintetizador de CELP utiliza el mismo libro de código, bloque de ganancia, filtro de largo plazo y filtro de corto plazo que el analizador de CELP de la figura 1.
La figura 7 es un diagrama de bloques detallado de un postfiltro de tono para interacoplar el filtro de corto plazo 426 y el conversor D/A 408 del sintetizador de voz de la figura 4. Un postfiltro de tono mejora la calidad de la voz suprimiendo el ruido introducido por los filtros 424 y 426. Un bloque de N muestras del vector de voz reconstruida s'_{I}(n) se aplica al sumador 710. La salida del sumador 710 produce el vector de salida s''_{I}(n) para el postfiltro de tono. El vector de salida s''_{I}(n) se realimenta al bloque generador de muestras recargadas 730 del postfiltro de tono. El parámetro nominal de retardo L del predictor a largo plazo se introduce también en el bloque generador de muestras retardadas 730. L puede admitir valores que no sean enteros para la presente invención. Si L no es entero, se utiliza un filtro de FIR de interpolación para generar el retardo de muestra fraccional necesario. El generador de muestras retardadas 730 proporcionar el vector de salida q(n) al bloque multiplicador 720, que pone a escala la respuesta del postfiltro de tono por el coeficiente R que está en función del coeficiente \beta del predictor a largo plazo. La salida Rq(n) a escala se aplica entonces al sumador 710 para completar el bucle de realimentación del postfiltro de tono de la figura 7.
Al utilizar la respuesta del predictor a largo plazo con arreglo a la presente invención, el factor de ganancia de excitación \gamma y el coeficiente \beta del predictor a largo plazo se pueden optimizar simultáneamente para todos lo valores de L en una configuración de bucle cerrado. Esta técnica de optimización conjunta fue impracticable para valores de L<N con anterioridad a esta invención, puesto que las ecuaciones de optimización conjuntas se volverían alineales en el parámetro \beta único. La presente invención modifica la estructura del predictor a largo plazo para permitir una ecuación de optimización conjunta lineal. Además, la presente invención permite que el retardo del predictor a largo plazo tenga mejor resolución que una muestra, mejorando así su rendimiento.
Además, el procedimiento de búsqueda en el libro de código se ha simplificado aún más, puesto que la respuesta de estado cero del filtro de largo plazo se convierte en cero con relación a retardos menores que la longitud de bloque. Esta característica adicional permite que los expertos en la materia supriman el efecto del filtro de largo plazo del procedimiento de búsqueda en el libro de código. Por lo tanto, se ha descrito un codificador de voz de CELP que puede proporcionar voz de más alta calidad para todas las cadencias de tono conservando, al mismo tiempo, las ventajas de realización práctica y baja velocidad de tráfico binario.
Si bien se han ilustrado y descrito en esta memoria realizaciones específicas de la presente invención, se pueden introducir otras modificaciones y mejoras. Por ejemplo, se puede emplear cualquier tipo de codificación de voz (por ejemplo, RELP, impulsos múltiples, RPE, LPC, etc.) con la técnica de filtrado con predictores a largo plazo con resolución de submuestreo descrita en esta memoria. Además, se pueden elaborar configuraciones equivalentes adicionales de la estructura de predictores a largo plazo con resolución de submuestreo que realicen los mismos cálculos que los anteriormente ilustrados.

Claims (16)

1. Método para reconstruir voz que comprende los pasos de:
recibir, de un canal de comunicaciones, un conjunto de parámetros de voz que incluyen una palabra de código I y un parámetro de retardo L, donde el parámetro de retardo L puede tener un valor en una gama predeterminada que incluye valores enteros y no enteros relacionados con un periodo de tono de voz;
generar un vector de excitación que tiene N muestras en respuesta a la palabra de código I;
filtrar el vector de excitación tomando como base por lo menos el parámetro de retardo L y las muestras de estado de filtro almacenada, comprendiendo la operación de filtrar los pasos de:
calcular las muestras de estado de filtro interpoladas a partir de las muestras de estado filtradas, almacenadas, utilizando un valor L no entero, y
combinar linealmente el vector de excitación con las muestras de estado de filtro interpoladas, formando de este modo un vector de salida de filtro que tiene una pluralidad de muestras de salida de filtro,
y procesar el vector de salida de filtro para producir voz reconstruida,
en el que, en el caso del parámetro de retardo L < N y siendo el parámetro de retardo L un entero, la etapa de filtrado comprende el uso repetido de al menos algunas de las mismas muestras de estado del filtro memorizadas en la producción de un vector retardado para combinación lineal con el vector de excitación para formar el vector de salida del filtro.
2. Método para reconstruir voz según la reivindicación 1, caracterizado además porque la operación de filtrar comprende combinar, en respuesta a que L sea un entero, el vector de excitación con las muestras de estado de filtro almacenadas, formando así muestras de salida de estado de filtro.
3. Método para reconstruir voz según la reivindicación 1, caracterizado además porque la operación de filtrar comprende actualizar las muestras de estado de filtro almacenadas utilizando las muestras de salida de filtro.
4. Método para reconstruir voz según la reivindicación 1, caracterizado porque comprende además los pasos de: convertir la voz reconstruida en una señal de voz analógica; y transducir la señal de voz analógica en una salida de audio perceptible, de tal manera que los periodos de tono de voz se predicen con más precisión.
5. Aparato para reconstruir voz que comprende: una circuitería receptora (450) para recibir, de un canal de comunicaciones, un conjunto de parámetros de voz que incluyen una palabra de código I y un parámetro de retardo L;
una circuitería generadora (420) para generar un vector de excitación que tiene N muestras en respuesta a la palabra de código I;
una circuitería de filtro (124, 429) para filtrar el vector de excitación tomando como base por lo menos el parámetro de retardo L y las muestras de estado de filtro almacenadas, caracterizado porque L tiene un valor en una gama predeterminada que incluye valores enteros y no enteros relacionados con un periodo de tono de voz, y porque la circuitería de filtro comprende:
una circuitería de cálculo (530) para calcular las muestras de estado de filtro interpoladas a partir de muestras de estado filtradas almacenadas utilizando un valor L no entero, y
una circuitería de combinación (510, 520) para combinar linealmente el vector de excitación con las muestras de estado de filtro interpoladas, formando de este modo un vector de salida de filtro que tiene una pluralidad de muestras de salida de filtro; y
una circuitería de procesamiento para procesar el vector de salida de filtro para producir voz reconstruida,
en el que, en el caso del parámetro de retardo L < N y siendo el parámetro de retardo L un entero, la etapa de filtrado comprende el uso repetido de al menos algunas de las mismas muestras de estado del filtro memorizadas en la producción de un vector retardado para combinación lineal con el vector de excitación para formar el vector de salida del filtro.
6. Aparato para reconstruir voz según la reivindicación 5, caracterizado porque la circuitería de combinación comprende además combinar, en respuesta a que L sea un entero, el vector de excitación con las muestras de estado de filtro almacenadas, formando de este modo muestras de salida de estado de filtro.
7. Aparato para reconstruir voz según la reivindicación 5, caracterizado porque la circuitería de filtro comprende además una circuitería de actualización para actualizar las muestras de estado de filtro almacenadas utilizando las muestras de salida de filtro.
8. Aparato para reconstruir voz según la reivindicación 5, caracterizado porque comprende además:
una circuitería de conversión para convertir la voz reconstruida en una señal de voz analógica; y
una circuitería transductora para transducir la señal de voz analógica en una salida de audio perceptible, de tal manera que los periodos de tono de voz se predicen con más precisión.
9. Método para reconstruir voz que comprende los pasos de:
recibir, de un canal de comunicaciones, un conjunto de parámetros de voz que incluyen una palabra de código I y un parámetro de retardo L;
generar un vector de excitación que tiene N muestras en respuesta a la palabra de código I;
filtrar el vector de excitación tomando como base por lo menos el parámetro de retardo L, un conjunto de muestras de estado de filtro almacenadas, y por lo menos un conjunto de muestras de estado de filtro interpoladas, en el que L tiene un valor en un intervalo predeterminado que incluye valores enteros y no enteros relacionados con el periodo de tonos de la voz, y la operación de filtrar comprende los pasos de:
elegir un conjunto de muestras de estado de filtro del grupo consistente en el conjunto de muestras de estado de filtro almacenadas y el conjunto o conjuntos de muestras de estado de filtro, interpoladas, almacenadas, utilizando el paso de elección el parámetro de retardo L, y
combinar linealmente el vector de excitación con las muestras de estado de filtro elegidas, formando de este modo un vector de salida de filtro que tiene una pluralidad de muestras de salida de filtro; y
procesar el vector de salida de filtro para producir voz reconstruida,
en el que, en el caso del parámetro de retardo L < N y siendo el parámetro de retardo L un entero, la etapa de filtrado comprende el uso repetido de al menos algunas de las mismas muestras de estado del filtro memorizadas en la producción de un vector retardado para combinación lineal con el vector de excitación para formar el vector de salida del filtro.
10. Método para reconstruir voz según la reivindicación 9, caracterizado porque comprende además los pasos
de:
convertir la voz reconstruida en una señal de voz analógica; y transducir la señal de voz analógica en una salida de audio perceptible, de tal manera que los periodos de tono de voz se predicen con más precisión.
11. Apara para reconstruir voz que comprende:
una circuitería receptora (450) para recibir, de un canal de comunicaciones, un conjunto de parámetros de voz que incluyen una palabra de código I y un parámetro de retardo L, donde L puede tener un valor en una gama predeterminada que incluye valores enteros y no enteros relacionados con un periodo de tono de voz;
una circuitería de generación (420) para generar un vector de excitación que tiene N muestras en respuesta a la palabra de código I;
una circuitería de filtro (104, 424) para filtrar el vector de excitación tomando como base por lo menos el parámetro de retardo L, un conjunto de muestras del estado de filtro almacenadas y por lo menos un conjunto de muestras de estado de filtro, interpoladas, almacenadas, comprendiendo la circuitería de filtro:
una circuitería de elección para elegir un conjunto de muestras de estado de filtro del grupo consistente en el conjunto de muestras de estado de filtro almacenadas y el conjunto o conjuntos de muestras de estado de filtro, interpoladas, almacenadas, empleando el paso de elección el parámetro de retardo L, y
una circuitería de combinación para combinar linealmente el vector de excitación con las muestras de estado de filtro elegidas, formando de este modo un vector de salida de filtro que tiene una pluralidad de muestras de salida de filtro; y
una circuitería de procesamiento (426) para procesar el vector de salida de filtro para producir voz reconstruida,
en el que, en el caso del parámetro de retardo L < N y siendo el parámetro de retardo L un entero, la etapa de filtrado comprende el uso repetido de al menos algunas de las mismas muestras de estado del filtro memorizadas en la producción de un vector retardado para combinación lineal con el vector de excitación para formar el vector de salida del filtro.
12. Aparato para reconstruir voz según la reivindicación 11, caracterizado porque comprende, además:
una circuitería de conversión para convertir la voz reconstruida en una señal de voz analógica; y
una circuitería transductora para transducir la señal de voz analógica en una salida de audio perceptible, de tal manera que los periodos de tono de voz se predicen con más precisión.
13. Método para codificar voz en conjuntos de parámetros de voz para transmisión por un canal de comunicaciones, comprendiendo el método los pasos de:
muestrear una señal de voz una pluralidad de veces para proporcionar una pluralidad de muestras que constituyen un vector de voz presente;
generar un parámetro de retardo L que tiene un valor en una gama predeterminada que incluye valores enteros y no enteros relacionados con un periodo de tono de voz del vector de voz presente;
buscar vectores de excitación para determinar una palabra de código I que sea la que mejor coincida con el vector de voz presente, comprendiendo el paso de búsqueda los pasos de:
generar vectores de excitación en respuestas a palabras de código correspondientes, teniendo cada vector de excitación N muestras,
filtrar cada vector de excitación tomando como base por lo menos el parámetro de retardo L, un conjunto de muestras de estado de filtro almacenadas, y por lo menos un conjunto de muestras de estado de filtro interpoladas, en el que L tiene un valor en un intervalo predeterminado que incluye valores enteros y no enteros relacionados con el periodo de tonos de la voz, y el paso de filtrar comprende los pasos de:
calcular las muestras de estado de filtro interpoladas a partir de las muestras de estado de filtro almacenadas utilizando un valor L no entero, y
combinar linealmente el vector de excitación con las muestras de estado de filtro interpoladas, formando de este modo un vector de salida de filtro que tiene una pluralidad de muestras de salida de filtro;
elegir la palabra de código I del vector de excitación con respecto a la cual la voz sintetizada que utiliza el valor L no entero difiera mínimamente de la señal de voz; y
transmitir el parámetro L elegido junto con los parámetros de voz preseleccionados para el vector de voz presente en el canal de comunicaciones, de tal manera que los periodos de tono de voz se predicen con más precisión,
en el que, en el caso del parámetro de retardo L < N y siendo el parámetro de retardo L un entero, la etapa de filtrado comprende el uso repetido de al menos algunas de las mismas muestras de estado del filtro memorizadas en la producción de un vector retardado para combinación lineal con el vector de excitación para formar el vector de salida del filtro.
14. Método para codificar voz según la reivindicación 13, caracterizado además porque el paso de buscar los vectores de excitación comprende:
procesar el vector de salida de filtro para producir un vector de voz reconstruida; y
comparar el vector de voz reconstruida con el vector de voz presente para determinar la diferencia entre los mismos.
15. Método para codificar voz según la reivindicación 13, caracterizado además porque el paso de elegir la palabra de código I comprende elegir la palabra de código I del vector de excitación con respecto al cual el vector de voz reconstruido difiere mínimamente del vector de voz presente.
16. Aparato para codificar voz en conjuntos de parámetros de voz para transmisión por un canal de comunicaciones, comprendiendo el aparato:
una circuitería de muestreo para muestrear una señal de voz una pluralidad de veces para proporcionar una pluralidad de muestras que constituyen un vector de voz presente;
una circuitería de generación para generar un parámetro de retardo L que tiene un valor en una gama predeterminada que incluye valores enteros y no enteros relativos a un periodo de tono de voz del vector de voz presente;
\vskip1.000000\baselineskip
una circuitería de búsqueda para buscar vectores de excitación con el fin de determinar una palabra de código I que sea la que mejor coincide con el vector de voz presente, comprendiendo la circuitería de búsqueda:
una circuitería de generación para generar vectores de excitación en respuesta a palabras de código correspondientes, teniendo cada vector de excitación N muestras;
una circuitería de filtro para filtrar cada vector de excitación tomando como base por lo menos el parámetro de retardo L, un conjunto de muestras de estado de filtro almacenadas y por lo menos un conjunto de muestras de estado de filtro, interpoladas, almacenadas, comprendiendo la circuitería de filtro:
una circuitería de elección para elegir un conjunto de muestras de estado de filtro del grupo consistente en el conjunto de muestras de estado de filtro almacenadas y el conjunto o conjuntos de muestras de estado de filtro, interpoladas, almacenadas, utilizando la circuitería de elección el parámetro de retardo L, y
una circuitería de combinación para combinar linealmente el vector de excitación con muestras de estado de filtro elegidas, formando de este modo un vector de salida de filtro que tiene una pluralidad de muestras de salida de filtro;
una circuitería de procesamiento para procesar el vector de salida de filtro con el fin de producir un vector de voz reconstruida;
una circuitería de comparación para comparar el vector de voz reconstruida con el vector de voz presente con el fin de determinar la diferencia entre los mismos;
una circuitería de selección para seleccionar la palabra de código I del vector de excitación con respecto al cual el vector de voz reconstruida difiere mínimamente del vector de voz presente; y
una circuitería de transmisión para transmitir la palabra de código elegida I y el parámetro de retardo L junto con parámetros de voz preseleccionados para el vector de voz presente en el canal de comunicaciones, de tal manera que los periodos de tono de voz se predicen con más precisión,
en el que, en el caso del parámetro de retardo L < N y siendo el parámetro de retardo L un entero, la etapa de filtrado comprende el uso repetido de al menos algunas de las mismas muestras de estado del filtro memorizadas en la producción de un vector retardado para combinación lineal con el vector de excitación para formar el vector de salida del filtro.
ES91905041T 1989-09-01 1990-06-25 Codificador digital de voz con predictor a largo plazo mejorado por resolucion de submuestreos. Expired - Lifetime ES2145737T5 (es)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US40220689A 1989-09-01 1989-09-01
US402206 1989-09-01

Publications (2)

Publication Number Publication Date
ES2145737T3 ES2145737T3 (es) 2000-07-16
ES2145737T5 true ES2145737T5 (es) 2007-03-01

Family

ID=23590969

Family Applications (1)

Application Number Title Priority Date Filing Date
ES91905041T Expired - Lifetime ES2145737T5 (es) 1989-09-01 1990-06-25 Codificador digital de voz con predictor a largo plazo mejorado por resolucion de submuestreos.

Country Status (12)

Country Link
EP (1) EP0450064B2 (es)
JP (1) JP3268360B2 (es)
CN (1) CN1026274C (es)
AT (1) ATE191987T1 (es)
AU (1) AU634795B2 (es)
CA (1) CA2037899C (es)
DE (1) DE69033510T3 (es)
DK (1) DK0450064T4 (es)
ES (1) ES2145737T5 (es)
MX (1) MX167644B (es)
SG (1) SG47028A1 (es)
WO (1) WO1991003790A1 (es)

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5327520A (en) * 1992-06-04 1994-07-05 At&T Bell Laboratories Method of use of voice message coder/decoder
FR2702590B1 (fr) * 1993-03-12 1995-04-28 Dominique Massaloux Dispositif de codage et de décodage numériques de la parole, procédé d'exploration d'un dictionnaire pseudo-logarithmique de délais LTP, et procédé d'analyse LTP.
FI96248C (fi) 1993-05-06 1996-05-27 Nokia Mobile Phones Ltd Menetelmä pitkän aikavälin synteesisuodattimen toteuttamiseksi sekä synteesisuodatin puhekoodereihin
DE4421853A1 (de) * 1994-06-22 1996-01-04 Philips Patentverwaltung Mobilfunkendgerät
GB9408037D0 (en) * 1994-04-22 1994-06-15 Philips Electronics Uk Ltd Analogue signal coder
JP2970407B2 (ja) * 1994-06-21 1999-11-02 日本電気株式会社 音声の励振信号符号化装置
FR2729246A1 (fr) * 1995-01-06 1996-07-12 Matra Communication Procede de codage de parole a analyse par synthese
FR2729244B1 (fr) * 1995-01-06 1997-03-28 Matra Communication Procede de codage de parole a analyse par synthese
FR2729247A1 (fr) * 1995-01-06 1996-07-12 Matra Communication Procede de codage de parole a analyse par synthese
US5708757A (en) * 1996-04-22 1998-01-13 France Telecom Method of determining parameters of a pitch synthesis filter in a speech coder, and speech coder implementing such method
JP4857468B2 (ja) 2001-01-25 2012-01-18 ソニー株式会社 データ処理装置およびデータ処理方法、並びにプログラムおよび記録媒体
JP4857467B2 (ja) * 2001-01-25 2012-01-18 ソニー株式会社 データ処理装置およびデータ処理方法、並びにプログラムおよび記録媒体
GB2466674B (en) 2009-01-06 2013-11-13 Skype Speech coding
GB2466675B (en) 2009-01-06 2013-03-06 Skype Speech coding
GB2466673B (en) 2009-01-06 2012-11-07 Skype Quantization
GB2466672B (en) * 2009-01-06 2013-03-13 Skype Speech coding
GB2466671B (en) 2009-01-06 2013-03-27 Skype Speech encoding
CN104025191A (zh) * 2011-10-18 2014-09-03 爱立信(中国)通信有限公司 用于自适应多速率编解码器的改进方法和设备
FR3015754A1 (fr) * 2013-12-20 2015-06-26 Orange Re-echantillonnage d'un signal audio cadence a une frequence d'echantillonnage variable selon la trame

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
NL168669C (nl) * 1974-09-16 1982-04-16 Philips Nv Interpolerend digitaal filter met ingangsbuffer.
US4080660A (en) * 1975-07-11 1978-03-21 James Nickolas Constant Digital signal time scale inversion
US4020332A (en) * 1975-09-24 1977-04-26 Bell Telephone Laboratories, Incorporated Interpolation-decimation circuit for increasing or decreasing digital sampling frequency
NL8105801A (nl) * 1981-12-23 1983-07-18 Philips Nv Recursief digitaal filter.
US4573135A (en) * 1983-04-25 1986-02-25 Rca Corporation Digital lowpass filter having controllable gain
JPS60116000A (ja) * 1983-11-28 1985-06-22 ケイディディ株式会社 音声符号化装置
JPS63214032A (ja) * 1987-03-02 1988-09-06 Fujitsu Ltd 符号化伝送装置
JPS63249200A (ja) * 1987-04-06 1988-10-17 日本電信電話株式会社 ベクトル量子化方式
JPH01177227A (ja) * 1988-01-05 1989-07-13 Toshiba Corp 音声コーデック

Also Published As

Publication number Publication date
ATE191987T1 (de) 2000-05-15
AU5952590A (en) 1991-04-08
EP0450064B1 (en) 2000-04-19
DK0450064T4 (da) 2006-09-04
DK0450064T3 (da) 2000-10-02
JP3268360B2 (ja) 2002-03-25
MX167644B (es) 1993-03-31
EP0450064A4 (en) 1995-04-05
AU634795B2 (en) 1993-03-04
EP0450064B2 (en) 2006-08-09
CN1026274C (zh) 1994-10-19
DE69033510D1 (de) 2000-05-25
JPH04502675A (ja) 1992-05-14
DE69033510T2 (de) 2000-11-23
CA2037899A1 (en) 1991-03-02
CA2037899C (en) 1996-09-17
SG47028A1 (en) 1998-03-20
DE69033510T3 (de) 2007-06-06
ES2145737T3 (es) 2000-07-16
EP0450064A1 (en) 1991-10-09
CN1050633A (zh) 1991-04-10
WO1991003790A1 (en) 1991-03-21

Similar Documents

Publication Publication Date Title
ES2145737T5 (es) Codificador digital de voz con predictor a largo plazo mejorado por resolucion de submuestreos.
JP4064236B2 (ja) 広帯域信号コーディング用の代数コードブック中のパルス位置と符号の索引付け方法
ES2257098T3 (es) Codificacion periodica de vocales.
ES2321147T3 (es) Codificacion de habla de tasa de transmision variable.
JP5519334B2 (ja) 音声符号化用開ループピッチ処理
US5359696A (en) Digital speech coder having improved sub-sample resolution long-term predictor
EP0516621B1 (en) Dynamic codebook for efficient speech coding based on algebraic codes
ES2250197T3 (es) Codificador de voz armonico-lpc con estructura de supertrama.
US9972325B2 (en) System and method for mixed codebook excitation for speech coding
KR20060131782A (ko) 최적의 다중 부호화 방법
JPH0563000B2 (es)
KR100465316B1 (ko) 음성 부호화기 및 이를 이용한 음성 부호화 방법
JP4460165B2 (ja) 情報信号を符号化する方法および装置
JP3071800B2 (ja) 適応ポストフィルタ
JP2003015699A (ja) 固定音源符号帳並びにそれを用いた音声符号化装置及び音声復号化装置
JP3984021B2 (ja) 音声/音響信号の符号化方法及び電子装置
JP3284874B2 (ja) 音声符号化装置
RECOMMENDATION ITU-Tg. 722.2

Legal Events

Date Code Title Description
FG2A Definitive protection

Ref document number: 450064

Country of ref document: ES