ES2257098T3 - Codificacion periodica de vocales. - Google Patents
Codificacion periodica de vocales.Info
- Publication number
- ES2257098T3 ES2257098T3 ES99967508T ES99967508T ES2257098T3 ES 2257098 T3 ES2257098 T3 ES 2257098T3 ES 99967508 T ES99967508 T ES 99967508T ES 99967508 T ES99967508 T ES 99967508T ES 2257098 T3 ES2257098 T3 ES 2257098T3
- Authority
- ES
- Spain
- Prior art keywords
- prototype
- current
- previous
- reconstructed
- signal
- 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
Links
- 230000000737 periodic effect Effects 0.000 title claims description 13
- 230000001755 vocal effect Effects 0.000 title description 21
- 238000000034 method Methods 0.000 claims abstract description 52
- 238000001914 filtration Methods 0.000 claims abstract description 13
- 239000013598 vector Substances 0.000 claims description 55
- 238000003786 synthesis reaction Methods 0.000 claims description 34
- 230000015572 biosynthetic process Effects 0.000 claims description 33
- 239000000284 extract Substances 0.000 claims description 9
- 230000002194 synthesizing effect Effects 0.000 claims 2
- 238000013459 approach Methods 0.000 claims 1
- 239000000706 filtrate Substances 0.000 claims 1
- 230000005540 biological transmission Effects 0.000 description 25
- 238000004364 calculation method Methods 0.000 description 23
- 206010011878 Deafness Diseases 0.000 description 17
- 230000004913 activation Effects 0.000 description 15
- 230000015654 memory Effects 0.000 description 15
- 238000005311 autocorrelation function Methods 0.000 description 13
- 230000001052 transient effect Effects 0.000 description 9
- 230000006870 function Effects 0.000 description 8
- 238000012545 processing Methods 0.000 description 8
- 238000011002 quantification Methods 0.000 description 8
- 230000000875 corresponding effect Effects 0.000 description 6
- 238000000605 extraction Methods 0.000 description 6
- 238000010586 diagram Methods 0.000 description 5
- 101100368149 Mus musculus Sync gene Proteins 0.000 description 4
- 230000006854 communication Effects 0.000 description 4
- 238000004891 communication Methods 0.000 description 4
- 230000004044 response Effects 0.000 description 4
- 230000000694 effects Effects 0.000 description 3
- 238000011045 prefiltration Methods 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 230000035945 sensitivity Effects 0.000 description 3
- 238000001228 spectrum Methods 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 230000008602 contraction Effects 0.000 description 2
- 230000002596 correlated effect Effects 0.000 description 2
- 230000007774 longterm Effects 0.000 description 2
- 239000011159 matrix material Substances 0.000 description 2
- 238000013139 quantization Methods 0.000 description 2
- 230000008054 signal transmission Effects 0.000 description 2
- 230000003595 spectral effect Effects 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 210000001260 vocal cord Anatomy 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 230000003466 anti-cipated effect Effects 0.000 description 1
- 230000007175 bidirectional communication Effects 0.000 description 1
- 238000000205 computational method Methods 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000006073 displacement reaction Methods 0.000 description 1
- 210000004704 glottis Anatomy 0.000 description 1
- 239000012092 media component Substances 0.000 description 1
- 238000011093 media selection Methods 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000010355 oscillation Effects 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
- 238000010561 standard procedure Methods 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Classifications
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L19/00—Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
- G10L19/04—Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis using predictive techniques
- G10L19/08—Determination or coding of the excitation function; Determination or coding of the long-term prediction parameters
- G10L19/12—Determination 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
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L19/00—Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
- G10L19/04—Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis using predictive techniques
- G10L19/08—Determination or coding of the excitation function; Determination or coding of the long-term prediction parameters
- G10L19/097—Determination or coding of the excitation function; Determination or coding of the long-term prediction parameters using prototype waveform decomposition or prototype waveform interpolative [PWI] coders
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L19/00—Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
- G10L19/04—Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis using predictive techniques
- G10L19/08—Determination or coding of the excitation function; Determination or coding of the long-term prediction parameters
- G10L19/12—Determination 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
- G10L19/125—Pitch excitation, e.g. pitch synchronous innovation CELP [PSI-CELP]
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L25/00—Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00
- G10L25/27—Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00 characterised by the analysis technique
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)
- Medicines That Contain Protein Lipid Enzymes And Other Medicines (AREA)
Abstract
Un método para codificar una señal de voz cuasi periódica, en donde la señal de voz se representa por una señal residual generada filtrando la señal de voz con un el filtro de análisis de Codificación Predictiva Lineal (LPC), y donde la señal residual se divide en tramas de datos, comprendiendo los pasos de: (a) extraer (1002) periodo representativo de una trama actual de la señal residual como prototipo actual; (b) calcular (1004) un primer juego de parámetros que describen cómo modificar un prototipo anterior de forma que dicho prototipo anterior modificado se aproxime a dicho prototipo actual; (c) seleccionar (1006) uno o más vectores de código de un primer libro de claves, donde dichos vectores de código cuando se suman aproximan la diferencia entre dicho prototipo actual y dicho prototipo anterior modificado, y donde dichos vectores de código son descritos por un segundo juego de parámetros; (d) reconstruir (1010) un prototipo actual basado en dichos primero y segundo juegos de parámetros; (e) interpolar (1012) la señal residual en la región entre dicho prototipo actual reconstruido y un prototipo reconstruido anterior; (f) sintetizar una señal de voz de salida basada en dicha señal residual interpolada.
Description
Codificación periódica de vocales.
La presente invención se relaciona con la
codificación de señales vocales. Específicamente, la presente
invención se relaciona con la codificación de señales vocales
cuasi periódicas mediante cuantificación de una única porción
prototípica de la señal.
Muchos sistemas de comunicación actuales
transmiten voz como señal digital, particularmente en aplicaciones
a larga distancia, y de teléfono de radio digital. El funcionamiento
de estos sistemas depende, en parte, de representar de forma
precisa la señal vocal con un número mínimo de bits. La transmisión
de señal vocal simplemente por muestreo y digitalización requiere
que una velocidad de datos del orden de 64 kilobits por segundo
(kbps) para lograr la calidad vocal de un teléfono analógico
convencional. Sin embargo, hay disponibles técnicas de
decodificación que reducen significativamente la velocidad de datos
requerida para la reproducción satisfactoria de voz.
El término "vocodificador" típicamente se
refiere a dispositivos que comprimen voz hablada extrayendo
parámetros en base a un modelo de generación de voz humana. Los
vocodificadores incluyen un codificador y un decodificador. El
codificador analiza la voz entrante y extrae los parámetros
relevantes. El decodificador sintetiza la voz usando los parámetros
que recibe del codificador por medio de un canal de transmisión. La
señal de voz se divide frecuentemente en tramas de datos y bloque
procesado por el vocodificador.
Los vocodificadores construidos sobre esquemas de
codificación en el dominio temporal basada en predicción lineal
exceden de lejos en número a todos los otros tipos de codificadores.
Estas técnicas extraen elementos correlacionados de la señal de voz
y codifican solo los elementos incorrelados. El filtro predictivo
lineal básico predice la muestra actual como una combinación lineal
de muestras pasadas. Un ejemplo de algoritmo de codificación de
esta clase particular se describe en el documento "Codificador
Predictivo Lineal Activado por Código a 4.8 kbps" por Thomas E.
Tremain et al., Actas de la Conferencia de Satélite Móvil,
1988.
Estos esquemas de codificación comprimen la voz
digitalizada señalizar en una señal de baja velocidad de bit
quitando todas las redundancias naturales (es decir, elementos
correlacionados) inherentes a la voz. La voz típicamente muestra
redundancias a corto plazo que resultan de la acción mecánica de los
labios y la lengua, y redundancias a largo plazo que resultan de la
vibración de las cuerdas vocales. Los esquemas predictivos lineales
modelan estas operaciones como los filtros, eliminan las
redundancias, y luego modelan la señal residual resultante como
ruido gaussiano blanco. Por lo tanto los codificadores lineales
predictivos logran una velocidad reducida de bit transmitiendo
coeficientes de filtro y ruido cuantificado en vez de una señal de
voz de anchura de banda completa.
Sin embargo, incluso estas velocidades de bit
reducidas frecuentemente exceden la anchura de banda disponible
donde la señal de voz debe o propagarse a una distancia larga (p.
ej., tierra a satélite) o coexistir con muchas otras señales en un
canal atestado. Por lo tanto existe una necesidad de un esquema de
codificación mejorado que logre una velocidad de bit inferior a los
esquemas predictivos lineales.
La EP-A-0 666 557
(AT&T) describe la codificación de tramas de voz y sordas con el
mismo esquema. La voz de entrada se filtra por análisis LPC y se
extrae a intervalos de tiempo regulares una forma de onda prototipo
residual. En un dominio de series de Fourier, se descomponen las
formas de onda prototipo en una forma de onda suavemente envolvente
SEW y en una forma de onda rápidamente envolvente REW.
El artículo "Una forma de onda prototipo mixta
/ codificador CELP para sub 3 kb/s" (Burnett et al. ICASSP
1993) describe un codificador de forma de onda prototipo donde la
derivación del prototipo se realiza en el dominio vocal. Una trama
vocal de entrada es sobremuestreada, se extrae un prototipo y el
prototipo es filtrado mediante análisis LPC para obtener una
activación prototipo que se cuantifica de forma diferencial en un
cuantificador impulsivo.
La presente invención es un método y un aparato
novedosos y mejorados para codificar una señal de voz cuasi
periódica. La señal de voz es representada por una señal residual
generada filtrando la señal de voz un filtro de análisis de
Codificación Predictiva Lineal (LPC). La señal residual es
codificada extrayendo un período prototipo a partir de una trama
actual de la señal residual. Se calcula un primer conjunto primero
de parámetros que describe como modificar un período prototipo
previo para aproximar el período prototipo actual. Se selecciona
uno o más vectores de código que, cuando se suman, aproximan la
diferencia entre el período prototipo actual y el período prototipo
previo modificado. Un segundo conjunto de parámetros describe estos
vectores de código seleccionados. El decodificador sintetiza una
señal vocal de salida reconstruyendo un período prototipo actual
basándose en el primer y segundo conjuntos de parámetros. La señal
residual se interpola entonces sobre la región entre el período
prototipo actual reconstruido y un período prototipo previo
reconstruido. El decodificador sintetiza voz de salida basándose en
la señal residual interpolada.
Un aspecto de la presente invención es que se
usan períodos prototipo para representar y reconstruir la señal de
voz. Codificando el período prototipo en vez de la señal completa de
voz reduce la velocidad requerida de bits, que se traduce en
capacidad más alta, gama mayor, y menores requerimientos de
potencia.
Otro aspecto de la presente invención es que un
período prototipo pasado se usa como un pronosticador del período
prototipo actual. La diferencia entre el período prototipo actual y
un período prototipo previo óptimamente girado y escalado es
codificada y transmitida, reduciendo adicionalmente la velocidad de
bit requerida.
Incluso otro aspecto de la presente invención es
que la señal residual se reconstruye en el decodificador
interpolando entre los períodos prototipo consecutivos
reconstruidos, basándose en un promedio ponderado de los períodos
prototipo consecutivos y en un retraso promedio.
Otro aspecto de la presente invención es que se
usa un libro de claves multietapa para codifica el vector de error
transmitido. Este libro de claves ayuda a la búsqueda y almacenaje
eficiente de datos de código. Pueden agregarse etapas adicionales
para lograr un nivel deseado de precisión.
Otro aspecto de la presente invención es que se
usa un filtro de alabeo para cambiar eficientemente la longitud de
una primera señal para equiparar la de una segunda señal, donde las
operaciones de codificación requieren que las dos señales sean de la
misma longitud.
Aún otro aspecto de la presente invención es que
los períodos prototipo se extraen subordinados a una región de
"corte libre", evitando por medio de eso discontinuidades en la
salida debido a la división de regiones de alta energía a lo largo
de límites de trama.
Los aspectos, objetos, y ventajas de la presente
invención se volverán más evidentes a partir de la descripción
detallada presentada en lo sucesivo cuando se toma conjuntamente con
los dibujos en que, iguales números de referencia indican elementos
idénticos o funcionalmente similares. Adicionalmente, el dígito más
a la izquierda de un número de referencia identifica el dibujo en
que el número de referencia aparece primero.
La Fig. 1 es un diagrama que ilustra un entorno
de transmisión de señal;
la Fig. 2 es un diagrama que ilustra codificador
102 y el decodificador 104 con mayor detalle;
la Fig. 3 es un diagrama de flujo que ilustra una
codificación vocal de velocidad variable según la presente
invención;
la Fig. 4A es un diagrama que ilustra una trama
de voz hablada dividida en subtramas;
la Fig. 4B es un diagrama que ilustra una trama
de voz sorda dividida en subtramas;
la Fig. 4C es un diagrama que ilustra un trama de
voz transitoria dividida en subtramas;
la Fig. 5 es un diagrama de flujo que describe el
cálculo de parámetros iniciales;
la Fig. 6 es un diagrama de flujo que describe la
clasificación de voz como o activa o inactiva;
la Fig. 7A representa un codificador CELP;
la Fig. 7B representa un decodificador CELP;
la Fig. 8 representa un módulo de filtro de
tono;
la Fig. 9A representa un codificador PPP;
la Fig. 9B representa un decodificador PPP;
la Fig. 10 es un diagrama de flujo que representa
los pasos de codificación PPP, incluyendo codificación y
decodificación;
la Fig. 11 es un diagrama de flujo que representa
la extracción de un período residual prototipo;
la Fig. 12 representa un período residual
prototipo extraído de la trama actual de una señal residual, y del
período residual prototipo de la trama previa;
la Fig. 13 es un diagrama de flujo que representa
el cálculo de parámetros rotacionales;
la Fig. 14 es un diagrama de flujo que representa
el funcionamiento del libro de claves codificador;
la Fig. 15A representa una primera realización
del módulo de actualización de filtro;
la Fig. 15B representa una primera realización
del módulo interpolador de período;
la Fig. 16A representa una segunda realización
del módulo de actualización de filtro;
la Fig. 16B representa una segunda realización
del módulo interpolador de período;
la Fig. 17 es un diagrama de flujo que describe
la operación de la primera realización del módulo interpolador de
período;
la Fig. 18 es un diagrama de flujo que describe
la operación de la segunda realización del módulo interpolador de
período;
la Fig. 19 es un diagrama de flujo que describe
el alineamiento e interpolación de períodos residuales
prototipo;
la Fig. 20 es un diagrama de flujo que describe
la reconstrucción de una señal de voz basándose en períodos
residuales prototipo según una primera realización;
la Fig. 21 es un diagrama de flujo que describe
la reconstrucción de una señal de voz basándose en períodos
residuales prototipo según una segunda realización;
la Fig. 22A representa un codificador NELP;
la Fig. 22B representa un decodificador NELP;
y
la Fig. 23 es un diagrama de flujo que describe
la codificación NELP.
I. Descripción del Entorno
II. Perspectiva de la Invención
III. Determinación Inicial de Parámetros
- A.
- Cálculo de Coeficientes LPC
- B.
- Cálculo LSI
- C.
- Cálculo NACF
- D.
- Cálculo de Seguimiento de Tono y de Retardo
- E.
- Cálculo de Energía de Banda y de Velocidad de Cruce por Cero
- F.
- Cálculo del Formante Residual
IV. / Clasificación de Voz Activa / Inactiva
- A.
- Tramas de Repetición
V. Clasificación de Tramas de Voz Activa
VI. Selección de Medio Codificador /
Decodificador
VII. Medio de Codificación de Predicción Lineal
Activado por Código (CELP)
- A.
- Módulo de Codificación de Tono
- B.
- Codificación por Libro de Claves
- C.
- Decodificador CELP
- D.
- Módulo de Actualización de Filtro
VIII. Medio de Codificación de Período de Tono
Prototipo (PPP)
- A.
- Módulo de Extracción
- B.
- Correlador Rotacional
- C.
- Codificación por Libro de Claves
- D.
- Módulo de Actualización de Filtro
- E.
- Decodificador PPP
- F.
- Interpolador de Periodo
IX. Medio de Codificación por Predicción Lineal
Activado por Ruido (NELP)
X. Conclusión
La presente invención va dirigida a métodos y
aparatos novedosos y perfeccionados para codificación vocal de
velocidad variable. La Fig. 1 representa un entorno de transmisión
de señal 100 incluyendo un codificador 102, un decodificador 104, y
un medio de transmisión 106. El codificador 102 codifica una señal
de voz s(n), formando señal de voz codificada
s_{enc}(n), para la transmisión a través del medio de
transmisión 106 al decodificador 104. Decodificador 104 decodifica
s_{enc}(n) generando así una señal de voz sintetizada
\hat{s}(n).
El término "codificación" tal como se usa
aquí se refiere generalmente a métodos que comprenden ambos
codificación y decodificación. Generalmente, los métodos y aparatos
de codificación buscan minimizar el número de bits transmitidos por
el medio de transmisión 106 (es decir, minimizar el ancho de banda
de s_{enc}(n)) al tiempo que mantiene una reproducción
aceptable de voz (es decir, \hat{s}(n) \approx
s(n)). La composición de la señal de voz codificada variará
según el método de codificación de voz particular. Se describen más
adelante diversos codificadores 102, decodificadores 104, y los
métodos para codificar de acuerdo con los que estos operan.
Los componentes de codificador 102 y
decodificador 104 se describe más abajo pueden implementarse como
equipo electrónico, como software de computadora, o combinaciones
de ambos. Estos componentes se describen más adelante desde el
punto de vista de su funcionalidad. Si la funcionalidad se
implementa como equipo o software dependerá de las aplicaciones
particulares y de las limitaciones de diseño impuestas sobre el
sistema completo. Los expertos reconocerán la intercambiabilidad
del equipo y el software bajo estas circunstancias, y cómo
implementar mejor la funcionalidad descrita para cada aplicación
particular.
Aquellos con experiencia en la técnica
reconocerán que el medio de transmisión 106 puede representar a
muchos medios diferentes de transmisión, incluyendo, pero no
limitados a, una línea de comunicación terrestre, un enlace entre
una estación base y un satélite, comunicación inalámbrica entre un
teléfono celular y una estación base, o entre un teléfono celular y
un satélite.
Aquellos con experiencia en la técnica
reconocerán también que frecuentemente cada parte en una
comunicación transmite y también recibe. Cada parte requeriría por
lo tanto un codificador 102 y un decodificador 104. Sin embargo, el
entorno de transmisión de señal 100 se describirá más adelante
incluyendo un codificador 102 en un extremo del medio de
transmisión 106 y un decodificador 104 en el otro. Los técnicos
expertos reconocerán fácilmente cómo extender estas ideas a la
comunicación bidireccional.
Para los fines de esta descripción, supóngase que
s(n) es una señal digital de voz obtenida durante una
conversación típica incluyendo diferentes sonidos vocales y períodos
de silencio. La señal de voz s(n) es dividida
preferentemente en tramas, y cada trama es adicionalmente dividida
en subtramas (preferentemente 4). Estos límites de trama / subtrama
arbitrariamente elegidos se usan normalmente donde se realiza algún
procesamiento en bloques, como es el caso aquí. Las operaciones
descritas como siendo realizadas sobre tramas podrían también ser
realizadas sobre subtramas - en este sentido, trama y subtrama se
usan aquí de modo intercambiable. Sin embargo, s(n) no
necesita ser dividida en absoluto en tramas / subtramas si se
implementa un procesamiento continuo más bien que un procesamiento
de bloque. Los técnicos expertos reconocerán fácilmente cómo las
técnicas de bloque descritas más adelante podrían extenderse al
procesamiento continuo.
En una realización preferida, s(n) se
muestrea digitalmente a 8 kHz. Cada trama preferentemente contiene
20 ms de datos, o 160 muestras a la velocidad preferida de 8 kHz.
Cada subtrama por lo tanto contiene 40 muestras de datos. Es
importante hacer notar que muchas de las ecuaciones presentadas más
adelante asumen estos valores. Sin embargo, aquellos con
experiencia en la técnica reconocerán que aunque estos parámetros
son apropiados para codificación vocal, son meramente ejemplares y
podrían usarse otros parámetros alternativos apropiados.
Los métodos y aparatos de la presente invención
implican codificar la señal de voz s(n). La Fig. 2 representa
un codificador 102 y un decodificador 104 con mayor detalle. Según
la presente invención, el codificador 102 incluye un módulo de
cálculo inicial de parámetros 202, un módulo de clasificación 208, y
uno o más medios de codificador 204. El decodificador 104 incluye
uno o más medios de decodificador 206. El número de medios de
decodificador, N_{d}, en general iguala al número de medios de
codificador, N_{e}. Como será evidente para uno experto en la
técnica, el medio de codificador 1 comunica con el medio de
decodificador 1, y así sucesivamente. Como se muestra, la señal
vocal codificada, S_{enc}(n), se transmite vía el medio de
transmisión 106.
En una realización preferida, el codificador 102
conmuta dinámicamente entre múltiples medios de codificador de
trama a trama, dependiendo de qué medio sea más apropiado dadas las
propiedades de s(n) para la trama actual. El decodificador
104 también conmuta dinámicamente entre los correspondiente medios
de decodificador de trama a trama. Se elige un medio particular
para cada trama para lograr la velocidad de bit más baja disponible
mientras se mantiene una reproducción aceptable de señal en el
decodificador. Este proceso se denomina como codificación vocal de
velocidad variable, porque la velocidad de bit del codificador
cambia en el tiempo (según cambian las propiedades de la señal).
La Fig. 3 es un diagrama de flujo 300 que
describe la codificación vocal de velocidad variable según la
presente invención. En el paso 302, el módulo de cálculo inicial de
parámetros 202 calcula diversos parámetros basándose en la trama
actual de datos. En una realización preferida, estos parámetros
incluyen uno o más de los siguientes: coeficientes de filtro de
codificación predictiva lineal (LPC), coeficientes de información de
línea de espectro (LSI), las funciones de autocorrelación
normalizadas (NACF_{S}), el retardo de bucle abierto, energías de
banda, velocidad de cruce por cero, y la señal residual
formante.
En el paso 304, el módulo de clasificación 208
clasifica la trama actual como que contiene voz "activa" o
"inactiva". Como describió arriba, s(n) se supone que
incluye períodos de voz y períodos de silencio, comunes en una
conversación ordinaria. La voz activa incluye palabras habladas,
considerando la voz inactiva incluye todo lo demás, p. ej., ruido
de fondo, silencio, pausas. Los métodos usados para clasificar la
voz como activa / inactiva de acuerdo con la presente invención se
describen en forma detallada más adelante.
Como se muestra en la Fig. 3, el paso 306 tiene
en cuenta si la trama actual se clasificó como activa o inactiva en
el paso 304. Si es activa, el control de flujo sigue hasta el paso
308. Si es inactiva, el control de flujo sigue hasta el paso
310.
Aquellas tramas que se clasifican como activas
son además clasificadas en el paso 308 como habladas, sordas, o
tramas transitorias. Aquellos con experiencia en la técnica
reconocerán que la voz humana puede clasificarse de muchas maneras
diferentes. Dos clasificaciones convencionales de voz son sonidos
hablados y sordos. Según la presente invención, toda voz que no es
clasificada como hablada o sorda se clasifica como voz
transitoria.
La Fig. 4A representa una porción ejemplar de
s(n) incluyendo voz hablada 402. Los sonidos hablados son
producidos al forzar el aire a través de la glotis con la tensión de
las cuerdas vocales ajustada de modo que vibren con oscilación
relajada, produciendo así pulsos cuasi periódicos de aire que
activan el tracto vocal. Una propiedad común medida en la voz
hablada es el período del tono, como se muestra en la Fig. 4A.
La Fig. 4B representa una porción ejemplar de
s(n) incluyendo la voz sorda 404. Los sonidos sordos son
generados al formar una contracción a algún punto del tracto vocal
(comúnmente hacia el extremo de la boca), y forzando el aire a
través de la contracción a una velocidad suficiente alta para
producir turbulencia. La señal resultante de voz sorda parece ruido
de color.
La Fig. 4C representa un ejemplo de porción de
s(n) incluyendo voz transitoria 406 (es decir, voz que no es
ni hablada ni sorda). La voz transitoria de ejemplo 406 mostrada en
la Fig. 4C puede representar a s(n) pasando entre voz sorda
y voz hablada. Los técnicos expertos reconocerán que podrían
emplearse muchas clasificaciones diferentes de voz según las
técnicas aquí descritas para lograr resultados comparables.
En el paso 310, se selecciona un medio
codificador / decodificador basándose en la clasificación de trama
hecha en los pasos 306 y 308. Los diversos medios codificador /
decodificador se conectan en paralelo, como se muestra en la Fig.
2. En cualquier momento dado uno o más de estos medios poder estar
operacional. Sin embargo, como se describe en forma detallada más
adelante, en cualquier momento dado, preferentemente opera un único
medio, y se selecciona según la clasificación de la trama
actual.
Varios medios codificador / decodificador se
describen en las secciones siguientes. Los diferentes medios
codificador / decodificador operan según diferentes esquemas de
codificación. Ciertos medios son más efectivos para codificar
porciones de la señal de voz s(n) que muestran ciertas
propiedades.
En una realización preferida, un medio
"Predictivo Lineal Activado por Código" (CELP) se elige para
codificar tramas clasificadas como voz transitoria. El medio CELP
activa un modelo lineal predictivo del tracto vocal con una versión
cuantificada de la señal residual de pronóstico lineal. De todos los
medios codificador / decodificador aquí descritos, el CELP
generalmente produce la reproducción de voz más precisa pero
requiere la mayor velocidad de
bit.
bit.
Se elige preferentemente un medio "Período de
Tono Prototipo" (PPP) para codificar tramas clasificadas como
voz hablada. La voz hablada contiene componentes periódicos que
varían lentamente en el tiempo que son aprovechados por el medio
PPP. El medio PPP codifica solo un subconjunto de los períodos de
tono dentro de cada trama. Los períodos restantes de la señal de
voz son reconstruidos interpolando entre estos períodos prototipo.
Aprovechando la periodicidad de la voz hablada, el PPP es capaz de
lograr una velocidad inferior de bit que el CELP y aún reproduce la
señal de voz de una manera perceptivamente precisa.
Se elige un medio "Predictivo Lineal Activado
por Ruido" (NELP) para codificar tramas clasificadas como voz
sorda. El NELP usa una señal de ruido seudoaleatoria filtrada para
modelizar la voz sorda. El NELP usa el modelo más simple para la voz
codificada, y por lo tanto logra la velocidad más baja de bit.
La misma técnica de codificación puede
frecuentemente operarse a diferente velocidad de bit, con niveles
variables de rendimiento. Los diferentes medios codificador /
decodificador de la Fig. 2 pueden representar por lo tanto técnicas
codificación diferentes, o la misma técnica de codificación operando
a diferentes velocidades de bit, o combinaciones de lo anterior.
Los técnicos expertos reconocerán que el aumento del número de
medios codificador / decodificador permitirá mayor flexibilidad
cuando se elige un medio, que puede resultar en un valor inferior
de velocidad de bit promedio, pero aumentará complejidad dentro del
sistema completo. La combinación particular usada en cualquier
sistema determinado estará dictada por los recursos disponibles de
sistema y el entorno específico de señal.
En el paso 312, el medio de codificador
seleccionado 204 codifica la trama actual y preferentemente
empaqueta los datos codificados en paquetes de datos para la
transmisión. Y en el paso 314, el correspondiente medio
decodificador 206 desempaqueta los paquetes de datos, decodifica los
datos recibidos y reconstruye la señal de voz. Estas operaciones se
describen en forma detallada más adelante con respecto a los medios
codificador / decodificador apropiados.
La Fig. 5 es un diagrama de flujo que describe el
paso 302 con mayor detalle. Se calculan varios parámetros iniciales
según la presente invención. Los parámetros preferentemente
incluyen, p. ej., coeficientes (LPC), coeficientes de información
de espectro de línea (LSI), las funciones de autocorrelación
normalizadas (NACFS), el retardo de bucle abierto, energías de
banda, tasa de cruce por cero, y la señal residual formante. Estos
parámetros se usan de diversas maneras dentro de el sistema
completo, como se describe más abajo.
En una realización preferida, el módulo de
cálculo inicial de parámetros 202 usa una "lectura anticipada"
de 160+40 muestras. Esto sirve a varios fines. Primero, la lectura
anticipada de muestra 160 permite un seguimiento de frecuencia de
tono a computar usando la información en la próxima trama, lo que
mejora significativamente la robustez de la codificación vocal y
las técnicas de estimación periodo de tono, descritas más abajo.
Segundo, la lectura anticipada de muestra 160 también permite que
los coeficientes LPC, la energía de trama, y la actividad de voz
sean computados para una trama en el futuro. Esto permite una
eficiente cuantificación multitrama de la energía de trama y de
coeficientes LPC. Tercero, la lectura anticipada adicional de 40
muestras es para el cálculo de los coeficientes LPC sobre voz en
recuadro Hamming como se describe más abajo. Por tanto, el número
de muestras almacenadas antes de procesar la trama actual es
160+160+40 lo que incluye la trama actual y la lectura anticipada de
160+40 muestras.
La presente invención utiliza un filtro de error
de predicción LPC para quitar las redundancias a corto plazo en la
señal de voz. La función de transferencia para el filtro LPC es:
A(z) =
1 -
\sum\limits_{i=1}^{10}a_{i}z^{-i}
La presente invención preferiblemente implementa
un filtro de décimo orden, como se muestra en la ecuación previa. Un
filtro de síntesis LPC en el decodificador reinserta las
redundancias, y está dado por el inverso de A(z):
\frac{1}{A(z)}=1\div(1-\sum\limits_{i=1}^{10}a_{i}z^{-i})
En el paso 502, los coeficientes LPC, a_{i}, se
computan a partir de s(n) como se indica a continuación. Los
parámetros LPC se computan preferiblemente para la próxima trama
durante el procedimiento de codificación para la trama actual.
Se aplica una ventana de Hamming a la trama
actual centrada entre las muestras 119ª y 120ª (suponiendo la trama
de muestra preferida 160 con una "lectura anticipada"). La
señal de voz enmarcada s_{w}(n) viene dada por:
s_{w}(n)=s(n+40)\left(0\text{.}5+0\text{.}46*cos\left(\pi\frac{n-79\text{.}5}{80}\right)\right),
\hskip0.5cm 0\leq
n<160
El desplazamiento de 40 muestras produce que se
centre en la ventana de voz entre la muestra 119ª y 120ª de la trama
de muestra preferida 160 de voz.
Once valores de autocorrelación se computan
preferiblemente como
R(k)=\sum\limits_{m=0}^{159-k}s_{w}(m)s_{w}(m+k),
\hskip0.5cm 0\leq k \leq
10
Los valores de autocorrelación son enmarcados
para reducir la probabilidad de pérdida de raíces de pares
espectrales de línea (LSPS) obtenidos de los coeficientes LPC,
dados por:
R(k) =
h(k)R(k), \hskip0.5cm 0 \leq k \leq
10
resultando en una ligera expansión
de ancho de banda, p. ej., 25 Hz. Los valores h(k) se toman
preferiblemente del centro de un punto 255 de ventana
Hamming.
El coeficientes LPC se obtienen entonces de los
valores de autocorrelación enmarcados usando recursión de Durbin. La
recursión de Durbin, un eficiente método computacional bien
conocido, se trata en el Procesamiento Digital de Señal de
Voz, por Rabiner & Schafer.
En el paso 504, el coeficientes LPC se
transforman en coeficientes de información de espectro de línea
(LSI) para cuantificación e interpolación. Los coeficientes LSI se
computan según la presente invención de la manera siguiente.
Como antes, A(z) viene dada por
A(z)
=1-a_{1}z^{-1} - .. -
a_{10}z^{-10},
donde a_{i} son los coeficientes
LPC, y 1 \leq i \leq
10.
P_{A}(z) y Q_{A}(z) se definen
como sigue
P_{A}(z) =
A(z) + z^{-11}A(z^{-1}) = p_{0} + p_{1}z^{-1}+...
+p_{11}z^{-11},
Q_{A}(z)=A(z) -
z^{-11}A(z^{-1}) = q_{0} + q_{1}z^{-1}+...
+q_{11}z^{-11},
donde
p_{i}=-a_{i}-a_{11-i1},
1 \leq i \leq 10
q_{i}=-a_{1}+a_{11-1}, 1
\leq i \leq 10
y
p_{0}=1 p_{11}=1
q_{0}=1 q_{11}=-1
Los cosenos espectrales de línea (LSCs) son las
diez raíces en -1.0 < x < 1.0 de las siguientes dos
funciones:
P'(x) =
p'{}_{0}cos(5cos^{-1}(x))+p'{}_{1}(4cos^{-1}(x))+...
+p'{}_{4}+p'{}_{5}/2
Q'(x) = q'{}_{0}
cos(5cos^{-1}(x))+q'{}_{1}(4cos^{-1}(x))+...
+q'{}_{4}x+q'{}_{5}/2
donde
p'_{0}=1
q'_{0}=1
p'_{1} = p_{1} - p'_{i-1}
\skip0.5cm1 \leq i \leq 5
q'_{i} = q_{i} + q'_{i-1}
\skip0.5cm1 \leq i \leq 5
Los coeficientes LSI se calculan entonces
como:
Los LSCs pueden obtenerse a partir de los
coeficientes LSI de acuerdo con:
La estabilidad del filtro LPC garantiza que las
raíces de las dos de funciones se alternan, es decir, la raíz más
pequeña, lsc_{1}, es la raíz menor de P'(x), la próxima raíz más
pequeña, lsc_{2}, es la raíz menor de Q'(x), etc. Por tanto,
lsc_{1}, lsc_{3}, lsc_{5}, lsc_{7}, y lsc_{9} son las
raíces de P'(x), y lsc_{2}, lsc_{4}, lsc_{6}, lsc_{8}, y
lsc_{10} son las raíces de Q'(x).
Aquellos con experiencia en la técnica
reconocerán que es preferible emplear algún método para computar la
sensibilidad de los coeficientes LSI a cuantificación. "Las
ponderaciones de sensibilidad" pueden usarse en el proceso de
cuantificación para ponderar adecuadamente el error de
cuantificación en cada LSI.
Los coeficientes LSI son cuantificados usando un
cuantificador de vector multietapa (VQ). El número de etapas
depende preferiblemente de la velocidad particular de bit y de los
libros de claves empleados. Los libros de claves se eligen
basándose en si la trama actual es hablada o no.
La cuantificación de vector minimiza un error
cuadrático medio ponderado (WMSE) que se define como
E(\vec{x},\vec{y}) =
\sum\limits_{i=0}^{p-1}w_{i}(x_{i} -
y_{i})^{2}
donde \vec{x} es el vector a ser
cuantificado, es el \vec{w} peso asociado con él, e \vec{y} es
el vector de código. En una realización preferida, \vec{w} son
ponderaciones de sensibilidad y P =
10.
El vector LSI se reconstruye a partir de los
códigos LSI obtenidos vía cuantificación como
q\vec{l}si=\sum\limits_{i=1}^{N}CB\vec{i}_{codigo_{i}}
donde CBi es la iésima etapa VQ de
libro de claves para tramas habladas o sordas (este es basándose en
el código que indica la elección del libro de claves) y código_{i}
es el código LSI para la iésima
etapa.
Antes de que los coeficientes LSI se transformen
en coeficientes LPC, se realiza un chequeo de estabilidad para
asegurar que los filtros LPC resultantes no se han hecho inestables
debido al ruido de cuantificación o errores de canal que inyectan
ruido en los coeficientes LSI. La estabilidad se garantiza si los
coeficientes LSI permanecen ordenados.
En el calculo de los coeficientes LPC originales,
se usó una ventana de voz centrada entre las muestras 119ª y 120ª
de la trama. Los coeficientes LPC para otros puntos en la trama son
aproximados interpolando entre los LSCs de trama anterior y los LSCs
de la trama actual. Los LSCs resultantes interpolados entonces se
vuelven a convertir de nuevo en coeficientes LPC. La interpolación
exacta usada para cada subtrama viene dada por:
ilsc_{j} =
(1-\alpha_{j})lscprev_{j}+\alpha_{i}lscact_{j'}
\hskip0.5cm1 \leq j \leq 10
donde \alpha_{j} son los
factores de interpolación 0.375, 0.625, 0.875, 1.000 para los cuatro
subtramas de 40 muestras cada una e ilsc son los LSCs interpolados.
\hat{P}(z) y \hat{Q}_{A}(z) son computados por
los LSCs interpolados
como
\vskip1.000000\baselineskip
Los coeficientes LPC interpolados para todas las
cuatro subtramas se computan como coeficientes de
\hat{A}(z)=\frac{\hat{P}_{A}(z)+\hat{Q}_{A}(z)}{2}
Por tanto,
En el paso 506, las funciones de autocorrelación
normalizadas (NACF_{S}) se calculan de acuerdo con la presente
invención.
El formante residual para la próxima trama se
computa sobre cuatro subtramas de 40 muestras como
r(n)=s(n)-\sum\limits_{i=1}^{10}\tilde{a}_{i}s(n-1)
donde ã_{i} es el iésimo
coeficiente LPC interpolado de la correspondiente subtrama, donde la
interpolación se hace entre los LSCs no cuantificados de trama
actual y los LSCs de la trama próxima. La energía de la próxima
trama se computa también
como
El residual calculado arriba es filtrado en paso
bajo y decimado, usando preferentemente un filtro FIR de fase cero
de longitud 15, cuyos coeficientes df_{i'}-7
\leq i \leq 7, son {0.0800, 0.1256, 0.2532, 0.4376, 0.6424,
0.8268, 0.9544, 1.000, 0.9544, 0.8268, 0.6424, 0.4376, 0.2532,
0.1256, 0.0800}. El residual filtrado en paso bajo y decimado se
computa como
r_{d}(n)
=\sum\limits_{i=-7}^{7}df_{i}r(Fn+i), \hskip0,5cm 0\leq n\leq
160/F
donde F = 2 es el factor decimador
y r(Fn+i), - 7 \leq Fn+i \leq 6 se obtienen de los
últimos 14 valores del residual de trama corriente basándose en
coeficientes LPC incuantificados. Como se mencionó más arriba, estos
coeficientes LPC se computan y almacenan durante la trama
anterior.
Los NACFs para dos subtramas (decimadas 40
muestras) de la próxima trama se calcula como sigue:
\vskip1.000000\baselineskip
Para el r_{d}(n) con n negativo, se
emplea el residual filtrado en paso bajo y decimado de la trama
actual (guardado durante la trama anterior). También se computaron y
guardaron los NACFs para la subtrama actual c_corr durante la trama
anterior.
En el paso 508, se computan el según la invención
presente. El seguimiento de tono y el retardo se calculan
preferiblemente usando una búsqueda de tipo Viterbi seguimiento
hacia atrás como sigue:
\vskip1.000000\baselineskip
\vskip1.000000\baselineskip
donde FAN_{i,j} es la matriz 2x58, {{0,2},
{0,3}, {2,2}, {2,3}, {2,4}, {3,4}, {4,4}, {5,4}, {5,5}, {6,5},
{7,5}, {8,6}, {9,6}, {10,6}, {11,6}, {11,7}, {12,7}, {13,7}, {14,8},
{15,8}, {16,8}, {16,9}, {17,9}, {18,9}, {19,9}, {20,10}, {21,10},
{22,10}, {22,11}, {23,11}, {24,11}, {25,12}, {26,12}, {27,12},
{28,12}, {28,13}, {29,13}, {30,13}, {31,
14}, {32,14}, {33,14}, {33,15}, {34,15}, {35,15}, {36,15}, {37,16}, {38,16}, {39,16}, {39,17}, {40,17}, {41,16}, {42,16}, {43,15}, {44,14}, {45,13}, {45,13}, {46,12}, {47,11}}. El vector RM_{2i}, se interpola para conseguir los valores para R_{2i+1} como
14}, {32,14}, {33,14}, {33,15}, {34,15}, {35,15}, {36,15}, {37,16}, {38,16}, {39,16}, {39,17}, {40,17}, {41,16}, {42,16}, {43,15}, {44,14}, {45,13}, {45,13}, {46,12}, {47,11}}. El vector RM_{2i}, se interpola para conseguir los valores para R_{2i+1} como
\vskip1.000000\baselineskip
\vskip1.000000\baselineskip
donde el cf_{j} es el filtro de interpolación
cuyos coeficientes son {-0.0625, 0.5625, 0.5625, -0.0625}. El
retardo L_{C} es entonces escogido de forma tal que
RL_{c-12} = max\{R_{i}\}, 4 \leq i < 116 y
el NACF de la trama actual se establece igual a
R_{LC-12} / 4. Los retardos múltiplos se eliminan
después buscando el retardo que corresponde a la correlación máxima
mayor que 0.9 R_{LC-12} entre:
En el paso 510, las energías en las bandas
0-2 kHz y en la banda 2 kHz -4kHz se computan según
la presente invención como
E_{L} =
\sum\limits_{i=0}^{159}s_{L}^{2}(n)
E_{H} =
\sum\limits_{i=0}^{159}s_{H}^{2}(n)
donde
\vskip1.000000\baselineskip
\vskip1.000000\baselineskip
siendo S(z),
S_{L}(z) y S_{H}(z) las transformadas z de la
señal de voz de entrada s(n), de la señal paso bajo
s_{L}(n) y señal paso alto s_{H}(n),
respectivamente, bl={0.0003, 0.0048, 0.0333, 0.1443, 0.4329, 0.9524,
1.5873, 2.0409, 2.0409, 1.5873, 0.9524, 0.4329, 0.1443, 0.0333,
0.0048, 0.0003}, ah ={1.0, 0.9155, 2.4074, 1.6511, 2.0597, 1.0584,
0.7976, 0.3020, 0.1465, 0.0394, 0.0122, 0.0021, 0.0004, 0.0, 0.0,
0.0}, bh={0.0013, -0.0189, 0.1324, -0.5737, 1.7212, -3.7867, 6.3112,
-8.1144, 8.1144, -6.3112, 3.7867, -1.7212, 0.5737, -0.1324, 0.0189,
-0.0013} y ah={1.0, -2.8818, 5.7550, -7.7730, 8.2419, -6.8372,
4.6171, -2.5257, 1.1296, -0.4084, 0.1183, -0.0268, 0.0046, -0.0006,
0.0,
0.0}.
La energía de señal de voz es propiamente E =
\sum\limits_{i=0}^{159}s^{2}(n).
La tasa de cruce por cero ZCR se computa como
if(s(n)s(n+1)
< 0)ZCR=ZCR+1, \hskip0.5cm 0 \leq n <
159
En el paso 512, el formante residual para la
trama actual se computa sobre cuatro subtramas como
r_{curr}(n) =
s(n)-\sum\limits_{i=1}^{10}\hat{a}_{i}s(n-i)
donde â_{i} es el iésimo
coeficiente LPC de la subtrama
correspondiente.
En referencia de nuevo a la Fig. 3, en el paso
304, la trama actual se clasifica bien como voz activa (por
ejemplo, palabras habladas) o la voz inactiva (por ejemplo, ruido de
fondo, silencio). La Fig. 6 es un diagrama de flujo 600 representa
el paso 304 con mayor detalle. En una realización preferida, se usa
un esquema umbral basado en la energía de dos bandas para
determinar si la voz activa está presente. La banda inferior (banda
0) abarca las frecuencias de 0.1 -2.0 kHz y la banda superior (banda
1) de 2.0-4.0 kHz. La detección de actividad vocal
se determina preferiblemente para la próxima trama durante el
procedimiento de codificación para la trama actual, de lo siguiente
manera.
En el paso 602, se calculan las energías de banda
Eb[i] para bandas i=0, 1. La secuencia de autocorrelación,
como se describió anteriormente en la Sección III.A., se extiende a
19 usando la ecuación recursiva siguiente:
R(k) =
\sum\limits_{i=1}^{10}a_{i}R(k-i),
\hskip0.5cm 11\leq k \leq
19
Usando esta ecuación, R(11) se calcula a
partir de R(1) hasta R(10), R(12) se calcula a
partir de R(2) hasta R(11), y así sucesivamente. Los
energías de la banda se calculan entonces a partir de la secuencia
de autocorrelación extendida usando la ecuación siguiente:
E_{b}(i)=log_{2}\left(R(0)R_{h}(0)(0)+2\sum\limits_{k=1}^{19}R(k)R_{h}(i)(k)\right),
\hskip0.5cm
i=0.1
\vskip1.000000\baselineskip
donde R(k) es la secuencia
de autocorrelación extendida para la trama actual y
R_{h}(i)(k) es la secuencia de autocorrelación de filtro de
banda para la banda i dada en la Tabla
1.
\vskip1.000000\baselineskip
k | R_{h}(O)(k) band 0 | R_{h}(1)(k) band 1 |
0 | 4.230889E-01 | 4.042770E-01 |
1 | 2.693014E-01 | -2.503076E-01 |
2 | -1.124000E-02 | -3.059308E-02 |
3 | -1.301279E-01 | 1.497124E-01 |
4 | -5.949044E-02 | -7.905954E-02 |
5 | 1.494007E-02 | 4.371288E-03 |
6 | -2.087666E-03 | -2.088545E-02 |
7 | -3.823536E-02 | 5.622753E-02 |
8 | -2.748034E-02 | -4.420598E-02 |
9 | 3.015699E-04 | 1.443167E-02 |
10 | 3.722060E-03 | -8.462525E-03 |
11 | -6.416949E-03 | 1.627144E-02 |
12 | -6.551736E-03 | -1.476080E-02 |
13 | 5.493820E-04 | 6.187041E-03 |
14 | 2.934550E-03 | -1.898632E-03 |
15 | 8.041829E-04 | 2.053577E-03 |
16 | -2.857628E-04 | -1.860064E-03 |
17 | 2.585250E-04 | 7.729618E-04 |
18 | 4.816371E-04 | -2.297862E-04 |
19 | 1.692738E-04 | 2.107964E-04 |
\vskip1.000000\baselineskip
En el paso 604, las estimaciones de energía de
banda se aplanan. Las estimaciones de energía de banda aplanada,
E_{sm}(i), se actualizan para cada trama empleando la
ecuación siguiente.
\vskip1.000000\baselineskip
E_{sm}(i) =
0\text{.}6E_{sm}(i) + 0\text{.}4E_{b}(i), \hskip0.5cm
i=0.1
En el paso 606, se actualizan las estimaciones de
energía de señal y de energía de ruido. Las estimaciones de energía
de señal, E_{s}(i), se actualiza preferiblemente usando la
siguiente ecuación:
E_{s}(i)=max(E_{sm}(i),
E_{s}(i)),
i=0.1,
La estimación de energía de ruido,
E_{n}(i), se actualiza preferiblemente usando la siguiente
ecuación:
E_{n}(i)=min(E_{sm}(i),
E_{n}(i)),
i=0.1
En el paso 608, las relaciones
señal-ruido a largo plazo para las dos bandas,
SNR(i), se calculan como
SNR(i)=E_{s}(i)-E_{n}(i),
i=0.1
En el paso 610, estos valores de SNR son
preferiblemente divididos en ocho regiones Reg_{SNR}(i)
definidas como
En el paso 612, la decisión de actividad de voz
se hace de la siguiente manera de acuerdo con la presente
invención. Si
E_{b}(0)-E_{n}(0)>UMBRAL(Reg_{SNR}(0)),
o
E_{b}(1)-E_{n}(1)>UMBRAL(Reg_{SNR}(1)),
entonces la trama de voz se declara activa. De otra forma, la trama
de voz se declara inactiva. Los valores de UMBRAL se definen en la
Tabla 2.
La estimación de energía de señal,
E_{s}(i), se actualiza usando preferiblemente la siguiente
ecuación:
E_{s}(i)=E_{s}(i)-0.014499,
\hskip0.5cm i =
0.1.
Región SNR | UMBRAL |
0 | 2.807 |
1 | 2.807 |
2 | 3.000 |
3 | 3.104 |
4 | 3.154 |
5 | 3.233 |
6 | 3.459 |
7 | 3.982 |
Estimación de la energía de ruido,
E_{n}(i), se actualiza usando preferentemente la siguiente
ecuación:
Cuando las relaciones señal ruido son bajas, se
agregan preferentemente tramas de "repetición" para mejorar la
calidad de la voz reconstruida. Si las tres tramas anteriores fueron
clasificadas como activas, y la trama actual se clasifica como
inactiva, entonces las próximas M tramas incluyendo la trama actual
son clasificadas como voz activa. El núme-
ro de tramas de repetición, M, se determina preferiblemente como función de SNR(0) como es definido en la Tabla 3.
ro de tramas de repetición, M, se determina preferiblemente como función de SNR(0) como es definido en la Tabla 3.
SNR(0) | M |
0 | 4 |
1 | 3 |
2 | 3 |
3 | 3 |
4 | 3 |
5 | 3 |
6 | 3 |
7 | 3 |
En referencia de nuevo a la Fig. 3, en el paso
308, las tramas actuales que fueron clasificadas como activas en el
paso 304 son nuevamente clasificadas según las propiedades mostradas
por la señal vocal s(n). En una realización preferida, la voz
activa es clasificada como hablada, sorda, o transitoria. El grado
de periodicidad exhibido por la señal de voz activa determina cómo
se clasifica. La voz hablada muestra el grado más alto de
periodicidad (cuasi-periódica por naturaleza). La voz sorda
muestra una periodicidad pequeña o nula. La voz transitoria muestra
grados de periodicidad entre la hablada y la sorda.
Sin embargo, la estructura general aquí descrita
no se limita al esquema de clasificación preferido y a los medios de
codificador / decodificador específicos descritos más abajo. La voz
activa puede clasificarse de formas alternativas, y hay disponibles
medios de codificador / decodificador alternativos para codificar.
Aquellos con experiencia en la técnica reconocerán que son posibles
muchas combinaciones de clasificaciones y de medios de codificador /
decodificador. Muchas de tales combinaciones pueden producir una
velocidad media de bit reducida según la estructura general aquí
descrita, es decir, clasificando la voz como inactiva o activa,
clasificando además la voz activa, y codificando además la señal de
voz usando los medios codificador / decodificador particularmente
adecuados para la voz que cae dentro de cada clasificación.
Aunque las clasificaciones de voz activa están
basadas en el grado de periodicidad, la decisión de clasificación
preferiblemente no está basada en alguna medida directa de
periodicidad. Más bien, la decisión de clasificación está basada en
varios parámetros calculados en el paso 302, por ejemplo, relaciones
señal ruido en las bandas superior e inferior y en los NACFs. La
clasificación preferida puede describirse mediante el siguiente
seudocódigo:
if not(anteriorN ACF < 0.5 y actualN
ACF>0.6)
- if (actualN ACF < 0.75 y ZCR>60) SORDA
- else if(anteriorN ACF < 0.5 y actualN ACF < 0.55 y ZCR > 50) SORDA
- else if (actualN ACF < 0.4 y ZCR > 40) SORDA
if (SORDA y actualSNR > 28 dB y E_{L}>
\alphaE_{H}) TRANSITORIA
if (anteriorN ACF < 0.5 y actualN ACF < 0.5
y E < 5e4+N) SORDA
if (HABLADA y banda bajaSNR>banda altaSNR y
anteriorN ACF < 0.8 y 0.6 <actualN ACF < 0.75)
TRANSITORIA
donde
y N_{ruido} es una estimación del
ruido de fondo. E_{ant} es la energía de entrada de la trama
anterior.
El método descrito por este seudocódigo puede
refinarse según el entorno específico en que se implementa. Aquellos
con experiencia en la técnica reconocerán que distintos umbrales
dados más arriba son meramente ejemplos, y podrían requerir un
ajuste en la práctica que depende de la aplicación. El método
también puede refinarse agregando categorías de clasificación
adicionales, como dividir TRANSITORIA en dos categorías: una para
señales que evolucionan de alta a baja energía, y la otra para
señales que evolucionan de baja a alta energía.
Aquellos con experiencia en la técnica
reconocerán que están disponibles otros métodos para distinguir voz
activa hablada, sorda, y transitoria. Igualmente, los técnicos
experimentados reconocerán que también son posibles otras formas de
clasificación para la voz activa.
En el paso 310, se selecciona un medio
codificador / decodificador basado en la clasificación de la trama
actual en los pasos 304 y 308. Según una realización preferida, los
medios se seleccionan como sigue: las tramas inactivas y las tramas
sordas activas son codificadas usando un medio NELP, las tramas
habladas activas son codificadas usando un medio PPP, y las tramas
transitorias activas son codificadas usando un medio CELP. Cada uno
de estos medios codificador / decodificador se describe en detalle
en las secciones siguientes.
En una realización alternativa, las tramas
inactivas son codificadas usando un medio de tasa cero. Los técnicos
experimentados reconocerán que están disponibles muchos medios
alternativos de tasa cero que requieren velocidades muy bajas de
bit. La selección de un medio de tasa cero puede refinarse más
considerando las selecciones de medio pasadas. Por ejemplo, si la
trama anterior fue clasificada como activa, esto puede descartar la
selección de un medio de tasa cero para la trama actual.
Igualmente, si la próxima trama es activa, puede descartarse un
medio de tasa cero para la trama actual. Otra alternativa es
descartar la selección de un medio de tasa cero para demasiadas
tramas consecutivas (por ejemplo, 9 tramas consecutivas). Aquellos
con experiencia en la técnica reconocerán que podrían hacerse muchas
otras modificaciones a la decisión de selección de medio básica
para refinar su funcionamiento en ciertos entornos.
Como se describió anteriormente, podrían usarse
alternativamente muchas otras combinaciones de clasificaciones y
medios codificador / decodificador dentro de esta misma estructura.
Las siguientes secciones proporcionan descripciones detalladas de
varios medios codificador / decodificador según la presente
invención. Se describe primero el medio CELP, seguido por el medio
PPP y por el medio NELP.
Como se ha descrito anteriormente, el medio
codificador / decodificador CELP es empleado cuando la trama actual
es clasificada como voz transitoria activa. El medio CELP
proporciona la reproducción de señal más exacta (comparado con los
otros medios aquí descritos) pero a la mayor velocidad de bit.
La Fig. 7 representa un medio codificador CELP
204 y un medio decodificador CELP 206 con mayor detalle. Como se
muestra en la Fig. 7A, un medio codificador CELP 204 incluye un
módulo de codificación de tono 702, un libro de claves de
codificación 704, y un módulo de actualización de filtro 706. El
medio codificador CELP 204 produce una señal de voz codificada,
s_{enc}(n), que preferentemente incluye parámetros del
libro de claves y parámetros del filtro de tono, para la
transmisión al medio decodificador CELP 206. Como se muestra en la
Fig. 7B, el medio decodificador CELP 206 incluye un módulo de
decodificación de libro de claves 708, un filtro de tono 710, y un
filtro de síntesis LPC 712. El medio decodificador CELP 206 recibe
la señal de voz codificada y produce señal de voz sintetizada
\hat{s}(n).
\hat{s}(n).
El módulo de codificación de tono 702 recibe la
señal de voz s(n) y el residual cuantificado de la trama
anterior,
p_{c}(n) (descrito más abajo). Basándose en esta entrada, el módulo de codificación de tono 702 genera una señal objetivo x(n) y un juego de parámetros de filtro de tono. En una realización preferida, éstos parámetros de filtro de tono incluyen un retraso de tono óptimo L* y una ganancia de tono óptima b*. Estos parámetros se seleccionan según un método de "análisis-por-síntesis " en que el proceso de codificación selecciona los parámetros de filtro de tono que minimizan el error ponderado entre la voz de entrada y la voz sintetizada usando esos parámetros.
p_{c}(n) (descrito más abajo). Basándose en esta entrada, el módulo de codificación de tono 702 genera una señal objetivo x(n) y un juego de parámetros de filtro de tono. En una realización preferida, éstos parámetros de filtro de tono incluyen un retraso de tono óptimo L* y una ganancia de tono óptima b*. Estos parámetros se seleccionan según un método de "análisis-por-síntesis " en que el proceso de codificación selecciona los parámetros de filtro de tono que minimizan el error ponderado entre la voz de entrada y la voz sintetizada usando esos parámetros.
La Fig. 8 representa al módulo de codificación de
tono 702 en mayor detalle. El módulo de codificación de tono 702
incluye un filtro de ponderación porcentual 802, sumadores 804 y
816, filtros de síntesis LPC ponderados 806 y 808, un retardo y
ganancia 810, y un minimizador de suma de cuadrados 812.
El filtro de ponderación porcentual 802 se usa
para ponderar el error entre la voz original y la voz sintetizada de
una forma perceptivamente significativa. El filtro de ponderación
porcentual es de la forma
W(z) =
\frac{A(z)}{A(z /
\gamma)}
donde A(z) es el filtro de
predicción de error LPC, y \gamma preferentemente es igual a 0.8.
El filtro de análisis LPC ponderado 806 recibe los coeficientes LPC
calculados por el módulo de cálculo inicial de parámetros 202. El
filtro 806 produce a_{zir}(n) que es la respuesta de
entrada cero dada por los coeficientes LPC. La sumadora 804 suma una
entrada negativa a_{zir}(n) y la señal de entrada filtrada
para formar la señal objetivo
x(n).
El retardo y ganancia 810 produce una salida de
filtro de tono estimada bp_{L}(n) para un retardo de tono
dado L y una ganancia de tono b. El retardo y ganancia 810 recibe
las muestras residuales cuantificadas de la trama anterior,
p_{c}(n), y una estimación de salida futura del filtro de tono, dada por p_{0}(n), y forma p(n) según:
p_{c}(n), y una estimación de salida futura del filtro de tono, dada por p_{0}(n), y forma p(n) según:
que luego es retardada en L
muestras y escalada por b para formar el bp_{L}(n). L_{p}
es la longitud de subtrama (preferentemente 40 muestras). En una
realización preferida, el retardo de tono, L, es representado por 8
bits y puede asumir valores de 20.0, 20.5, 21.0, 21.5... 126.0,
126.5, 127.0,
127.5.
El filtro ponderado de análisis LPC 808 filtra
bp_{L}(n) usando los coeficientes de LPC actuales que
producen by_{L}(n). El sumador 816 suma una entrada
negativa by_{L}(n) con x(n), la salida del cual se
recibe por el minimizador de suma de cuadrados 812. El minimizador
de suma de cuadrados 812 selecciona la L óptima, designada como L* y
el b óptimo, designado como b*, como aquellos valores de L y b que
minimizan E_{tono}(L) según:
E_{tono}(L)=\sum\limits_{n=0}^{L_{p}-1}\{x(n)-by_{l}(n)\}^{2}
Si 100 y
101 , entonces el valor de b que minimiza
E_{tono}(L) para un valor dado de L es
b\text{*}=\frac{E_{xy}(L)}{E_{yy}(L)}
para el
que
E_{tono}(L)=K
-\frac{E_{xy}(L)^{2}}{E_{yy}(L)}
donde K es una constante que puede
despreciarse.
Los valores óptimos de L y K (L* y b*) se
encuentran determinando primero el valor de L que minimiza
E_{tono}(L) y luego calculando b*.
Estos parámetros de filtro de tono son calculados
preferiblemente para cada subtrama y entonces se cuantifican para
una transmisión eficaz. En una realización preferida, los códigos de
transmisión PRETj y PGANj para la subtrama j-ésima se calculan
como
\vskip1.000000\baselineskip
PGAINj se ajusta entonces a -1 si PLAGj se pone a
0. Estos códigos de transmisión se transmiten en medio decodificador
CELP 206 como los parámetros de filtro de tono, parte de la señal de
voz codificada s_{enc}(n).
El libro de claves de codificación 704 recibe la
señal objetivo x(n) y determina un juego de parámetros de
activación de libro de claves que se emplean por el medio
decodificador CELP 206, junto con los parámetros de filtro de tono,
para reconstruir la señal residual cuantificada.
El libro de claves de codificación 704 primero
actualiza x(n) como sigue.
x(n)=x(n)-y_{pzir}(n),
\hskip0.5cm 0 \leq n <
40
donde y_{pzir}(n) es la
salida del filtro de síntesis LPC ponderado (con memorizaciones
retenidas del fin de la subtrama anterior) a una entrada que es la
respuesta a entrada cero del filtro del tono con parámetros
\hat{L}* y \hat{b}* (y memorizaciones que son el resultado del
procesamiento de la subtrama
anterior).
Se crea un objetivo retrofiltrado \vec{d} =
\{d_{n}\}, 0 \leq n < 40 donde
es la matriz de respuesta de
impulso formada a partir de la respuesta a impulso \{h_{n}\} y
\vec{x} = {x(n)}, 0 \leq n < 40. También
se crean dos vectores más \vec{\phi} = \{\phi_{n}\} y
\vec{s}.
\vec{s} =
sign(\vec{d})
donde
El libro de claves de codificación 704 inicializa
los valores Exy* y Eyy* a cero y busca los parámetros de activación
óptimos, preferentemente con cuatro valores de N (0, 1, 2, 3),
según:
El libro de claves de codificación 704 calcula la
ganancia de libro de claves G* como
\frac{Exy\text{*}}{Eyy\text{*}}, y luego cuantifica el juego de
parámetros de activación como los siguientes códigos de transmisión
codifica para la j-ésima subtrama:
y la ganancia cuantificada G* es
2^{CBGj\tfrac{11.2636}{31}}.
Se pueden implementar realizaciones de velocidad
de bit inferior del medio codificador / decodificador quitando el
módulo de codificación de tono 702 y realizando sólo una búsqueda de
libro de claves para determinar un índice I y una ganancia G para
cada una de las cuatro subtramas. Aquellos con experiencia en la
técnica reconocerán cómo las ideas arriba descritas podrían
extenderse para lograr esta realización de velocidad de bit más
baja.
El medio decodificador CELP 206 recibe la señal
de voz codificada, incluyendo preferiblemente parámetros de
activación de libro de claves y parámetros de filtro de tono, del
medio codificador CELP 204, y basándose en estos datos produce voz
sintetizada \hat{s}(n). El módulo decodificador de libro de
claves 708 recibe los parámetros de activación de libro de claves y
genera la señal de activación cb(n) con una ganancia de G.
La señal de activación cb(n) para la subtrama j-ésima
contiene principalmente ceros salvo para las cinco ubicaciones:
I_{k} = 5CBIjk
+ k, \hskip0.5cm 0 \leq k <
5
que correspondientemente tiene
impulsos de
valor
S_{k} =
1-2SIGNjk, \hskip0.5cm 0 \leq k <
5
todos de los cuales se escalan por
la ganancia G que se calcula que es 2^{CBGj\tfrac{11.2636}{31}},
para proporcionar
Gcb(n).
El filtro de tono 710 decodifica los parámetros
de filtro de tono de los códigos de la transmisión recibidos
según:
El filtro de tono 710 filtra entonces
Gcb(n), donde el filtro tiene una función de transferencia
dada por
\frac{1}{P(z)}=\frac{1}{1-b\text{*}z^{-L\text{*}}}
En una realización preferida, el medio
decodificador CELP 206 también agrega una operación de filtrado de
tono extra, un prefiltro de tono (no mostrado), después del filtro
de tono 710. El retardo para el prefiltro de tono es igual que la
del filtro de tono 710, mientras que su ganancia es preferentemente
la mitad de la ganancia de tono hasta un máximo de 0.5.
El filtro de síntesis LPC 712 recibe la señal
residual cuantificada reconstruida \hat{r}(n) y da como
salida la señal de voz sintetizada \hat{s}(n).
El módulo de actualización de filtro 706
sintetiza la voz como se ha descrito en la sección anterior para
actualizar las memorias del filtro. El módulo de actualización del
filtro 706 recibe los parámetros de activación de libro de claves y
los parámetros de filtro de tono, genera una señal de activación
cb(n), filtra el tono Gcb(n), y luego sintetiza
\hat{s}(n). Realizando esta síntesis en el codificador, se
actualizan las memorias en el filtro de tono y en el filtro de
síntesis LPC para su uso al procesar la siguiente subtrama.
La codificación por periodo de tono prototipo
(PPP) explota la periodicidad de una señal de voz para lograr
velocidades de bit inferiores a las pueden obtenerse usando
codificación CELP. En el general, la codificación PPP involucra
extraer un periodo representativo de la señal residual, denominado
aquí a como prototipo residual, y usar luego ese prototipo para
construir periodos de tono anteriores en la trama interpolando entre
el prototipo residual de la trama actual y un periodo de tono
similar de la trama anterior (es decir, el prototipo residual si la
última trama fue PPP). La efectividad (por lo que se refiere a la
bajada de velocidad de bit) de la codificación PPP depende, en
parte, de cuán próximamente los prototipos residuales actual y
anterior se parecen a los periodo de tono intermedios. Por esta
razón, la codificación PPP se aplica preferentemente a señales de
voz que exhiben grados relativamente altos de periodicidad (por
ejemplo, la voz hablada), aquí denominadas como señales de voz
cuasi periódicas.
La Fig. 9 representa un medio codificador PPP 204
y un medio decodificador PPP 206 con mayor detalle. El medio
codificador PPP 204 incluye un módulo de extracción 904, un
correlador rotacional 906, un libro de claves de codificación 908, y
un módulo de actualización de filtro 910. El medio codificador PPP
204 recibe la señal residual r(n) y produce una señal de voz
codificada s_{enc}(n), que preferentemente incluye
parámetros del libro de claves y parámetros rotacionales. El medio
decodificador PPP 206 incluye un libro de claves decodificador 912,
un rotador 914, un sumador 916, un interpolador de periodo 920, y un
filtro de alabeo 918.
La Fig. 10 es un diagrama de flujo 1000 que
representa los pasos de codificación PPP, incluyendo codificación y
decodificación. Estos pasos se tratan junto con los distintos
componentes del medio codificador PPP 204 y del medio decodificador
PPP 206.
En paso 1002, módulo de extracción 904 extrae un
prototipo residual r_{p}(n) de la señal residual
r(n). Como se ha descrito anteriormente en la Sección III.F.,
el módulo de cálculo inicial de parámetros 202 emplea un filtro de
análisis LPC para computar r(n) para cada trama. En una
realización preferida, los coeficientes LPC en este filtro están
ponderados perceptivamente como se describió en la Sección VII.A. La
longitud de r_{p}(n) es igual al retardo de tono L
computado por el módulo de cálculo inicial de parámetros 202 durante
la última subtrama en la trama actual.
La Fig. 11 es un diagrama de flujo que representa
el paso 1002 con mayor detalle. El módulo de extracción PPP 904
selecciona preferiblemente un periodo de tono tan cerca del extremo
de la trama como sea posible, sujeto a ciertas restricciones
tratadas más abajo. La Fig. 12 representa un ejemplo de una señal
residual calculada basado en voz cuasi periódica, incluyendo
la trama actual y la última subtrama de la trama anterior.
En el paso 1102, una se determina una "región
de corte libre". La región de corte libre define un juego de
muestras en el residuo que no puede ser puntos extremos del residuo
del prototipo. La región corte libre asegura que las regiones de
energía altas del residuo no ocurren al principio o al final del
prototipo (lo que podría causar discontinuidades en la salida si se
permitió que pasara). El valor absoluto de cada una de las L
muestras finales de r(n) se calcula. La variable P_{s} se
fija igual al índice de tiempo de la muestra con el valor absoluto
mayor, aquí denominada como el "pico del tono". Por ejemplo, si
el pico de tono ocurriera en la última muestra de las últimas L
muestras, P_{S} = L-1. En una realización
preferida, la muestra mínima de la región de corte libre,
CF_{min}, se fija para que sea P_{s}-6 o
P_{s}-0.25L, la que sea menor. El máximo de la
región de corte libre, CF_{max}, se fija para que sea P_{S}+6 o
P_{S}+0.25L, el que sea
mayor.
mayor.
En el paso 1104, el residuo prototipo se
selecciona cortando L muestras del residuo. La región escogida es
tan próxima como sea posible al extremo de la trama, con la
restricción de que los puntos extremos de la región no pueden estar
dentro de la región corte libre. Las L muestras del residuo
prototipo se determinan usando el algoritmo descrito en el
siguiente seudocódigo:
\vskip1.000000\baselineskip
En referencia de nuevo a la Fig. 10, en el paso
1004, el correlador rotacional 906 calcula un juego de parámetros
rotacionales basado en el residuo prototipo actual,
r_{p}(n), y el residuo prototipo de la trama anterior,
r_{prev}(n). Estos parámetros describen cómo
r_{prev}(n) puede rotarse y escalarse mejor para uso como
un predictor de r_{p}(n). En una realización preferida, el
juego de parámetros rotacionales incluye una rotación óptima R* y
una ganancia óptima b*. La Fig. 13 es un diagrama de flujo que
representa el paso 1004 con mayor detalle.
En el paso 1302, la señal objetivo ponderada
perceptivamente x(n), se computa filtrando circularmente el
periodo residual de tono prototipo r_{p}(n). Esto se logra
como sigue. Una señal temporal tmp1(n) se crea a partir de
r_{p}(n) como
que se filtra mediante el filtro de
síntesis LPC ponderado con ceros memorias para proporcionar una
salida tmp2(n). En una realización preferida, los
coeficientes LPC usados son los coeficientes perceptivamente
ponderados que corresponden a la última subtrama en la trama actual.
La señal objetivo x(n) vieneentonces dada
por
x(n) =
tmp2(n) + tmp2(n+L), \hskip0.5cm 0 \leq n <
L
En el paso 1304, el prototipo residual de la
trama anterior, r_{prev}(n), se extrae del formante
residual de la trama anterior cuantificada (que también está en las
memorias del filtro del tono). El residuo prototipo anterior se
define preferentemente como los últimos Lp valores del formante
residual de la trama anterior donde Lp es igual a L si la trama
anterior no era una trama PPP, y se otra forma se fija al retardo de
tono anterior.
En el paso 1306, la longitud de
r_{prev}(n) se altera para ser de la misma longitud que
x(n) para que puedan calcularse las correlaciones
correctamente. Esta técnica para alterar la longitud de una señal
muestreada se denomina aquí como de alabeo. La señal de activación
de tono alabeado, rw_{prev}(n), puede describirse como
rw_{prev}(n) =
r_{prev}(n \ \text{*} \ TWF), \hskip0.5cm 0 \leq n
<L
donde TWF es el factor de
deformación de tiempo L_{p}/L. Los valores de muestra en puntos no
enteros n*TWF se computan usando un juego de tablas de función sinc
preferentemente. La secuencia sinc escogida es el sinc(-3 - F: 4 -
F) donde F es la parte fraccionaria de n*TWF redondeada hasta el
múltiplo más cercano de 1/8. El principio de esta secuencia se
alinea con r_{prev}((N-3)% L_{p}) donde N es la
parte entera de n*TWP después de redondearse hasta el octavo más
próximo.
En el paso 1308, la señal de activación de tono
alabeado rw_{prev}(n) se filtra circularmente produciendo
y(n). Esta operación es igual que la descrita anteriormente
con respecto al paso 1302, pero aplicada rw_{prev}(n).
En el paso 1310, se calcula el rango de búsqueda
de rotación de tono calculando primero una rotación esperada
E_{rot},
E_{rot} = L -
redondeo \left(L \
frac{\left(\frac{(160-L)(L_{p} +
L)}{2L_{p}L}\right)}\right)
donde frac(x) da la parte
fraccionaria de x. Si L < 80, el rango de búsqueda de rotación de
tono se define para que sea \{E_{rot}\text{-}8,
E_{rot}\text{-}7.5.. \ E_{rot}\text{+}7.5\}, y
\{E_{rot}\text{-}16, E_{rot}\text{-}15... \ E_{rot}\text{+}15\}
cuando L \geq
80.
En el paso 1312, se calculan los parámetros
rotacionales, rotación óptima R* y ganancia óptima b*. La rotación
del tono que produce la mejor predicción entre x(n) e
y(n) se escoge junto con la ganancia correspondiente b.
Estos parámetros se escogen preferentemente para minimizar la señal
de error e(n)=x(n)-y(n). La
rotación óptima R* y la ganancia óptima b* es aquellos valores de
rotación R y ganancia b que producen el valor máximo de
\frac{Exy_{R}^{2}}{E_{xy}} donde
Exy_{R} = \sum\limits_{i=0}^{L-1}x((i+R)%L)y(i) y Eyy = \sum\limits_{i=0}^{L-1}y(i)y(i) para los que la ganancia óptima b* es \frac{Exy_{R\text{*}}}{Eyy} a la rotación R*. Para valores fraccionarios de rotación, el valor de Exy_{R} es aproximado interpolando los valores de Exy_{R} calculados a valores enteros de rotación. Se emplea un filtro simple de interpolación de cuatro etapas. Por ejemplo,
Exy_{R} = \sum\limits_{i=0}^{L-1}x((i+R)%L)y(i) y Eyy = \sum\limits_{i=0}^{L-1}y(i)y(i) para los que la ganancia óptima b* es \frac{Exy_{R\text{*}}}{Eyy} a la rotación R*. Para valores fraccionarios de rotación, el valor de Exy_{R} es aproximado interpolando los valores de Exy_{R} calculados a valores enteros de rotación. Se emplea un filtro simple de interpolación de cuatro etapas. Por ejemplo,
Exy_{R} =
0.54(Exy_{R'}+Exy_{R'+1}) -0\text{.}04 \ \text{*} \
(Exy_{R'-1}+Exy_{R'+2})
donde R es una rotación no entera
(con precisión de 0.5) y R '= \lfloor R
\rfloor.
En una realización preferida, los parámetros
rotatorios son cuantificados para una transmisión eficiente. La
ganancia óptima b* es preferentemente cuantificada uniformemente
entre 0.0625 y 4.0 como
PGAN =
max\left\{min\left(\left\lfloor
63\left(\frac{b*-0\text{.}0625}{4-0\text{.}0625}\right)
+
0.5\right\rfloor,63\right),0\right\}
donde PGAN es el código de
transmisión y la ganancia cuantificada \hat{b}* viene dada
por
{}\hskip17cm max\left\{0\text{.}0625 + \left(\frac{PGAN(4-0\text{.}0625)}{63}\right),0\text{.}0625\right\}.
{}\hskip17cm max\left\{0\text{.}0625 + \left(\frac{PGAN(4-0\text{.}0625)}{63}\right),0\text{.}0625\right\}.
La rotación óptima R* es cuantificada como el
código de transmisión PROT que se fija a 2(R* -E_{rot}+8)
si L <80, y R*-E_{rot}+16 cuando L \geq 80.
En referencia de nuevo a la Fig. 10, en el paso
1006, libro de claves de codificación 908 genera un juego de
parámetros del libro de claves basado en la señal objetivo recibida
x(n). El libro de claves de codificación 908 busca encontrar
uno o más vectores de código que, cuando se escalan, agregan, y
filtran se suman a una señal que se aproxima a x(n). En una
realización preferida, el libro de claves de codificación 908 se
implementa como un libro de claves multietapa, preferentemente de
tres etapas, donde cada etapa produce un vector de código escalado.
El juego de parámetros del libro de claves incluye por consiguiente
los índices y ganancias que corresponden a tres vectores de código.
La Fig. 14 es un diagrama de flujo que representa el paso 1006 con
mayor detalle.
En el paso 1402, antes de realizar la búsqueda de
libro de claves, la señal objetivo x(n) se actualiza como
x(n) =
x(n) - b y((n - R\text{*})%L), \hskip0.5cm 0 \leq n <
L
Si en la substracción anterior la rotación R* es
no entera (es decir, tiene una fracción de 0.5), entonces
y(i-0\text{.}5) =
-0\text{.}0073(y(i-4)+y(i+3)) +
0\text{.}0322(y(i-3) +
y(i+2))
-
0\text{.}1363(y(i-2) + y(i+1))
+
0\text{.}6076(y(i-1)+y(i))
donde i=n -
|R*|.
En el paso 1404, los valores del libro de claves
se dividen en regiones múltiples. Según una realización preferida,
el libro de claves se determina como
\vskip1.000000\baselineskip
\newpage
donde CBP son los valores de un
libro de claves estocástico o entrenado. Aquellos con experiencia en
la técnica reconocerán cómo se generan estos valores del libro de
claves. El libro de claves se divide en múltiples regiones, cada
una de longitud L. La primera región es un solo pulso, y las
regiones restantes están hechas a partir de valores del libro de
claves estocástico o entrenado. El número de regiones N será
128/L.
En el paso 1406, las múltiples regiones del libro
de claves son filtradas circularmente cada una para producir el
libro de claves filtrado, y_{reg}(n), cuyo encadenamiento
es la señal y(n). Para cada región, el filtrado circular se
realiza como se describió anteriormente con respecto al paso
1302.
En el paso 1408, la energía del libro de claves
filtrado, Eyy(reg), se computa para cada región y se
almacena:
Eyy(reg) =
\sum\limits_{i=0}^{L-1}y_{reg}(i), \hskip0.5cm 0
\leq reg <
N
En el paso 1410, se calculan los parámetros del
libro de claves (es decir, los vectores de código índice y
ganancia) para cada etapa del libro de claves multietapas. Según una
realización preferida, sea Region(I) = reg, definida como la
región en que reside la muestra I, o
y sea Exy(I) definido
como
Exy(I)
=\sum\limits_{i=0}^{L-1}x(i)y_{Region
(I)}((i+I)%L)
Los parámetros del libro de claves, I* y G*, para
la etapa j-ésima del libro de claves se calculan usando el
seudocódigo siguiente.
\vskip1.000000\baselineskip
\vskip1.000000\baselineskip
Según una realización preferida, los parámetros
del libro de claves son cuantificados para una transmisión
eficiente. El código de transmisión CBIj (j = número de etapa - 0, 1
o 2) preferentemente se fija I* y los códigos de transmisión CBGj y
SIGNj son fijos por cuantificación de la ganancia G*.
\vskip1.000000\baselineskip
y la ganancia cuantificada
\hat{G}*
es
La señal objetivo x(n) se actualiza
entonces substrayendo la contribución del vector del libro de claves
de la etapa actual
x(n)=x(n)-\hat{G}\text{*}
\ y_{Region(I \ \text{*})} ((n+I\text{*})% L), \hskip0.5cm 0
\leq n <
L
Se repiten los procedimientos anteriores a partir
del seudocódigo para calcular I*, G*, y los códigos de transmisión
correspondientes, para las etapas segunda y tercera.
En referencia de nuevo a la Fig. 10, en el paso
1008, el módulo de actualización de filtro 910 actualiza los
filtros usados por el medio codificador PPP 204. Se presentan dos
realizaciones alternativas para el módulo de actualización de
filtro 910, como se muestra en las Figs. 15A y 16A. Como se muestra
en la primera realización alternativa en la Fig. 15A, el módulo de
actualización de filtro 910 incluye un libro de claves de
decodificación 1502, un rotador 1504, un filtro de alabeo1506, un
sumador 1510, un módulo de alineación e interpolación 1508, un
módulo de actualización de filtro de tono 1512, y una filtro de
síntesis LPC 1514. La segunda realización, como se muestra en Fig.
16A, incluye un libro de claves de decodificación 1602, un rotador
1604, un filtro de alabeo 1606, un sumador 1608, un módulo de
actualización de filtro de tono 1610, un filtro de síntesis LPC
circular 1612, y un módulo de actualización de filtro LPC 1614. Las
Figs. 17 y 18 son diagramas de flujo que representan el paso 1008
con mayor detalle, según las dos realizaciones.
En el paso 1702 (y 1802, el primer paso de ambas
realizaciones), el residuo prototipo reconstruido actual,
r_{ac}t(n), L muestras de longitud, se reconstruye a partir
de los parámetros del libro de claves y de los parámetros
rotacionales. En una realización preferida, el rotador 1504 (y 1604)
rota una versión alabeado del prototipo residual anterior de acuerdo
con lo siguiente:
r_{act}((n+R\text{*})%L) =b \
rw_{prev}(n), \hskip0.5cm 0 \leq n <
L
donde el r_{act} es el prototipo
actual a crear, rw_{prev} es la versión alabeado (como se
describió anteriormente en la Sección VIII.A., con TWF = L_{p}/L)
del periodo anterior obtenida a partir de las más recientes L
muestras de las memorias de filtro de tono, b de la ganancia de tono
y R la rotación obtenida de los códigos de transmisión de paquete
como
donde E_{rot} es la rotación
esperada computada como se describió anteriormente en la Sección
VIII.B.
El libro de claves de decodificación 1502 (y
1602) agrega las contribuciones para cada una de las tres etapas del
libro de claves a r_{act}(n) como
donde I=CBIj y G se obtienen de
CBGj y SIGNj como se describió en la sección anterior, siendo j el
número de
etapa.
A estas alturas, las dos realizaciones
alternativas para el módulo de actualización de filtro 910 difieren.
En referencia primero a la realización de la Fig. 15A, en el paso
1704, el módulo de alineación y de interpolación 1508 llena el
resto de muestras residuales a partir del principio de la trama
actual hasta el principio del prototipo residual actual (como se
muestra en la Fig. 12). Se realizan aquí, la alineación e
interpolación en la señal residual. Sin embargo, estas mismas
operaciones también pueden realizarse en señales de voz, como se
describe debajo. La Fig. 19 es un diagrama de flujo que describe el
paso 1704 con mayor detalle.
En el paso 1902, se determina si el retardo
anterior L_{p}_{} es doble o mitad en relación al retardo actual
L. En una realización preferida, otros múltiplos se consideran muy
improbables, y por consiguiente no se toman en consideración. Si
L_{p}>1.85L, L_{p} se divide por dos y sólo se usa la primera
mitad del periodo anterior r_{prev}(n). Si L_{p}
<0.54L, el retardo actual L es probablemente doble y por
consiguiente L_{p} también se dobla y el periodo anterior
r_{prev}(n) se extiende por repetición.
En el paso 1904, r_{prev}(n) es alabeado
para formar el rw_{prev}(n) como se describió anteriormente
con respecto a paso 1306, con TWF =L_{p}/L, para que las
longitudes de ambos residuos prototipo sean ahora las mismas. Nótese
que esta operación se realizó en el paso 1702, como se describió
anteriormente, por el filtro de alabeo 1506. Aquellos con
experiencia en la técnica reconocerán que el paso 1904 sería
innecesario si la salida del filtro de alabeo 1506 estuviera
disponible para el módulo de alineación e interpolación 1508.
En el paso 1906 se computa el rango aceptable de
rotaciones de alineación. La rotación de alineación esperada,
E_{A}, se computa para ser igual que E_{rot} como se describió
anteriormente en la Sección VIII.B. El rango de búsqueda de rotación
de alineación se define para que sea \{E_{A}\text{-}\delta A,
E_{A}\text{-}\delta A+0\text{.}5, E_{A}\text{-}\delta A\text{+}1...,
E_{A}\text{+}\delta A\text{-}1\text{.}5, E_{A}\text{+}\delta
A\text{-}1\}, donde \deltaA = max {6,0.15L}.
En el paso 1908, las correlaciones cruzadas entre
los periodo prototipo anterior y actual para rotaciones de
alineación enteras, R, se computa como
y las correlaciones cruzadas para
las rotaciones A no enteras se aproximan interpolando los valores de
correlaciones a rotación
entera:
C(A)=0\text{.}54(C(A')+C(A'+1))
-0\text{.}04
(C(A'-1)+C(A'+2))
donde
A'=A-0.5.
En el paso 1910, el valor de A (sobre el rango de
rotaciones aceptables) que produce el valor máximo de C(A) es
escogido como la alineación óptima, A*.
En el paso 1912 se computa el promedio de retardo
o periodo de tono para las muestras intermedias, L_{av}, de la
siguiente manera. Una estimación de número de periodo, N_{per}, se
computa como
N_{per} =
redondeo\left(\frac{A*}{L}+\frac{(160-L)(L_{p}+L)}{2L_{p}L}\right)
con el retardo promedio para las
muestras intermedias dado
por
Lav =
\frac{(160-L)L}{N_{per}L-A\text{*}}
En el paso 1914, las muestras residuales
restantes en la trama actual son calculadas según lo siguiente
interpolación entre los residuos prototipo anterior y actual:
donde \alpha L/L_{av}. Los
valores de muestra en puntos no enteros \tilde{n} (igual a
n\alpha o n\alpha + A*) se computan usando un juego de tablas de
función sinc. La secuencia sinc escogida es
sinc(-3-F: 4-F) donde F es la parte
fraccionaria de \tilde{n} redondeada al múltiplo más cercano de
1/8. El principio de esta secuencia se alinea con
r_{prev}((N-3)%L_{p} donde N es la parte entera
de \tilde{n} después de redondearse al octavo más
próximo.
Nótese que esta operación es esencialmente igual
que el alabeo, como se describió anteriormente con respecto al paso
1306. Por consiguiente, en una realización alternativa, la
interpolación del paso 1914 se computa usando un filtro de alabeo.
Aquellos con experiencia en la técnica reconocerán que pueden
realizarse economías reutilizando un solo filtro de alabeo para los
distintos propósitos aquí descritos.
Volviendo a la Fig. 17, en el paso 1706 el módulo
de actualización de filtro de tono 1512 copia valores del residuo
reconstruido \hat{r}(n) a las memorias de filtro de tono.
Igualmente, también se actualizan las memorias del filtro del
tono.
En el paso 1708 el filtro de síntesis LPC 1514
filtra el residuo reconstruido \hat{r}(n), que tiene el
efecto de actualizar las memorias del filtro de síntesis LPC.
Se describe ahora la segunda realización del
módulo de actualización de filtro 910, como se muestra en la Fig.
16A. Como se describió anteriormente con respecto al paso 1702, en
el paso 1802, el residuo prototipo se reconstruye a partir de los
parámetros del libro de claves y rotatorios, mientras produciendo
r_{act}(n).
En el paso 1804, el módulo de actualización de
filtro de tono 1610 actualiza las memorias de filtro de tono
copiando réplicas de las L muestras de r_{act}(n), de
acuerdo con
mem-tono(i)=r_{act}
((L-(131% \ L)+i)% \ L), \hskip0.5cm 0 \leq i <
131
o
alternativamente,
mem-tono(131-1-i)=r_{act}(L-1
-% \ L), \hskip0.5cm 0 \leq i <
131
donde 131 es preferentemente el
orden de filtro de tono para un retardo máximo de 127.5. En una
realización preferida, las memorias del prefiltro de tono son
reemplazadas idénticamente por réplicas del periodo actual
r_{act}(n):
mem-prefilt-tono(i)=mem-tono(i),
\hskip0.5cm 0 \leq i <
131
En el paso 1806, r_{actt}(n) se filtra
circularmente como se describió en la Sección VIII.B., produciendo
s_{c}(n), usando preferentemente coeficientes LPC
ponderados perceptivamente.
En el paso 1808, los valores de
s_{c}(n), preferentemente los últimos diez valores (para un
filtro LPC de 10º orden), se usan para actualizar las memorias del
filtro de síntesis LPC.
Volviendo a las Figs. 9 y 10, en el paso 1010, el
medio decodificador PPP 206 reconstruye el residuo prototipo
r_{act}(n) basado en los parámetros recibidos de libro de
claves y rotatorios. La decodificación por libro de claves 912, el
rotador 914, y el filtro de alabeo 918 operan de la manera descrita
en la sección anterior. El interpolador de periodo 920 recibe el
residuo prototipo reconstruido r_{act}(n) y el residuo
prototipo reconstruido anterior r_{prev}(n), interpola las
muestras entre los dos prototipos, y produce una señal de voz
sintetizada \hat{s}(n). El interpolador de periodo 920 se
describe en la siguiente sección.
En el paso 1012, el interpolador de periodo 920
recibe r_{act}(n) y produce señal de voz sintetizada
\hat{s}(n). Se presentan aquí dos realizaciones
alternativas para el interpolador de periodo 920, como se muestra en
las Figs. 15B y 16B. En la primera realización alternativa, Fig.
15B, el interpolador de periodo 920 incluye un módulo de alineación
e interpolación 1516, un filtro de síntesis LPC 1518, y un módulo de
actualización de filtro de tono 1520. La segunda realización
alternativa, como se muestra en Fig. 16B, incluye un filtro de
síntesis LPC circular 1616, un módulo de alineación e interpolación
1618, un módulo de actualización de filtro de tono 1622, y una
módulo de actualización de filtro LPC 1620. Las Figs. 20 y 21 son
diagramas de flujo que representan el paso 1012 con mayor detalle,
según las dos realizaciones.
En referencia a la Fig. 15B, en el paso 2002, el
módulo de alineación e interpolación 1516 reconstruye la señal
residual para las muestras entre el del prototipo residual actual
r_{act(}n) y el prototipo residual anterior r_{prev}(n),
formando \hat{r}(n). El módulo de alineación e
interpolación 1516 opera de la manera descrita más arriba con
respecto al paso 1704 (como se muestra en la Fig. 19).
En el paso 2004, el módulo de actualización de
filtro de tono 1520 actualiza las memorias de filtro de tono basado
en la señal residual reconstruida \hat{r}(n), como se
describió anteriormente con respecto al paso 1706.
En el paso 2006, el filtro de síntesis LPC 1518
sintetiza la señal de voz de salida \hat{s}(n) basado en la
señal residual reconstruida \hat{r}(n). Las memorias de
filtro LPC se actualizan automáticamente cuando se realiza esta
operación.
En referencia ahora a las Figs. 16B y 21, en el
paso 2102, el módulo de actualización de filtro de tono 1622
actualiza las memorias de filtro de tono basado en el prototipo
residual actual reconstruido, r_{act}(n), como se describió
anteriormente con respecto al paso 1804.
En el paso 2104, el filtro circular de síntesis
LPC 1616 recibe r_{act}(n) y sintetiza un prototipo de voz
actual, s_{c}(n) (que tiene L muestras de longitud), como
se describió anteriormente en la Sección VIII.B.
En el paso 2106, el módulo de actualización de
filtro LPC 1620 actualiza las memorias de filtro LPC como se
describió anteriormente con respecto al paso 1808.
En el paso 2108, el módulo de alineación e
interpolación 1618 reconstruye las muestras de voz entre el periodo
prototipo anterior y el periodo prototipo actual. El residuo
prototipo anterior, r_{prev}(n), se filtra circularmente
(en una configuración de síntesis LPC) de forma que la interpolación
pueda proseguir en el dominio de voz. El módulo de alineación e
interpolación 1618 opera de la manera descrita más arriba con
respecto al paso 1704 (véase Fig. 19), excepto que las operaciones
se realizan sobre prototipos de voz en lugar de prototipos
residuales. El resultado de la alineación e interpolación es la
señal de voz sintetizada \hat{s}(n).
La codificación por predicción lineal activada
por ruido (NELP) modela la señal de voz como una secuencia de ruido
seudoaleatorio y por eso logra velocidades de bit más bajas que las
que pueden obtenerse usando codificación CELP o PPP. La
codificación NELP opera más eficazmente, por lo que se refiere a
reproducción de señal, cuando la señal de voz tiene poca o ninguna
estructura de tono, como la voz sorda o el ruido de fondo.
La Fig. 22 representa un medio codificador NELP
204 y un medio decodificador NELP 206 con mayor detalle. El medio
codificador NELP 204 incluye un estimador de energía 2202 y un libro
de claves de codificación 2204. El medio decodificador NELP 206
incluye un libro de claves de decodificación 2206, un generador de
números aleatorios 2210, un multiplicador 2212, y un filtro de
síntesis LPC 2208.
La Fig. 23 es un diagrama de flujo 2300 que
representa los pasos de codificación NELP, incluyendo la
codificación y la decodificación. Estos pasos se discuten junto con
los distintos componentes del codificador medio NELP 204 y del
medio decodificador NELP 206.
En el paso 2302, el estimador de energía 2202
calcula la energía de la señal residual por cada una de las cuatro
subtramas como
Est_{i} = 0
\text{.}5log\left(\frac{\sum\limits_{n=40i}^{40i+39}s^{2}(n)}{40}\right),
\hskip0.5cm 0\leq i <
4
En el paso 2304, el libro de claves de
codificación 2204 calcula un juego de parámetros del libro de
claves, formando la señal de voz codificada s_{enc}(n). En
una realización preferida, el juego de parámetros del libro de
claves incluye un solo parámetro, índice I0. El índice I0 se fija
igual al valor de j que minimiza
\sum\limits_{i=0}^{3}(Est_{i} -
STEQ(j\text{,}i))^{2} \hskip0.5cm donde \ 0 \leq j <
128
Se usan los vectores del libro de claves, STEQ,
para cuantificar las energías de subtrama Est_{i}, e incluyen un
número de elementos igual al número de subtramas dentro de una trama
(es decir, 4 en una realización preferida). Estos vectores del
libro de claves se crean preferentemente según técnicas estándar
conocidas por aquellos con experiencia en la técnica de crear libros
de claves estocástico o entrenado.
En el paso 2306, el libro de claves de
decodificación 2206 decodifica los parámetros del libro de claves
recibidos. En una realización preferida, el conjunto de ganancias de
subtrama G_{i}, se decodifica de acuerdo con:
G_{i}=2^{STEQ(I0,i)},
ó
G_{i}=2^{0\text{.}2STEQ(I0,i)+0\text{.}8logGprev-2}
(donde la trama anterior se codificó usando un
esquema de codificación de tasa cero)
donde 0 \leq i < 4 y Gprev es la ganancia de
activación de libro de claves que corresponde a la última subtrama
de la trama anterior.
En el paso 2308, el generador de números
aleatorios 2210 genera vector aleatorio de varianza unidad
nz(n). Este vector aleatorio se escala por la ganancia
apropiada Gi dentro de cada subtrama en el paso 2310, creando la
señal de activación G_{i}nz(n).
En el paso 2312, el filtro de síntesis LPC 2208
filtra la señal de activación G_{i}nz(n) para formar la
señal de voz de salida, \hat{s}(n).
En una realización preferida, también se emplea
un medio de tasa cero donde la ganancia G_{i} y los parámetros LPC
obtenidos de la subtrama NELP más reciente de no tasa cero se emplea
para cada subtrama en la trama actual. Aquellos con experiencia en
la técnica reconocerán que este medio de tasa cero puede usarse
eficazmente cuando las tramas NELP múltiples ocurren en
sucesión.
Aunque anteriormente se han descrito varias
realizaciones de la presente invención, debe entenderse que estas
se han presentado a modo de ejemplo solamente, y no de limitación.
Por tanto, la amplitud y el alcance de la presente invención no
deben ser limitados por cualquiera de las realizaciones ejemplares
antes descritas, sino que deben definirse solamente de acuerdo con
las siguientes reivindicaciones.
La descripción anterior de las realizaciones
preferidas se proporciona para permitir a cualquier persona
experimentada en la técnica hacer o usar la presente invención.
Aunque la invención se ha mostrado y descrito especialmente con
referencia a las realizaciones preferidas de la misma, se entenderá
por aquellos con experiencia en la técnica que pueden hacerse
varios cambios de forma y detalles en esta sin apartarse del alcance
de la invención tal como se define en las reivindicaciones.
Claims (24)
1. Un método para codificar una señal de voz
cuasi periódica, en donde la señal de voz se representa por
una señal residual generada filtrando la señal de voz con un el
filtro de análisis de Codificación Predictiva Lineal (LPC), y donde
la señal residual se divide en tramas de datos, comprendiendo los
pasos de:
(a) extraer (1002) periodo representativo de una
trama actual de la señal residual como prototipo actual;
(b) calcular (1004) un primer juego de parámetros
que describen cómo modificar un prototipo anterior de forma que
dicho prototipo anterior modificado se aproxime a dicho prototipo
actual;
(c) seleccionar (1006) uno o más vectores de
código de un primer libro de claves, donde dichos vectores de código
cuando se suman aproximan la diferencia entre dicho prototipo actual
y dicho prototipo anterior modificado, y donde dichos vectores de
código son descritos por un segundo juego de parámetros;
(d) reconstruir (1010) un prototipo actual basado
en dichos primero y segundo juegos de parámetros;
(e) interpolar (1012) la señal residual en la
región entre dicho prototipo actual reconstruido y un prototipo
reconstruido anterior;
(f) sintetizar una señal de voz de salida basada
en dicha señal residual interpolada.
2. El método de la reivindicación 1, donde dicha
trama actual tiene un retardo de tono, y donde la longitud de dicho
prototipo actual es igual a dicho retardo de tono.
3. El método de la reivindicación 1, donde dicho
paso de extraer un prototipo actual está sujeto a una "región de
corte libre".
4. El método de la reivindicación 3, donde dicho
prototipo actual se extrae del extremo de dicha trama actual,
sujeto a dicha región de corte libre.
5. El método de la reivindicación 1, donde dicho
paso de calcular un primer juego de parámetros comprende los pasos
de:
(i) filtrar circularmente dicho prototipo actual,
formando una señal objetivo;
(ii) extraer dicho prototipo anterior;
(iii) alabear dicho prototipo anterior de forma
tal que la longitud de dicho prototipo anterior sea igual a la
longitud de dicho prototipo actual;
(iv) filtrar circularmente dicho prototipo
anterior alabeado; y
(v) calcular una rotación óptima y una primera
ganancia óptima, donde dicho prototipo anterior alabeado filtrado
rotado en dicha rotación óptima y escalado por dicha primera
ganancia óptima se aproxima mejor a dicha señal objetivo.
6. El método de la reivindicación 5, donde dicho
paso de calcular una rotación óptima y una primera ganancia óptima
se realiza sujeto a un rango de búsqueda de rotación de tono.
7. El método de la reivindicación 5, donde dicho
paso de calcular una rotación óptima y una primera ganancia óptima
minimiza la diferencia cuadrática media entre dicho prototipo
anterior alabeado filtrado y dicha señal objetivo.
8. El método de la reivindicación 5, donde dicho
primer libro de claves comprende uno o más etapas, y donde dicho
paso de seleccionar uno o más vectores de código comprende los pasos
de:
(i) actualizar dicha señal objetivo mediante
sustracción de dicho prototipo anterior alabeado filtrado girado en
dicha rotación óptima y escalado por dicha primera ganancia
óptima;
(ii) dividir dicho primer libro de claves en una
pluralidad de regiones, donde cada una de dichas regiones forma un
vector de código;
(iii) filtrar circularmente cada uno de dichos
vectores de código;
(iv) seleccionar uno de dichos vectores de código
filtrado que más estrechamente se aproxime a dicha señal objetivo
actualizada, donde dicho vector de código particular se describe por
un índice óptimo;
(v) calcular una segunda ganancia óptima basada
en la correlación entre dicha señal objetivo actualizada y dicho
vector de código filtrado seleccionado;
(vi) actualizar dicha señal objetivo restando
dicho vector de código filtrado seleccionado escalado por dicha
segunda ganancia óptima; y
(vii) repetir los pasos (iv) - (vi) para cada una
de dichas etapas en dicho primer libro de claves, donde dicho
segundo juego de parámetros comprende dicho índice óptimo y dicha
segunda ganancia óptima para cada una de dichas etapas.
9. El método de la reivindicación 8, donde dicho
paso de reconstruir un prototipo actual comprende los pasos de:
(i) alabear un prototipo reconstruido anterior de
forma tal que la longitud de dicho prototipo reconstruido anterior
sea igual a la longitud de dicho prototipo corriente
reconstruido;
(ii) rotar dicho prototipo alabeado reconstruido
anterior en dicha rotación óptima y escalar en dicha primera
ganancia óptima, formando así dicho prototipo corriente
reconstruido;
(iii) recuperar un segundo vector de código de un
segundo libro de claves, donde dicho segundo vector de código se
identifica por dicho índice óptimo, y donde dicho segundo libro de
claves comprende un número de etapas igual a dicho primer libro de
claves;
(iv) escalar dicho segundo vector de código por
dicha segunda ganancia óptima;
(v) agregar dicho segundo vector de código
escalado a dicho prototipo actual reconstruido; y
(vi) repetir los pasos (iii) - (v) para cada una
de dichas etapas en dicho segundo libro de claves.
10. El método de la reivindicación 9, donde dicho
paso de interpolar la señal residual comprende los pasos de:
(i) calcular una alineación óptima entre dicho
prototipo anterior reconstruido alabeado y dicho prototipo
reconstruido actual;
(ii) calcular un retardo medio entre dicho
prototipo anterior reconstruido alabeado y dicho prototipo
reconstruido actual basado en dicha alineación óptima; e
(iii) interpolar dicho prototipo reconstruido
anterior alabeado y dicho prototipo reconstruido actual, formando
por así la señal residual en la región entre dicho prototipo
reconstruido anterior alabeado y dicho prototipo reconstruido
actual, donde dicha señal residual interpolada tiene dicho retardo
medio.
11. El método de la reivindicación 10, donde
dicho paso de sintetizar una señal de voz de salida comprende el
paso de filtrar dicha señal residual interpolada con un filtro de
síntesis LPC.
12. Un método para codificar una señal de voz
cuasi periódica, donde la señal de voz se representa por una
señal residual generada filtrando la señal de voz con un filtro de
análisis de Codificación Predictiva Lineal (LPC), y donde la señal
residual se divide en tramas de datos, que comprende los pasos
de:
(a) extraer (1002) un periodo representativo de
un trama actual de la señal residual como prototipo actual;
(b) calcular (1004) un primero juego de
parámetros que describen cómo modificar un prototipo anterior de
forma tal que dicho prototipo anterior modificado se aproxime a
dicho prototipo actual;
(c) seleccionar (1006) uno o más vectores de
código de un primer libro de claves, donde dichos vectores de código
cuando se suman aproximan la diferencia entre dicho prototipo actual
y dicho prototipo anterior modificado, y donde dichos vectores de
código son descritos por un segundo juego de parámetros;
(d) reconstruir (1010) un prototipo actual basado
en dichos primero y segundo juegos de parámetros;
(e) filtrar dicho prototipo reconstruido actual
con un filtro de síntesis LPC;
(f) filtrar un prototipo reconstruido anterior
con dicho filtro de síntesis LPC;
(g) interpolar (1012) en la región entre dicho
prototipo reconstruido actual y dicho prototipo reconstruido
anterior filtrado, formando así una señal de voz de salida.
13. Un sistema para codificar una señal de voz
cuasi periódica, donde la señal de voz se representa por una
señal residual generada filtrando la señal de voz con un filtro de
análisis de Codificación Predictiva Lineal (LPC), y donde la señal
residual se divide en tramas de datos, que comprende:
medios para extraer (904) un periodo
representativo de una trama actual de la señal residual como
prototipo actual;
medios para calcular (906) un primer juego de
parámetros que describen cómo modificar un prototipo anterior de
forma tal que dicho prototipo anterior modificado se aproxime a
dicho prototipo actual;
medios para seleccionar (908) uno o más vectores
de código de un primer libro de claves, donde dichos vectores de
código cuando se suman aproximan la diferencia entre dicho prototipo
actual y dicho prototipo anterior modificado, y donde dichos
vectores de código son descritos por un segundo juego de
parámetros;
medios para reconstruir (912, 914, 916, 918) un
prototipo reconstruido actual basado en dichos primero y segundo
juegos de parámetros;
medios para interpolar (920) la señal residual en
la región entre dicho prototipo reconstruido actual y un prototipo
reconstruido anterior;
medios para sintetizar una señal de voz de salida
basada en dicha señal residual interpolada.
14. El sistema de la reivindicación 13, donde
dicha trama actual tiene un retardo de tono, y donde la longitud de
dicho prototipo actual es igual a dicho retardo de tono.
15. El sistema de la reivindicación 13, dichos
medios para extraer, extraen dicho prototipo actual sujeto a una
"región de corte libre".
16. El sistema de la reivindicación 15, donde
dichos medios para extraer, extraen dicho prototipo actual del
extremo de dicha trama actual, sujeto a dicha región de corte
libre.
17. El sistema de la reivindicación 13, donde
dichos medios para calcular un primer juego de parámetros
comprenden:
un primer filtro circular de síntesis LPC,
acoplado para recibir dicho prototipo actual y para producir una
señal objetivo;
medios para extraer dicho prototipo anterior de
una trama anterior;
un filtro de alabeo, acoplado para recibir dicho
prototipo anterior, donde dicho filtro de alabeo produce un
prototipo anterior alabeado que tiene una longitud igual a la
longitud de dicho prototipo actual;
un segundo filtro circular de síntesis LPC,
acoplado para recibir dicho prototipo anterior alabeado, donde dicho
segundo filtro circular de síntesis LPC produce un prototipo
anterior alabeado filtrado; y
medios para calcular una rotación óptima y una
primera ganancia óptima, donde dicho prototipo anterior alabeado
filtrado rotado en dicha rotación óptima y escalado por dicha
primera ganancia óptima se aproxima mejor a dicha señal
objetivo.
18. El sistema de la reivindicación 17, donde
dichos medios para calcular calculan dicha rotación óptima y dicha
primera ganancia óptima sujeto a un rango de búsqueda de rotación de
tono.
19. El sistema de la reivindicación 17, donde los
medios para calcular minimizan la diferencia cuadrática media entre
dicho prototipo anterior alabeado filtrado y dicha señal
objetivo.
20. El sistema de la reivindicación 17, donde
dicho primer libro de claves comprende una o más etapas, y donde
dichos medios para seleccionar uno o más vectores de código
comprenden:
medios para actualizar dicha señal objetivo
restando dicho prototipo anterior alabeado filtrado rotado en dicha
rotación óptima y escalado por dicha primera ganancia óptima;
medios para dividir dicho primer libro de claves
en una pluralidad de regiones, donde cada una de dichas regiones
forma un vector de código;
un tercer filtro circular de síntesis LPC
acoplado para recibir dichos vectores de código, donde dicho tercer
filtro circular de síntesis LPC produce vectores de código
filtrados;
medios para calcular un índice óptimo y una
segunda ganancia óptima para cada etapa en dicho primer libro de
claves, comprendiendo:
- medios para seleccionar uno de dichos vectores de código filtrado, donde dicho vector de código filtrado seleccionado se aproxima más estrechamente a dicha señal objetivo y se describe mediante un índice óptimo,
- medios para calcular una segunda ganancia óptima basada en la correlación entre dicha señal objetivo y dicho vector de código filtrado seleccionado, y
- medios para actualizar dicha señal objetivo restando dicho vector de código filtrado seleccionado escalado por dicha segunda ganancia óptima;
donde dicho segundo juego de parámetros comprende
dicho índice óptimo y dicha segunda ganancia óptima para cada una de
dichas etapas.
21. El sistema de la reivindicación 20, donde
dichos medios para reconstruir un prototipo actual comprenden:
un segundo filtro de alabeo, acoplado para
recibir un prototipo reconstruido anterior, donde segundo filtro de
alabeo produce un prototipo reconstruido anterior alabeado que tiene
una longitud igual a la longitud de dicho prototipo reconstruido
actual;
medios para rotar dicho prototipo reconstruido
anterior alabeado en dicha rotación óptima y escalar en dicha
primera ganancia óptima, formando así dicho prototipo reconstruido
actual; y
medios para decodificar dicho segundo juego de
parámetros, donde se decodifica un segundo vector de código para
cada etapa en un segundo libro de claves con un número de etapas
igual a dicho primer libro de claves, que comprenden:
- medios para recuperar dicho segundo vector de código de dicho segundo libro de claves, donde dicho segundo vector de código se identifica por dicho índice óptimo,
- medios para escalar dicho segundo vector de código por dicha segunda ganancia óptima, y
- medios para agregar dicho segundo vector de código escalado a dicho prototipo reconstruido actual.
22. El sistema de la reivindicación 21, donde
dichos medios para interpolar la señal residual comprenden:
medios para calcular una alineación óptima entre
dicho prototipo reconstruido anterior alabeado y dicho prototipo
reconstruido actual;
medios para calcular un retardo medio entre dicho
prototipo reconstruido anterior alabeado y dicho prototipo
reconstruido actual basado en dicha alineación óptima; y
medios para interpolar dicho prototipo
reconstruido anterior alabeado y dicho prototipo reconstruido
actual, formando así la señal residual sobre la región entre dicho
prototipo reconstruido anterior alabeado y dicho prototipo
reconstruido actual, donde dicha señal residual interpolada tiene
dicho retardo medio.
23. El sistema de la reivindicación 22, donde
dichos medios para sintetizar una señal de voz de salida comprenden
un filtro de síntesis LPC.
24. Un sistema para codificar una señal de voz
cuasi periódica, donde la señal de voz se representa por una
señal residual generada filtrando la señal de voz con un filtro de
análisis de Codificación Predictiva Lineal (LPC), y donde la señal
residual se divide en tramas de datos, que comprende:
medios para extraer (904) un periodo
representativo de una trama actual de la señal residual como
prototipo actual;
medios para calcular (906) un primer juego de
parámetros que describen cómo modificar un prototipo anterior de
forma tal que dicho prototipo anterior modificado se aproxime a
dicho prototipo actual;
medios para seleccionar (908) uno o más vectores
de código de un primer libro de claves, donde dichos vectores de
código cuando se suman aproximan la diferencia entre dicho prototipo
actual y dicho prototipo anterior modificado, y donde dichos
vectores de código son descritos por un segundo juego de
parámetros;
medios para reconstruir (912, 914, 916, 918) un
prototipo reconstruido actual basado en dichos primero y segundo
juegos de parámetros;
un primer filtro de síntesis LPC, acoplado para
recibir dicho prototipo reconstruido actual, donde dicho primer
filtro de síntesis LPC produce un prototipo reconstruido actual
filtrado;
un segundo filtro de síntesis LPC, acoplado para
recibir un prototipo reconstruido anterior, donde dicho segundo
filtro de síntesis LPC produce prototipo reconstruido anterior
filtrado;
medios para interpolar (920) sobre la región
entre dicho prototipo reconstruido actual filtrado y dicho prototipo
reconstruido anterior filtrado, formando así una señal de voz de
salida;
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US09/217,494 US6456964B2 (en) | 1998-12-21 | 1998-12-21 | Encoding of periodic speech using prototype waveforms |
US217494 | 1998-12-21 |
Publications (1)
Publication Number | Publication Date |
---|---|
ES2257098T3 true ES2257098T3 (es) | 2006-07-16 |
Family
ID=22811325
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
ES99967508T Expired - Lifetime ES2257098T3 (es) | 1998-12-21 | 1999-12-21 | Codificacion periodica de vocales. |
Country Status (11)
Country | Link |
---|---|
US (1) | US6456964B2 (es) |
EP (1) | EP1145228B1 (es) |
JP (1) | JP4824167B2 (es) |
KR (1) | KR100615113B1 (es) |
CN (1) | CN1242380C (es) |
AT (1) | ATE309601T1 (es) |
AU (1) | AU2377600A (es) |
DE (1) | DE69928288T2 (es) |
ES (1) | ES2257098T3 (es) |
HK (1) | HK1040806B (es) |
WO (1) | WO2000038177A1 (es) |
Families Citing this family (71)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6754630B2 (en) * | 1998-11-13 | 2004-06-22 | Qualcomm, Inc. | Synthesis of speech from pitch prototype waveforms by time-synchronous waveform interpolation |
US7092881B1 (en) * | 1999-07-26 | 2006-08-15 | Lucent Technologies Inc. | Parametric speech codec for representing synthetic speech in the presence of background noise |
US6959274B1 (en) * | 1999-09-22 | 2005-10-25 | Mindspeed Technologies, Inc. | Fixed rate speech compression system and method |
US6715125B1 (en) * | 1999-10-18 | 2004-03-30 | Agere Systems Inc. | Source coding and transmission with time diversity |
JP2001255882A (ja) * | 2000-03-09 | 2001-09-21 | Sony Corp | 音声信号処理装置及びその信号処理方法 |
US6901362B1 (en) * | 2000-04-19 | 2005-05-31 | Microsoft Corporation | Audio segmentation and classification |
US6584438B1 (en) | 2000-04-24 | 2003-06-24 | Qualcomm Incorporated | Frame erasure compensation method in a variable rate speech coder |
EP2040253B1 (en) * | 2000-04-24 | 2012-04-11 | Qualcomm Incorporated | Predictive dequantization of voiced speech |
US6937979B2 (en) * | 2000-09-15 | 2005-08-30 | Mindspeed Technologies, Inc. | Coding based on spectral content of a speech signal |
US7171357B2 (en) * | 2001-03-21 | 2007-01-30 | Avaya Technology Corp. | Voice-activity detection using energy ratios and periodicity |
US20020184009A1 (en) * | 2001-05-31 | 2002-12-05 | Heikkinen Ari P. | Method and apparatus for improved voicing determination in speech signals containing high levels of jitter |
KR100487645B1 (ko) * | 2001-11-12 | 2005-05-03 | 인벤텍 베스타 컴파니 리미티드 | 유사주기 파형들을 이용한 음성 인코딩 방법 |
US7389275B2 (en) * | 2002-03-05 | 2008-06-17 | Visa U.S.A. Inc. | System for personal authorization control for card transactions |
US20040002856A1 (en) * | 2002-03-08 | 2004-01-01 | Udaya Bhaskar | Multi-rate frequency domain interpolative speech CODEC system |
US20040235423A1 (en) * | 2003-01-14 | 2004-11-25 | Interdigital Technology Corporation | Method and apparatus for network management using perceived signal to noise and interference indicator |
US7738848B2 (en) | 2003-01-14 | 2010-06-15 | Interdigital Technology Corporation | Received signal to noise indicator |
US7627091B2 (en) * | 2003-06-25 | 2009-12-01 | Avaya Inc. | Universal emergency number ELIN based on network address ranges |
KR100629997B1 (ko) * | 2004-02-26 | 2006-09-27 | 엘지전자 주식회사 | 오디오 신호의 인코딩 방법 |
US7130385B1 (en) | 2004-03-05 | 2006-10-31 | Avaya Technology Corp. | Advanced port-based E911 strategy for IP telephony |
US20050216260A1 (en) * | 2004-03-26 | 2005-09-29 | Intel Corporation | Method and apparatus for evaluating speech quality |
US7246746B2 (en) * | 2004-08-03 | 2007-07-24 | Avaya Technology Corp. | Integrated real-time automated location positioning asset management system |
MY149811A (en) * | 2004-08-30 | 2013-10-14 | Qualcomm Inc | Method and apparatus for an adaptive de-jitter buffer |
US8085678B2 (en) * | 2004-10-13 | 2011-12-27 | Qualcomm Incorporated | Media (voice) playback (de-jitter) buffer adjustments based on air interface |
KR100639968B1 (ko) * | 2004-11-04 | 2006-11-01 | 한국전자통신연구원 | 음성 인식 장치 및 그 방법 |
US7589616B2 (en) * | 2005-01-20 | 2009-09-15 | Avaya Inc. | Mobile devices including RFID tag readers |
BRPI0607251A2 (pt) * | 2005-01-31 | 2017-06-13 | Sonorit Aps | método para concatenar um primeiro quadro de amostras e um segundo quadro subseqüente de amostras, código de programa executável por computador, dispositivo de armazenamento de programa, e, arranjo para receber um sinal de áudio digitalizado |
US8155965B2 (en) * | 2005-03-11 | 2012-04-10 | Qualcomm Incorporated | Time warping frames inside the vocoder by modifying the residual |
US8355907B2 (en) * | 2005-03-11 | 2013-01-15 | Qualcomm Incorporated | Method and apparatus for phase matching frames in vocoders |
US8107625B2 (en) | 2005-03-31 | 2012-01-31 | Avaya Inc. | IP phone intruder security monitoring system |
US7599833B2 (en) * | 2005-05-30 | 2009-10-06 | Electronics And Telecommunications Research Institute | Apparatus and method for coding residual signals of audio signals into a frequency domain and apparatus and method for decoding the same |
US20090210219A1 (en) * | 2005-05-30 | 2009-08-20 | Jong-Mo Sung | Apparatus and method for coding and decoding residual signal |
US7177804B2 (en) * | 2005-05-31 | 2007-02-13 | Microsoft Corporation | Sub-band voice codec with multi-stage codebooks and redundant coding |
US7184937B1 (en) * | 2005-07-14 | 2007-02-27 | The United States Of America As Represented By The Secretary Of The Army | Signal repetition-rate and frequency-drift estimator using proportional-delayed zero-crossing techniques |
US7821386B1 (en) | 2005-10-11 | 2010-10-26 | Avaya Inc. | Departure-based reminder systems |
US8259840B2 (en) * | 2005-10-24 | 2012-09-04 | General Motors Llc | Data communication via a voice channel of a wireless communication network using discontinuities |
KR101019936B1 (ko) * | 2005-12-02 | 2011-03-09 | 퀄컴 인코포레이티드 | 음성 파형의 정렬을 위한 시스템, 방법, 및 장치 |
US8346544B2 (en) * | 2006-01-20 | 2013-01-01 | Qualcomm Incorporated | Selection of encoding modes and/or encoding rates for speech compression with closed loop re-decision |
US8032369B2 (en) * | 2006-01-20 | 2011-10-04 | Qualcomm Incorporated | Arbitrary average data rates for variable rate coders |
US8090573B2 (en) * | 2006-01-20 | 2012-01-03 | Qualcomm Incorporated | Selection of encoding modes and/or encoding rates for speech compression with open loop re-decision |
US8682652B2 (en) | 2006-06-30 | 2014-03-25 | Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E.V. | Audio encoder, audio decoder and audio processor having a dynamically variable warping characteristic |
JP5205373B2 (ja) * | 2006-06-30 | 2013-06-05 | フラウンホーファーゲゼルシャフト・ツア・フェルデルング・デア・アンゲバンテン・フォルシュング・エー・ファウ | 動的可変ワーピング特性を有するオーディオエンコーダ、オーディオデコーダ及びオーディオプロセッサ |
US8260609B2 (en) | 2006-07-31 | 2012-09-04 | Qualcomm Incorporated | Systems, methods, and apparatus for wideband encoding and decoding of inactive frames |
US20100030557A1 (en) * | 2006-07-31 | 2010-02-04 | Stephen Molloy | Voice and text communication system, method and apparatus |
JP4380669B2 (ja) * | 2006-08-07 | 2009-12-09 | カシオ計算機株式会社 | 音声符号化装置、音声復号装置、音声符号化方法、音声復号方法、及び、プログラム |
US8239190B2 (en) * | 2006-08-22 | 2012-08-07 | Qualcomm Incorporated | Time-warping frames of wideband vocoder |
KR101186133B1 (ko) * | 2006-10-10 | 2012-09-27 | 퀄컴 인코포레이티드 | 오디오 신호들을 인코딩 및 디코딩하는 방법 및 장치 |
WO2008056775A1 (fr) * | 2006-11-10 | 2008-05-15 | Panasonic Corporation | Dispositif de décodage de paramètre, dispositif de codage de paramètre et procédé de décodage de paramètre |
US20080120098A1 (en) * | 2006-11-21 | 2008-05-22 | Nokia Corporation | Complexity Adjustment for a Signal Encoder |
US8005671B2 (en) * | 2006-12-04 | 2011-08-23 | Qualcomm Incorporated | Systems and methods for dynamic normalization to reduce loss in precision for low-level signals |
CN100483509C (zh) * | 2006-12-05 | 2009-04-29 | 华为技术有限公司 | 声音信号分类方法和装置 |
US9653088B2 (en) * | 2007-06-13 | 2017-05-16 | Qualcomm Incorporated | Systems, methods, and apparatus for signal encoding using pitch-regularizing and non-pitch-regularizing coding |
US20100006527A1 (en) * | 2008-07-10 | 2010-01-14 | Interstate Container Reading Llc | Collapsible merchandising display |
US9232055B2 (en) * | 2008-12-23 | 2016-01-05 | Avaya Inc. | SIP presence based notifications |
GB2466672B (en) * | 2009-01-06 | 2013-03-13 | Skype | Speech coding |
GB2466674B (en) * | 2009-01-06 | 2013-11-13 | Skype | Speech coding |
GB2466673B (en) | 2009-01-06 | 2012-11-07 | Skype | Quantization |
GB2466669B (en) * | 2009-01-06 | 2013-03-06 | Skype | Speech coding |
GB2466675B (en) | 2009-01-06 | 2013-03-06 | Skype | Speech coding |
GB2466671B (en) * | 2009-01-06 | 2013-03-27 | Skype | Speech encoding |
GB2466670B (en) * | 2009-01-06 | 2012-11-14 | Skype | Speech encoding |
KR20110001130A (ko) * | 2009-06-29 | 2011-01-06 | 삼성전자주식회사 | 가중 선형 예측 변환을 이용한 오디오 신호 부호화 및 복호화 장치 및 그 방법 |
US8452606B2 (en) * | 2009-09-29 | 2013-05-28 | Skype | Speech encoding using multiple bit rates |
CN102687199B (zh) | 2010-01-08 | 2015-11-25 | 日本电信电话株式会社 | 编码方法、解码方法、编码装置、解码装置 |
FR2961937A1 (fr) * | 2010-06-29 | 2011-12-30 | France Telecom | Codage/decodage predictif lineaire adaptatif |
HUE037111T2 (hu) * | 2011-03-10 | 2018-08-28 | Ericsson Telefon Ab L M | Nem-kódolt al-vektorok kitöltése transzformációsan kódolt audio jelekben |
EP2830062B1 (en) * | 2012-03-21 | 2019-11-20 | Samsung Electronics Co., Ltd. | Method and apparatus for high-frequency encoding/decoding for bandwidth extension |
US9842598B2 (en) * | 2013-02-21 | 2017-12-12 | Qualcomm Incorporated | Systems and methods for mitigating potential frame instability |
AU2014283389B2 (en) | 2013-06-21 | 2017-10-05 | Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E.V. | Apparatus and method for improved concealment of the adaptive codebook in ACELP-like concealment employing improved pulse resynchronization |
KR102120073B1 (ko) * | 2013-06-21 | 2020-06-08 | 프라운호퍼 게젤샤프트 쭈르 푀르데룽 데어 안겐반텐 포르슝 에. 베. | 개선된 피치 래그 추정을 사용하여 acelpp-형 은폐 내에서 적응적 코드북의 개선된 은폐를 위한 장치 및 방법 |
ES2941782T3 (es) * | 2013-12-19 | 2023-05-25 | Ericsson Telefon Ab L M | Estimación de ruido de fondo en señales de audio |
TWI688609B (zh) | 2014-11-13 | 2020-03-21 | 美商道康寧公司 | 含硫聚有機矽氧烷組成物及相關態樣 |
Family Cites Families (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS62150399A (ja) * | 1985-12-25 | 1987-07-04 | 日本電気株式会社 | 音声合成用基本周期波形生成法 |
JP2650355B2 (ja) * | 1988-09-21 | 1997-09-03 | 三菱電機株式会社 | 音声分析合成装置 |
JPH02160300A (ja) * | 1988-12-13 | 1990-06-20 | Nec Corp | 音声符号化方式 |
US5884253A (en) | 1992-04-09 | 1999-03-16 | Lucent Technologies, Inc. | Prototype waveform speech coding with interpolation of pitch, pitch-period waveforms, and synthesis filter |
US5734789A (en) * | 1992-06-01 | 1998-03-31 | Hughes Electronics | Voiced, unvoiced or noise modes in a CELP vocoder |
JPH06266395A (ja) * | 1993-03-10 | 1994-09-22 | Mitsubishi Electric Corp | 音声符号化装置および音声復号化装置 |
JPH07177031A (ja) * | 1993-12-20 | 1995-07-14 | Fujitsu Ltd | 音声符号化制御方式 |
US5517595A (en) | 1994-02-08 | 1996-05-14 | At&T Corp. | Decomposition in noise and periodic signal waveforms in waveform interpolation |
US5809459A (en) | 1996-05-21 | 1998-09-15 | Motorola, Inc. | Method and apparatus for speech excitation waveform coding using multiple error waveforms |
JP3531780B2 (ja) * | 1996-11-15 | 2004-05-31 | 日本電信電話株式会社 | 音声符号化方法および復号化方法 |
JP3296411B2 (ja) * | 1997-02-21 | 2002-07-02 | 日本電信電話株式会社 | 音声符号化方法および復号化方法 |
US5903866A (en) | 1997-03-10 | 1999-05-11 | Lucent Technologies Inc. | Waveform interpolation speech coding using splines |
WO1999010719A1 (en) * | 1997-08-29 | 1999-03-04 | The Regents Of The University Of California | Method and apparatus for hybrid coding of speech at 4kbps |
US6092039A (en) * | 1997-10-31 | 2000-07-18 | International Business Machines Corporation | Symbiotic automatic speech recognition and vocoder |
JP3268750B2 (ja) * | 1998-01-30 | 2002-03-25 | 株式会社東芝 | 音声合成方法及びシステム |
US6260017B1 (en) * | 1999-05-07 | 2001-07-10 | Qualcomm Inc. | Multipulse interpolative coding of transition speech frames |
US6330532B1 (en) * | 1999-07-19 | 2001-12-11 | Qualcomm Incorporated | Method and apparatus for maintaining a target bit rate in a speech coder |
US6324505B1 (en) * | 1999-07-19 | 2001-11-27 | Qualcomm Incorporated | Amplitude quantization scheme for low-bit-rate speech coders |
-
1998
- 1998-12-21 US US09/217,494 patent/US6456964B2/en not_active Expired - Lifetime
-
1999
- 1999-12-21 WO PCT/US1999/030588 patent/WO2000038177A1/en active IP Right Grant
- 1999-12-21 AT AT99967508T patent/ATE309601T1/de not_active IP Right Cessation
- 1999-12-21 AU AU23776/00A patent/AU2377600A/en not_active Abandoned
- 1999-12-21 KR KR1020017007887A patent/KR100615113B1/ko active IP Right Grant
- 1999-12-21 EP EP99967508A patent/EP1145228B1/en not_active Expired - Lifetime
- 1999-12-21 ES ES99967508T patent/ES2257098T3/es not_active Expired - Lifetime
- 1999-12-21 DE DE69928288T patent/DE69928288T2/de not_active Expired - Lifetime
- 1999-12-21 JP JP2000590162A patent/JP4824167B2/ja not_active Expired - Lifetime
- 1999-12-21 CN CNB998148210A patent/CN1242380C/zh not_active Expired - Lifetime
-
2002
- 2002-03-19 HK HK02102093.0A patent/HK1040806B/zh not_active IP Right Cessation
Also Published As
Publication number | Publication date |
---|---|
CN1331825A (zh) | 2002-01-16 |
CN1242380C (zh) | 2006-02-15 |
DE69928288D1 (de) | 2005-12-15 |
KR100615113B1 (ko) | 2006-08-23 |
EP1145228A1 (en) | 2001-10-17 |
HK1040806A1 (en) | 2002-06-21 |
HK1040806B (zh) | 2006-10-06 |
EP1145228B1 (en) | 2005-11-09 |
WO2000038177A1 (en) | 2000-06-29 |
KR20010093208A (ko) | 2001-10-27 |
US6456964B2 (en) | 2002-09-24 |
ATE309601T1 (de) | 2005-11-15 |
JP2003522965A (ja) | 2003-07-29 |
US20020016711A1 (en) | 2002-02-07 |
DE69928288T2 (de) | 2006-08-10 |
AU2377600A (en) | 2000-07-12 |
JP4824167B2 (ja) | 2011-11-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
ES2257098T3 (es) | Codificacion periodica de vocales. | |
ES2321147T3 (es) | Codificacion de habla de tasa de transmision variable. | |
ES2250197T3 (es) | Codificador de voz armonico-lpc con estructura de supertrama. | |
US8595002B2 (en) | Half-rate vocoder | |
ES2266003T3 (es) | Suavizador de la ganancia en un descodificador de señal de habla y audio de banda ancha. | |
ES2625895T3 (es) | Método y dispositivo para la ocultación eficiente del borrado de tramas en códecs de voz basados en la predicción lineal | |
JP4064236B2 (ja) | 広帯域信号コーディング用の代数コードブック中のパルス位置と符号の索引付け方法 | |
ES2302754T3 (es) | Procedimiento y aparato para codificacion de habla sorda. | |
EP2038883B1 (en) | Vocoder and associated method that transcodes between mixed excitation linear prediction (melp) vocoders with different speech frame rates | |
US6081776A (en) | Speech coding system and method including adaptive finite impulse response filter | |
ES2145737T5 (es) | Codificador digital de voz con predictor a largo plazo mejorado por resolucion de submuestreos. | |
ES2256022T3 (es) | Metodos y aparators para submuestreo de la informacion. |