ES2240252T3 - Vocodificador de velocidad variable. - Google Patents
Vocodificador de velocidad variable.Info
- Publication number
- ES2240252T3 ES2240252T3 ES01103640T ES01103640T ES2240252T3 ES 2240252 T3 ES2240252 T3 ES 2240252T3 ES 01103640 T ES01103640 T ES 01103640T ES 01103640 T ES01103640 T ES 01103640T ES 2240252 T3 ES2240252 T3 ES 2240252T3
- Authority
- ES
- Spain
- Prior art keywords
- voice
- bits
- speed
- frame
- data
- 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
- 238000000034 method Methods 0.000 claims abstract description 89
- 230000000694 effects Effects 0.000 claims abstract description 71
- 230000005540 biological transmission Effects 0.000 claims description 78
- 238000004364 calculation method Methods 0.000 claims description 74
- 239000013598 vector Substances 0.000 claims description 54
- 230000005284 excitation Effects 0.000 claims description 31
- 230000003044 adaptive effect Effects 0.000 claims description 26
- 230000004044 response Effects 0.000 claims description 25
- 230000003595 spectral effect Effects 0.000 claims description 16
- 238000007906 compression Methods 0.000 claims description 11
- 230000006835 compression Effects 0.000 claims description 11
- 125000004122 cyclic group Chemical group 0.000 claims description 9
- 230000007423 decrease Effects 0.000 claims description 9
- 238000006243 chemical reaction Methods 0.000 claims description 6
- 230000015654 memory Effects 0.000 description 73
- 238000003786 synthesis reaction Methods 0.000 description 62
- 230000015572 biosynthetic process Effects 0.000 description 61
- 239000000872 buffer Substances 0.000 description 52
- 238000004458 analytical method Methods 0.000 description 41
- 230000001755 vocal effect Effects 0.000 description 37
- 238000011002 quantification Methods 0.000 description 27
- 238000010586 diagram Methods 0.000 description 26
- 230000009466 transformation Effects 0.000 description 17
- 238000006073 displacement reaction Methods 0.000 description 13
- 238000004422 calculation algorithm Methods 0.000 description 12
- 230000006870 function Effects 0.000 description 12
- 208000011580 syndromic disease Diseases 0.000 description 10
- 230000009467 reduction Effects 0.000 description 9
- 230000008859 change Effects 0.000 description 8
- 230000002829 reductive effect Effects 0.000 description 8
- 238000009499 grossing Methods 0.000 description 7
- 238000012856 packing Methods 0.000 description 7
- 238000001914 filtration Methods 0.000 description 6
- 238000004806 packaging method and process Methods 0.000 description 6
- 230000002441 reversible effect Effects 0.000 description 6
- 230000007704 transition Effects 0.000 description 6
- 230000015556 catabolic process Effects 0.000 description 5
- 238000006731 degradation reaction Methods 0.000 description 5
- 230000008569 process Effects 0.000 description 5
- 238000005070 sampling Methods 0.000 description 5
- 230000011664 signaling Effects 0.000 description 5
- 238000003860 storage Methods 0.000 description 5
- 238000012795 verification Methods 0.000 description 5
- 238000013459 approach Methods 0.000 description 4
- 230000008901 benefit Effects 0.000 description 4
- 230000000295 complement effect Effects 0.000 description 4
- 238000013144 data compression Methods 0.000 description 4
- 238000012986 modification Methods 0.000 description 4
- 230000004048 modification Effects 0.000 description 4
- 238000013139 quantization Methods 0.000 description 4
- 230000035508 accumulation Effects 0.000 description 3
- 238000009825 accumulation Methods 0.000 description 3
- 230000002547 anomalous effect Effects 0.000 description 3
- 238000004891 communication Methods 0.000 description 3
- 230000006872 improvement Effects 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 238000001228 spectrum Methods 0.000 description 3
- 239000002699 waste material Substances 0.000 description 3
- 238000012935 Averaging Methods 0.000 description 2
- 230000009471 action Effects 0.000 description 2
- 230000001413 cellular effect Effects 0.000 description 2
- 238000012937 correction Methods 0.000 description 2
- 230000001934 delay Effects 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 238000011156 evaluation Methods 0.000 description 2
- 230000010354 integration Effects 0.000 description 2
- 230000007774 longterm Effects 0.000 description 2
- 231100000572 poisoning Toxicity 0.000 description 2
- 230000000607 poisoning effect Effects 0.000 description 2
- 230000000717 retained effect Effects 0.000 description 2
- 238000000926 separation method Methods 0.000 description 2
- 210000001260 vocal cord Anatomy 0.000 description 2
- 101000822695 Clostridium perfringens (strain 13 / Type A) Small, acid-soluble spore protein C1 Proteins 0.000 description 1
- 101000655262 Clostridium perfringens (strain 13 / Type A) Small, acid-soluble spore protein C2 Proteins 0.000 description 1
- 206010011878 Deafness Diseases 0.000 description 1
- 101000693970 Homo sapiens Scavenger receptor class A member 3 Proteins 0.000 description 1
- 101000655256 Paraclostridium bifermentans Small, acid-soluble spore protein alpha Proteins 0.000 description 1
- 101000655264 Paraclostridium bifermentans Small, acid-soluble spore protein beta Proteins 0.000 description 1
- 102100027192 Scavenger receptor class A member 3 Human genes 0.000 description 1
- 230000002159 abnormal effect Effects 0.000 description 1
- 230000037007 arousal Effects 0.000 description 1
- 238000005311 autocorrelation function Methods 0.000 description 1
- 230000002146 bilateral effect Effects 0.000 description 1
- 230000000903 blocking effect Effects 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000013016 damping Methods 0.000 description 1
- 238000007405 data analysis Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 230000007812 deficiency Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 238000013383 initial experiment Methods 0.000 description 1
- 230000005923 long-lasting effect Effects 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000000873 masking effect Effects 0.000 description 1
- 238000002156 mixing Methods 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 235000021354 omega 7 monounsaturated fatty acids Nutrition 0.000 description 1
- 235000021315 omega 9 monounsaturated fatty acids Nutrition 0.000 description 1
- 230000000737 periodic effect Effects 0.000 description 1
- 230000036316 preload Effects 0.000 description 1
- 238000012887 quadratic function Methods 0.000 description 1
- 230000011218 segmentation Effects 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000001052 transient effect Effects 0.000 description 1
- 238000009966 trimming Methods 0.000 description 1
- 238000005303 weighing Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/004—Arrangements for detecting or preventing errors in the information received by using forward error control
- H04L1/0056—Systems characterized by the type of code used
- H04L1/0057—Block codes
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L19/00—Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
- G10L19/005—Correction of errors induced by the transmission channel, if related to the coding algorithm
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L19/00—Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
- G10L19/012—Comfort noise or silence coding
-
- 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/16—Vocoder architecture
- G10L19/18—Vocoders using multiple modes
- G10L19/22—Mode decision, i.e. based on audio signal content versus external parameters
-
- 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/16—Vocoder architecture
- G10L19/18—Vocoders using multiple modes
- G10L19/24—Variable rate codecs, e.g. for generating different qualities using a scalable representation such as hierarchical encoding or layered encoding
-
- 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/78—Detection of presence or absence of voice signals
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04B—TRANSMISSION
- H04B1/00—Details of transmission systems, not covered by a single one of groups H04B3/00 - H04B13/00; Details of transmission systems not characterised by the medium used for transmission
- H04B1/66—Details of transmission systems, not covered by a single one of groups H04B3/00 - H04B13/00; Details of transmission systems not characterised by the medium used for transmission for reducing bandwidth of signals; for improving efficiency of transmission
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04J—MULTIPLEX COMMUNICATION
- H04J3/00—Time-division multiplex systems
- H04J3/16—Time-division multiplex systems in which the time allocation to individual channels within a transmission cycle is variable, e.g. to accommodate varying complexity of signals, to vary number of channels transmitted
- H04J3/1682—Allocation of channels according to the instantaneous demands of the users, e.g. concentrated multiplexers, statistical multiplexers
- H04J3/1688—Allocation of channels according to the instantaneous demands of the users, e.g. concentrated multiplexers, statistical multiplexers the demands of the users being taken into account after redundancy removal, e.g. by predictive coding, by variable sampling
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/0001—Systems modifying transmission characteristics according to link quality, e.g. power backoff
- H04L1/0014—Systems modifying transmission characteristics according to link quality, e.g. power backoff by adapting the source coding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/0001—Systems modifying transmission characteristics according to link quality, e.g. power backoff
- H04L1/0015—Systems modifying transmission characteristics according to link quality, e.g. power backoff characterised by the adaptation strategy
- H04L1/0017—Systems modifying transmission characteristics according to link quality, e.g. power backoff characterised by the adaptation strategy where the mode-switching is based on Quality of Service requirement
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/004—Arrangements for detecting or preventing errors in the information received by using forward error control
- H04L1/0041—Arrangements at the transmitter end
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/004—Arrangements for detecting or preventing errors in the information received by using forward error control
- H04L1/0045—Arrangements at the receiver end
- H04L1/0046—Code rate detection or code type detection
-
- 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/78—Detection of presence or absence of voice signals
- G10L2025/783—Detection of presence or absence of voice signals based on threshold decision
- G10L2025/786—Adaptive threshold
Landscapes
- Engineering & Computer Science (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Human Computer Interaction (AREA)
- Health & Medical Sciences (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Physics & Mathematics (AREA)
- Acoustics & Sound (AREA)
- Multimedia (AREA)
- Computational Linguistics (AREA)
- Quality & Reliability (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
- Transmission Systems Not Characterized By The Medium Used For Transmission (AREA)
- Amplifiers (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Signal Processing For Digital Recording And Reproducing (AREA)
- Oscillators With Electromechanical Resonators (AREA)
- Curing Cements, Concrete, And Artificial Stone (AREA)
- Developing Agents For Electrophotography (AREA)
- Solid-Sorbent Or Filter-Aiding Compositions (AREA)
- Dc Digital Transmission (AREA)
- Luminescent Compositions (AREA)
- Facsimile Image Signal Circuits (AREA)
- Measurement Of The Respiration, Hearing Ability, Form, And Blood Characteristics Of Living Organisms (AREA)
- Measuring Pulse, Heart Rate, Blood Pressure Or Blood Flow (AREA)
- Investigating Or Analysing Biological Materials (AREA)
- Detection And Prevention Of Errors In Transmission (AREA)
- Reduction Or Emphasis Of Bandwidth Of Signals (AREA)
- Inorganic Insulating Materials (AREA)
- Table Devices Or Equipment (AREA)
- Monitoring And Testing Of Transmission In General (AREA)
- Testing, Inspecting, Measuring Of Stereoscopic Televisions And Televisions (AREA)
- Noise Elimination (AREA)
- Endoscopes (AREA)
- Magnetic Record Carriers (AREA)
Abstract
Método para la compresión de señal de voz, mediante la codificación de velocidad variable de tramas de muestras de voz digitalizadas, que comprende las etapas siguientes: determinar un nivel de actividad de voz para una trama de muestras de voz digitalizadas; seleccionar una velocidad de codificación a partir de un conjunto de velocidades sobre la base de dicho nivel determinado de actividad de voz para dicha trama; codificar dicha trama según un formato de codificación de un conjunto de formatos de codificación para dicha velocidad seleccionada en el que cada velocidad presenta un formato de codificación diferente correspondiente y en el que cada formato de codificación proporciona una diferente pluralidad de señales de parámetros que representan dichas muestras de voz digitalizadas (s(n)9 según un modelo de voz; y generar para dicha trama un paquete de datos de dichas señales de parámetros, caracterizado porque: proporciona un control ligado a la velocidad que indica una velocidad de codificación preseleccionada para dicha trama; y modifica dicha velocidad de codificación seleccionada para proporcionar dicha velocidad de codificación preseleccionada para codificar dicha trama a dicha velocidad de codificación preseleccionada.
Description
Vocodificador de velocidad variable.
La invención se refiere a un método y a un
procedimiento para la compresión de señal de voz, más
particularmente, la invención se refiere a un método y a un sistema
nuevos y mejorados para la compresión de voz en los que la cantidad
de compresión varía dinámicamente mientras que su incidencia en la
calidad de la voz reconstruida es mínima.
La transmisión de voz mediante técnicas digitales
ha tenido una amplia difusión, en particular en las aplicaciones de
teléfonos de radio digital. Esto, a su vez, ha suscitado el interés
por determinar la cantidad mínima de información que puede ser
enviada a través del canal, conservando la calidad percibida de la
voz reconstruida. Si la voz se transmite simplemente mediante
muestreo y digitalización, se requiere una velocidad de transmisión
de datos del orden de 64 kilobits por segundo (Kbit/s) para obtener
la calidad de voz del teléfono analógico convencional. Sin embargo,
a través de la utilización del análisis de voz, seguido de una
correcta codificación, transmisión y resíntesis en el receptor,
puede conseguirse una importante reducción de la velocidad de
transmisión de datos.
Los dispositivos que emplean técnicas para
comprimir voz sonora extrayendo parámetros que se relacionan con un
modelo de generación de voz humana habitualmente se denominan
vocodificadores. Dichos dispositivos se componen de un codificador
que analiza la voz entrante para extraer los parámetros pertinentes,
y un decodificador, que resintetiza la voz utilizando los
parámetros que recibe a través del canal de transmisión. Para ser
preciso, el modelo debe cambiar constantemente. Por lo tanto, la
voz se divide en bloques de tiempo, o tramas de análisis, durante
los cuales se calculan los parámetros. A continuación, se
actualizan los parámetros de cada nueva trama.
Entre los diversos tipos de codificadores de voz
existentes, los que efectúan codificación de predicción lineal con
excitación por código (CELP), codificación estocástica o
codificación de voz con excitación por vector, constituyen una
clase. Puede obtenerse un ejemplo de algoritmo de codificación de
esta clase particular en el documento "A 4.8 kbps Code Excited
Linear Predictive Coder" (Codificador de predicción lineal con
excitación por código de 4,8 Kbit/s) de Thomas E. Tremain et
al., Proceedings of the Mobile Satellite Conference,
1988.
La función del vocodificador es comprimir la
señal de voz digitalizada en una señal de baja velocidad binaria,
eliminando todas las redundancias naturales inherentes al habla.
Habitualmente, la voz presenta redundancias de corta duración,
debidas sobre todo a la operación de filtrado del tracto vocal, y
redundancias de larga duración debidas a la excitación del tracto
vocal por las cuerdas vocales. En un codificador CELP, estas
operaciones son modelizadas por dos filtros, un filtro de formantes
de corta duración y un filtro de tonos de larga duración. Una vez
eliminadas estas redundancias, la señal residual resultante puede
modelizarse como ruido blanco gaussiano, que asimismo debe
codificarse. La base de esta técnica consiste en calcular los
parámetros de un filtro, denominado filtro LPC (Linear Production
Coding), que lleva a cabo predicción a corto plazo de la forma de
onda de la voz utilizando un modelo del tracto vocal humano.
Además, se modelizan efectos a largo plazo relacionados con el tono
de la voz, calculando los parámetros de un filtro de tonos que, en
esencia, modeliza las cuerdas vocales humanas. Por último, estos
filtros deben ser excitados, y esto se lleva a cabo determinando
qué forma de onda de excitación aleatoria concreta de un grupo
contenido en un libro de código da por resultado la aproximación más
cercana a la voz original, cuando la forma de onda excita los dos
filtros mencionados anteriormente. Por lo tanto, los parámetros
transmitidos se refieren a tres elementos: (1) el filtro LPC, (2)
el filtro de tonos y (3) la excitación del libro de código.
Aunque la utilización de técnicas de codificación
vocal favorecen el objetivo de intentar reducir la cantidad de
información enviada a través del canal y a la vez asegurar voz
reconstruida de calidad, es necesario emplear otras técnicas para
conseguir una mayor reducción. Una técnica utilizada anteriormente
para reducir la cantidad de información enviada es la selección de
la actividad de las señales vocales. En esta técnica, no se
transmite información durante las pausas de voz. Aunque esta
técnica consigue el resultado deseado de la reducción de datos,
adolece de varias deficiencias.
En muchos casos, la calidad de la voz se reduce
debido al recorte de la parte inicial de las palabras. Otro
problema de la desconexión del canal durante la inactividad es que
los usuarios del sistema perciben la ausencia del ruido de fondo que
normalmente acompaña a la voz y la valoración que éstos dan a la
calidad del canal es tan baja como la de una llamada telefónica
normal. Otro problema en relación con la selección de la actividad
es que los ruidos bruscos ocasionales de fondo pueden activar el
transmisor cuando no hay voz, ocasionando molestas ráfagas de ruido
en el receptor.
Para tratar de mejorar la calidad de la voz
sintetizada en los sistemas de selección de actividad de señales
vocales, se añade ruido de confort durante el proceso de
decodificación. Aunque se consigue alguna mejora en calidad al
añadir ruido de confort, la mejora de la calidad global no es
substancial, puesto que el ruido de confort no modeliza el ruido de
fondo real del codificador.
Una técnica más preferida para efectuar la
compresión de datos, y que consigue reducir la información que es
necesario enviar, consiste en llevar a cabo la codificación vocal
de velocidad variable. Puesto que la voz contiene de forma inherente
períodos de silencio, es decir, pausas, la cantidad de datos
necesarios para representar dichos períodos puede reducirse. La
codificación vocal de velocidad variable explota este hecho de la
forma más eficaz reduciendo la velocidad de transmisión de datos
para estos períodos de silencio. La reducción de la velocidad de
transmisión de datos, a diferencia de la interrupción completa de
la transmisión de datos durante períodos de silencio, supera los
problemas asociados a la selección de actividad de las señales
vocales a la vez que facilita la reducción de la información
transmitida.
Merece especial atención la solicitud de patente
europea EP 0 449 043, que es una técnica anterior según el Artículo
54(3) y (4) EPC. La solicitud de patente europea EP 0 449
043 describe un método y un aparato para la digitalización de la
voz. La digitalización de la voz se realiza utilizando tanto la
codificación en forma de señal como la codificación de fuente con
un codificador para la digitalización y un decodificador la
reconstrucción de la señal de voz. La señal de voz se divide en
segmentos en el codificador y es procesada en una parte de los
segmentos con una aproximación a los valores de muestra tan precisa
como sea posible, calculándose un valor estimado para los valores
de muestra pendientes utilizando valores de muestra conocidos. En la
otra parte de los segmentos, únicamente se deducen parámetros para
la simulación de voz en cuanto a la codificación de fuente. Los
elementos de señal individuales son procesados a velocidades de bit
variables, asignadas a diferentes modalidades de funcionamiento, y
cada segmento de señal es clasificado como una de las modalidades
de funcionamiento. Los segmentos de voz individuales son de este
modo codificados según los requisitos de mayor o menor número de
bits, proporcionando un método de codificación híbrido que unifica
la codificación de fuente y la codificación en forma de señal. Esto
produce, junto con la cuantificación de señal de los fases
anteriores y posteriores de procesamiento de la señal, una velocidad
de bit media de 6 kbit/s y una calidad de voz similar a la de una
transmisión telefónica.
También merece especial atención el artículo
titulado "Phonetically-based vector excitation
coding of speech at 3.6 kbps" by Shihua Wang et al, speech
processing 1, Glasgow, 23-26 de mayo, 1989,
ICASSP'89, New York, IEEE, US, vol. 1 conf. 14, 23 de mayo de 1989,
paginas 49-52, XP000089669. El artículo describe un
segmentación de base fonética de la voz, que se realiza para
clasificar los segmentos en cinco clases: inicio, sordo, de voz de
paso bajo, de voz en estado estacionario y de voz transitoria. Las
longitudes de segmento están limitadas a un múltiple entero de una
unidad de trama. Para cada clase de segmento, se utiliza un esquema
de codificación distintivo basado en la codificación de excitación
vectorial (VXC).
Según la presente invención, se proporcionan un
método para la compresión de señal de voz como el establecido en la
reivindicación 1 y un aparato para la compresión de una señal
acústica como el establecido en la reivindicación 17. Las formas de
realización preferidas de la invención se dan a conocer en las
reivindicaciones subordinadas.
La invención se pondrá más claramente de
manifiesto en las reivindicaciones subordinadas.
El objetivo de la presente invención es
proporcionar un método y un sistema nuevos y mejorados para la
compresión de voz utilizando una técnica de vocodificación de
velocidad variable.
A continuación se describirá un vocodificador que
ejecuta un algoritmo de codificación vocal de la clase de
codificadores de voz mencionada anteriormente, es decir, de
codificación de predicción lineal con excitación por código (CELP),
de codificación estocástica o de codificación de voz con excitación
por vector. La técnica CELP por sí sola proporciona una importante
reducción de la cantidad de datos necesarios para representar la
voz, de una forma que, tras la resíntesis, da por resultado voz de
alta calidad. Como se ha mencionado anteriormente, los parámetros
del vocodificador se actualizan para cada trama. El vocodificador de
la presente invención proporciona una velocidad de transmisión de
datos variable cambiando la frecuencia y la precisión de los
parámetros del modelo.
La diferencia más notable de la realización
respecto de la técnica CELP básica es su capacidad de generar una
velocidad de transmisión de datos de salida variable basada en la
actividad de señales vocales. La estructura que se define permite
actualizar los parámetros con menos frecuencia, o con menos
precisión, durante las pausas de voz y la técnica determina una
reducción todavía mayor en la cantidad de información a transmitir.
El fenómeno que se explota para reducir la velocidad de transmisión
de datos es el factor de actividad de señales vocales, que es el
porcentaje medio de tiempo durante el cual un hablante dado habla
realmente en una conversación. Para las conversaciones telefónicas
bilaterales habituales, la velocidad media de transmisión de datos
se reduce en un factor de 2 o más. Durante las pausas de voz, el
vocodificador sólo codifica el ruido de fondo. En esos momentos, no
es necesario transmitir algunos de los parámetros relativos al
modelo del tracto vocal humano.
El planteamiento mencionado anteriormente,
denominado selección de actividad de las señales vocales, para la
limitación de la cantidad de información transmitida durante los
períodos de silencio, es una técnica en la que no se transmite
información durante los momentos de silencio. En lo que respecta a
la recepción, el período puede rellenarse con "ruido de
confort" sintetizado. En cambio, en una forma de realización de
la presente invención que será descrito en detalle a continuación un
vocodificador de velocidad variable trasmite datos de continuamente
a velocidades que oscilan entre 8 Kbit/s y 1 Kbit/s,
aproximadamente. Un vocodificador que lleva a cabo una transmisión
continua de datos puede prescindir de la síntesis de "ruido de
confort", y la codificación del ruido de fondo proporciona una
calidad más natural a la voz resintetizada. Por consiguiente, la
presente invención supone una mejora significativa en la calidad de
voz resintetizada respecto de la selección de actividad de las
señales vocales, al facilitar una transición suave entre la voz y
el fondo.
La presente invención incorpora además una nueva
técnica para enmascarar la presencia de errores. Debido a que los
datos están destinados a ser transmitidos por un canal que puede
ser ruidoso como, por ejemplo, un enlace de radio, los datos deben
incluir errores. Las técnicas anteriores que utilizan codificación
de canales para reducir el número de errores presentes pueden
resultar parcialmente satisfactorias en la reducción de errores. No
obstante, la codificación de canales por sí sola no proporciona el
nivel de protección de errores completo necesario para asegurar voz
reconstruida de alta calidad. En el vocodificador de velocidad
variable, que aplica codificación vocal de forma permanente, un
error puede destruir datos relativos a algún evento vocal
interesante como, por ejemplo, el inicio de una palabra o una
sílaba. Un problema habitual de los vocodificadores basados en la
codificación de predicción lineal (LPC) es que los errores en los
parámetros relativos al modelo del tracto vocal ocasionan sonidos
que se asemejan vagamente a los sonidos humanos, y que pueden
cambiar el sonido de la palabra original en una medida suficiente
como para confundir al oyente. En la siguiente forma de
realización, los errores se enmascaran para reducir su
perceptibilidad por el oyente. Este enmascaramiento de errores
proporciona una reducción drástica del efecto de los errores sobre
la inteligibilidad de la voz.
Debido a que el cambio máximo que puede
experimentar cualquier parámetro está limitado a valores menores de
bajas velocidades, los errores en los parámetros transmitidos a
estas velocidades afectarán menos a la calidad de la voz. Puesto
que los errores de las diferentes velocidades tienen diferentes
efectos percibidos sobre la calidad de la voz, el sistema de
transmisión puede aprovecharse al máximo para dar más protección a
los datos de velocidad más alta. Por consiguiente, como
característica añadida, la presente invención proporciona
resistencia a los errores del
canal.
canal.
Mediante la ejecución de una versión de salida de
velocidad variable del algoritmo CELP, se obtiene una compresión de
voz que varía dinámicamente entre 8:1 y 64:1, dependiendo de la
actividad de las señales vocales. Los factores de compresión recién
mencionados se refieren a una entrada de ley \mu, siendo los
factores de compresión superiores en un factor de 2 para una
entrada lineal. La determinación de la velocidad se efectúa de
trama en trama para aprovechar por completo el factor de actividad
vocal. Aún cuando se generan menos datos para las pausas de voz, la
degradación percibida del ruido de fondo resintetizado se reduce al
mínimo. Utilizando las técnicas de la presente invención, puede
conseguirse voz con una calidad casi de tipo de circuito
interurbano a una velocidad de transmisión de datos máxima de 8
Kbit/s y una velocidad media de transmisión de datos del orden de
3,5 Kbit/s en conversación normal.
Puesto que el vocodificador permite detectar
pausas cortas de voz, se consigue una reducción del factor de
actividad vocal. Las decisiones de velocidad pueden tomarse de
trama en trama sin tiempo de bloqueo y, en consecuencia, la
velocidad de transmisión de datos puede reducirse en las pausas de
voz que tengan una duración tan corta como la de la trama, que
habitualmente es de 20 ms en la forma de realización preferida.
Podrán captarse, pues, pausas como las existentes entre sílabas.
Esta técnica reduce el factor de actividad vocal en una medida
mayor que la conseguida tradicionalmente, puesto que es posible
codificar no sólo pausas de larga duración entre frases, sino
también pausas de más corta duración a velocidades inferiores.
Debido a que las decisiones de velocidad se toman
de trama en trama, no se produce recorte de la parte inicial de la
palabra, como ocurre en el sistema de selección de actividad de las
señales vocales. El recorte de esta naturaleza se produce en el
sistema de selección de actividad de las señales vocales debido al
retardo entre la detección de la voz y el reinicio de la
transmisión de datos. Cuando las decisiones de utilización de
velocidad se basan en los resultados de cada una de las tramas, se
obtiene voz en la que todas las transiciones tienen un sonido
natural.
Si el vocodificador transmite
ininterrumpidamente, el ruido de fondo del ambiente del hablante se
oirá de forma permanente en el extremo de recepción, proporcionando
de ese modo un sonido más natural durante las pausas de voz. Por
consiguiente, el vocodificador permite una transición suave hacia
el ruido de fondo. Lo que el oyente puede oír en el fondo durante
la conversación no se transformará de repente en un ruido de
confort sintetizado durante las pausas, como ocurre en el sistema de
selección de actividad de las señales vocales.
Puesto que el ruido de fondo se somete
continuamente a codificación vocal para la transmisión, los eventos
interesantes del fondo pueden enviarse con total claridad. En
ciertos casos, el ruido de fondo que interesa puede codificarse
incluso a la velocidad más alta. La codificación a máxima velocidad
puede producirse, por ejemplo, cuando hay alguna persona que habla
en voz alta en el fondo, o si pasa una ambulancia cerca de un
usuario que se halla en la calle. No obstante, el ruido de fondo de
variación constante o lenta será codificado a bajas
velocidades.
La utilización de codificación vocal de velocidad
variable promete un aumento de la capacidad de un sistema
telefónico celular digital basado en acceso múltiple por división
del código (CDMA) superior a un factor de dos. La codificación vocal
CDMA y de velocidad variable coinciden de manera singular, puesto
que, con CDMA, las interferencias entre canales decrecen
automáticamente a la vez que decrece la velocidad de transmisión de
datos a través de cualquier canal. Para comparar, consideraremos
los sistemas en los que se asignan intervalos de transmisión como,
por ejemplo, los sistemas TDMA o FDMA. Para que uno de estos
sistemas aproveche cualquier descenso de la velocidad de transmisión
de datos, se requiere una intervención externa para coordinar la
reasignación de intervalos no utilizados a otros usuarios. El
retardo inherente a dicho sistema determina que el canal pueda ser
reasignado sólo durante largas pausas de voz. Por lo tanto, no
puede aprovecharse por completo el factor de actividad vocal. No
obstante, con coordinación externa, la codificación vocal de
velocidad variable es útil en sistemas diferentes al CDMA por los
otros motivos mencionados.
En un sistema CDMA, la calidad de voz del sistema
puede degradarse ligeramente en los momentos en que se desea una
capacidad adicional del sistema. En términos abstractos, el
vocodificador puede considerarse como un grupo de vocodificadores
que funcionan a diferentes velocidades y proporcionan diferentes
calidades de voz. Por consiguiente, las calidades de voz pueden
mezclarse para reducir más la velocidad media de transmisión de
datos. Los experimentos iniciales muestran que mezclando voz
sometida a codificación vocal de velocidad completa y media
velocidad, p.ej. variando de trama en trama la velocidad de
transmisión de datos máxima permitida entre 8 Kbit/s y 4 Kbit/s, la
voz resultante tiene una calidad que es mejor que la variable de
media velocidad, de 4 Kbit/s como máximo, pero no tan buena como la
variable de velocidad completa, de 8 Kbit/s como máximo.
Es bien conocido que en la mayoría de
conversaciones telefónicas sólo habla una persona a la vez. Como
función adicional para los enlaces telefónicos dúplex completo,
puede proporcionarse un interbloqueo de velocidad. Si una dirección
del enlace transmite a la velocidad de transmisión más alta,
entonces la otra dirección es forzada a transmitir a la velocidad
más lenta. Un interbloqueo entre las dos direcciones del enlace
puede garantizar una utilización media no superior al 50% de cada
dirección del enlace. No obstante, cuando el canal se desactiva
como en el caso del interbloqueo de velocidad en la selección de
actividad de las señales vocales, no hay forma de que un oyente
interrumpa al hablante para asumir el papel de hablante en la
conversación. El vocodificador que se describirá a continuación
proporciona con facilidad la capacidad de interbloqueo de velocidad
mediante señales de control que establecen la velocidad de
codificación vocal.
Por último, debe observarse que utilizando un
modelo de codificación vocal de velocidad variable, la información
de señalización puede compartir el canal con datos de voz con un
efecto muy pequeño sobre la calidad de la voz. Por ejemplo, una
trama de alta velocidad puede dividirse en dos; una de las mitades
se utiliza para enviar los datos de voz de velocidad más baja y la
otra mitad, para enviar los datos de señalización. En el
vocodificador de la forma de realización preferida, sólo se produce
una ligera degradación de la calidad de la voz entre la voz
sometida a codificación vocal de velocidad completa y la sometida a
codificación vocal de media velocidad. Por consiguiente, la
codificación vocal de la voz a la velocidad más baja para la
transmisión compartida con otros datos da por resultado una
diferencia de calidad de voz casi imperceptible por el usuario.
Las características, objetivos y ventajas
anteriores y adicionales de la presente invención resultarán más
evidentes a partir de la consideración de la siguiente descripción
detallada, ilustrada mediante los dibujos adjuntos, en los que se
utilizan caracteres de referencia equivalentes para indicaciones
equivalentes y, en los que:
las Figuras 1a-1e ilustran
gráficamente las tramas y subtramas de análisis del vocodificador
para diferentes velocidades;
las Figuras 2a-2d son una serie
de gráficos que ilustran la distribución binaria de salida del
vocodificador para diferentes velocidades;
la Figura 3 es un diagrama de bloques
generalizado de un ejemplo de codificador;
la Figura 4 es un diagrama de flujo de un
codificador;
la Figura 5 es un diagrama de bloques
generalizado de un ejemplo de decodificador;
la Figura 6 es un diagrama de flujo de un
decodificador;
la Figura 7 es un diagrama de bloques funcionales
más detallado del codificador;
la Figura 8 es un diagrama de bloques de un
ejemplo de ventana de Hamming y de subsistemas de
autocorrelación;
la Figura 9 es un diagrama de bloques de un
ejemplo de subsistema de determinación de velocidad;
la Figura 10 es un diagrama de bloques de un
ejemplo de subsistema de análisis LPC;
la Figura 11 es un diagrama de bloques de un
ejemplo de subsistema de transformación LPC-LSP;
la Figura 12 es un diagrama de bloques de un
ejemplo de subsistema de cuantificación LPC;
la Figura 13 es un diagrama de bloques de un
ejemplo de subsistema de interpolación LSP y de transformación
LSP-LPC;
la Figura 14 es un diagrama de bloques del libro
de código adaptativo para la búsqueda del tono;
la Figura 15 es un diagrama de bloques del
decodificador del codificador;
la Figura 16 es un diagrama de bloques del
subsistema de búsqueda del tono;
la Figura 17 es un diagrama de bloques del
subsistema de búsqueda del libro de código;
la Figura 18 es un diagrama de bloques del
subsistema de empaquetamiento de datos;
la Figura 19 es un diagrama de bloques
funcionales más detallado del decodificador;
las Figuras 20a-20d son diagramas
que ilustran los parámetros y datos de decodificación de subtramas
recibidos por el decodificador para diferentes velocidades;
las Figuras 21a-21c son diagramas
que proporcionan una ilustración adicional de los parámetros y
datos de decodificación de subtramas recibidos por el decodificador
para condiciones especiales;
la Figura 22 es un diagrama de bloques del
subsistema de cuantificación inversa LSP;
la Figura 23 es un diagrama de bloques más
detallado del decodificador con postfiltrado y control automático de
ganancia; y
la Figura 24 es un diagrama que ilustra las
características adaptativas del filtro de brillo.
Se describirá a continuación un vocodificador en
el que los sonidos como la voz y/o el ruido de fondo se muestrean y
digitalizan utilizando técnicas bien conocidas. Por ejemplo, la
señal analógica puede transformarse en una señal digital mediante el
formato estándar de 8 bits/ley \mu seguido de una conversión de
ley \mu/código uniforme. Como alternativa, la señal analógica
puede convertirse directamente en una señal digital en un formato
de modulación por impulsos codificados (PCM) uniforme. Por lo tanto,
cada muestra está representada por una palabra de 16 bits de datos.
Las muestras se organizan en tramas de datos de entrada,
comprendiendo cada trama un número predeterminado de muestras. En la
descripción siguiente, la velocidad de muestreo considerada es de 8
kHz. Cada trama comprende 160 muestras o en 20 ms de voz a la
velocidad de muestreo de 8 kHz. Debe sobrentenderse que es posible
utilizar otras velocidades de muestreo y tamaños de trama.
El campo de la codificación vocal incluye muchas
técnicas diferentes para la codificación de voz, siendo una de
éstas la técnica de codificación CELP. En el documento "A 4.8 kbps
Code Excited Linear Predictive Coder" (Codificador de predicción
lineal con excitación por código de 4,8 Kbit/s) mencionado
anteriormente, se proporciona un sumario de la técnica de
codificación CELP. La presente invención ejecuta una forma de
técnica de codificación CELP para proporcionar una velocidad
variable a los datos de voz codificados, siendo efectuado el
análisis LPC con una cantidad de muestras constante y siendo
efectuadas las búsquedas de tono y libro de código con cantidades
de muestras variables dependiendo de la velocidad de transmisión.
Las técnicas de codificación CELP que se aplican a la presente
invención se describen conceptualmente con referencia a las Figuras
3 y 5.
En la descripción siguiente, las tramas de
análisis de voz tienen una duración de 20 ms, lo cual implica que
los parámetros extraídos se transmiten en una ráfaga 50 veces por
segundo. Además, la velocidad de transmisión de datos varía
aproximadamente entre 8 Kbit/s y 4 Kbit/s, 2 Kbit/s y 1 Kbit/s. A
velocidad completa (denominada también velocidad 1), la transmisión
de datos se lleva a cabo a 8,55 Kbit/s y los parámetros codificados
para cada trama utilizan 171 bits incluyendo una CRC (verificación
por redundancia cíclica) interna de 11 bits. En ausencia de los bits
de CRC, la velocidad será de 8 Kbit/s. A media velocidad
(denominada también velocidad 1/2), la transmisión de datos se
lleva a cabo a 4 Kbit/s y los parámetros codificados para cada trama
utilizan 80 bits. A cuarto de velocidad (denominada también
velocidad 1/4), la transmisión de datos se lleva a cabo a 2 Kbit/s
y los parámetros codificados para cada trama utilizan 40 bits. A
octavo de velocidad (denominada también velocidad 1/8), la
transmisión de datos es ligeramente inferior a 1 Kbit/s y los
parámetros codificados para cada trama utilizan 16 bits.
La Figura 1 ilustra gráficamente un ejemplo de
trama de análisis de datos de voz 10 y la relación de una ventana
de Hamming 12 utilizada en análisis LPC. En las Figuras
2a-2d, se ilustran gráficamente la trama de análisis
LPC y las subtramas de tono y libro de código para las diferentes
velocidades. Debe sobrentenderse que la trama de análisis LPC es
del mismo tamaño para todas las velocidades.
En relación con los dibujos y, en particular, con
la Figura 1a, el análisis LPC se lleva a cabo utilizando las 160
muestras de datos de voz de la trama 10 que se someten a
enventanado utilizando una ventana de Hamming 12. Como se ilustra en
la Figura 1a, las muestras s(n) se numeran del 0 al 159
dentro de cada trama. La ventana de Hamming 12 se sitúa a con un
desplazamiento de 60 muestras dentro de la trama 10. Por lo tanto,
la ventana de Hamming 12 empieza en la 60ª muestra, s(59), de
la trama de datos actual 10 y termina en la muestra 59ª,
s(58) de la siguiente trama de datos 14. Por consiguiente,
los datos ponderados generados para la trama actual, es decir la
trama 10, también contendrán datos basados en datos de la siguiente
trama, o sea la trama 14.
Dependiendo de la velocidad de transmisión de
datos, se efectúan búsquedas para calcular los parámetros de
excitación del filtro de tonos y del libro de código varias veces
con diferentes subtramas de la trama de datos 10, como se muestra en
las Figuras 1b-1e. Debe sobrentenderse que sólo se
selecciona una velocidad para la trama 10, de modo que las
búsquedas de tono y de libro de código se efectúan en subtramas de
diversos tamaños correspondientes a la velocidad seleccionada, como
se describe más adelante. No obstante, con finalidades
ilustrativas, en las Figuras 1b-1e se muestra la
estructura de las subtramas de la trama 10 para las búsquedas de
tono y de libro de código y las diversas velocidades permitidas de
la forma de realización preferida.
En todas las velocidades, se efectúa un cálculo
LPC por trama 10 como se ilustra en la Figura 1a. Como se ilustra
en la Figura 1b, a velocidad completa existen dos subtramas de
libro de código 18 para cada subtrama de tono 16. A velocidad
completa se efectúan cuatro actualizaciones de tono, una para cada
una de las cuatro subtramas de tono 16, de 40 muestras de duración
(5 ms). Además, a velocidad completa se efectúan ocho
actualizaciones de libro de código, una para cada una de las ocho
subtramas de libro de código 18, de 20 muestras de duración (2,5
ms).
A media velocidad, como se ilustra en la Figura
1c, existen dos subtramas de libro de código 22 para cada subtrama
de tono 20. El tono se actualiza dos veces, una por cada una de las
dos tramas de tono 20, mientras que el libro de código se actualiza
cuatro veces, una por cada una de las cuatro subtramas de libro de
código 22. A cuarto de velocidad, como se ilustra en la Figura 1d,
existen dos subtramas de libro de código 26 para la única subtrama
de tono 20. El tono se actualiza una vez para la subtrama de tono
24, mientras que el libro de código se actualiza dos veces, una por
cada una de las dos subtramas de libro de código 26. Como se
ilustra en la Figura 1e, a octavo de velocidad, no se determina el
tono y el libro de código se actualiza sólo una vez en la trama 28
que corresponde a la trama 10.
Además, aunque los coeficientes LPC se calculan
sólo una vez por trama, éstos se interpolan linealmente, en una
representación de par de líneas espectrales (LSP), hasta cuatro
veces utilizando las frecuencias LSP resultantes de la trama
anterior para calcular aproximadamente los resultados del análisis
LPC con la ventana de Hamming centrada en cada subtrama. La
excepción es que, a velocidad completa, no se interpolan los
coeficientes LPC para las subtramas de libro de código. Más
adelante, se proporciona más información acerca del cálculo de
frecuencias LSP.
Aparte de llevarse a cabo con menos frecuencia
las búsquedas de tono y de libro de código a velocidades más bajas,
se asignan menos bits para la transmisión de los coeficientes LPC.
El número de bits asignados a las diferentes velocidades se muestra
en las Figuras 2a-2d. Cada una de las Figuras
2a-2d representa el número de bits de datos
codificados por el vocodificador asignados a cada una de las tramas
de 160 muestras de voz. En las Figuras 2a-2d, el
número del respectivo bloque LPC 30a- 30d es el número de bits
utilizados a la correspondiente velocidad para codificar los
coeficientes LPC de corto plazo. El número de bits utilizados para
codificar los coeficientes LPC a las velocidades, completa, media,
cuarto y octavo son respectivamente 40, 20, 10 y 10.
Para ejecutar la codificación de velocidad
variable, los coeficientes LPC se transforman en primer lugar en
pares de líneas espectrales (LSP) y las resultantes frecuencias LSP
se codifican de forma individual utilizando codificadores DPCM. El
orden de LPC es 10, es decir, hay 10 frecuencias LSP y 10
codificadores DPCM independientes. La asignación de bits para los
codificadores DPCM se efectúa según la Tabla I.
Tanto en el codificador como en el decodificador,
las frecuencias LSP vuelven a convertirse en coeficientes de filtro
LPC antes de su utilización en las búsquedas de tono y de libro de
código.
Con respecto a la búsqueda del tono, la
actualización de tono se calcula cuatro veces a velocidad completa,
una por cada cuarta parte de trama de voz, como se ilustra en la
Figura 2a. Para cada actualización de tono a velocidad completa, se
utilizan 10 bits para codificar los nuevos parámetros de tono. Las
actualizaciones de tono se efectúan un número de veces variable
para las otras velocidades mostradas en las Figuras
2b-2d. A medida que la velocidad decrece, el número
de actualizaciones de tono también decrece. La Figura 2b ilustra las
actualizaciones de tono para media velocidad que se calculan dos
veces, una para cada mitad de trama de voz. De modo similar, la
Figura 2c ilustra las actualizaciones de tono para cuarto de
velocidad que se calculan una vez para cada trama de voz completa.
Igual que para la velocidad completa, se utilizan 10 bits para
codificar los nuevos parámetros de tono para cada actualización de
tono de media velocidad y cuarto de velocidad. No obstante, como se
ilustra en la Figura 2d, para octavo de velocidad no se calcula
ninguna actualización de tono, puesto que esta velocidad se utiliza
para codificar tramas cuando la voz presente es nula o casi nula y
no existen redundancias de tono.
En cada actualización de tono de 10 bits, 7 bits
representan el retardo de tono y 3 bits representan la ganancia de
tono. El retardo de tono está limitado a los valores comprendidos
entre 17 y 143. La ganancia de tono se cuantifica linealmente entre
0 y 2 para su representación mediante el valor de 3 bits.
En relación con la búsqueda de libro de código,
como se ilustra en la Figura 2a, a velocidad completa la
actualización de libro de código se calcula ocho veces, una para
cada octava parte de la trama de voz. Para cada actualización de
libro de código a velocidad completa, se utilizan 10 bits para
codificar los nuevos parámetros de libro de código. Las
actualizaciones de libro de código se efectúan un número de veces
variable a las velocidades mostradas en las Figuras
2b-2d. No obstante, a medida que disminuye la
velocidad también disminuye el número de actualizaciones de libro de
código. La Figura 2b ilustra las actualizaciones de libro de código
para media velocidad que se calculan cuatro veces, una para cada
cuarta parte de la trama de voz. La Figura 2c ilustra las
actualizaciones de libro de código para cuarto de velocidad que se
calculan dos veces, una para cada mitad de la trama de voz. Igual
que para la velocidad completa, se utilizan 10 bits para codificar
los nuevos parámetros de libro de código para cada actualización de
tono de media velocidad y cuarto de velocidad. Por último, la
Figura 2d ilustra las actualizaciones de libro de código para octavo
de velocidad que sólo se calculan una vez para cada trama de voz
completa. Debe observarse que a octavo de velocidad se transmiten 6
bits; 2 de los cuales son representativos de la ganancia de libro
de código y los 4 restantes son bits aleatorios. Más adelante, se
proporciona más información acerca de las asignaciones de bits para
las actualizaciones de libro de código.
Los bits asignados para las actualizaciones de
libro de código representan los bits de datos necesarios para
cuantificar vectorialmente el residuo de predicción de tono. Para
las velocidades completa, media y cuarto, cada actualización de
libro de código consiste en 7 bits de índice de libro de código más
3 bits de ganancia de libro de código para un total de 10 bits. La
ganancia de código de libro se codifica utilizando un codificador
de modulación diferencial por impulsos codificados (DPCM) que
funciona en el dominio logarítmico. Aunque para octavo de velocidad
puede utilizarse una disposición de bits parecida, es preferible
utilizar un modelo alternativo. A octavo de velocidad, la ganancia
de libro de código es representada por 2 bits, mientras que se
utilizan 4 bits generados de forma aleatoria con los datos
recibidos, como simiente para el generador de números
pseudoaleatorios que sustituye al libro de código.
Con respecto al diagrama de bloques del
codificador ilustrado en la Figura 3, el análisis LPC se lleva a
cabo en una modalidad de bucle abierto. Para cada trama de muestras
de voz de entrada s(n), se calculan los coeficientes LPC0
(\alpha_{1}-\alpha_{10}) como se describirá
más adelante, mediante análisis/cuantificación LPC 50, para
utilizarlos en el filtro de síntesis de formantes 60.
No obstante, el cálculo de la búsqueda del tono
se efectúa en una modalidad de bucle cerrado que a menudo se
denomina procedimiento de análisis por síntesis. Sin embargo, en el
ejemplo de ejecución, se utiliza una nueva técnica híbrida de bucle
cerrado/bucle abierto para dirigir la búsqueda del tono. En la
búsqueda del tono, la codificación se lleva a cabo seleccionando
parámetros que reducen al mínimo el error cuadrático medio entre la
voz de entrada y la voz sintetizada. Para simplificar, en esta
parte de la descripción no se tratará el tema de la velocidad. No
obstante, más adelante se proporciona información adicional
detallada acerca del efecto de la velocidad seleccionada sobre las
búsquedas de tono y de libro de código.
En la forma de realización conceptual ilustrada
en la Figura 3, el filtro de ponderación perceptiva 52 se
caracteriza mediante las siguientes ecuaciones:
(1)W(z)
= \frac{A(z)}{A(z/
\mu)}
siendo
(2)A(z)
= 1 - \sum\limits^{10}_{i=1} \alpha _{i}
z^{-i}
el filtro de predicción de
formantes y \mu, un parámetro de ponderación perceptiva, que en la
descripción siguiente es igual a 0,8. El filtro de síntesis de tono
58 se caracteriza mediante la siguiente
ecuación:
(3)\frac{1}{P(z)} =
\frac{1}{1-bz^{-L}}
El filtro de síntesis de formantes 60, un filtro
ponderado que se describe a continuación, se caracteriza mediante
la siguiente ecuación:
(4)H(z)
= \left(\frac{1}{A(z)}\right) W(z) =
\frac{1}{A(z/
\mu)}
Las muestras de voz de entrada s(n) son
ponderadas por el filtro de ponderación perceptiva 52, y las
muestras de voz ponderadas x(n) son proporcionadas a una
entrada de suma del sumador 62. La ponderación perceptiva se utiliza
para ponderar el error en las frecuencias donde hay menos potencia
de señal. Es en estas frecuencias de baja potencia de señal cuando
el ruido es más apreciable perceptivamente. Las muestras de voz
sintetizada x'(n) se pasan desde el filtro de síntesis de formantes
60 hasta una entrada de resta del sumador 62 donde se sustraen de
las x(n) muestras. La diferencia de muestras obtenida desde
el sumador 62 se introduce en el elemento de error cuadrático medio
(MSE) 64 donde se eleva al cuadrado y se suma. Los resultados del
elemento MSE 64 se proporcionan al elemento de minimización 66 que
genera valores para el retardo de tono L, la ganancia de tono b, el
índice de libro de código I y la ganancia de libro de código.
En el elemento de minimización 66, se introducen
todos los valores posibles de L, el parámetro de retardo de tono de
P(z), en el filtro de síntesis de tono 58 junto con el valor
c(n) del multiplicador 56. Durante la búsqueda del tono no
hay contribución alguna del libro de código, es decir, c(n)
= 0. Los valores de L y b que reducen al mínimo el error ponderado
entre la voz de entrada y la voz sintetizada son elegidos por el
elemento de minimización 66. El filtro de síntesis de tono 58 genera
y proporciona el valor p(n) al filtro de síntesis de
formantes 60. Una vez hallado el retardo de tono L y la ganancia de
tono b para el filtro de tonos, se lleva a cabo la búsqueda de libro
de código de forma parecida.
Debe sobrentenderse que la Figura 3 es una
representación conceptual del planteamiento de análisis por
síntesis. En el ejemplo de realización, los filtros no se utilizan
en la configuración de retroalimentación en bucle cerrado habitual.
La conexión de retroalimentación se rompe durante la búsqueda y se
sustituye por un residuo de formantes de bucle abierto descrito más
adelante.
El elemento de minimización 66 genera a
continuación valores para el índice de libro de código I y la
ganancia de libro de código G. Los valores obtenidos del libro de
código 54, seleccionados entre una pluralidad de valores vectoriales
aleatorios gaussianos según el índice de libro de código I, se
multiplican en el multiplicador 55 por la ganancia de libro de
código G para generar la secuencia de valores c(n) utilizada
en el filtro de síntesis de tono 58. El índice de libro de código I
y la ganancia de libro de código G que se eligen para la
transmisión son los que reducen al mínimo el error cuadrático
medio.
Debe observarse que tanto la voz de entrada como
la voz sintetizada son ponderadas perceptivamente W(z) por el
filtro de ponderación perceptiva 52 y la función de ponderación
incluida en el filtro de síntesis de formantes 60, respectivamente.
El filtro de síntesis de formantes 60 por lo tanto es en realidad un
filtro de síntesis de formantes ponderados, que combina la función
de ponderación de la ecuación 1 con la característica típica del
filtro de predicción de formantes \frac{1}{A(z)}
para proporcionar la función de síntesis de formantes ponderados de
la ecuación 3.
Debe sobrentenderse que como alternativa, el
filtro de ponderación perceptiva 52 puede situarse entre el sumador
62 y el elemento MSE 64. En este caso, el filtro de síntesis de
formantes 60 tendrá la característica de filtro normal de
\frac{1}{A(z)}.
La Figura 4 ilustra un diagrama de flujo de las
etapas relativas a la codificación de voz con el codificador de la
Figura 3. Con fines descriptivos, las etapas relativas a la
decisión de velocidad se incluyen en el diagrama de flujo de la
Figura 4. Las muestras de voz digitalizada se obtienen (bloque 80)
de los circuitos de muestreo a partir de los cuales se calculan
después los coeficientes LPC (bloque 82). En el cálculo de
coeficientes LPC, se utilizan la ventana de Hamming y técnicas de
autocorrelación. Para la trama que interesa, se toma una decisión
inicial de velocidad (bloque 84) basada en la energía de trama.
Para codificar eficazmente los coeficientes LPC
en un número pequeño de bits, los coeficientes LPC se transforman
en frecuencias de pares de líneas espectrales (LSP) (bloque 86) y
luego se cuantifican (bloque 88) para la transmisión.
Opcionalmente, puede efectuarse una determinación de velocidad
adicional (bloque 90), aumentándose la velocidad si la
cuantificación de los coeficientes LSP para la velocidad inicial se
considera insuficiente (bloque 92).
Para la primera subtrama de tono de la trama de
voz que se está analizando, las frecuencias LSP se interpolan y
transforman en coeficientes LPC (bloque 94) para su utilización en
la dirección de la búsqueda del tono. En la búsqueda del tono, la
excitación del libro de código se establece en cero. En la búsqueda
del tono (bloques 96 y 98) que es un procedimiento de análisis por
síntesis como el descrito anteriormente, para cada retardo de tono
L posible, se compara la voz sintetizada con la voz original. Para
cada valor de L, se determina un valor entero, la ganancia de tono
óptima b. De los grupos de valores de L y b, el grupo de valores de
L y b óptimos proporciona el mínimo error cuadrático medio
ponderado perceptivamente entre la voz sintetizada y la voz
original. Para los valores óptimos determinados de L y b para esa
subtrama de tono, se cuantifica el valor de b (bloque 100) para su
transmisión junto con el correspondiente valor de L. En una
ejecución alternativa de la búsqueda del tono, el valor de b y L
pueden ser valores cuantificados que participan en la búsqueda del
tono, siendo utilizados estos valores cuantificados para dirigir la
búsqueda del tono. Por lo tanto, en esta ejecución, dejará de ser
necesario cuantificar el valor de b seleccionado tras la búsqueda
del tono (bloque 100).
Para la primera subtrama de libro de código de la
trama de voz que se está analizando, las frecuencias LSP se
interpolan y transforman en coeficientes LPC (bloque 102), para su
utilización en la dirección de la búsqueda de libro de código. En
la descripción a título de ejemplo, no obstante, a velocidad
completa, las frecuencias LSP sólo se interpolan hasta el nivel de
subtrama de tono. Esta etapa de interpolación y transformación se
lleva a cabo tanto para la búsqueda de libro de código como para la
búsqueda del tono, debido a la diferencia en tamaño de las subtramas
de tono y libro de código para cada velocidad, excepto para la
velocidad 1/8, por ser ello irrelevante, ya que no se calcula
ningún dato de tono. En la búsqueda de libro de código (bloques 104
y 106), se utilizan los valores de retardo L y de ganancia b de tono
óptimos en el filtro de síntesis de tono, para comparar, para cada
índice de libro de código I posible, la voz sintetizada con la voz
original. Para cada valor de I, se determina un valor entero; la
ganancia de libro de código G óptima. De los grupos de valores de I
y G, el grupo de valores de I y G óptimos proporciona el mínimo
error entre la voz sintetizada y la voz original. Para los valores
óptimos determinados de I y G para dicha subtrama de código de
libro, se cuantifica el valor G (bloque 108), para su transmisión
junto con el correspondiente valor I. Por otra parte, en una
ejecución alternativa de la búsqueda de libro de código, la
cuantificación de los valores G puede llevarse a cabo como parte de
la búsqueda de libro de código, siendo utilizados estos valores
cuantificados en la dirección de la búsqueda de código. En esta
ejecución alternativa, deja de ser necesaria la cuantificación del
valor G seleccionado tras la búsqueda de libro de código (bloque
108).
Después de la búsqueda de libro de código, se
ejecuta el decodificador del codificador con los valores I, G, L y b
óptimos. La ejecución del decodificador del codificador reconstruye
las memorias de filtro del codificador para su utilización en
futuras subtramas.
A continuación, se efectúa una comprobación
(bloque 110) para determinar si la subtrama de libro de código cuyo
análisis acaba de terminar es la última subtrama de libro de código
del grupo de subtramas de libro de código correspondiente a la
subtrama de tono para la cual va destinada la búsqueda del tono. En
otras palabras, se determina si quedan más subtramas de libro de
código que correspondan a la subtrama de tono. En el ejemplo de
forma de realización, sólo existen dos subtramas de libro de código
por subtrama de tono. Si se determina que queda otra subtrama de
libro de código que corresponde a la trama de tono, se repiten las
etapas 102-108 para dicha subtrama de libro de
código.
En caso de que no queden más subtramas de libro
de código correspondientes a la trama de tono, se efectuará una
comprobación (bloque 112) para determinar si queda alguna subtrama
de tono dentro de la trama de voz que se está analizando. Si en la
trama de voz actual que se está analizando queda otra subtrama de
tono, se repiten las etapas 94-110 para cada
subtrama de tono y correspondientes subtramas de libro de código.
Cuando hayan finalizado todos los cálculos para la trama de voz
actual que se está analizando, los valores representativos de los
coeficientes LPC para la trama de voz, el retardo L y la ganancia b
de tono para cada subtrama de tono y el índice I y la ganancia G de
libro de código para cada subtrama de libro de código, se empaquetan
para la transmisión (bloque 114).
En relación con la Figura 5, se ilustra un
diagrama de bloques del decodificador en el que los valores
recibidos para los coeficientes LPC (\alpha_{i}), los retardos
y ganancias de tono (L y b) y los índices y ganancias de libro de
código (I y G) se utilizan para sintetizar la voz. De nuevo, en la
Figura 5, como en la Figura 3, no se tiene en cuenta la información
de velocidad para simplificar la descripción. La información de
velocidad de transmisión de datos puede enviarse como información
suplementaria y, en ciertos casos, puede obtenerse en la etapa de
demodulación del canal.
El decodificador consiste en un libro de código
130 que está provisto de los índices de libro de código recibidos
o, para octavo de velocidad, la simiente aleatoria. La salida del
libro de código 130 se proporciona a una entrada del multiplicador
132, mientras que la otra entrada del multiplicador 132 recibe la
ganancia de libro de código G. La salida del multiplicador 132 se
proporciona junto con el retardo L y la ganancia b de tono al
filtro de síntesis de tono 134. La salida del filtro de síntesis de
tono 134 se proporciona junto con los coeficientes LPC
\alpha_{i} al filtro de síntesis de formantes 136. La salida
del filtro de síntesis de formantes 136 se proporciona al postfiltro
adaptativo 138 donde se filtra y se proporciona como voz
reconstruida. Como se describe más adelante, en el codificador se
ejecuta una versión del decodificador. El decodificador del
codificador no incluye un postfiltro adaptativo 138, sino que
incluye un filtro de ponderación perceptiva.
La Figura 6 es un diagrama de flujo que
corresponde al funcionamiento del decodificador de la Figura 5. En
el decodificador, la voz se reconstruye a partir de los parámetros
recibidos (bloque 150). En particular, el valor recibido del índice
de libro de código se introduce en el libro de código que genera un
vector del código o valor de salida del libro de código (bloque
152). El multiplicador recibe el vector de código junto con la
ganancia de libro de código G recibida y multiplica estos valores
(bloque 154), siendo proporcionada la señal resultante al filtro de
síntesis de tono. Debe observarse que la ganancia de libro de
código G se reconstruye decodificando y cuantificando inversamente
los parámetros DPCM recibidos. Al filtro de síntesis de tono se le
facilitan los valores de retardo L y ganancia b de tono recibidos,
junto con la señal de salida del multiplicador, para permitir el
filtrado de la salida del multiplicador (bloque 156).
Los valores que se obtienen tras el filtrado del
vector de libro de código por el filtro de síntesis de tono se
introducen en el filtro de síntesis de formantes. Asimismo, al
filtro de síntesis de formantes, se le facilitan los coeficientes
LPC \alpha_{i} para su utilización en el filtrado de la señal
de salida del filtro de síntesis de tono (bloque 158). Los
coeficientes LPC se reconstruyen en el decodificador para su
interpolación mediante decodificación de los parámetros DPCM
recibidos en frecuencias LSP cuantificadas, cuantificación inversa
de las frecuencias LSP y transformación de las frecuencias LSP en
coeficientes LPC \alpha_{i}. La salida del filtro de síntesis de
formantes se proporciona al postfiltro adaptativo en el que se
enmascara el ruido de cuantificación y en el que la voz reconstruida
se somete a control de ganancia (bloque 160). Se obtiene voz
reconstruida (bloque 162) para su conversión analógica.
Con referencia a la ilustración del diagrama de
bloques de las Figuras 7a y 7b, se proporciona más información
acerca de las técnicas de codificación de voz de la presente
invención. En la Figura 7a, cada una de las tramas de las muestras
de voz digitalizada se proporciona a un subsistema de ventana de
Hamming 200, en el que la voz de entrada se somete a enventanado
antes del cálculo de los coeficientes de autocorrelación en el
subsistema de autocorrelación 202.
El subsistema de ventana de Hamming 200 y el
subsistema de autocorrelación 202 se ilustran en un ejemplo de
ejecución en la Figura 8. El subsistema de ventana de Hamming 200
consiste en una tabla de consulta 250, que habitualmente es una
memoria de sólo lectura (ROM) de 80x16 bits, y un multiplicador 252.
Para cada velocidad, la ventana de voz se centra entre las muestras
139ª y 140ª de cada trama de análisis que tiene una longitud de 160
muestras. La ventana para calcular los coeficientes de
autocorrelación está pues desplazada 60 tramas respecto de la trama
de análisis.
El enventanado se efectúa utilizando una tabla
ROM que contiene 80 de los 160 valores W_{H}(n), puesto
que la ventana de Hamming es simétrica respecto del centro. El
desplazamiento de la ventana de Hamming se lleva a cabo desviando el
puntero de dirección de la ROM 60 posiciones con respecto a la
primera muestra de una trama de análisis. Estos valores son
multiplicados con precisión simple con las correspondientes
muestras de voz de entrada por el multiplicador 252. Supongamos que
s(n) sea la señal de voz de entrada en la ventana de
análisis. La señal de voz sometida a enventanado s_{w}(n)
es definida por:
(5)s_{W}(n) =
s(n+60)W_{H}(n)
\hskip0.8cmpara \ 0< = n < = 79
y
(6)s_{W}(n) =
s(n+60)W_{H}(159 - n)
\hskip0.8cmpara \ 80 < = n < = 159
En la Tabla II, se proporcionan ejemplos de
valores hexadecimales del contenido de la tabla de consulta 250.
Estos valores se interpretan como números en complemento a dos que
tienen 14 bits fraccionarios, siendo leída la tabla de izquierda a
derecha y de arriba abajo.
El subsistema de autocorrelación 202 consiste en
un registro 254, un multiplexor 256, un registro de desplazamiento
258, un multiplicador 260, un sumador 262, un registro de
desplazamiento circular 264 y una memoria tampón 266. Cada 20 ms, se
obtienen muestras de voz enventanadas s_{W}(n) y se
bloquean en el registro 254. En la muestra s_{W}(0), la
primera muestra de una trama de análisis LPC, los registros de
desplazamiento 258 y 264 se ponen a 0. En cada nueva muestra
s_{W}(n), el multiplexor 256 recibe una nueva señal de
selección de muestra que permite la entrada de la muestra desde el
registro 254. La nueva muestra s_{W}(n) se pasa también al
multiplicador 260 donde se multiplica por la muestra
s_{W}(n-10), que es la última posición SR10
del registro de desplazamiento 258. El valor resultante se suma en
el sumador 262 con el valor de la última posición CSR11 del
registro de desplazamiento circular 264.
Los registros de desplazamiento 258 y 260 son
desplazados iterativamente una vez, sustituyendo
s_{W}(n-1) por
s_{W}(n) en la primera posición SR1 del registro de desplazamiento 258 y sustituyendo el valor que previamente estaba presente en la posición CSR10. Tras el desplazamiento iterativo del registro de desplazamiento 258, la nueva señal de selección de muestra se retira de la entrada del multiplexor 256, permitiendo de ese modo que la muestra
s_{W}(n-9) que actualmente se halla en la posición SR10 del registro de desplazamiento 260 entre en el multiplexor 256. En el registro de desplazamiento circular 264, el valor que se hallaba previamente en la posición CSR11 se desplaza hasta la primera posición CSR1. Una vez que la nueva señal de selección de muestra es retirada del multiplexor, el registro de desplazamiento 258 se prepara para proporcionar un desplazamiento circular de los datos del registro de desplazamiento como el del registro de desplazamiento circular 264.
s_{W}(n) en la primera posición SR1 del registro de desplazamiento 258 y sustituyendo el valor que previamente estaba presente en la posición CSR10. Tras el desplazamiento iterativo del registro de desplazamiento 258, la nueva señal de selección de muestra se retira de la entrada del multiplexor 256, permitiendo de ese modo que la muestra
s_{W}(n-9) que actualmente se halla en la posición SR10 del registro de desplazamiento 260 entre en el multiplexor 256. En el registro de desplazamiento circular 264, el valor que se hallaba previamente en la posición CSR11 se desplaza hasta la primera posición CSR1. Una vez que la nueva señal de selección de muestra es retirada del multiplexor, el registro de desplazamiento 258 se prepara para proporcionar un desplazamiento circular de los datos del registro de desplazamiento como el del registro de desplazamiento circular 264.
Los registros de desplazamiento 258 y 264 se
desplazan iterativamente 11 veces en total para cada muestra,
efectuándose de ese modo 11 operaciones de
multiplicación/acumulación. Una vez que se han introducido
iterativamente 160 muestras, los resultados de autocorrelación, que
están contenidos en el registro de desplazamiento circular 264, se
transmiten iterativamente a la memoria tampón 266 como valores
R(0)-R(10). Todos los registros de
desplazamiento se ponen a cero, y el procedimiento se repite para
la siguiente trama de muestras de voz enventanadas.
Con referencia de nuevo a la Figura 7a, cuando
los coeficientes de autocorrelación para la trama de voz ya han sido
calculados, el subsistema de determinación de velocidad 204 y el
subsistema de análisis LPC 206 utilizan estos datos para calcular,
respectivamente, una velocidad de transmisión de datos de trama y
los coeficientes LPC. Puesto que estas operaciones son
independientes entre sí pueden calcularse en cualquier orden o
incluso de forma simultánea. Con fines explicativos, la
determinación de velocidad será descrita en primer lugar.
El subsistema de determinación de velocidad 204
tiene dos funciones:
(1) determinar la velocidad de la trama actual, y
(2) calcular un nuevo valor aproximado del nivel de ruido de fondo.
La velocidad de la trama de análisis actual se determina
inicialmente basándose en la energía de la trama actual, el cálculo
aproximado anterior del nivel de ruido de fondo, la velocidad
anterior y el mandato de velocidad del microprocesador de control.
El nuevo nivel de ruido de fondo se calcula utilizando el cálculo
previo de nivel de ruido de fondo y la energía de trama actual.
El vocodificador utiliza una técnica de ajuste de
umbral adaptativo para la determinación de la velocidad. Junto con
el cambio de ruido de fondo se produce el cambio de umbrales que se
utilizan para la selección de la velocidad. En la realización a
título de ejemplo se calculan tres umbrales para determinar una
selección de velocidad preliminar RT_{p}. Los umbrales son las
funciones cuadráticas del cálculo de ruido de fondo anterior
mostradas a continuación:
(7)T1(B) =
-5,544613(10^{-6}) \ B^{2} + 4,047152 \ B +
363,1293;
(8)T2(B) =
-1,529733(10^{-5}) \ B^{2} + 8,750045 \ B +
1136,214;
y
(9)T3(B) =
-3,957050(10^{-5}) \ B^{2} + 18,89962 \ B +
3346,789
siendo B el cálculo de ruido de
fondo
anterior.
La energía de la trama se compara con los tres
umbrales T1(B), T2(B) y T3(B). Si la energía
de la trama se halla por debajo de los tres umbrales, se selecciona
la velocidad de transmisión más baja (de 1 Kbit/s), es decir, la
velocidad 1/8, en la que RT_{p} = 4. Si la energía de trama se
halla por debajo de dos umbrales, se selecciona la segunda
velocidad de transmisión (de 2 Kbit/s), es decir, la velocidad 1/4,
en la que RT_{p} = 3. Si la energía de trama se halla por debajo
de un umbral sólo, se selecciona la tercera velocidad de
transmisión (de 4 Kbit/s), es decir, la velocidad 1/2, en la que
RT_{p} = 2. Si la energía de la trama se halla por encima de los
tres umbrales, se selecciona la velocidad de transmisión más alta
(de 8 Kbit/s), es decir, la velocidad 1, en la que RT_{p} =
1.
La velocidad preliminar RT_{p} puede
modificarse, entonces, basándose en la velocidad final de la trama
anterior RT_{r}. Si la velocidad preliminar RT_{p} es inferior
a la velocidad final de la trama anterior menos uno
(RT_{r}-1), se establece una velocidad intermedia
RT_{m}, siendo RT_{m}= (RT_{r}-1). Este
procedimiento de modificación determina que la velocidad descienda
lentamente al producirse una transición de una señal de alta
energía a una señal de baja energía. No obstante, si la selección de
velocidad inicial es mayor o igual a la velocidad anterior menos
uno (RT_{r}-1), la velocidad intermedia RT_{m}
se establece en el mismo valor que la velocidad preliminar RT_{p},
es decir, RT_{m} = RT_{p}. En esta situación, la velocidad
aumenta de inmediato, por lo tanto, cuando se produce una
transición de una señal de baja energía a una señal de alta
energía.
Por último, la velocidad intermedia RT_{m} se
modifica todavía más mediante mandatos de límite de velocidad de un
microprocesador. Si la velocidad RT_{m} es superior a la
velocidad más alta permitida por el microprocesador, la velocidad
inicial RT_{i} se establece en el valor más alto posible. Del
mismo modo, si la velocidad intermedia RT_{m} es inferior a la
velocidad más baja permitida por el microprocesador, la velocidad
inicial RT_{i} se establece en el valor más bajo permitido.
En ciertos casos, tal vez sea deseable codificar
toda la voz a una velocidad determinada por el microprocesador. Los
mandatos de límite de velocidad pueden utilizarse para establecer la
velocidad de tramas deseada, estableciendo las velocidades máxima y
mínima permitidas en la velocidad deseada. Los mandatos de límite de
velocidad pueden utilizarse en situaciones de control de velocidad
especiales como, por ejemplo, el interbloqueo de velocidad, y la
transmisión "atenuación-ráfaga", ambas
descritas a continuación.
La Figura 9 proporciona un ejemplo de ejecución
del algoritmo de decisión de velocidad. Para iniciar el cálculo, el
registro 270 se carga previamente con el valor 1 que se proporciona
al sumador 272. Los registros de desplazamiento circulares 274, 276
y 278 se cargan respectivamente con el primer, el segundo y el
tercer coeficiente de las ecuaciones cuadráticas de umbral (7)-(9).
Por ejemplo, las posiciones última, intermedia y primera del
registro de desplazamiento circular 274 se cargan respectivamente
con el primer coeficiente de las ecuaciones con las cuales se
calculan T1, T2 y T3. Del mismo modo, las posiciones última,
intermedia y primera del registro de desplazamiento circular 276 se
cargan respectivamente con el segundo coeficiente de las ecuaciones
con las cuales se calculan T1, T2 y T3. Por último, las posiciones
última, intermedia y primera del registro de desplazamiento
circular 278 se cargan respectivamente con el término constante de
las ecuaciones con las cuales se calculan T1, T2 y T3. En cada uno
de los registros de desplazamiento circular 274, 276 y 278, el valor
se obtiene desde la última posición.
Al calcular el primer umbral T1, el cálculo de
ruido de fondo de la trama anterior B se eleva al cuadrado
multiplicando el valor por sí mismo en el multiplicador 280. El
valor B^{2} resultante se multiplica por el primer coeficiente,
-5,544613(10^{- 6}), que se obtiene desde la última
posición del registro de desplazamiento circular 274. Este valor
resultante se suma en el sumador 286 con el producto del ruido de
fondo B y el segundo coeficiente, 4,047152, obtenido desde la
última posición del registro de desplazamiento circular 276, del
multiplicador 284. El valor obtenido del sumador 286 se suma a
continuación en el sumador 288 con el término constante, 363,1293,
obtenido desde la última posición del registro de desplazamiento
circular 278. La salida del sumador 288 es el valor calculado de
T1.
El valor calculado de T1 obtenido del sumador 290
se resta en el sumador 288 del valor de energía de la trama E_{f}
que, en la descripción siguiente, es el valor R(0) del
dominio lineal, proporcionado por el subsistema de
autocorrelación.
En una ejecución alternativa, la energía de la
trama E_{f} también puede representarse en el dominio logarítmico
en dB, donde se calcula aproximadamente mediante el logaritmo del
primer coeficiente de autocorrelación R(0) normalizado por
la longitud efectiva de la ventana:
(10)E_{f} \ =
\ 10 \ log_{10} \
\frac{R(0)}{L_{A}/2}
siendo L_{A} la longitud de la
ventana de autocorrelación. También debe sobrentenderse que la
actividad vocal puede medirse asimismo a partir de otros parámetros
diversos, que incluyen la ganancia de predicción de tono o la
ganancia de predicción de formantes
G_{a}:
(11)G_{a} \ =
\ 10 \ log_{10} \
\frac{E^{(10)}}{E^{(0)}}
siendo E^{(10)} la energía del
residuo de predicción tras la 10ª iteración y E^{(0)}, la energía
del residuo de predicción LPC inicial, descrita posteriormente con
respecto al análisis LPC, que es igual a
R(0).
A partir de la salida del sumador 290, el
complemento del bit de signo de la diferencia en complemento a dos
resultante es extraído por el comparador o el limitador 292 y
proporcionado al sumador 272, donde se suma con la salida del
registro 270. Por lo tanto, si la diferencia entre R(0) y T1
es positiva, el registro 270 se aumenta en uno. Si la diferencia es
negativa, el registro 270 permanece igual.
Los registros circulares 274, 276 y 278 se
desplazan iterativamente, obteniéndose en la salida de los mismos
los coeficientes de la ecuación para T2, es decir, la ecuación (8).
El procedimiento de calcular el valor umbral T2 y compararlo con la
energía de la trama se repite como se ha descrito en relación con
el procedimiento para el valor umbral T1. Los registros circulares
274, 276 y 278 vuelven a desplazarse iterativamente, obteniéndose
los coeficientes de la ecuación para T3, es decir, la ecuación (9),
a la salida de los mismos. El cálculo del valor umbral T3 y la
comparación con la energía de trama ya han sido descritos
anteriormente. Una vez realizados los tres cálculos y comparaciones
de umbral, el registro 270 contendrá el cálculo de velocidad
inicial RT_{i}. El cálculo de velocidad preliminar RT_{p} es
proporcionado a la lógica de descenso de velocidad 294. A la lógica
294 también se le proporciona la velocidad final de la trama
anterior RT_{r} desde el subsistema de cuantificación de
frecuencias LSP que está almacenada en el registro 298. La lógica
296 calcula el valor (RT_{r}-1) y, en la salida,
proporciona el valor más alto entre el cálculo de velocidad
preliminar RT_{p} y el valor (RT_{r}-1). El
valor RT_{m} se proporciona a la lógica del limitador de
velocidad 296.
Como se ha mencionado anteriormente, el
microprocesador proporciona mandatos de límite de velocidad al
vocodificador, en particular, a la lógica 296. En una ejecución de
procesador de señales digitales, este mandato se recibe en la
lógica 296 antes de que la parte de análisis LPC del procedimiento
de codificación haya terminado. La lógica 296 asegura que la
velocidad no sobrepase los límites de velocidad y modifica el valor
RT_{m} si rebasa los límites. Si el valor RT_{m} se halla dentro
del rango de velocidades permitidas, la lógica 296 lo proporciona
como valor de velocidad inicial RT_{i}. El valor de velocidad
inicial RT_{i} es pasado desde la lógica 296 hasta el subsistema
de cuantificación LSP 210 de la Figura 7a.
El cálculo de ruido de fondo mencionado
anteriormente se utiliza en el cálculo de los umbrales de velocidad
adaptativos. Para la trama actual, el cálculo de ruido de fondo de
la trama anterior B se utiliza para establecer los umbrales de
velocidad para la trama actual. No obstante, para cada trama, el
cálculo del ruido de fondo se actualiza para su utilización en la
determinación de los umbrales de velocidad para la siguiente trama.
El nuevo cálculo de ruido de fondo B' se determina en la trama
actual basándose en el cálculo de ruido de fondo de la trama
anterior B y la energía de la trama actual E_{f}.
Cuando se determina el nuevo cálculo de ruido de
fondo B' para su utilización durante la siguiente trama (como el
cálculo de ruido de fondo de la trama anterior B) se calculan dos
valores. El primer valor V_{1} es simplemente la energía de la
trama actual E_{f}. El segundo valor V_{2} es el mayor de B+1 y
KB, siendo K = 1,00547. Para impedir que el segundo valor aumente
demasiado, éste es obligado a permanecer por debajo de una constante
alta M = 160.000. Se elige el menor de los dos valores V_{1} y
V_{2} como nuevo cálculo de ruido de fondo B'.
Matemáticamente,
(12)V_{1} =
R(0)
(13)V_{2} \ =
\ min \ (160000, \ max \ (KB,
B+1))
y el nuevo cálculo de ruido de
fondo B'
es:
(14)B' \ = \
min \ (V_{1}, \
V_{2})
siendo mín. (x, y) el mínimo de x e
y, y máx. (x, y), el máximo de x e
y.
La Figura 9 muestra además un ejemplo de
ejecución del algoritmo de cálculo de ruido de fondo. El primer
valor V_{1} es simplemente la energía de la trama actual E_{f}
proporcionada directamente a una entrada del multiplexor 300.
El segundo valor V_{2} se calcula a partir de
los valores KB y B+1, que se calculan en primer lugar. Cuando se
calculan los valores KB y B+1, el cálculo de ruido de fondo de la
trama anterior B almacenada en el registro 302 se pasa al sumador
304 y al multiplicador 306. Debe observarse que el cálculo de ruido
de fondo de la trama anterior B almacenada en el registro 302 para
su utilización en la trama actual es igual al nuevo cálculo de
ruido de fondo B' efectuado en la trama anterior. Al sumador 304
también se le proporciona un valor de entrada 1 a sumar con el valor
B para generar el término B+1. Al multiplicador 304 también se le
proporciona el valor de entrada K a multiplicar con el valor B para
generar el término KB. Los términos B+1 y KB se pasan
respectivamente desde el sumador 304 y el multiplicador 306 hasta
entradas independientes del multiplexor 308 y el sumador 310.
El sumador 310 y el comparador o limitador 312 se
utilizan para seleccionar el mayor de los términos B+1 y KB. El
sumador 310 resta el término B+1 de KB y proporciona el valor
resultante al comparador o limitador 312. El limitador 312
proporciona una señal de control al multiplexor 308 para seleccionar
como salida el mayor de los términos B+1 y KB. El término B+1 o KB
seleccionado pasa desde el multiplexor 308 hasta el limitador 314,
que es un limitador de tipo de saturación, que proporciona el valor
seleccionado si éste es inferior al valor constante M, o el valor M
si éste es superior al valor M. La salida del limitador 314 es
proporcionada como segunda entrada al multiplexor 300 y como entrada
al sumador 316.
Asimismo, el sumador 316 recibe en otra entrada
el valor de energía de trama E_{f}. El sumador 316 y el
comparador o limitador 318 se utilizan para seleccionar el menor
valor entre el valor E_{f} y el término proporcionado por el
limitador 314. El sumador 316 resta el valor de energía de trama
del valor proporcionado por el limitador 314 y pasa el valor
resultante al comparador o limitador 318. El limitador 318
proporciona una señal de control al multiplexor 300 para
seleccionar el menor entre el valor E_{f} y la salida del
limitador 314. El valor seleccionado proporcionado por el
multiplexor 300 se pasa como nuevo cálculo de ruido de fondo B' al
registro 302 donde se almacena para su utilización durante la
siguiente trama como cálculo de ruido de fondo de trama anterior
B.
En relación nuevamente con la Figura 7, cada uno
de los coeficientes de autocorrelación
R(0)-R(10) pasa del subsistema de
autocorrelación 202 al subsistema de análisis LPC 206. Los
coeficientes LPC se calculan en el subsistema de análisis LPC 206,
en el filtro de ponderación perceptiva 52 y en el filtro de síntesis
de formantes 60.
Los coeficientes LPC pueden obtenerse mediante el
procedimiento de autocorrelación utilizando la recursión de Durbin
como se indica en el documento Digital Processing of Speech
Signals (Tratamiento digital de señales de voz), de Rabiner y
Schafer, Prentice-Hall, Inc., 1978. Esta técnica es
un procedimiento de cálculo eficaz para obtener los coeficientes
LPC. El algoritmo puede expresarse mediante las siguientes
ecuaciones:
(15)E^{(0)} \
= \ R(0), \ i \ = \
1;
(16)k_{i} \ =
\ \left\{R(i)- \sum\limits^{i-1}_{j=1} \alpha
_{j}^{(i-1)}R(i-j)\right\} /
E^{(i-1)};
(17)\alpha
_{i}^{(i)} \ = \
k_{i};
(18)\alpha
_{j}^{(i)} \ = \alpha _{j}^{(i-1)} \cdot k_{i}
\alpha _{i-j}^{(i-1)} \ para \ 1 \
< = \ j \ < = \
i-1;
(19)E^{(i)} \
= \
(1-k_{i}{}^{2})E^{(i-1)};
y
(20)Si i <
10, entonces volver a la ecuación (16) con i = i +
1.
Los diez coeficientes LPC se designan mediante
las etiquetas \alpha_{j}^{(10)}, para 1 \leq j \leq
10.
Antes de codificar los coeficientes LPC, debe
asegurarse la estabilidad del filtro. La estabilidad del filtro se
consigue escalando radialmente los polos del filtro hacia dentro
por una pequeña cantidad, reduciéndose de este modo la magnitud de
las respuestas de frecuencia de cresta y ampliándose al mismo
tiempo el ancho de banda de las crestas. Esta técnica se denomina
comúnmente ampliación de ancho de banda. Para obtener una
descripción más detallada de esta técnica, puede consultarse el
artículo "Spectral Smoothing in PARCOR Speech
Analysis-Synthesis" ("Suavizado espectral en el
análisis por síntesis de voz Parcor") de Tohkura et al.,
ASSP Transactions, diciembre de 1978. En el presente caso,
la ampliación de ancho de banda puede llevarse a cabo de forma
eficaz escalando cada coeficiente LPC. Por consiguiente, como se
expone en la Tabla III, cada uno de los coeficientes LPC
resultantes se multiplica por un correspondiente valor hexadecimal
para dar los coeficientes LPC de salida definitivos \alpha_{1}
- \alpha_{10} del subsistema de análisis LPC 206. Debe
observarse que los valores presentados en la Tabla III son
hexadecimales y que los 15 bits fraccionarios se proporcionan en
notación de complemento a dos. De esta forma, el valor 0x8000
representa -1,0 y el valor 0x7333 (o 29491) representa 0,899994 =
29491/32768.
\dotable{\tabskip\tabcolsep#\hfil\tabskip0ptplus1fil\dddarstrut\cr}{ \alpha _{1} = \alpha _{1} ^{(10)} \cdot 0x7333\cr \alpha _{2} = \alpha _{2} ^{(10)} \cdot 0x67ae\cr \alpha _{3} = \alpha _{3} ^{(10)} \cdot 0x5d4f\cr \alpha _{4} = \alpha _{4} ^{(10)} \cdot 0x53fb\cr \alpha _{5} = \alpha _{5} ^{(10)} \cdot 0x4b95\cr \alpha _{6} = \alpha _{6} ^{(10)} \cdot 0x4406\cr \alpha _{7} = \alpha _{7} ^{(10)} \cdot 0x3d38\cr \alpha _{8} = \alpha _{8} ^{(10)} \cdot 0x3719\cr \alpha _{9} = \alpha _{9} ^{(10)} \cdot 0x3196\cr \alpha _{10} = \alpha _{10} ^{(10)} \cdot 0x2ca1\cr}
Las operaciones se llevan a cabo preferentemente
con doble precisión, es decir, con divisiones, multiplicaciones y
sumas de 32 bits. Se prefiere la exactitud de la doble precisión
para mantener el rango dinámico de las funciones de autocorrelación
y los coeficientes de filtro.
En la Figura 10, se muestra un diagrama de
bloques de un ejemplo de forma de realización del subsistema LPC
206, que ejecuta las ecuaciones (15)-(20) anteriores. El subsistema
LPC 206 consiste en tres partes de circuito, un circuito de cálculo
principal 330 y dos circuitos de actualización de memoria tampón 332
y 334 que se utilizan ara actualizar los registros del circuito de
cálculo principal 330. El calculo se empieza cargando en primer
lugar los valores R(1)-R(10) en la
memoria tampón 340. Para empezar el cálculo, el registro 348 se
carga previamente con el valor R(1) por medio del
multiplexor 344. El registro se inicializa con R(0) por medio
del multiplexor 350, la memoria tampón 352 (que contiene 10
\alpha_{j}^{(i-1)} valores) se inicializa con
sólo ceros por medio del multiplexor 354, la memoria tampón (que
contiene 10 \alpha_{j}(i) valores) se inicializa con
todo ceros por medio del multiplexor 358, e i se establece en 1
para el ciclo de cálculo. Para mayor claridad, los contadores para i
y j y otros controles de cálculo no se muestran, ya que las
personas expertas en la materia de diseño de lógica digital están
muy capacitadas para llevar a cabo el diseño y la integración de
este tipo de circuitos de lógica.
El valor \alpha_{j}^{(i-1)}
se obtiene de la memoria tampón 356 para calcular el término
k_{i}E^{(i-1)}indicado en la ecuación (14). Cada
valor R(i-j) se obtiene de la memoria tampón
340 para su multiplicación con el valor
\sigma_{j}^{(i-1)} en el multiplicador 360.
Cada valor resultante se resta en el sumador 362 del valor del
registro 346. El resultado de cada resta se almacena en el registro
346 desde donde se resta el siguiente término. Existen
i-1 multiplicaciones y acumulaciones en el i-ésimo
ciclo, como se indica en el término de suma de la ecuación (14). El
final de este ciclo, el valor del registro 346 se divide en el
divisor 264 por el valor E^{(i-1)}del registro 348
para proporcionar el valor k_{i}.
El valor k_{i} se utiliza a continuación en el
circuito de actualización de la memoria tampón 332 para calcular el
valor E^{(i)} como en la ecuación (19) anterior, que se utiliza
como valor E^{(i-1)} durante el siguiente ciclo de
cálculo de k_{i}. El valor del ciclo actual k_{i} se multiplica
por sí mismo en el multiplicador 366 para obtener el valor
k_{i}^{2}. El valor k_{i}^{2} se resta a continuación del
valor de 1 en el sumador 368. El resultado de esta suma se
multiplica en el multiplicador 370 con el valor E^{(i)} del
registro 348. El valor resultante E^{(i)} se introduce en el
registro 348 por medio del multiplexor 350 para su almacenamiento
como valor E^{(i-1)} para el siguiente ciclo.
A continuación, el valor k_{i} se utiliza para
calcular el valor \alpha_{i}^{(i)} como en la ecuación (15).
En este caso, el valor k_{i} se introduce en la memoria tampón
356 por medio del multiplexor 358. Asimismo, el valor k_{i} se
utiliza en el circuito de actualización de memoria tampón 334 para
calcular los valores \alpha_{j}^{(i)} a partir de los valores
\alpha_{j}^{(i-1)} como en la ecuación (18).
Los valores almacenados actualmente en la memoria tampón 352 se
utilizan para calcular los valores \alpha_{j}^{(j)}. Como se
indica en la ecuación (18), existen i-1 cálculos en
el ciclo i-ésimo. En la iteración i = 1, no se requieren dichos
cálculos. Para cada valor de j del ciclo i-ésimo, se calcula un
valor de \alpha_{j}^{(i)}. Al calcular cada valor de
\alpha_{j}^{(i)}, cada valor de
\alpha_{i-j}^{(i-1)} se
multiplica en el multiplicador 372 con el valor k_{i} para
pasarlo al sumador 374. En el sumador 374, el valor
k_{i}\alpha_{i-j}^{(i-1)} se
resta del valor \alpha_{j}^{(i-1)} que también
se introduce en el sumador 374. El resultado de cada multiplicación
y suma se proporciona como valor de \alpha_{j}^{(i)} a la
memoria tampón 356 por medio del multiplexor
358.
358.
Una vez que se han calculado los valores
\alpha_{i}^{(i)} y \alpha_{j}^{(i)} para el ciclo
actual, los valores recién calculados y almacenados en la memoria
tampón 356 se pasan a la memoria tampón 352 por medio del
multiplexor 354. Los valores almacenados en la memoria tampón 356 se
almacenan en las correspondientes posiciones de la memoria tampón
352. De este modo, la memoria tampón 352 se actualiza para el
cálculo del valor k_{i} del ciclo i+1.
Es importante observar que los datos
\alpha_{j}^{(i-1)} generados al final del un
ciclo anterior se utilizan durante el ciclo actual para generar
actualizaciones \alpha_{j}^{(i)} para el siguiente ciclo. Los
datos del ciclo anterior deben conservarse para generar por
completo datos actualizados para el siguiente ciclo. De esta manera,
las dos memorias tampón 356 y 352 se utilizan para conservar estos
datos de ciclo anterior hasta que se han generado por completo los
datos actua-
lizados.
lizados.
La anterior descripción hace referencia a una
transferencia paralela de datos desde la memoria tampón 356 hasta
la memoria tampón 352 hasta finalizar el cálculo de los valores
actualizados. Esta ejecución asegura que los datos antiguos se
conserven durante todo el proceso de cálculo de los nuevos datos,
sin pérdida de datos antiguos hasta que no han sido totalmente
utilizados, como ocurre en una disposición de una sola memoria
tampón. La ejecución descrita es una de las diversas ejecuciones
disponibles que logran el mismo resultado. Por ejemplo, las memorias
tampón 352 y 356 pueden multiplexarse de tal forma que, tras
calcular el valor k_{i} para un ciclo actual a partir de los
valores almacenados en una primera memoria tampón, las
actualizaciones se almacenan en la segunda memoria tampón para su
utilización durante el siguiente ciclo de cálculo. En este
siguiente ciclo, el valor k_{i} se calcula a partir de los valores
almacenados en la segunda memoria tampón. Los valores de la segunda
memoria tampón y el valor k_{i} se utilizan para generar
actualizaciones para el siguiente ciclo, siendo estas
actualizaciones almacenadas en la primera memoria tampón. Esta
alternancia de memorias tampón permite la retención de los valores
del ciclo de cálculo en curso, a partir de los cuales se generan
las actualizaciones, y al mismo tiempo, el almacenamiento de los
valores de actualización sin sobregrabar los valores en curso que
son necesarios para generar las actualizaciones. Utilizando esta
técnica, puede reducirse al mínimo el retardo asociado al cálculo
del valor k_{i} para el siguiente ciclo. Por consiguiente, las
actualizaciones para las multiplicaciones/acumulaciones del cálculo
de k_{i} pueden llevarse a cabo al mismo tiempo que se calcula el
siguiente valor de \alpha_{j}^{(i-1)}.
Los diez coeficientes LPC
\alpha_{j}^{(10)}, almacenados en la memoria tampón 356 tras
la finalización del último ciclo de cálculo (i = 10), se escalan
para llegar a los correspondientes coeficientes LPC \alpha_{j}
finales. La conversión a escala se lleva a cabo proporcionando una
señal de selección de escala a los multiplexores 344, 376 y 378
para que los valores de escala almacenados en la tabla de consulta
342, los valores hexadecimales de la Tabla III, se seleccionen para
ser proporcionados a través del multiplexor 344. Los valores
almacenados en la tabla de consulta 342 se extraen de forma
iterativa en secuencia e introducen en el multiplicador 360.
Asimismo, el multiplicador 360 recibe por medio del multiplexor 376
los \alpha_{j}^{(10)} valores obtenidos de forma secuencial
del registro 356. Los valores escalados se proporcionan desde el
multiplicador 360 por medio del multiplexor 378 como salida al
subsistema de transformación LPC-LSP 208 (Figura
7).
Para codificar con eficacia cada uno de los diez
coeficientes LPC escalados en un número reducido de bits, los
coeficientes se transforman en frecuencias de pares de líneas
espectrales como se describe en el artículo "Line Spectrum Pair
(LSP) and Speech Data Compression" ("Par de líneas espectrales
(LSP) y compresión de datos de voz"), de Soong and Juang, ICASSP
'84. A continuación, se muestra el cálculo de los parámetros LSP en
las ecuaciones (21) y (22) junto con la Tabla IV.
Las frecuencias LSP son las diez raíces
existentes entre 0 y \pi de las siguientes ecuaciones:
(21)P( \omega)
\ = \ cos \ 5 \omega \ + \ p_{1} \ cos \ 4 \omega \ + \ ... \ + \
p_{4} \ cos \ \omega \ + \
p_{5}/2;
(22)Q( \omega)
\ = \ cos \ 5 \omega \ + \ q_{1} \ cos \ 4 \omega \ + \ ... \ + \
q_{4} \ cos \ \omega \ + \
q_{5}/2;
en las que los valores p_{n} y
q_{n} para n = 1, 2, 3, 4 y 5 se definen de forma repetitiva en
la Tabla
IV.
p_{1} = -(\alpha_{1} + \alpha_{10}) – 1 | q_{1} = -(\alpha_{1}- \alpha_{10}) + 1 |
p_{2} = -(\alpha_{2} + \alpha_{9}) – p_{1} | q_{2} = -(\alpha_{2}-\alpha_{9}) + q_{1} |
p_{3} = -(\alpha_{3} + \alpha_{8}) – p_{2} | q_{3} = -(\alpha_{3}-\alpha_{8}) + q_{2} |
p_{4} = -(\alpha_{4} + \alpha_{7}) – p_{3} | q_{4} = -(\alpha_{4}-\alpha_{7}) + q_{3} |
p_{5} = -(\alpha_{5} + \alpha_{6}) – p_{4} | q_{5} = -(\alpha_{5}-\alpha_{6}) + q_{4} |
En la Tabla IV, los valores \alpha_{1}, ... ,
\alpha_{10} son los coeficientes escalados resultantes del
análisis LPC. Para simplificar, las diez raíces de las ecuaciones
(21) y (22) se escalan por un valor entre 0 y 0,5. Una propiedad de
las frecuencias LSP es que, si el filtro LPC es estable, las raíces
de las dos funciones se alternan; es decir, la raíz más baja,
\omega_{1}, es la raíz más baja de P(\omega), la
siguiente raíz más baja, \omega_{2}, es la raíz más baja de
Q(\omega), y así sucesivamente. De las diez frecuencias,
las frecuencias impares son las raíces de P(\omega), y las
frecuencias pares son las raíces de Q(\omega).
La búsqueda de raíces se lleva a cabo como se
describe a continuación. En primer lugar, se calculan los
coeficientes p y q con doble precisión sumando los coeficientes LPC
como se muestra anteriormente. A continuación, cada \pi/256
radianes se efectúa la evaluación de P(\omega) y estos
valores se evalúan después para comprobar cambios de signo, que
indican una raíz en dicha subzona. Si se halla una raíz, entonces
se efectúa una interpolación lineal entre los dos límites de esta
zona para calcular aproximadamente la ubicación de la raíz. La
existencia de una raíz Q está garantizada entre cada par de raíces
P (la quinta raíz Q se halla entre la quinta raíz P y \pi),
debido a la propiedad de ordenación de las frecuencias. Se lleva a
cabo una búsqueda binaria entre cada par de raíces P para determinar
la ubicación de las raíces Q. Para facilitar la ejecución, cada
raíz P se calcula aproximadamente mediante el valor \pi/256 más
cercano y la búsqueda binaria se efectúa entre estos cálculos
aproximados. Si no se encuentra alguna raíz, se utilizan los valores
no cuantificados anteriores de las frecuencias LSP de la última
trama en la que se hallaron las raíces.
En la Figura 11, se ilustra un ejemplo de
ejecución de los circuitos utilizados para generar las frecuencias
LSP. La operación descrita anteriormente requiere un total de 257
posibles valores de coseno entre 0 y \pi, que se almacenan con
doble precisión en una tabla de consulta, la tabla de consulta de
cosenos 400, a la que accede el contador 402 del módulo 256. Para
cada valor de j introducido en la tabla de consulta 400, se
proporciona una salida de cos \omega, cos 2 \omega, cos 3
\omega, cos 4 \omega y cos 5 \omega, en la que:
(23)\omega =
j\pi
/256
siendo j un valor del
contador.
Los valores de cos \omega, cos 2 \omega, cos
3 \omega y cos 4 \omega obtenidos de la tabla de consulta 400
se introducen en un respectivo multiplicador 404, 406, 408 y 410,
mientras que el valor de cos 5 \omega se introduce directamente en
el sumador 412. Estos valores se multiplican en un respectivo
multiplicador 404, 406, 408 y 410 con un respectivo valor de los
valores p_{4}, p_{3}, p_{2} y p_{1} introducidos en el
mismo por medio de los multiplexores 414, 416, 418 y 420. Los
valores resultantes de esta multiplicación también se introducen en
el sumador 412. Además, el valor p_{5} se proporciona a través
del multiplexor 422 al multiplicador 424, siendo el valor constante
0,5, es decir, 1/2, proporcionado también al multiplicador 424. El
valor resultante obtenido del multiplicador 424 es proporcionado
como otra entrada al sumador 412. Los multiplexores
414-422 seleccionan entre los valores
p_{1}-p_{5} o q_{1}-q_{5},
en respuesta a una señal de selección de coeficientes p/q, para
utilizar los mismos circuitos para calcular ya sea los valores
P(\omega), o bien los valores Q(\omega). Los
circuitos para generar los valores p_{1}-p_{5}
o q_{1}-q_{5} no se muestran, pero se ejecutan
fácilmente utilizando una serie de sumadores para sumar y restar
los coeficientes LPC y los valores p_{1}-p_{5} o
q_{1}-q_{5}, junto con registros para almacenar
los valores p_{1}-p_{5} ó
q_{1}-q_{5}.
El sumador 412 suma los valores de entrada para
proporcionar el valor de salida P(\omega) o
Q(\omega) según el caso. Para facilitar la descripción, se
considerará el caso de los valores P(\omega), siendo
calculados los valores Q(\omega) de forma parecida
utilizando los valores q_{1}-q_{5}. El valor
actual de P(\omega) se obtiene del sumador 412 y se
almacena en el registro 426. El valor precedente de
P(\omega), almacenado previamente en el registro 426, se
desplaza hasta el registro 428. Los bits de signo de los valores
actual y anterior de P(\omega) se someten a O exclusiva en
la puerta O exclusiva 430 para dar una indicación de cruce por cero
o de cambio de signo, en forma de una señal de habilitación que se
envía al interpolador lineal 434. El valor actual y anterior de
P(\omega) también se pasan de los registros 426 y 428 al
interpolador lineal 434, que es sensible a la señal de
habilitación, para interpolar el punto entre los dos valores de
P(\omega) en el que se produce el cruce por cero. Este
resultado de valor fraccionario de interpolación lineal, es decir,
la distancia desde el valor j-1, se proporciona a la
memoria tampón 436 junto con el valor j del contador 256. La puerta
430 también proporciona la señal de habilitación a la memoria
tampón 436 que permite el almacenamiento del valor j y el
correspondiente valor fraccionario FV_{j}.
El valor fraccionario se resta del valor j cuando
se introduce en el sumador 438 desde la memoria tampón 436 o, como
alternativa, puede restarse del mismo cuando se introduce en la
memoria tampón 436. Por otro lado, puede utilizarse un registro de
la línea j introducido en la memoria tampón 436 para que el valor
j-1 se introduzca en la memoria tampón 436, siendo
introducido el valor fraccionario también en la misma. El valor
fraccionario puede sumarse al valor j-1 ya sea antes
del almacenamiento en el registro 436 o bien tras la salida del
mismo. En cualquier caso, el valor combinado de j + FV_{j} o
(j-1) + FV_{j} se pasa al divisor 440 donde se
divide por el valor constante de entrada de 512. La operación de
división puede efectuarse simplemente cambiando la ubicación
binaria del punto en la palabra binaria representativa. Esta
operación de división proporciona la conversión a escala necesaria
para llegar a una frecuencia LSP entre 0 y 0,5.
Cada función de evaluación de P(\omega)
o Q(\omega) requiere 5 consultas de coseno, 4
multiplicaciones con doble precisión y 4 sumas. Las raíces
calculadas habitualmente sólo tienen una precisión de alrededor de
13 bits, y se almacenan con precisión simple. Las frecuencias LSP
se proporcionan al subsistema de cuantificación LSP 210 (Figura 7)
para la cuantificación.
Una vez que se han calculado las frecuencias LSP,
éstas deben cuantificarse para la transmisión. Cada una de las diez
frecuencias LSP se centra aproximadamente en torno a un valor de
descentramiento. Debe observarse que las frecuencias LSP se
aproximan a los valores de descentramiento cuando la voz de entrada
tiene características espectrales uniformes y no puede llevarse a
cabo la predicción a corto plazo. Los descentramientos se restan en
el codificador, y se utiliza un cuantificador DPCM simple. En el
decodificador, se vuelve a sumar el descentramiento. En la tabla V,
se exponen los valores negativos hexadecimales del valor de
descentramiento, para cada frecuencia LSP,
\omega_{1}-\omega_{10}, proporcionados por el subsistema de transformación LPC-LSP. Nuevamente, los valores dados en la Tabla V se hallan en notación de complemento a dos con 15 bits fraccionarios. El valor hexadecimal 0x8000 (o -32768) representa -1,0. Por lo tanto, el primer valor de la Tabla V, el valor 0xfa2f (o -1489) representa -0,045441 = -1489/32768.
\omega_{1}-\omega_{10}, proporcionados por el subsistema de transformación LPC-LSP. Nuevamente, los valores dados en la Tabla V se hallan en notación de complemento a dos con 15 bits fraccionarios. El valor hexadecimal 0x8000 (o -32768) representa -1,0. Por lo tanto, el primer valor de la Tabla V, el valor 0xfa2f (o -1489) representa -0,045441 = -1489/32768.
Frecuencia LSP | Valor de descentramiento negativo |
\omega1 | 0xfa2f |
\omega2 | 0xf45e |
\omega3 | 0xee8c |
\omega4 | 0xe8bb |
\omega5 | 0xe2e9 |
\omega6 | 0xdd18 |
\omega7 | 0xd746 |
\omega8 | 0xd175 |
\omega9 | 0xcba3 |
\omega10 | 0xc5d2 |
El predictor utilizado en el subsistema es 0,9
veces la frecuencia LSP cuantificada de la anterior trama
almacenada en una memoria tampón del subsistema. Esta constante de
disminución de 0,9 se inserta para que los errores de canal
desaparezcan finalmente.
Los cuantificadores utilizados son lineales, pero
varían en gama dinámica y tamaño de paso con la velocidad.
Asimismo, en tramas de alta velocidad, se transmiten más bits para
cada frecuencia LSP y, por consiguiente, el número de niveles de
cuantificación depende de la velocidad. En la Tabla VI, se muestra
la asignación de bits y la gama dinámica de la cuantificación para
cada frecuencia a cada una de las velocidades. Por ejemplo, a la
velocidad 1, \omega_{1} se cuantifica uniformemente utilizando
4 bits (es decir, en 16 niveles) siendo el nivel de cuantificación
más alto 0,025 y el más bajo, -0,025.
\vskip1.000000\baselineskip
Si los rangos de cuantificación para la velocidad
elegida por el algoritmo de decisión de velocidad no son
suficientemente amplios o se produce un desbordamiento de
pendiente, la velocidad se sube hasta la siguiente velocidad más
alta. La velocidad se continúa subiendo hasta que da cabida a la
gama dinámica o se alcanza la velocidad completa. En la Figura 12,
se proporciona un ejemplo de ilustración de diagrama de bloques de
una ejecución de la técnica de ascenso de velocidad opcional.
La Figura 12 es un diagrama de bloques que
ilustra un ejemplo de ejecución del subsistema de cuantificación
LSP 210 que incluye los circuitos de ascenso de velocidad. En la
Figura 12, las frecuencias LSP de la trama actual se pasan del
divisor 440 (Figura 11) al registro 442, en el que se almacenan
para ser proporcionadas durante una determinación de ascenso de
velocidad en la siguiente trama. Las frecuencias LSP de la trama
anterior y las frecuencias LSP de la trama actual son pasadas
respectivamente del registro 440 y el divisor 440 a una lógica de
ascenso de velocidad 442 para una determinación de ascenso de
velocidad de la trama actual. La lógica de ascenso de velocidad 442
también recibe la decisión de velocidad inicial, junto con los
mandatos de límite de velocidad desde el subsistema de determinación
de velocidad 204. Para determinar si es necesario llevar a cabo un
aumento de velocidad, la lógica 442 compara las frecuencias LSP de
la trama anterior con las frecuencias LSP de la trama actual,
basándose en la suma del cuadrado de la diferencia entre las
frecuencias LSP de la trama actual y la trama anterior. El valor
resultante se compara a continuación con un valor umbral que, si se
sobrepasa, indica que es necesario un aumento de velocidad para
asegurar la codificación de alta calidad de la voz. Cuando se
sobrepasa el valor umbral, la lógica 442 aumenta la velocidad
inicial en un nivel de velocidad para proporcionar una salida de la
velocidad final a utilizar siempre en el codificador.
En la Figura 12, los valores de frecuencia LSP
\omega_{1}-\omega_{10} se introducen de uno
en uno en el sumador 450 junto con el correspondiente valor de
descentramiento. El valor de descentramiento se resta del valor LSP
introducido y el resultado se pasa al sumador 452. El sumador 452
también recibe como entrada un valor del predictor, un valor LSP
correspondiente a la trama anterior multiplicado por una constante
de disminución. El valor de predictor es restado de la salida del
sumador 450 por el sumador 452. La salida del sumador 452 se
proporciona como entrada al cuantificador 454.
El cuantificador 454 consiste en el limitador
456, la tabla de consulta de gama dinámica mínima 458, la tabla de
consulta de tamaño de paso inverso 460, el sumador 462, el
multiplicador 464 y la máscara de bits 466. La cuantificación se
lleva a cabo en el cuantificador 454, determinando en primer lugar
si el valor de entrada se halla dentro de la gama dinámica del
cuantificador 454. El valor de entrada se proporciona al limitador
456 que limita el valor de entrada a los límites superior e inferior
de la gama dinámica si la entrada sobrepasa los límites
proporcionados por la tabla de consulta 458. La tabla de consulta
458 proporciona los límites almacenados, según la Tabla VI, al
limitador 456 en respuesta a la entrada de velocidad y del índice de
frecuencia LSP i. El valor obtenido del limitador 456 se introduce
en el sumador 462 donde se resta del mínimo de la gama dinámica,
proporcionado por la tabla de consulta 458. El valor obtenido de la
tabla de consulta 458 se determina nuevamente mediante la velocidad
y el índice de frecuencia LSP i, según los valores de gama dinámica
mínima (prescindiendo del signo de los mismos) expuestos en la Tabla
VI. Por ejemplo, el valor de la tabla de consulta 458 para
(velocidad completa, \omega_{1}) es 0,025.
A continuación, la salida del sumador 462 se
multiplica en el multiplicador 464 por un valor seleccionado en la
tabla de consulta 460. La tabla de consulta 460 contiene valores
correspondientes al inverso del tamaño de paso para cada valor LSP
de cada velocidad, según los valores expuestos en la Tabla VI. El
valor obtenido de la tabla de consulta 460 se selecciona mediante
la velocidad y el índice de frecuencia LSP i. Para cada velocidad e
índice de frecuencia LSP i, el valor almacenado en la tabla de
consulta 460 es la cantidad ((2^{n}-1)/gama
dinámica), siendo n el número de bits que representan el valor
cuantificado. Además, por ejemplo, el valor de la tabla de consulta
460 para (velocidad 1, \omega_{1}) es (15/0,05) ó 300.
La salida del multiplicador 464 es un valor entre
0 y 2^{n}-1 que se proporciona a la máscara de
bits 466. La máscara de bits 466, en respuesta a la velocidad y al
índice de frecuencia LSP, extrae del valor de entrada el número
adecuado de bits según la Tabla VI. Los bits extraídos son los n
bits de valor entero del valor de entrada para proporcionar una
salida de bits limitada \Delta\omega_{i}. Los valores
\Delta\omega_{i} son las frecuencias LSP cuantificadas
centradas de codificación diferencial que se transmiten a través
del canal representativo de los coeficientes LPC.
El valor \Delta\omega_{i} también se aplica
como retroalimentación a través de un predictor que consiste en el
cuantificador inverso 468, el sumador 470, la memoria tampón 472 y
el multiplicador 474. El cuantificador inverso 468 consiste en la
tabla de consulta de tamaño de paso 476, la tabla de consulta de
gama dinámica mínima 478, el multiplicador 480 y el sumador
482.
El valor \Delta\omega_{i} se introduce en
el multiplicador 480 junto con un valor seleccionado en la tabla de
consulta 476. La tabla de consulta 476 contiene los valores
correspondientes al tamaño de paso de cada valor LSP para cada una
de las velocidades, según los valores expuestos en la Tabla VI. El
valor obtenido de la tabla de consulta 476 se selecciona mediante
la velocidad y el índice de frecuencia LSP i. Para cada velocidad e
índice de frecuencia LSP i, el valor almacenado en la tabla de
consulta 460 es la cantidad (gama
dinámica/2^{n}-1), siendo n el número de bits que
representan el valor cuantificado. El multiplicador 480 multiplica
los valores de entrada y proporciona una salida al sumador 482.
El sumador 482 recibe como otra entrada un valor
de la tabla de consulta 478. El valor obtenido de la tabla de
consulta 478 es determinado mediante la velocidad y el índice de
frecuencia LSP, según los valores de gama dinámica mínima
(prescindiendo del signo de los mismos) expuestos en la Tabla VI. El
sumador 482 suma el valor de gama dinámica mínima proporcionado por
la tabla de consulta 478 con el valor obtenido del multiplicador
480, siendo pasado el valor resultante obtenido al sumador 470.
El sumador 470 recibe como otra entrada el valor
de predictor obtenido del multiplicador 474. Estos valores se suman
en el sumador 470 y se almacenan en la memoria tampón de
almacenamiento de diez palabras 472. Cada valor de trama anterior
obtenido de la memoria tampón 472 durante la trama actual se
multiplica, en el multiplicador 474, por la constante 0,9. Los
valores de predictor obtenidos del multiplicador 474 se proporcionan
a los sumadores 452 y 470 como se ha descrito anteriormente.
En la trama actual, el valor almacenado en la
memoria tampón 472 es el valor LSP reconstruido de la trama
anterior menos el valor de descentramiento. Del mismo modo, en la
trama actual, el valor obtenido del sumador 470 es el valor LSP
reconstruido de la trama actual al que también se ha sustraído el
descentramiento. En la trama actual, las salidas de la memoria
tampón 472 y del sumador 470 se proporcionan, respectivamente, a
los sumadores 484 y 486, en los que el descentramiento se suma a los
valores. Los valores obtenidos de los sumadores 484 y 486 son,
respectivamente, los valores de frecuencias LSP reconstruidos de la
trama anterior y los valores de frecuencias LSP reconstruidos de la
trama actual. El suavizado LSP se lleva a cabo en las velocidades
más bajas según la siguiente
ecuación:
ecuación:
(24)LSP
suavizado = a(LSP actual) + (1-a)(LSP
anterior)
siendo
a = 0 para velocidad completa;
a = 0,1 para media velocidad;
a = 0,5 para cuarto de velocidad; y
a = 0,85 para octavo de velocidad.
Los valores \omega'_{i,f-1}
de frecuencias LSP reconstruidos de la trama anterior
(f-1) y los valores \omega'_{i,f} de frecuencias
LSP reconstruidos de la trama actual (f) se obtienen del subsistema
de cuantificación 210 y se pasan al subsistema de interpolación LSP
de subtramas de tono 216 y al subsistema de interpolación LSP de
subtramas de libro de código 226. Los valores cuantificados de
frecuencias LSP \Delta\omega_{i} se pasan del subsistema de
cuantificación LSP 210 al subsistema ensamblador de datos 236 para
la transmisión.
Los coeficientes LPC utilizados en el filtro de
ponderación y el filtro de síntesis de formantes descritos a
continuación son adecuados para la subtrama de tono que se está
codificando. Para las subtramas de tono, la interpolación de los
coeficientes LPC se efectúa una vez para cada subtrama de tono tal
como se indica en la Tabla VII:
\newpage
Velocidad 1: | ||
\omega_{i} = 0,75\omega'_{i,f-1} + 0,25\omega'_{i,f} | para subtrama de tono 1 | |
\omega_{i} = 0,5\omega'_{i,f-1} + 0,5\omega'_{i,f} | para subtrama de tono 2 | |
\omega_{i} = 0,25\omega'_{i,f-1} + 0,75\omega'_{i,f} | para subtrama de tono 3 | |
\omega_{i} = \omega'_{i,f} | para subtrama de tono 4 | |
Velocidad 1/2: | ||
\omega_{i} = 0,625\omega'_{i,f-1} + 0,375\omega'_{i,f} | para subtrama de tono 1 | |
\omega_{i} = 0,125\omega'_{i,f-1} + 0,875\omega'_{i,f} | para subtrama de tono 2 | |
Velocidad 1/4: | ||
\omega_{i} = 0,625\omega'_{i,f-1} + 0,375\omega'_{i,f} | para subtrama de tono 1 | |
Velocidad 1/8: | ||
No se efectúa búsqueda del tono. |
El contador de subtramas de tono 224 se utiliza
para mantener un registro de las subtramas de tono para las que se
calculan los parámetros de tono, siendo la salida del contador
proporcionada al subsistema de interpolación LSP de subtramas de
tono 216 para su utilización en la interpolación LSP de subtramas
de tono. El contador de subtramas de tono 224 también proporciona
una salida que indica la finalización de la subtrama de tono para
la velocidad seleccionada al subsistema de empaquetamiento de datos
236.
La Figura 13 ilustra un ejemplo de ejecución del
subsistema de interpolación LSP de subtramas de tono 216 para
interpolar las frecuencias LSP para la subtrama de tono pertinente.
En la Figura 13, las frecuencias LSP anteriores y actuales
\omega'_{i,f-1} y \omega'_{i,f} se pasan,
respectivamente, desde el subsistema de cuantificación LSP a los
multiplicadores 500 y 502 donde se multiplican, respectivamente, por
una constante proporcionada por la memoria 504. La memoria 504
almacena un grupo de valores constantes y, de conformidad con una
entrada del número de subtramas de tono de un contador de subtramas
de tono, que se describirá más adelante, proporciona una salida de
constantes como las expuestas en la Tabla VII para su multiplicación
con los valores LSP de trama anterior y actual. Las salidas de los
multiplicadores 500 y 502 se suman, en el sumador 506, para
proporcionar los valores de frecuencias LSP para la subtrama de tono
según las ecuaciones de la Tabla VII. Para cada subtrama de tono,
una vez que se ha llevado a cabo la interpolación de las
frecuencias LSP, se efectúa una transformación
LSP-LPC inversa para obtener los coeficientes
actuales de A(z) y el filtro de ponderación perceptiva. Los
valores de frecuencias LSP interpoladas se proporcionan, por lo
tanto, al subsistema de transformación LSP-LPC 218
de la Figura 7.
El subsistema de transformación
LSP-LPC 218 convierte las frecuencias LSP
interpoladas nuevamente en coeficientes LPC para su utilización en
la resíntesis de voz. Otra vez, el artículo mencionado
anteriormente "Line Spectrum Pair (LSP) and Speech Data
Compression" (Par de líneas espectrales (LSP) y compresión de
datos de voz), de Soong y Juang describe detalladamente el
algoritmo ejecutado en la presente invención en el proceso de
transformación e indica cómo puede deducirse. Los aspectos de
cálculo permiten expresar P(z) y Q(z) en términos de
las frecuencias LSP mediante las ecuaciones:
(25)P(z) =
(1+z^{-1})\prod\limits^{5}_{i=1} (1-2cos( \omega
_{2i-1})z^{-1} +
z^{-2})
siendo \omega_{i} las raíces
del polinomio P' (frecuencias impares),
y
(26)Q(z) =
(1-z^{-1})\prod\limits^{5}_{i=1}
(1-2cos( \omega _{2i})z^{-1} +
z^{-2})
siendo \omega_{i} las raíces
del polinomio Q' (frecuencias pares),
y
(27)A(z)
=
\frac{P(z)+Q(z)}{2}
El cálculo se lleva a cabo, calculando en primer
lugar los valores 2cos(\omega_{i}) para todas las
frecuencias impares i. Este cálculo se realiza utilizando una
expansión en serie de Taylor de quinto orden del coseno alrededor de
cero (0) con precisión simple. Una expansión de Taylor alrededor
del punto más cercano de la tabla de cosenos podría ser en potencia
más precisa, pero la precisión proporcionada por expansión alrededor
de 0 es suficiente y no conlleva una cantidad excesiva de
cálculos.
Seguidamente, se calculan los coeficientes del
polinomio P. Los coeficientes de un producto de polinomios es la
convolución de las secuencias de coeficientes de los polinomios
individuales. A continuación, se calcula la convolución de las 6
secuencias de z coeficientes de polinomio de la ecuación (25)
anterior, {1, - 2cos(\omega_{1}), 1}, {1,
-2cos(\omega_{3}), 1} ... {1, -
2cos(\omega_{9}), 1} y {1, 1}.
Una vez calculado el polinomio P, se repite el
mismo procedimiento para el polinomio Q, en el que las 6 secuencias
de z coeficientes del polinomio de la ecuación (26) anterior, {1,
-2cos(\omega_{2}), 1}, {1, -2cos(\omega_{4}),
1} ... {1, -2cos(\omega_{10}), 1} y {1, 1} y los
coeficientes adecuados se suman y dividen entre 2, es decir, se
desplazan 1 bit, para generar los coeficientes LPC.
La Figura 13 muestra además en detalle un ejemplo
de ejecución del subsistema de transformación
LSP-LPC. La parte del circuito 508 calcula el valor
de -2cos(\omega_{i}) a partir del valor de entrada de
\omega_{i}. La parte del circuito 508 consiste en la memoria
tampón 509, los sumadores 510 y 515, los multiplicadores 511, 512,
514, 516 y 518 y los registros 513 y 515. Cuando se calculan los
valores de -2cos(\omega_{i}), los registros 513 y 515 se
ponen a cero. Puesto que este circuito calcula
sen(\omega_{i}), primero se resta \omega_{i}, en el
sumador 510, del valor constante de entrada \pi/2. Este valor es
elevado al cuadrado por el multiplicador 511 y, a continuación, se
calculan en secuencia los valores
(\pi/2-\omega_{i})^{2},
(\pi/2-\omega_{i})^{4},
(\pi/2-\omega_{i})^{6} y (\pi/2-\omega_{i})^{8} utilizando el multiplicador 512 y el registro 513.
(\pi/2-\omega_{i})^{6} y (\pi/2-\omega_{i})^{8} utilizando el multiplicador 512 y el registro 513.
Los coeficientes de la expansión en serie de
Taylor c[1]-c[4] se introducen en
secuencia en el multiplicador 514 junto con los valores obtenidos
del multiplicador 512. Los valores obtenidos del multiplicador 514
se introducen en el sumador 515 donde se suman con la salida del
registro 516 para proporcionar la salida c[1]
(\pi/2-\omega_{i})^{2} +
c[2]
(\pi/2-\omega_{i})^{4} + c[3] (\pi/2-\omega_{i})^{6} + c[4] (\pi/2-\omega_{i})^{8} al multiplicador 517. La entrada al multiplicador 517 del registro 516 se multiplica en el multiplicador 517 por la salida (\pi/2-\omega_{i}) del sumador 510. La salida del multiplicador 517, es decir, el valor cos(\omega_{i}), se multiplica en el multiplicador 518 por la constante -2 para proporcionar la salida -2cos(\omega_{i}). El valor -2cos(\omega_{i}) se proporciona a la parte del circuito 520.
(\pi/2-\omega_{i})^{4} + c[3] (\pi/2-\omega_{i})^{6} + c[4] (\pi/2-\omega_{i})^{8} al multiplicador 517. La entrada al multiplicador 517 del registro 516 se multiplica en el multiplicador 517 por la salida (\pi/2-\omega_{i}) del sumador 510. La salida del multiplicador 517, es decir, el valor cos(\omega_{i}), se multiplica en el multiplicador 518 por la constante -2 para proporcionar la salida -2cos(\omega_{i}). El valor -2cos(\omega_{i}) se proporciona a la parte del circuito 520.
La parte del circuito 520 se utiliza en el
cálculo de los coeficientes del polinomio P. La parte del circuito
520 consiste en la memoria 521, el multiplicador 522 y el sumador
523. El conjunto de ubicaciones de memoria P(1) ...
P(11) se establecen en 0 excepto P(1) que establece
en 1. Los valores indexados antiguos -2cos(\omega_{i}) se
introducen en el multiplicador 524 para efectuar la convolución de
(1, -2cos(\omega_{i}), 1) siendo 1\leqi\leq5,
1\leqj\leq2i+1, P(j) = 0 para j<1. La parte del
circuito 520 se duplica (no se muestra) para calcular los
coeficientes del polinomio Q. Los nuevos valores finales
resultantes de P(1)-P(11) y
Q(1)-Q(11) se proporcionan a la parte
del circuito 524.
A la parte del circuito 524 se le proporcionan
diez coeficientes LPC \alpha_{i}, siendo i un valor entre 1 y
10, para acabar el cálculo de la subtrama de tono. La parte del
circuito 524 consiste en las memorias tampón 525 y 526, los
sumadores 527, 528 y 529 y el divisor o desplazador de bits 530. Los
valores P(i) y Q(i) finales se almacenan en las
memorias tampones 525 y 526. Los valores P(i) y P(i+1)
se suman en el sumador 527, mientras que los correspondientes
valores Q(i) y Q(i+1) se restan en el sumador 528,
para 1 \leq i \leq 10. La salida de los sumadores 527 y 528,
respectivamente P(z) y Q(z), se introduce en el
sumador 529 donde se suma y proporciona como el valor (P(z) +
Q(z)). La salida del sumador se divide entre dos desplazando
los bits una posición. Cada valor con desplazamiento de bit de
(P(z) + Q(z))/2 es un coeficiente LPC
\alpha_{i}de salida. Los coeficientes LPC de subtrama de tono se
proporcionan al subsistema de búsqueda del tono 220 de la Figura
7.
Asimismo, las frecuencias LSP se interpolan para
cada subtrama de libro de código determinada mediante la velocidad
seleccionada, excepto para la velocidad completa. La interpolación
se calcula de idéntica manera a las interpolaciones LSP de subtrama
de tono. Las interpolaciones LSP de subtrama de libro de código se
calculan en el subsistema de interpolación LSP de subtramas de libro
de código 226 y se proporcionan al subsistema de transformación
LSP-LPC 228 donde la transformación se calcula de
modo parecido al subsistema de transformación
LSP-LPC 218.
Como se ha descrito en relación con la Figura 3,
la búsqueda del tono es una técnica de análisis por síntesis, en la
que la codificación se efectúa seleccionando parámetros que reducen
al mínimo el error entre la voz de entrada y la voz sintetizada
utilizando dichos parámetros. En la búsqueda del tono, la voz se
sintetiza utilizando el filtro de síntesis de tono cuya respuesta
se expresa en la ecuación (2). Cada 20 ms, la trama de voz se
subdivide en un número de subtramas de tono que, como se ha
descrito anteriormente, depende de la velocidad de transmisión de
datos elegida para la trama. Una vez por cada subtrama de tono, se
calculan los parámetros b y L, es decir, la ganancia y el retardo
de tono, respectivamente. En el presente ejemplo de ejecución, el
retardo de tono L oscila entre 17 y 143 y, por motivos de
transmisión, L=16 se reserva para el caso en que b=0.
El codificador de voz utiliza un filtro de
ponderación perceptiva de ruido de la forma establecida en la
ecuación (1). Como se ha mencionado anteriormente, el propósito del
filtro de ponderación perceptiva es ponderar el error a frecuencias
de menos potencia para reducir el efecto del ruido relacionado con
el error. El filtro de ponderación perceptiva se obtiene a partir
del filtro de predicción a corto plazo hallado anteriormente. Los
coeficientes LPC utilizados en el filtro de ponderación, y el filtro
de síntesis de formantes descrito más adelante, son los valores
interpolados adecuados para la subtrama que se está
codificando.
Cuando se efectúan las operaciones de análisis
por síntesis, se utiliza una copia del decodificador/sintetizador
de voz en el codificador. La forma del filtro de síntesis utilizado
en el codificador de voz es obtenida mediante las ecuaciones (3) y
(4). Las ecuaciones (3) y (4) corresponden a un filtro de síntesis
de voz del decodificador seguido del filtro de ponderación
perceptiva, denominado pues filtro de síntesis ponderada.
La búsqueda del tono se lleva a cabo bajo el
supuesto de una contribución cero del libro de código en la trama
actual, es decir, G = 0. Para cada retardo de tono posible, L, la
voz se sintetiza y compara con la voz original. El error entre la
voz de entrada y la voz sintetizada es ponderado por el filtro de
ponderación perceptiva antes de que su error cuadrático medio (MSE)
sea calculado. El objetivo de esto es elegir valores de L y b, de
entre todos los valores posibles de L y b, que reducen al mínimo el
error entre la voz ponderada perceptivamente y la voz sintetizada
ponderada perceptivamente. La reducción al mínimo del error puede
expresarse mediante la siguiente ecuación:
(28)MSE =
\frac{1}{L_{P}} \sum\limits^{L_{P}-1}_{n=0}
(x(n)-x'(n))^{2}
siendo L_{P} el número de
muestras de la subtrama de tono que, en el ejemplo de forma de
realización, es 40 para una subtrama de tono de velocidad completa.
Se calcula la ganancia de tono, b, que reduce al mínimo el MSE.
Estos cálculos se repiten para todos los valores permitidos de L, y
se eligen los valores de L y b que generan el MSE mínimo para el
filtro de
tonos.
El cálculo del retardo de tono óptimo incluye el
residuo de formantes (p(n) en la Figura 3) para el tiempo
entre n = -L_{máx} y n =
(L_{P}-L_{\text{mín}})-1,
siendo L_{máx} el valor de retardo de tono máximo,
L_{\text{mín}} el valor de retardo de tono mínimo y L_{P} la
longitud de la subtrama de tono para la velocidad seleccionada, y
siendo n = 0 el inicio de la subtrama de tono. En el ejemplo de
forma de realización L_{máx} = 143 y L_{\text{mín}} = 17.
Utilizando el modelo de numeración proporcionado en la Figura 14,
para velocidad 1/4, n = -143 a n = 142, para velocidad 1/2, n =
-143 a n = 62 y para velocidad 1, n = -143 a n = 22. Para n<0,
el residuo de formantes es sencillamente la salida del filtro de
tonos de las subtramas de tono anteriores, que se conserva en la
memoria del filtro de tonos y se denomina residuo de formantes de
bucle cerrado. Para n \geq 0, el residuo de formantes es la salida
de un filtro de análisis de formantes que tiene una característica
de filtro de A(z) en el que la entrada son las muestras de
voz de la trama de análisis actual. Para n \geq 0, el residuo de
formantes se denomina residuo de formantes de bucle abierto y será
exactamente p(n) si el filtro de tonos y el libro de código
realizan una predicción perfecta en esta subtrama. En relación con
las Figuras 14-17, se proporcionará más información
acerca del cálculo del retardo de tono óptimo, a partir de los
valores de residuo de formantes asociados.
La búsqueda del tono se efectúa con respecto a
143 muestras reconstruidas de residuos de formantes de bucle
cerrado, p(n) para n < 0, más
L_{P}-L_{\text{mín}} muestras no cuantificadas
de residuos de formantes de bucle abierto, p_{o}(n) para n
\geq 0. De forma eficaz y gradual, la búsqueda que
fundamentalmente es una búsqueda de bucle abierto en la que L es
pequeño, y por lo tanto la mayoría de las muestras de residuo
utilizadas son n > 0, se convierte en una búsqueda que
principalmente es una búsqueda de bucle cerrado donde L es grande,
y por lo tanto todas las muestras de residuo utilizadas son n <
0. Por ejemplo, utilizando el modelo de numeración proporcionado en
la Figura 14 a velocidad completa, en el que la subtrama de tono
consiste en 40 muestras de voz, la búsqueda del tono empieza
utilizando el grupo de muestras de residuos de formantes numeradas
de n = -17 a n = 22. En este modelo, desde n = -17 hasta n = -1, las
muestras son muestras de residuos de formantes de bucle cerrado,
mientras que desde n = 0 hasta n = 22, las muestras son muestras de
residuos de formantes de bucle abierto. El siguiente grupo de
muestras de residuos de formantes utilizado en la determinación del
retardo de tono óptimo son las muestras numeradas de n = -18 a n =
21. Nuevamente, desde n = -18 hasta n = -1, las muestras son
muestras de residuos de formantes de bucle cerrado, mientras que
desde n = 0 hasta n = 21, las muestras son muestras de residuos de
formantes de bucle abierto. Este proceso continúa con los grupos de
muestras hasta que se obtiene el retardo de tono para el último
grupo de muestras de residuos de formantes, n = -143 a n =
-104.
Como se ha descrito anteriormente en relación con
la ecuación (28), el objetivo es reducir al mínimo el error entre
x(n), la voz ponderada perceptivamente menos la respuesta a
entrada cero (ZIR) del filtro de formantes ponderados, y x'(n), la
voz sintetizada ponderada perceptivamente que no tiene asignada
memoria en los filtros, respecto de todos los valores posibles de L
y b, dada una contribución cero del libro de código estocástico
(G=0). La ecuación (28) puede rescribirse en relación con b de la
siguiente forma:
(29)MSE =
\frac{1}{L_{P}} \sum\limits^{L_{P}-1}_{n=0}
(x(n)-by(n))^{2}
en la
que,
(30)y(n)=h(n)
\text{*} p(n-L)
\hskip0.8cmpara \ 0 \ \leq n \leq L_{P}-1
siendo y(n) la voz
sintetizada ponderada con el retardo de tono L cuando b=1, y
h(n) la respuesta impulsiva del filtro de síntesis de
formantes ponderados que tiene la característica de filtro según la
ecuación
(3).
\newpage
El procedimiento de reducción al mínimo es
equivalente a incrementar al máximo el valor E_{L},
(31)E_{L} =
\frac{(E_{xy})^{2}}{E_{yy}}
siendo,
(32)E_{xy} =
\sum\limits^{L_{P}-1}_{n=0}x(n)y(n)
y,
(33)E_{yy} =
\sum\limits^{L_{P}-1}_{n=0}y(n)y(n)
La b óptima para el L dado resulta ser:
(34)b_{L} =
\frac{E_{xy}}{E_{yy}}
Esta búsqueda se repite para todos los valores
permitidos de L. La b óptima se limita a valores positivos y, por
ello, un L que dé por resultado un valor E_{xy} negativo se
ignora en la búsqueda. Por último, se eligen para la transmisión el
retardo, L, y la ganancia, b, de tono que incrementan al máximo
E_{L}.
Como se ha mencionado anteriormente, x(n)
es en realidad la diferencia ponderada perceptivamente entre la voz
de entrada y la ZIR del filtro de formantes ponderados, debido a
que para la convolución recursiva, expuesta más adelante en las
ecuaciones (35)-(38), el supuesto es que el filtro A(z)
siempre empieza por 0 en la memoria de filtro. No obstante, el caso
real no es el del filtro que empieza con un 0 en la memoria de
filtro. En síntesis, el filtro tendrá un estado que persiste desde
la subtrama anterior. En la ejecución, los efectos del estado
inicial se restan de la voz ponderada perceptivamente al inicio. De
esta forma, sólo es necesario calcular para cada L la respuesta a
p(n) del filtro de régimen permanente A(z), con todas
las memorias inicialmente establecidas en 0, pudiéndose utilizar la
convolución recursiva. Sólo es necesario calcular una vez este
valor de x(n), pero es necesario calcular y(n), la
respuesta a estado cero del filtro de formantes a la salida del
filtro de tonos, para cada retardo L. El cálculo de cada
y(n) incluye muchas multiplicaciones redundantes, que no es
necesario calcular para cada retardo. El procedimiento de
convolución recursiva descrito a continuación se utiliza para
reducir al mínimo los cálculos necesarios.
En relación con la convolución recursiva, el
valor y_{L}(n) es definido por el valor y(n),
siendo:
(35)y_{L}(n) =
h(n) \text{*} p(n-L)
\hskip0.8cm17 \leq L \leq 143
o,
(36)y_{L}(n) =
\sum
h(i)p(n-L-i)
\hskip0.8cm17 \leq L \leq 143
A partir de las ecuaciones (32) y (33) puede
observarse que:
(37)y_{L}(0) =
p(-L)h(0)
(38)y_{L}(n)=y_{L-1}(n-1)+p(-L)h(n)
\hskip0.8cm1 \leq n \leq L_{P}, 17 < L \leq 143
De esta forma, una vez que se ha realizado la
convolución inicial para y_{17}(n), el resto de
convoluciones puede efectuarse de forma recursiva, reduciendo en
gran medida el número de cálculos necesarios. En el ejemplo
proporcionado anteriormente para la velocidad 1, el valor
y_{17}(n) se calcula mediante la ecuación (36) utilizando
el grupo de muestras de residuos de formantes numerados de n = -17 a
n = 22.
En relación con la Figura 15, el codificador
incluye un duplicado del decodificador de la Figura 5, el
subsistema de decodificador 235 de la Figura 7, en ausencia del
postfiltro adaptativo. En la Figura 15, la entrada al filtro de
síntesis de tono 550 es el producto del valor del libro de código
c_{I}(n) y la ganancia G de libro de código. Las muestras
de residuos de formantes proporcionadas p(n) se introducen en
el filtro de síntesis de formantes 552 donde se filtran y
proporcionan como muestras de voz reconstruidas s'(n). Las muestras
de voz reconstruidas s(n) se restan de las correspondientes
muestras de voz de entrada s(n) en el sumador 554. La
diferencia entre las muestras s(n)' y s(n) se
introduce en el filtro de ponderación perceptiva 556. En cuanto al
filtro de síntesis de tono 550, el filtro de síntesis de formantes
552 y el filtro de ponderación perceptiva 556, cada uno de estos
filtros contiene una memoria del estado del filtro, siendo M_{P}
la memoria del filtro de síntesis de tono 550, M_{a} la memoria
del filtro de síntesis de formantes 552 y M_{W} la memoria del
filtro de ponderación perceptiva 556.
El estado del filtro M_{a} del filtro de
síntesis de formantes 552 del subsistema del decodificador es
proporcionado al subsistema de búsqueda del tono 220 de la Figura
7. En la Figura 16, se proporciona el estado del filtro M_{a} para
calcular la respuesta a la entrada cero (ZIR) del filtro 560 que
calcula la ZIR del filtro de síntesis de formantes 552. El valor
ZIR calculado se resta de las muestras de voz de entrada s(n)
en el sumador 562, siendo el resultado ponderado por el filtro de
ponderación perceptiva 564. La salida del filtro de ponderación
perceptiva 564, x_{p}(n), se utiliza como voz de entrada
ponderada en las ecuaciones (28)-(34), en las que x(n) =
x_{p}(n).
De nuevo, en relación con las Figuras 14 y 15, el
filtro de síntesis de tono 550 ilustrado en la Figura 14
proporciona las muestras de residuo de formantes de bucle cerrado y
bucle abierto, calculadas de la forma descrita anteriormente, al
libro de código adaptativo 568 que, en esencia, es una memoria para
almacenarlas. El residuo de formantes de bucle cerrado se almacena
en la parte de memoria 570, mientras que el residuo de formantes de
bucle abierto se almacena en la parte de memoria 572. Las muestras
se almacenan según el ejemplo de modelo de numeración descrito
anteriormente. El residuo de formantes de bucle cerrado se organiza
como se ha descrito anteriormente en relación con la utilización
para cada búsqueda de retardo de tono L. El residuo de formantes de
bucle abierto se calcula a partir de las muestras de voz de entrada
s(n) de cada subtrama de tono que utiliza el filtro de
análisis de formantes 574 que utiliza la memoria M_{a} del filtro
de síntesis de formantes 552 del subsistema del decodificador para
calcular los valores de p_{o}(n). Los valores de
p_{o}(n) para la subtrama de tono actual se desplazan a
través de una serie de elementos de retardo 576 antes de
proporcionarse a la parte de memoria 572 del libro de código
adaptativo 568. Los residuos de formantes de bucle abierto se
almacenan con la primera muestra de residuo generada numerada como
0 y la última numerada como 142.
En relación con la Figura 16, la respuesta
impulsiva h(n) del filtro de formantes se calcula en el
filtro 566 y se pasa al registro de desplazamiento 580. Como se ha
indicado anteriormente en relación con la respuesta impulsiva del
filtro de formantes h(n), ecuaciones (29)-(30) y (35)-(38),
estos valores se calculan para todas las subtramas de tono en el
filtro. Para reducir más los requisitos de cálculo del subsistema
del filtro de tonos, la respuesta impulsiva del filtro de formantes
h(n) se trunca en 20 muestras.
El registro de desplazamiento 580 junto con el
multiplicador 582, el sumador 584 y el registro de desplazamiento
586 se configuran para llevar a cabo la convolución recursiva entre
los valores h(n) del registro de desplazamiento 580 y los
valores c(m) del libro de código adaptativo 568, como se ha
descrito. Esta operación de convolución se efectúa para hallar la
respuesta a estado cero (ZSR) del filtro de formantes a la entrada
procedente de la memoria del filtro de tonos, suponiendo que la
ganancia de tono está establecida en 1. Con el funcionamiento de
los circuitos de convolución, n se desplaza iterativamente de Lp a
1 para cada m, mientras que m se desplaza iterativamente de
(L_{p}-17)-1 a -143. En el
registro 586, los datos no se transmiten cuando n = 1, y los datos
no se bloquean cuando n = L_{p}. Los datos se proporcionan como
salida desde los circuitos de convolución cuando m \leq -17.
Después de los circuitos de convolución, se
hallan los circuitos de correlación y comparación que llevan a cabo
la búsqueda para hallar el retardo de tono L y la ganancia de tono
b óptimos. Los circuitos de correlación, denominados también
circuitos de error cuadrático medio (MSE), calculan la
autocorrelación y la correlación cruzada de la ZSR con la
diferencia ponderada perceptivamente entre la ZIR del filtro de
formantes y la voz de entrada, es decir, x(n). Utilizando
estos valores, los circuitos de correlación calculan el valor de la
ganancia de tono b óptima para cada valor del retardo de tono. Los
circuitos de correlación consisten en el registro de desplazamiento
588, los multiplicadores 590 y 592, los sumadores 594 y 596, los
registros 598 y 600 y el divisor 602. En los circuitos de
correlación, los cálculos determinan que n se desplace
iterativamente de L_{p} a 1, mientras que m se desplaza
iterativamente de (L_{p}-17) -1 a -143.
Los circuitos de correlación van seguidos de los
circuitos de comparación que llevan a cabo las comparaciones y
almacenan los datos para determinar el valor óptimo del retardo L y
la ganancia b de tono. Los circuitos de comparación consisten en el
multiplicador 604, el comparador 606, los registros 608, 610 y 612 y
el cuantificador 614. Los circuitos de comparación proporcionan
para cada subtrama de tono los valores de L y b que reducen al
mínimo el error entre la voz sintetizada y la voz de entrada. El
valor de b es cuantificado en ocho niveles por el cuantificador 614
y es representado mediante un valor de 3 bits, siendo inferido un
nivel adicional, el nivel b=0, cuando L=16. Estos valores de L y b
son proporcionados al subsistema de búsqueda de libro de código 230
y a la memoria tampón de datos 222. Estos valores son proporcionados
por medio del subsistema de empaquetamiento de datos 238 o la
memoria tampón de datos 222 al decodificador 234 para su
utilización en la búsqueda del tono.
Como la búsqueda del tono, la búsqueda de libro
de código es un sistema de codificación de análisis por síntesis, en
el que la codificación se efectúa seleccionando parámetros que
reducen al mínimo el error entre la voz de entrada y la voz
sintetizada utilizando los parámetros. Para velocidad 1/8, la
ganancia de tono se establece en cero.
Como se ha descrito anteriormente, cada 20 ms, la
trama de voz se subdivide en un número de subtramas de libro de
código que, como se ha indicado, depende de la velocidad de
transmisión de datos elegida para la trama. Los parámetros G e I,
la ganancia y el índice de libro de código, respectivamente, se
calculan una vez por subtrama de libro de código. En el cálculo de
estos parámetros, las frecuencias LSP para la subtrama, excepto
para velocidad completa, se interpolan en el subsistema de
interpolación LSP de subtramas de libro de código 226 de forma
parecida a la descrita en relación con el subsistema de
interpolación LSP de subtramas de tono 216. Las frecuencias LSP
interpoladas de subtramas de libro de código también son
convertidas en coeficientes LPC por el subsistema de transformación
LSP-LPC 228 para cada subtrama de libro de código.
El contador de subtramas de libro de código 232 se utiliza para
mantener un registro de las subtramas de libro de código para las
cuales se calculan los parámetros de libro de código, siendo
proporcionada la salida del contador al subsistema de interpolación
LSP de subtramas de libro de código 226 para su utilización en la
interpolación LSP de subtramas de libro de código. Asimismo, el
contador de subtramas de libro de código 232 proporciona una
salida, que indica la finalización de una subtrama de libro de
código para la velocidad seleccionada, al contador de subtramas de
tono 224.
El libro de código de excitación consta de
2^{M} vectores de códigos que se construyen a partir de una
secuencia aleatoria blanca gaussiana de varianza unitaria. Existen
128 entradas en el libro de código para M=7. El libro de código está
organizado de forma recursiva de modo que cada vector de código
difiere del vector de código adyacente en una muestra; es decir,
las muestras de un vector de código se desplazan una posición para
que una nueva muestra entre por un extremo y otra muestra caiga por
el otro. Por consiguiente, un libro de código recursivo puede
almacenarse como una ordenación lineal que tiene una longitud
2^{M} + (L_{C}-1), siendo L_{C} la longitud
de la subtrama de libro de código. No obstante, para simplificar la
ejecución y conservar espacio de memoria, se utiliza un libro de
código circular de 2^{M} muestras de longitud (128 muestras).
Para reducir los cálculos, los valores gaussianos
del libro de código se recortan por el centro. En un principio, los
valores se eligen mediante un procedimiento blanco gaussiano de
varianza 1. Luego, cualquier valor con una magnitud inferior a 1,2
se establece en cero. Y de esta forma, alrededor del 75% de los
valores se establecen de forma eficaz en cero, generándose un libro
de código de impulsos. Este recorte central del libro de código
reduce en un factor de 4 el número de multiplicaciones necesarias
para llevar a cabo la convolución recursiva de la búsqueda de libro
de código, puesto que no es necesario efectuar las multiplicaciones
por cero. El libro de código utilizado en la ejecución actual es
proporcionado a continuación en la Tabla VIII.
\vskip1.000000\baselineskip
Nuevamente, el codificador de voz utiliza un
filtro de ponderación perceptiva del ruido de la forma indicada en
la ecuación (1) que incluye un filtro de síntesis ponderada de la
forma indicada en la ecuación (3). Para cada índice de libro de
código, I, la voz se sintetiza y se compara con la voz original. El
error es ponderado por el filtro de ponderación perceptiva antes de
que sea calculado el MSE.
Como se ha indicado anteriormente, el objetivo es
reducir al mínimo el error entre x(n) y x'(n) respecto de
todos los valores posibles de I y G. La reducción al mínimo del
error puede expresarse mediante la siguiente ecuación:
(39)MSE =
\frac{1}{L_{C}}\sum\limits^{L_{C}-1}_{n=0}(x(n)-x'(n))^{2}
siendo L_{C} el número de
muestras de la subtrama de libro de código. La ecuación (38) puede
rescribirse en relación con G
como:
(40)MSE =
\frac{1}{L_{C}}\sum\limits^{L_{C}-1}_{n=0}(x(n)-Gy(n))^{2}
siendo y deducido sometiendo a
convolución la respuesta impulsiva del filtro de formantes con el
I-ésimo vector de código, suponiendo que G=1. Reducir al mínimo el
MSE es, a su vez, equivalente a incrementar al
máximo:
(41)E_{I} =
\frac{(E_{xy})^{2}}{E_{yy}}
siendo
(42)E_{xy} =
\sum\limits^{L_{C}-1}_{n=0}x(n)y(n)
y
(43)E_{yy} =
\sum\limits^{L_{C}-1}_{n=0}y(n)y(n)
La G óptima para el I dado se halla mediante la
siguiente ecuación:
(44)G_{I} =
\frac{E_{xy}}{E_{yy}}
Esta búsqueda se repite para todos los valores
permitidos de I. A diferencia de la búsqueda del tono, la ganancia
óptima, G, puede ser positiva o negativa. Por último, se eligen
para la transmisión el índice I y la ganancia G de libro de código
que incrementan al máximo E_{I}.
De nuevo, debe observarse que sólo es necesario
calcular una vez x(n), es decir, la diferencia ponderada
perceptivamente entre la voz de entrada y la ZIR de los filtros de
tono y formantes ponderados. Sin embargo, para cada índice I, es
necesario calcular y(n), es decir, la respuesta a estado
cero de los filtros de tono y de formantes de cada vector de
código. Debido a que se utiliza un libro de código circular, puede
utilizarse el procedimiento de convolución recursiva descrito para
la búsqueda del tono para reducir al mínimo los cálculos
necesarios.
En relación otra vez con la Figura 15, el
codificador incluye un duplicado del decodificador de la Figura 5,
el subsistema de decodificador 235 de la Figura 7, en el que se
calculan los estados del filtro, siendo M_{p} la memoria del
filtro de síntesis de tono 550, M_{a} la memoria del filtro de
síntesis de formantes 552 y M_{w} la memoria del filtro de
ponderación perceptiva 556.
Los estados de filtro M_{p} y M_{a} de los
filtros de síntesis de tono y de formantes 550 y 552 (Figura 15)
del subsistema del decodificador, son proporcionados al subsistema
de búsqueda de libro de código 230 de la Figura 7. En la Figura 17,
los estados de filtro M_{p} y M_{a} se proporcionan al filtro
de respuesta a impulso cero (ZIR) 620 que calcula la ZIR de los
filtros de tono y de síntesis de formantes 550 y 552. La ZIR
calculada de los filtros de tono y de síntesis de formantes se
resta de las muestras de voz de entrada s(n) en el sumador
622, siendo el resultado ponderado por el filtro de ponderación
perceptiva 624. La salida del filtro de ponderación perceptiva 564,
x_{c}(n), se utiliza como voz de entrada ponderada en las
ecuaciones de MSE anteriores (39)-(44), en las que x(n) =
x_{c}(n).
En la Figura 17, la respuesta impulsiva
h(n) del filtro de formantes se calcula en el filtro 626 y
se proporciona al registro de desplazamiento 628. La respuesta
impulsiva del filtro de formantes h(n) se calcula para cada
subtrama de libro de código. Para reducir más los requisitos de
cálculo, la respuesta impulsiva h(n) del filtro de formantes
se trunca en 20 muestras.
El registro de desplazamiento 628 junto con el
multiplicador 630, el sumador 632 y el registro de desplazamiento
634 se configuran para llevar a cabo la convolución recursiva entre
los valores h(n) del registro de desplazamiento 628 y los
valores c(m) del libro de código 636 que contiene los
vectores de libro de código descritos anteriormente. Esta operación
de convolución se lleva a cabo para hallar la respuesta a estado
cero (ZSR) del filtro de formantes a cada vector de código,
suponiendo que la ganancia de libro de código está establecida en
1. Con el funcionamiento de los circuitos de convolución, n se
desplaza iterativamente de L_{C} a 1 para cada m, mientras que m
se desplaza iterativamente de 1 a 256. En el registro 586, los datos
no se transmiten cuando n = 1 y los datos no se bloquean cuando n =
L_{C}. Los datos se proporcionan como salida desde los circuitos
de convolución cuando m \leq 1. Debe observarse que los circuitos
de convolución deben inicializarse para dirigir la operación de
convolución recursiva desplazando iterativamente m veces el tamaño
de la subtrama antes de iniciar los circuitos de correlación y
comparación que siguen a los circuitos de convolución.
Los circuitos de correlación y comparación
dirigen la presente búsqueda de libro de código para proporcionar
los valores del índice de libro de código I y de ganancia de libro
de código G. Los circuitos de correlación, también denominados
circuitos de error cuadrático medio (MSE), calculan la
autocorrelación y la correlación cruzada de la ZSR con la
diferencia ponderada perceptivamente entre la ZIR de los filtros de
tono y de formantes, y la voz de entrada x'(n). Es decir, los
circuitos de correlación calculan el valor de la ganancia de libro
de código G para cada valor de índice de libro de código I. Los
circuitos de correlación consisten en el registro de desplazamiento
638, los multiplicadores 640 y 642, los sumadores 644 y 646, los
registros 648 y 650 y el divisor 652. En los circuitos de
correlación, los cálculos determinan que n se desplace
iterativamente de L_{C} a 1, mientras que m se desplaza
iterativamente de 1 a 256.
Los circuitos de correlación van seguidos de los
circuitos de comparación que llevan a cabo las comparaciones y el
almacenamiento de datos para determinar el valor óptimo del índice
I y la ganancia G de libro de código. Los circuitos de comparación
consisten en el multiplicador 654, el comparador 656, los registros
658, 660 y 662 y el cuantificador 664. Los circuitos de comparación
proporcionan para cada subtrama de libro de código los valores de I
y G que reducen al mínimo el error entre la voz sintetizada y la
voz de entrada. La ganancia de libro de código G se cuantifica en el
cuantificador 614 que somete a codificación DPCM los valores,
durante la cuantificación, de una forma parecida a la
cuantificación y codificación de frecuencias LSP con sustracción de
descentramiento descritas en relación con la Figura 12. Estos
valores de I y G se proporcionan a continuación a la memoria tampón
de datos 222.
La cuantificación y codificación DPCM de la
ganancia de libro de código G se calcula según la siguiente
ecuación:
(45)Cuantificado \ G_{i} = 20 \
log \ G_{i} - 0,45(20 \ log \ G_{i-1} + 20 \
log \
G_{i-2})
siendo 20 log
G_{i-1} y 20 log G_{i-2} los
respectivos valores calculados para la trama inmediatamente
anterior (i-1) y la trama que precede a la trama
inmediatamente anterior
(i-2).
Los valores LSP, I, G, L y b junto con la
velocidad se proporcionan al subsistema de empaquetamiento de datos
236, en el que los datos se disponen para su transmisión. En una
ejecución, los valores LSP, I, G, L y b junto con la velocidad
pueden proporcionarse al decodificador 234 por medio del subsistema
de empaquetamiento de datos 236. En otra ejecución, estos valores
pueden proporcionarse por medio de la memoria tampón de datos 222
al decodificador 234 para su utilización en la búsqueda del tono.
No obstante, en la descripción siguiente, se emplea una protección
del bit de signo del libro de código en el subsistema de
empaquetamiento de datos 236 que puede afectar al índice de libro de
código. Por consiguiente, esta protección debe tenerse en cuenta si
los datos I y G se proporcionan directamente desde la memoria tampón
de datos 222.
En el subsistema de empaquetamiento de datos 236,
los datos pueden empaquetarse según diversos formatos para la
transmisión. La Figura 18 ilustra los elementos funcionales del
subsistema de empaquetamiento de datos 236. El subsistema de
empaquetamiento de datos 236 consiste en el generador
pseudoaleatorio (PN) 670, el elemento de cálculo de verificación
por redundancia cíclica (CRC) 672, la lógica de protección de datos
674 y el combinador de datos 676. El generador PN 670 recibe la
velocidad y, para octavo de velocidad, genera un número aleatorio de
4 bits que se proporciona al combinador de datos 676. El elemento
CRC 672 recibe la ganancia de libro de código y los valores LSP
junto con la velocidad y, para velocidad completa, genera un código
CRC interno de 11 bits que se proporciona al combinador de datos
676.
El combinador de datos 674 recibe el número
aleatorio, el código CRC y, junto con la velocidad y los valores
LSP, I, G, L y b de la memoria tampón de datos 222 (Figura 7b)
proporciona una salida al subsistema del procesador de datos del
canal de transmisión 234. En la ejecución en la que los datos se
proporcionan directamente desde la memoria tampón de datos 222 al
decodificador 234 a una velocidad mínima, el número de 4 bits del
generador PN pasa del generador PN 670, por medio del combinador de
datos 676, al decodificador 234. A velocidad completa, los bits CRC
se incluyen junto con los datos de trama obtenidos del combinador
de datos 674, mientras que a octavo de velocidad, el valor de
índice de libro de código es excluido y sustituido por el número
aleatorio de 4 bits.
Es preferible proporcionar protección para el bit
de signo de ganancia de libro de código. La finalidad de la
protección de este bit es que el decodificador del vocodificador
sea menos sensible a los errores de un bit en este bit. Si el bit de
signo cambia debido a un error no detectado, el índice de código de
libro señalará un vector no relacionado con el óptimo. En la
situación de error sin protección, se seleccionará el negativo del
vector óptimo, un vector que en esencia es el peor vector posible a
utilizar. El modelo de protección empleado aquí asegura que un
error de un bit en el bit de signo de ganancia no ocasione la
selección del negativo del vector óptimo en la situación de error.
La lógica de protección de datos 674 recibe el índice y la ganancia
de libro de código y examina el bit de signo del valor de ganancia.
Si se comprueba que el bit de signo del valor de ganancia es
negativo, se suma el valor 89 (módulo 128) al índice de libro de
código asociado. El índice de libro de código, tanto si está
modificado como si no lo está, es proporcionado por la lógica de
protección de datos 674 al combinador de datos 676.
Es preferible que a velocidad completa los bits
más perceptivamente sensibles de los datos del paquete de voz
comprimida estén protegidos, por ejemplo, mediante una CRC
(verificación por redundancia cíclica) interna. Se utilizan once
bits adicionales para llevar a cabo esta detección de error y
función de corrección que es capaz de corregir cualquier error en
el bloque protegido. El bloque protegido consta del bit más
significativo de las 10 frecuencias LSP y el bit más significativo
de los 8 valores de ganancia de libro de código. Si se produce un
error incorregible en este bloque, el paquete se rechaza y se
declara una operación de borrado, descrita más adelante. En los
otros casos, la ganancia de tono se establece en cero, pero el
resto de los parámetros se utilizan a medida que se reciben. En el
ejemplo de forma de realización, se elige un código cíclico que
tenga un polinomio generador de:
(46)g(x) = 1 + x^{3} +
x^{5} + x^{6} + x^{8} + x^{9} +
x^{10}
que proporciona un código cíclico
(31,31). No obstante, debe sobrentenderse que pueden utilizarse
otros polinomios generadores. Para que este código sea un código
(32, 31), se añade un bit de paridad global en el extremo. Puesto
que solo hay 18 bits de información, los 3 primeros dígitos de la
palabra del código se establecen en cero y no se transmiten. Esta
técnica proporciona protección adicional y; de este modo, si el
síndrome indica un error en estas posiciones, significa que se trata
de un error incorregible. La codificación de un código cíclico de
forma sistemática conlleva el cálculo de bits de paridad según: x10
u(x) módulo g(x), siendo u(x) el polinomio del
mensaje.
En el extremo de decodificación, el síndrome se
calcula como el resto de dividir el vector recibido por
g(x). Si el síndrome no indica ningún error, el paquete se
acepta sin tener en cuenta el estado del bit de paridad global. Si
el síndrome indica un error, el error se corrige si el estado del
bit de paridad global no es de verificación. Si el síndrome indica
más de un error, el paquete se rechaza. En la sección 4.5 del
documento "Error Control coding: Fundamentals and
Applications" (Codificación de control de errores: principios
fundamentales y aplicaciones) de Lin y Costello, puede obtenerse más
información acerca de dicho modelo de protección de errores y del
cálculo del síndrome.
En una ejecución de sistema telefónico celular
CDMA, los datos son proporcionados por el combinador de datos 674 al
subsistema del procesador de datos de canal de transmisión 238 para
el empaquetamiento de datos para la transmisión en tramas de
transmisión de datos de 20 ms. En una trama de transmisión en la que
el vocodificador está preparado para velocidad completa, se
transmiten 192 bits para una velocidad binaria efectiva de 9,6
Kbit/s. La trama de transmisión en este caso consiste en un bit de
modo mixto utilizado para indicar el tipo de trama mixta (0 = sólo
voz, 1 = voz y datos/señalización), 160 bits de datos del
vocodificador junto con 11 bits de CRC interna; 12 bits de CRC
externa o de trama y 8 bits de cola o de nivelado. A media
velocidad, se transmiten 80 bits de datos de vocodificador junto con
8 bits de CRC de trama y 8 bits de cola para una velocidad binaria
efectiva de 4,8 Kbit/s. A cuarto de velocidad, se transmiten 40
bits de datos de vocodificador junto con 8 bits de cola para una
velocidad binaria efectiva de 2,4 Kbit/s. Por último, a octavo de
velocidad, se transmiten 16 bits de datos de vocodificador junto
con 8 bits de cola para una velocidad binaria efectiva de 1,2
Kbit/s.
La solicitud de patente U.S. en trámite nº de
serie 07/543.496, presentada el 25 de junio de 1990 y titulada
"SYSTEM AND METHOD FOR GENERATING SIGNAL WAVEFORMS IN A CDMA
CELLULAR TELEPHONE SYSTEM" (Sistema y procedimiento para generar
formas de onda de señales en un sistema telefónico celular CDMA),
concedida al cesionario de la presente invención, proporciona más
información acerca de la modulación empleada en un sistema CDMA en
el que se empleará el vocodificador de la presente invención. En
este sistema, a velocidades diferentes de la completa, se utiliza
un modelo en el que los bits de datos se organizan en grupos,
estando los grupos de bits situados de forma pseudoaleatoria dentro
de la trama de transmisión de datos de 20 ms. Debe sobrentenderse
que es posible emplear con facilidad otras velocidades de tramas y
representaciones de bits aparte de las presentadas con fines
ilustrativos aquí, en relación con la ejecución del vocodificador y
el sistema CDMA, para que de este modo queden disponibles otras
ejecuciones para el vocodificador y otras aplicaciones del
sistema.
En el sistema CDMA, y también aplicable a otros
sistemas, el subsistema del procesador 238 puede interrumpir de una
trama a otra la transmisión de datos de vocodificador para
transmitir otros datos como, por ejemplo, datos de señalización u
otros datos de información no vocal. Este tipo particular de
situación de transmisión se denomina
"espacio-ráfaga". El subsistema del procesador
238 en esencia sustituye los datos de vocodificador por los datos
de transmisión deseados para la trama.
Puede plantearse otra situación en la que se
desea transmitir tanto datos de vocodificador como otros datos
durante la misma trama de transmisión de datos. Este tipo
particular de situación de transmisión se denomina
"atenuación-ráfaga". En una transmisión de
"atenuación-ráfaga", el vocodificador recibe
mandatos de límite de velocidad que fijan la velocidad final del
vocodificador en la velocidad deseada, por ejemplo, media
velocidad. Los datos del vocodificador codificado a media velocidad
se proporcionan al subsistema del procesador 238, que inserta los
datos adicionales junto con los datos de vocodificador para la
trama de transmisión de datos.
Una función adicional proporcionada para enlaces
telefónicos dúplex completo es el interbloqueo de velocidad. Si una
dirección del enlace está transmitiendo a la velocidad de
transmisión más alta, entonces la otra dirección del enlace es
obligada a transmitir a la velocidad más baja. Incluso a la
velocidad más baja, queda disponible suficiente inteligibilidad
para que el hablante activo se dé cuenta de que ha sido
interrumpido y deje de hablar, permitiendo de ese modo que la otra
dirección del enlace asuma el papel de hablante activo. Además, si
el hablante activo continúa hablando durante un intento de
interrupción, probablemente no perciba una degradación de la calidad
porque su propia voz "interfiere" en la capacidad de percibir
calidad. De nuevo, utilizando los mandatos de límite de velocidad,
el vocodificador puede adaptarse a la codificación vocal de la voz
a una velocidad inferior a la normal.
Debe sobrentenderse que los mandatos de límite de
velocidad pueden utilizarse para establecer la velocidad máxima del
vocodificador en una velocidad inferior a la velocidad completa
cuando se necesita capacidad adicional en el sistema CDMA. En un
sistema CDMA en el que se utiliza un espectro de frecuencias común
para la transmisión, la señal de un usuario se muestra como una
interferencia para los otros usuarios del sistema. La capacidad de
usuarios del sistema se ve pues limitada por la interferencia total
ocasionada por los usuarios del sistema. A medida que aumenta el
nivel de interferencias, normalmente debido a un aumento de usuarios
en el sistema, los usuarios experimentan una degradación de la
calidad a causa del incremento de las interferencias.
La contribución de cada usuario a las
interferencias del sistema CDMA es una función de la velocidad de
transmisión de datos de los usuarios. Adaptando el vocodificador
para la codificación de voz a una velocidad inferior a la normal,
los datos codificados se transmiten a la correspondiente velocidad
de transmisión de datos reducida, disminuyendo de ese modo el nivel
de interferencias ocasionado por el usuario. Por lo tanto, la
capacidad del sistema puede aumentarse de forma considerable
mediante la codificación vocal a una velocidad más baja. Cuando la
demanda del sistema aumenta, los vocodificadores de los usuarios
pueden ser controlados por el controlador del sistema o estación de
base de la célula para reducir la velocidad de codificación. La
calidad del vocodificador determina que exista muy poca, aunque
alguna, diferencia perceptible entre la voz codificada a velocidad
completa y a media velocidad. Por consiguiente, el efecto sobre la
calidad de las comunicaciones entre los usuarios del sistema cuando
la voz se somete a codificación vocal a velocidad baja, por
ejemplo, a media velocidad, es menos importante que el ocasionado
por un nivel creciente de interferencias resultante de un número
mayor de usuarios en el sistema.
Por consiguiente, pueden emplearse diversos
modelos para establecer límites de velocidad de vocodificador
individuales para velocidades de codificación de voz inferiores a
las normales. Por ejemplo, todos los usuarios de una célula pueden
ser controlados para codificar voz a media velocidad. Dicha acción
reduce considerablemente las interferencias del sistema, con un
efecto insignificante sobre la calidad de las comunicaciones entre
los usuarios, a la vez que proporciona un considerable aumento de
capacidad para usuarios adicionales. Hasta que el total de
interferencias del sistema no haya aumentado hasta el nivel de
degradación debido a los usuarios adicionales, éstas no incidirán
en la calidad de las comunicaciones entre los usuarios.
Como se ha indicado anteriormente, el codificador
incluye una copia del decodificador para aplicar la técnica de
análisis por síntesis a la codificación de las tramas de las
muestras de voz. Como se ilustra en la Figura 7, el decodificador
234 recibe los valores L, b, I y G ya sea por medio del subsistema
de empaquetamiento de datos 238, o bien por medio de la memoria
tampón de datos 222 para reconstruir la voz sintetizada y
compararla con la voz de entrada. Las salidas del decodificador son
los valores M_{p},M_{a} y M_{w} descritas anteriormente. La
utilización del decodificador 234 en el codificador y en la
reconstrucción de la voz sintetizada en el otro extremo del canal
de transmisión se describirá conjuntamente en relación con las
Figuras 19-24.
La Figura 19 es un diagrama de flujo para un
ejemplo de ejecución del decodificador. Debido a la estructura común
del decodificador ejecutado en el codificador y el ejecutado en el
receptor, dichas ejecuciones se describen de forma conjunta. La
descripción relativa a la Figura 19 se refiere principalmente al
decodificador del extremo del canal de transmisión, puesto que los
datos que allí se reciben deben procesarse previamente en el
decodificador, mientras que en el decodificador del codificador se
reciben los datos adecuados (velocidad, I, G, L y b) directamente
desde el subsistema de empaquetamiento de datos 238 o la memoria
tampón de datos 222. No obstante, la función básica del
decodificador es la misma tanto para la ejecución del codificador
como para la del decodificador.
Como se ha indicado en relación con la Figura 5,
para cada subtrama de libro de código, el vector de libro de código
indicado por el índice de libro de código I se extrae del libro de
código almacenado. El vector es multiplicado por la ganancia de
libro de código G y luego filtrado por el filtro de tonos de cada
subtrama de tono para obtener el residuo de formantes. Este residuo
de formantes es filtrado por el filtro de formantes y luego se hace
pasar por un postfiltro de formantes adaptativo y un postfiltro de
brillo, y por un control automático de ganancia (AGC), para generar
la señal de voz de salida.
Aunque la longitud de la subtrama de libro de
código y tono varía, la decodificación se lleva a cabo en bloques
de 40 muestras para facilitar la ejecución. En primer lugar, se
desempaquetan los datos comprimidos recibidos para convertirlos en
ganancias de libro de código, índices de libro de código, ganancias
de tono, retardos de tono y frecuencias LSP. Las frecuencias LSP
deben procesarse a través de sus respectivos cuantificadores
inversos y decodificadores DPCM como se ha descrito en relación con
la Figura 22. Del mismo modo, los valores de ganancia de libro de
código deben procesarse de forma parecida a las frecuencias LSP,
salvo en lo que respecta al descentramiento. Asimismo, los valores
de ganancia de tono se someten a cuantificación inversa. A
continuación, se proporcionan los parámetros de cada subtrama de
decodificación. En cada subtrama de decodificación, se necesitan 2
grupos de parámetros de libro de código (G e I), 1 grupo de
parámetros de tono (b y L) y 1 grupo de coeficientes LPC para
generar 40 muestras de salida. Las Figuras 20 y 21 ilustran
ejemplos de parámetros de decodificación de subtramas para las
diversas velocidades y otras condiciones de trama.
Para tramas de velocidad completa, existen 8
grupos de parámetros de libro de código recibidos y 4 grupos de
parámetros de tono recibidos. Las frecuencias LSP se interpolan
cuatro veces para proporcionar 4 grupos de frecuencias LSP. Los
parámetros recibidos y la correspondiente información de subtramas
se enumeran en la Figura 20a.
Para tramas de media velocidad, cada grupo de los
cuatro parámetros de libro de código recibidos se repite una vez,
cada grupo de los dos parámetros de tono recibidos se repite una
vez. Las frecuencias LSP se interpolan tres veces para proporcionar
4 grupos de frecuencias LSP. Los parámetros recibidos y la
correspondiente información de subtramas se enumeran en la Figura
20b.
Para tramas de cuarto de velocidad, cada grupo de
los dos parámetros de libro de código recibidos se repite cuatro
veces, y el grupo de parámetros de tono también se repite cuatro
veces. Las frecuencias LSP se interpolan una vez para proporcionar
2 grupos de frecuencias LSP. Los parámetros recibidos y la
correspondiente información de subtramas se enumeran en la Figura
20c.
Para tramas de octavo de velocidad, el grupo de
parámetros de libro de código recibido se utiliza para toda la
trama. No hay ningún parámetro de tono presente para tramas de
octavo de velocidad y la ganancia de tono simplemente se establece
en cero. Las frecuencias LSP se interpolan una vez para
proporcionar 1 grupo de frecuencias LSP. Los parámetros recibidos y
la correspondiente información de subtramas se enumeran en la Figura
20d.
A veces, los paquetes de voz pueden dejarse en
blanco para que la célula CDMA o estación móvil transmita
información de señalización. Cuando el vocodificador recibe una
trama en blanco, éste continúa con una ligera modificación en los
parámetros de la trama anterior. La ganancia de libro de código se
establece en cero. El retardo y la ganancia de tono de la trama
anterior se utilizan como retardo y ganancia de tono de la trama
actual, pero la ganancia está limitada a un valor uno o inferior.
Las frecuencias LSP de la trama anterior se utilizan tal cual, sin
interpolación. Debe observarse que el extremo de codificación y el
extremo de decodificación todavía siguen sincronizados y que el
vocodificador puede recuperarse de una trama en blanco muy
rápidamente. Los parámetros recibidos y la correspondiente
información de subtramas se enumeran en la Figura 21a.
En caso de que una trama se pierda debido a un
error de canal, el vocodificador intenta enmascarar dicho error
manteniendo una fracción de la energía de la trama anterior y
efectuando una transición suave hacia el ruido de fondo. En este
caso, la ganancia de tono se establece en cero, se selecciona un
libro de código aleatorio utilizando el índice de libro de código
de la trama anterior más 89 y la ganancia de libro de código es 0,7
veces la ganancia de libro de código de la subtrama anterior. Debe
observarse que el número 89 no se utiliza por ningún motivo
concreto, sino que constituye sólo una forma conveniente de
seleccionar un vector de libro de código pseudoaleatorio. Las
frecuencias LSP de la trama anterior son obligadas a disminuir
hacia sus valores descentrados según:
(47)\omega
_{i} = 0,9 \ ( \omega _{i} \ anterior-valor \ del \
descentramiento \ de \ \omega _{i}) \ + \ valor \ del \
descentramiento \ de \ \omega
_{i}
Los valores de descentramiento de las frecuencias
LSP se muestran en la Tabla 5. Los parámetros recibidos y la
correspondiente información de subtramas se enumeran en la Figura
21b.
Si no puede determinarse la velocidad en el
receptor, el paquete se rechaza y se declara una operación de
borrado. No obstante, si el receptor determina que es muy probable
que la trama se haya transmitido a velocidad completa, aunque con
errores, se emprende la acción descrita a continuación. Como se ha
descrito anteriormente para velocidad completa, los bits más
sensibles perceptivamente de los datos del paquete de voz
comprimida son protegidos mediante una CRC interna. En la zona de
decodificación, se calcula el síndrome como el resto de dividir el
vector recibido por g(x), de la ecuación (46). Si el
síndrome no indica ningún error, el paquete se acepta sin tener en
cuenta el estado del bit de paridad global. Si el síndrome indica un
error, el error se corrige si el estado del bit de paridad global
no es de verificación. Si el síndrome indica más de un error, el
paquete se rechaza. Si se produce un error incorregible en este
bloque, el paquete se rechaza y se declara una operación de borrado.
En otros casos, la ganancia de tono se establece en cero, pero el
resto de parámetros se utiliza a medida que se reciben con
correcciones, como se ilustra en la Figura 21c.
Los postfiltros utilizados en esta ejecución se
describieron por primera vez en el documento
"Real-Time Vector APC Speech Coding At 4800 BPS
with Adaptive postfiltering" ("Codificación de voz CPA
vectorial en tiempo real a 4800 bits/s con postfiltrado
adaptativo") de J.H. Chen et al., Proc. ICASSP, 1987.
Puesto que los formantes de voz son perceptivamente más
importantes que los valles espectrales, el postfiltro refuerza
ligeramente los formantes para mejorar la calidad perceptiva de la
voz codificada. Esto se lleva a cabo escalando los polos del filtro
de síntesis de formantes radialmente hacia el origen. No obstante,
un postfiltro todo polos por lo general introduce una inclinación
espectral que da por resultado la amortiguación de la voz filtrada.
La inclinación espectral de este postfiltro todo polos se reduce
añadiendo ceros que tengan los mismos ángulos de fase que los
polos, pero radios más pequeños, dando por resultado un postfiltro
de la siguiente forma:
(48)H(z) =
\frac{A(z/ \rho )}{A(z/ \sigma )}
\hskip0.8cm0 < \rho < \sigma < 1
siendo A(z) el filtro de
predicción de formantes y los valores \rho y \sigma los factores
de escala establecidos en 0,5 y 0,8,
respectivamente.
Se añade un filtro de brillo adaptativo para
compensar más la inclinación espectral introducida por el
postfiltro de formantes. El filtro de brillo es de la siguiente
forma:
(49)B(z) = \frac{1- \kappa
z^{-1}}{1+ \kappa
z^{-1}}
siendo determinado el valor de
\kappa (el coeficiente de este filtro de una toma) mediante el
valor medio de las frecuencias LSP que proporciona un valor
aproximado del cambio en la inclinación espectral de
A(z).
Para evitar desplazamientos grandes de la
ganancia como consecuencia del postfiltrado, se ejecuta un bucle AGC
para escalar la salida de voz de forma que tenga aproximadamente la
misma energía que la voz que no ha sido postfiltrada. El control de
ganancia se lleva a cabo dividiendo la suma de los cuadrados de las
40 muestras introducidas en el filtro por la suma de los cuadrados
de las 40 muestras extraídas del filtro para obtener la ganancia
inversa del filtro. A continuación, se procede al suavizado de la
raíz cuadrada de este factor de ganancia:
(50)\beta \
suavizado = 0,2 \ \beta \ actual \ + \ 0,98 \ \beta \
anterior
y a continuación la salida del
filtro se multiplica por esta ganancia inversa suavizada para
generar la voz de
salida.
En la Figura 19, los datos del canal junto con la
velocidad, ya sean transmitidos con los datos o bien obtenidos por
otros medios, se proporcionan al subsistema de empaquetamiento de
datos 700. En un ejemplo de ejecución para un sistema CDMA, una
decisión de velocidad que puede obtenerse a partir de la tasa de
errores son los datos recibidos cuando se decodifican a cada una de
las diferentes velocidades. En el subsistema de desempaquetamiento
de datos 700, a velocidad completa, se lleva a cabo una CRC de
errores, siendo el resultado de esta verificación proporcionado al
subsistema de desempaquetamiento de datos de subtramas 702. El
subsistema 700 proporciona una indicación de las condiciones de
trama anómalas como, por ejemplo, las tramas en blanco, el borrado
de tramas o las tramas erróneas con datos aprovechables al
subsistema 702. El subsistema 700 proporciona la velocidad junto con
los parámetros I, G, L y b de la trama al subsistema 702. Cuando se
proporcionan los valores de índice I y ganancia G de libro de
código, el bit de signo del valor de ganancia se verifica en el
subsistema 702. Si el bit de signo es negativo, se resta el valor 89
(módulo 128) del índice de libro de código asociado. Además, en el
subsistema, la ganancia de libro de código se somete a
cuantificación inversa y a codificación DPCM, mientras que la
ganancia de tono se somete a cuantificación inversa.
Asimismo, el subsistema 700 proporciona la
velocidad y las frecuencias LSP al subsistema de cuantificación
inversa/interpolación LSP 704. El subsistema 700 proporciona además
una indicación de trama en blanco, de borrado de trama o de trama
errónea con datos aprovechables al subsistema 704. El contador de
subtramas de decodificación 706 proporciona una indicación del valor
del contador de subtramas i y j a los subsistemas 702 y 704.
En el subsistema 704, las frecuencias LSP son
inversamente cuantificadas e interpoladas. La Figura 22 ilustra una
ejecución de la parte de cuantificación inversa del subsistema 704,
siendo la parte de interpolación prácticamente idéntica a la
descrita en relación con la Figura 12. En la Figura 22, se muestra
la parte de cuantificación inversa del subsistema 704 que consiste
en el cuantificador inverso 750, de construcción idéntica a la del
cuantificador inverso 468 de la Figura 12 y funcionamiento parecido.
La salida del cuantificador inverso 750 se proporciona como entrada
al sumador 752. La otra entrada del sumador 752 se proporciona como
salida del multiplicador 754. La salida del sumador 752 se
proporciona al registro 756, en el que se almacena y proporciona
para su multiplicación con la constante 0,9 en el multiplicador 754.
La salida del sumador 752 también se proporciona al sumador 758, en
el que el valor del descentramiento se suma nuevamente a la
frecuencia LSP. La ordenación de las frecuencias LSP es asegurada
por la lógica 760 que obliga a las frecuencias LSP a tener una
separación mínima. Por lo general, la necesidad de forzar la
separación no se plantea a menos que se produzca un error en la
transmisión. A continuación, las frecuencias LSP se interpolan como
se ha descrito en relación con la Figura 13 y en relación con las
Figuras 20a- 20d y 21a-21c.
En relación otra vez con la Figura 19, la memoria
708 se acopla al subsistema 704 para almacenar las frecuencias LSP
de trama anterior, \omega_{i,f-1}, y puede
utilizarse también para almacenar los valores de descentramiento
b\omega_{i}. Estos valores de trama anterior se utilizan en la
interpolación para todas las velocidades. En condiciones de tramas
en blanco, borrado de tramas o tramas erróneas con datos
aprovechables, se utilizan las frecuencias LSP anteriores
\omega_{i,f-1} según el gráfico de las Figuras
21a-21c. En respuesta a una indicación de trama en
blanco del subsistema 700, el subsistema 704 recupera las
frecuencias LSP de trama anterior almacenadas en la memoria 708 para
utilizarlas en la trama actual. En respuesta a una indicación de
borrado de trama, el subsistema 704 otra vez recupera las
frecuencias LSP de trama anterior de la memoria 708 junto con los
valores de descentramiento para calcular las frecuencias LSP de la
trama actual como se ha descrito. Cuando se efectúa este cálculo,
el valor de descentramiento almacenado se resta de la frecuencia
LSP de la trama anterior en un sumador, siendo el resultado
multiplicado en el multiplicador por un valor constante de 0,9 y
siendo este resultado sumado en el sumador al valor de
descentramiento almacenado. En respuesta a una indicación de trama
errónea con datos aprovechables, las frecuencias LSP se interpolan
de la misma forma que para velocidad completa si la CRC resulta
satisfactoria.
Las frecuencias LSP se proporcionan al subsistema
de transformación LSP- LPC 710, en el que las frecuencias LSP
vuelven a convertirse en valores LPC. El subsistema 710 es
prácticamente idéntico a los subsistemas de transformación
LSP-LPC 218 y 228 de la Figura 7 descritos en
relación con la Figura 13. Los coeficientes LPC \alpha_{i} se
proporcionan a continuación al filtro de formantes 714 y al
postfiltro de formantes 716. Asimismo, se calcula el valor medio de
las frecuencias LSP a través de la subtrama en el subsistema
promediador LSP 712 y se proporciona al filtro de brillo adaptativo
718 como valor \kappa.
El subsistema 702 recibe los parámetros I, G, L y
b para la trama desde el subsistema 700, junto con la velocidad o la
indicación de condición de trama anómala. Asimismo, el subsistema
702 recibe del contador de subtramas 706 los recuentos j para cada
recuento i de cada subtrama de decodificación 1-4.
El subsistema 702 se acopla también a la memoria 720 que almacena
los valores de trama anterior de G, I, L y b, para utilizarlos en
condiciones de tramas anómalas. El subsistema 702, en condiciones
de tramas normales, salvo en octavo de velocidad, proporciona el
valor de índice de libro de código I_{j} al libro de código 722,
el valor de ganancia de libro de código G_{j} al multiplicador
724, y los valores de retardo L y ganancia b de tono al filtro de
tonos 726, según la Figura 20a-20d. Para octavo de
velocidad, puesto que no se envía ningún valor para el índice de
libro de código, se proporciona una simiente de paquete, que es el
valor de parámetro de 16 bits (Figura 2d) para octavo de velocidad,
al libro de código 722 junto con una indicación de velocidad. Para
condiciones de tramas anómalas, los valores se proporcionan desde el
subsistema 702 según las Figuras 21a-21c. Además,
para octavo de velocidad, se proporciona una indicación al libro de
código 722 como la descrita en relación con la Figura 23.
En respuesta a una indicación de trama en blanco
del subsistema 700, el subsistema 702 recupera los valores de
retardo L y de ganancia b de tono de la trama anterior, aunque aquí
la ganancia está limitada al valor uno o inferior, almacenados en
la memoria 708, para utilizarlos en las subtramas de decodificación
de la trama actual. Además, no se proporciona ningún índice de
libro de código I y la ganancia de libro de código G se establece
en cero. En respuesta a una indicación de borrado de trama, el
subsistema 702 recupera también el índice de libro de código de
subtrama de la trama anterior de la memoria 720 y suma, en el
sumador, el valor 89. La ganancia de libro de código de subtrama de
trama anterior se multiplica en el multiplicador por la constante
0,7, para generar los respectivos valores G de las subtramas. No se
proporciona ningún valor de retardo de tono y la ganancia de tono
se establece en cero. En respuesta a una indicación de trama
errónea con datos aprovechables, el índice y la ganancia de libro
de código se utilizan como en una trama de velocidad completa,
siempre que la CRC resulte satisfactoria, y no se proporciona
ningún valor de retardo de tono y la ganancia de tono se establece
en cero.
Como se ha descrito en relación con el
decodificador del codificador de la técnica de análisis por
síntesis, el índice de libro de código I se utiliza como dirección
inicial para el valor de libro de código a proporcionar al
multiplicador 724. El valor de ganancia de libro de código se
multiplica en el multiplicador 724 por el valor de salida del libro
de código 722, siendo el resultado proporcionado al filtro de tonos
726. El filtro de tonos 726 utiliza los valores de retardo L y
ganancia b de tono de entrada para generar el residuo de formantes
que es proporcionado al filtro de formantes 714. En el filtro de
formantes 714, los coeficientes LPC se utilizan para filtrar el
residuo de formantes y reconstruir la voz. En el decodificador del
receptor, la voz reconstruida es filtrada nuevamente por el
postfiltro de formantes 716 y el filtro de brillo adaptativo 718. El
bucle AGC 728 se utiliza en la salida del filtro de formantes 714 y
del postfiltro de formantes 716, siendo la salida de los mismos
multiplicada en el multiplicador 730 por la salida del filtro de
brillo adaptativo 718. La salida del multiplicador 730 es la voz
reconstruida que luego se convierte en voz analógica utilizando
técnicas conocidas y se presenta al oyente. En el decodificador del
codificador, el filtro de ponderación perceptiva se coloca en la
salida de éste para actualizar sus memorias.
En la Figura 22, se ilustran más detalles de la
ejecución del propio decodificador. El codificador 722 de la Figura
22 consiste en una memoria 750 parecida a la descrita con
referencia a la Figura 17. No obstante, con fines explicativos, en
la Figura 22, se ilustra un planteamiento ligeramente diferente
para la memoria 750 y el direccionamiento de la misma. El libro de
código 722 consiste además en un conmutador 752, un multiplexor 753
y un generador de números pseudoaleatorios (PN) 754. El conmutador
752 es sensible al índice de libro de código para señalar la
ubicación de la dirección del índice de la memoria 750, como se
indicó con referencia a la Figura 17. La memoria 750 es una memoria
circular, en la que el conmutador 752 señala la ubicación de memoria
inicial, siendo desplazados los valores a través de la memoria para
su salida. Los valores de libro de código se obtienen de la memoria
750 a través del conmutador 752 como entrada para el multiplexor
753. El multiplexor 753 es sensible a la velocidad completa, media
velocidad y cuarto de velocidad para proporcionar una salida de los
valores proporcionados, a través del conmutador 752, al amplificador
de ganancia de libro de código, el multiplicador 724. El
multiplexor 753 también es sensible a la indicación de octavo de
velocidad para seleccionar la salida del generador PN 754 como
salida del libro de código 722 para el multiplicador 724.
Para mantener voz de alta calidad en la
codificación CELP, el codificador y el decodificador deben tener
los mismos valores almacenados en sus memorias de filtro internas.
Esto se lleva a cabo transmitiendo el índice de libro de código,
para que los filtros del decodificador y del codificador sean
excitados por la misma secuencia de valores. Sin embargo, para la
voz de calidad más alta, estas secuencias constan en su mayor parte
de ceros con algunos picos distribuidos entre éstos. Este tipo de
excitación no resulta óptima para la codificación de ruido de
fondo.
Cuando se codifica ruido de fondo, a la velocidad
de transmisión de datos más baja, puede ejecutarse una secuencia
pseudoaleatoria para excitar los filtros. Para asegurar que las
memorias de filtro sean iguales tanto en el codificador y como en
el decodificador, las dos secuencias pseudoaleatorias deben ser
iguales. Es necesario transmitir de cualquier manera una simiente
al decodificador del receptor. Puesto que no existen bits
adicionales que puedan utilizarse para enviar la simiente, los bits
del paquete transmitido pueden utilizarse como simiente, como si
constituyeran un número. Es posible llevar a cabo esta técnica,
debido a que, a velocidad baja, se utiliza exactamente la misma
estructura de análisis por síntesis CELP para determinar la ganancia
e índice de libro de código. La única diferencia es que el índice
de libro de código se desecha y, en cambio, las memorias de filtro
del codificador se actualizan utilizando una secuencia
pseudoaleatoria. Por consiguiente, la simiente para la excitación
puede ser determinada una vez efectuado el análisis. Para asegurar
que los propios paquetes no se desplacen de forma iterativa y
periódica entre un grupo de configuraciones binarias, se insertan
cuatro bits aleatorios en el paquete de octavo de velocidad en lugar
de los valores de índice de libro de código. Por lo tanto, la
simiente del paquete es el valor de 16 bits indicado en la Figura
2d.
El generador PN 754 se construye utilizando
técnicas bien conocidas y puede ejecutarse mediante diversos
algoritmos. El algoritmo empleado es del tipo descrito en el
artículo "DSP chips can produce random numbers using proven
algorithm" ("Los chips DSP pueden generar números aleatorios
utilizando el algoritmo comprobado") de Paul Mennen, EDN, 21 de
enero de 1991. El paquete de bits transmitido se utiliza como
simiente (del subsistema 700 de la Figura 18) para generar la
secuencia. En una ejecución, la simiente se multiplica por el valor
521, sumándose el valor 259 al resultado. A partir del valor
resultante, los bits menos significativos se utilizan como un
número de 16 bits con signo. A continuación, este valor se utiliza
como simiente para generar el siguiente valor de libro de código.
La secuencia generada por el generador PN se normaliza para que
tenga una varianza de 1.
Cada valor obtenido del libro de código 722 se
multiplica en el multiplicador 724 por la ganancia de libro de
código G proporcionada durante la subtrama de decodificación. Este
valor se proporciona como entrada al sumador 756 del filtro de
tonos 726. El filtro de tonos 726 consiste además en el
multiplicador 758 y la memoria 760. El retardo de tono L determina
la posición de una toma de la memoria 760 que es pasada al
multiplicador 758. La salida de la memoria 760 se multiplica en el
multiplicador 758 por el valor de ganancia de tono b, siendo el
resultado pasado al sumador 756. La salida del sumador 756 se
proporciona a una entrada de la memoria 760 que es una serie de
elementos de retardo como, por ejemplo, un registro de
desplazamiento. Los valores se desplazan a través de la memoria 760
(en la dirección indicada por la flecha) y se proporcionan a la
salida de toma seleccionada determinada por el valor de L. Puesto
que los valores se desplazan a través de la memoria 760, los valores
de antigüedad superior a 143 desplazamientos se rechazan. La salida
del sumador 756 también se proporciona como entrada al filtro de
formantes 714.
La salida del sumador 756 se proporciona a una
entrada del sumador 762 del filtro de formantes 714. El filtro de
formantes 714 consiste además en el grupo de multiplicadores
764a-764j y la memoria 766. La salida del sumador
762 se proporciona como entrada a la memoria 766 que también está
construida como una serie de elementos de retardo con tomas como,
por ejemplo, un registro de desplazamiento. Los valores se
desplazan por la memoria 766 (en la dirección indicada por la
flecha) y se descartan por el extremo. Cada elemento tiene una toma
que proporciona el valor almacenado como salida al correspondiente
multiplicador de los multiplicadores 764a-764j.
Cada uno de los multiplicadores 764a-764j recibe
también el correspondiente coeficiente LPC de los coeficientes LPC
\alpha_{1} - \alpha_{10} para multiplicarlo por la salida
de la memoria 766. La salida del sumador 762 se proporciona como
salida del filtro de formantes 714.
La salida del filtro de formantes 714 se
proporciona como entrada al postfiltro de formantes 716 y al
subsistema AGC 728. El postfiltro de formantes 716 consiste en los
sumadores 768 y 770, junto con la memoria 772 y los multiplicadores
774a-774j, 776a-776j,
780a-780j y 782a-782j. A medida que
los valores se desplazan por la memoria 772, se proporcionan por
las correspondientes tomas para su multiplicación por los valores
de coeficientes LPC escalados y su suma en los sumadores 768 y 770.
La salida del postfiltro de formantes 716 se proporciona como
entrada al filtro de brillo adaptativo 718.
El filtro de brillo adaptativo 718 consiste en
los sumadores 784 y 786, los registros 788 y 790 y los
multiplicadores 792 y 794. La Figura 24 es un gráfico que ilustra
las características del filtro de brillo adaptativo. La salida del
postfiltro de formantes 716 se proporciona al sumador 784 como una
de sus entradas, mientras que la otra entrada procede de la salida
del multiplicador 792. La salida del sumador 784 es proporcionada
al registro 788, almacenada durante un ciclo y proporcionada durante
el siguiente ciclo a los multiplicadores 792 y 794, junto con el
valor -\kappa proporcionado por el promediador LSP 712 de la
Figura 19. La salida de los multiplicadores 792 y 794 se
proporciona a los sumadores 784 y 786. La salida del sumador 786 se
proporciona al subsistema AGC 728 y al registro de desplazamiento
790. El registro 790 se utiliza como línea de retardo para asegurar
la coordinación en los datos proporcionados por el filtro de
formantes 714 al subsistema AGC 728, y proporcionados al filtro de
brillo adaptativo 718 por medio del postfiltro de formantes
716.
El subsistema AGC 728 recibe los datos del
postfiltro de formantes 716 y del filtro de brillo adaptativo 718
para escalar la energía de voz de salida hasta aproximadamente la
energía de voz de entrada en el postfiltro de formantes 716 y el
filtro de brillo adaptativo 718. El subsistema AGC 728 consiste en
los multiplicadores 798, 800, 802 y 804, los sumadores 806, 808 y
810, los registros 812, 814 y 816, el divisor 818 y el elemento de
raíz cuadrada 820. La salida de 40 muestras del postfiltro de
formantes 716 se eleva al cuadrado en el multiplicador 798 y se
suma en un acumulador, que consiste en el sumador 806 y el registro
812, para generar el valor "x". Del mismo modo, la salida de
40 muestras del filtro de brillo adaptativo 718, tomada antes del
registro 790, se eleva al cuadrado en el multiplicador 800 y se
suma en un acumulador, que consiste en el sumador 808 y el registro
814, para generar el valor "y". El valor "y" es dividido
por el valor "x" en el divisor 816 para dar la ganancia inversa
de los filtros. La raíz cuadrada del factor de ganancia inversa es
obtenida en el elemento 818, siendo el resultado sometido a
suavizado. La operación de suavizado se lleva a cabo multiplicando
el valor actual de ganancia G por el valor constante 0,02 en el
multiplicador 802, siendo este resultado sumado en el sumador 810
al resultado de multiplicar por 0,98 la ganancia previa calculada
utilizando el registro 820 y el multiplicador 804. La salida del
filtro 718 se multiplica a continuación por la ganancia inversa
suavizada en el multiplicador 730 para proporcionar la voz
reconstruida de salida. La voz de salida se convierte luego en voz
analógica utilizando las diversas técnicas de conversión bien
conocidas para proporcionarla al usuario.
Debe sobrentenderse que la forma de realización
de la presente invención dada a conocer aquí es sólo un ejemplo de
forma de realización, y que pueden efectuarse variantes de la forma
de realización con funcionalidad equivalente. La presente invención
puede ejecutarse en un procesador de señales digitales bajo control
de un programa adecuado que proporciona la operación funcional dada
a conocer aquí para codificar las muestras de voz y decodificar la
voz codificada. En otras ejecuciones, la presente invención puede
adoptar la forma de realización de un circuito integrado para
aplicación específica (ASIC) utilizando técnicas muy conocidas de
integración a escala muy grande (VLSI).
La descripción anterior de las formas de
realización preferidas se proporciona para permitir a los expertos
en la materia la utilización de la presente invención. Las diversas
modificaciones a estas formas de realización resultarán muy
evidentes para los expertos en la materia, pudiéndose aplicar los
principios genéricos definidos aquí a otras formas de realización
sin utilizar la capacidad inventiva. Por lo tanto, la presente
invención no pretende limitarse a las formas de realización
mostradas en la presente memoria, sino que deben realizarse varias
modificaciones y cambios a la presente invención sin apartarse del
alcance de la presente invención como se define en las
reivindicaciones adjuntas.
Claims (37)
1. Método para la compresión de señal de voz,
mediante la codificación de velocidad variable de tramas de
muestras de voz digitalizadas, que comprende las etapas
siguientes:
determinar un nivel de actividad de voz para una
trama de muestras de voz digitalizadas;
seleccionar una velocidad de codificación a
partir de un conjunto de velocidades sobre la base de dicho nivel
determinado de actividad de voz para dicha trama;
codificar dicha trama según un formato de
codificación de un conjunto de formatos de codificación para dicha
velocidad seleccionada en el que cada velocidad presenta un formato
de codificación diferente correspondiente y en el que cada formato
de codificación proporciona una diferente pluralidad de señales de
parámetros que representan dichas muestras de voz digitalizadas
(s(n)9 según un modelo de voz; y
generar para dicha trama un paquete de datos de
dichas señales de parámetros,
caracterizado porque:
proporciona un control ligado a la velocidad que
indica una velocidad de codificación preseleccionada para dicha
trama; y
modifica dicha velocidad de codificación
seleccionada para proporcionar dicha velocidad de codificación
preseleccionada para codificar dicha trama a dicha velocidad de
codificación preseleccionada.
2. Método según cualquiera de las
reivindicaciones anteriores, en el que dicha etapa de determinación
de dicho nivel de actividad de voz de trama comprende las etapas
siguientes:
medir la actividad de voz en dicha trama de
muestras de voz digitalizadas;
comparar dicha actividad de voz medida con por lo
menos un nivel umbral de actividad de voz de un conjunto
predeterminado de niveles umbral de actividad; y
ajustar de forma adaptable en respuesta a dicha
comparación por lo menos uno de dicho por lo menos un nivel umbral
de actividad de voz con respecto a un nivel de actividad de una
trama anterior de muestras de voz digitalizadas.
3. Método según la reivindicación 1 ó 2, en el
que dicha velocidad preseleccionada es inferior a una velocidad
máxima predeterminada, comprendiendo además dicho método las etapas
siguientes:
proporcionar un paquete de datos adicional; y
combinar dicho paquete de datos con dicho paquete
de datos adicional dentro de una trama de transmisión para
transmisión.
4. Método según cualquiera de las
reivindicaciones anteriores, en el que dicha etapa de provisión de
dicho paquete de datos de dichas señales de parámetro comprende:
generar un número variable de bits para
representar las señales vectoriales de coeficiente predictivo
lineal (LPC) de dicha trama de muestras de voz digitalizadas, en el
que dicho número variable de bits que representa dichas señales
vectoriales LPC está determinado por dicho nivel de actividad de
voz apreciado;
generar un número variable de bits para
representar señales vectoriales tono de dicha trama de muestras de
voz digitalizadas, en el que dicho número variable de bits que
representa dichas señales vectoriales de tono está determinado por
dicho nivel de actividad de voz apreciado; y
generar un número variable de bits para
representar señales vectoriales de excitación del libro de códigos
de dicha trama de muestras de voz digitalizadas, en el que dicho
número variable de bits que representa dichas señales vectoriales de
excitación del libro de códigos está determinado por dicho nivel de
actividad de voz apreciado.
5. Método según cualquiera de las
reivindicaciones anteriores, en el que dicha etapa de codificación
de dicha trama comprende:
generar para dicha trama un número variable de
coeficientes de predicción lineales en el que dicho número variable
de dichos coeficientes de predicción lineales está determinado por
dicha velocidad de codificación seleccionada;
generar para dicha trama un número variable de
coeficientes de tono en el que dicho número variable de dichos
coeficientes de tono está determinado por dicha velocidad de
codificación seleccionada; y
generar para dicha trama un número variable de
valores de excitación del libro de códigos en el que dicho número
variable de dichos valores de excitación de libro de códigos está
determinado por dicha velocidad de codificación seleccionada.
6. Método según cualquiera de las
reivindicaciones anteriores, en el que dicha etapa de determinación
de un nivel de actividad de voz comprende la suma de los cuadrados
de los valores de dichas muestras de voz digitalizadas.
7. Método según la reivindicación 6, que
comprende además la etapa de generación de bits de protección de
error para dicho paquete de datos.
8. Método según la reivindicación 7, en el que
dicha etapa de generación de bits de protección de error para dicho
paquete de datos en la que el número de dichos bits de protección
está determinado por dicha trama de nivel de actividad de voz.
9. Método según la reivindicación 2, en el que
dicha etapa de ajuste adaptable de los niveles umbral de actividad
de voz comprende las etapas siguientes:
comparar dicha actividad de voz apreciada a dicho
por lo menos uno de los umbrales de actividad de voz y aumentar de
forma creciente dicho por lo menos uno de los umbrales de actividad
de voz hacia el nivel de dicha actividad de voz de trama cuando
dicha actividad de voz de trama excede dicho por lo menos uno de
dichos umbrales de actividad de voz; y
comparar dicha actividad de voz apreciada con
dicho por lo menos uno de los umbrales de actividad de voz y
disminuir dicho por lo menos uno de los umbrales de actividad de
voz al nivel de dicha actividad de voz de trama cuando dicha
actividad de voz de trama es inferior a dicho por lo menos uno de
los umbrales de actividad de voz.
10. Método según la reivindicación 9, en el que
dicha etapa de selección de una velocidad de codificación está
determinada por una señal de velocidad externa.
11. Método según la reivindicación 7, en el que
dicha etapa de generación de protección de error para dicho paquete
de datos comprende además determinar los valores de dichos bits de
protección de error según un código cíclico de bloques.
12. Método según cualquiera de las
reivindicaciones anteriores, que comprende además la etapa de
premultiplicación de dichas muestras de voz digitalizadas
(s(n)) mediante una función de división en ventanas
predeterminada.
13. Método según cualquiera de las
reivindicaciones anteriores, que comprende además la etapa de
conversión de dichos coeficientes LPC a valores de pares de líneas
espectrales (LSP).
14. Método según cualquiera de las
reivindicaciones anteriores, en el que dicha trama de entrada de
muestras digitalizadas comprende valores digitalizados para
aproximadamente veinte segundos de voz.
15. Método según cualquiera de las
reivindicaciones anteriores, en el que dicha trama de muestras
digitalizadas comprende aproximadamente 160 muestras
digitalizadas.
16. Método según cualquiera de las
reivindicaciones anteriores, en el que dicho paquete de datos de
salida comprende:
ciento setenta y un bits que comprenden cuarenta
bits para los datos LPC, cuarenta bits para los datos de tono,
ochenta bits para los datos vectoriales de excitación y once bits
para la protección de error cuando dicha velocidad de datos de
salida es la velocidad completa;
ochenta bits que comprenden veinte bits para la
información de LPC, veinte bits para la información de tono y
cuarenta bis para los datos vectoriales de excitación cuando la
velocidad de los datos de salida es la mitad de la velocidad;
cuarenta bits que comprenden diez bits para la
información de LPC, diez bits para la información de tono y veinte
bits para los datos vectoriales de excitación cuando dicha
velocidad de datos salida es un cuarto de la velocidad; y
dieciséis bits que comprenden diez bits para la
información de LPC y seis bits para la información del vector de
excitación cuando la velocidad de datos de salida es un octavo de
la velocidad.
17. Aparato para la compresión de una señal
acústica en datos de velocidad variable que comprende:
medios (52) para determinar un nivel de actividad
de voz para una trama de entrada (10) de muestras digitalizadas de
dicha señal acústica;
\newpage
medios (90, 294, 296) para la selección de una
velocidad de datos de salida a partir de un conjunto predeterminado
de velocidades sobre la base de dicho nivel determinado de
actividad de voz en el interior de dicha trama;
medios (58, 104, 106, 108) para la codificación
de dicha trama según un formato de codificación de un conjunto de
formatos de codificación para dicha velocidad seleccionada para
proporcionar una pluralidad de señales de parámetros en el que cada
velocidad presenta un formato de codificación diferente con cada
formato de codificación proporcionando una pluralidad diferente de
señales de parámetro que representan dichas muestras de voz
digitalizadas (s(n)) según un modelo de voz; y
medios (114) para proporcionar a dicha muestra un
paquete de datos correspondiente (p(n)) a una velocidad de
datos que corresponde a dicha velocidad seleccionada,
caracterizado por:
medios para proporcionar un control ligado a la
velocidad que indica una velocidad de codificación preseleccionada
para dicha trama; y
medios para modificar dicha velocidad de
codificación seleccionada para proporcionar dicha velocidad de
codificación preseleccionada para codificar dicha trama y dicha
velocidad de codificación preseleccionada.
18. Aparato según la reivindicación 17, en el que
dicho paquete de datos comprende:
un número variable de bits para representar las
señales vectoriales LPC de dicha trama (10) de muestras de voz
digitalizadas (s(n)), en el que dicho número variable de
bits para la representación de dichas señales vectoriales LPC está
determinado por dicho nivel de actividad de voz;
un número variable de bits para representar
señales vectoriales de tono de dicha trama (10) de muestras de voz
digitalizadas (s(n)), en el que dicho número variable de
bits para la representación de dichas señales vectoriales de tono
está determinado por dicho nivel de actividad de voz; y
un número variable de bits para representar
señales vectoriales de excitación del libro de códigos de dicha
trama (10) de muestras de voz digitalizadas (s(n)), en el
que dicho número variable de bits para la representación de dichas
señales vectoriales de excitación del libro de códigos está
determinado por dicho nivel de actividad de voz.
19. Aparato según la reivindicación 17 ó 18, en
el que dichos medios para la determinación de dicho nivel de
actividad de voz comprenden:
medios (202) para la determinación de un valor
energético de dicha trama de entrada;
medios (204) para la comparación de dicha energía
de la trama de entrada con dicho por lo menos un umbral de
actividad de voz; y
medios (312) para proporcionar una indicación
cuando dicha actividad de trama de entrada excede de cada uno
correspondiente de dicho por lo menos un umbral de actividad de
voz.
20. Aparato según la reivindicación 20, que
comprende además medios para el ajuste de forma adaptable de dicho
por lo menos uno de dicho por lo menos un umbral de actividad de
voz.
21. Aparato según la reivindicación 17, en el que
dichos medios para la determinación de un nivel de actividad de voz
comprenden:
medios de elevación al cuadrado para elevar al
cuadrado dichas muestras de audio digitalizadas de una trama; y
medios de suma para sumar dichos cuadrados de las
muestras de audio digitalizadas de una trama.
22. Aparato según cualquiera de las
reivindicaciones 17, 18 ó 19, en el que dichos medios para la
determinación de un nivel de actividad de velocidad comprenden:
medios (50) para el cálculo de un conjunto de
coeficientes predictivos lineales para dicha trama de entrada de
las muestras digitalizadas de las señales acústicas; y
medios para determinar dicho nivel de actividad
de voz según por lo menos uno de dichos coeficientes predictivos
lineales.
23. Aparato según cualquiera de las
reivindicaciones 17 a 22, que comprende además medios (236, 238)
para proporcionar bits de protección de error para dicho paquete de
datos determinado por dicha velocidad de datos de salida
seleccionada.
\global\parskip0.950000\baselineskip
24. Aparato según la reivindicación 24, en el que
dichos medios (236, 238) para proporcionar bits de protección de
error proporcionan los valores de dichos bits de protección de
error según un código cíclico de bloques.
25. Aparato según cualquiera de las
reivindicaciones 17 a 24, que comprende además medios (208) para
convertir dichos coeficientes LPC en valores de pares de líneas
espectrales (LSP).
26. Aparato según cualquiera de las
reivindicaciones 17 a 25, en el que dicho conjunto de velocidades
comprende velocidad completa, la mitad de la velocidad, un cuarto
de velocidad y un octavo de velocidad.
27. Aparato según cualquiera de las
reivindicaciones 17 a 26, en el que dicho conjunto de velocidades
comprende 8 Kbps, 4 Kbps, 2 Kbps y 1 Kbps.
28. Aparato según la reivindicación 22, en el que
dichos medios para la determinación de un nivel de actividad de voz
determinan dicha energía mediante el cálculo de un conjunto de
coeficientes predictivos lineales para dicha trama de salida y
determinan dicho nivel de actividad de voz según por lo menos uno de
dichos coeficientes predictivos lineales.
29. Aparato según cualquiera de las
reivindicaciones 17 a 28, en el que dicha trama de entrada de las
muestras de voz digitalizadas comprende la voz digitalizada durante
veinte milisegundos aproximadamente.
30. Aparato según cualquiera de las
reivindicaciones 17 a 29, en el que dicha trama de entrada de las
muestras digitalizadas comprende 160 muestras digitalizadas.
31. Aparato según la reivindicación 37, en el que
dicho código cíclico de bloques funciona según un generador
polinómico de 1 + x^{3} + x^{5} + x^{6} + x^{8} + x^{9} +
x^{10}.
32. Aparato según cualquiera de las
reivindicaciones 17 a 31, que comprende además medios (52, 200)
para la premultiplicación de dichas muestras digitalizadas mediante
una función de división en ventanas predeterminada.
33. Aparato según la reivindicación 32, en el que
dicha función de división en ventanas predeterminada es una ventana
de Hamming.
34. Aparato según cualquiera de las
reivindicaciones 17 a 33, en el que dicho paquete de datos de
salida (p(n)) comprende:
un número variable de bits para representar
señales vectoriales LPC de dicha trama de muestras de voz
digitalizadas (s(n)), en el que dicho número variable de bits
para la representación de dichas señales vectoriales LPC está
determinado por dicho nivel de actividad de voz;
un número variable de bits para representar
señales vectoriales de tono de dicha trama de muestras de voz
digitalizadas (s(n)), en el que dicho número variable de
bits para la representación de dichas señales vectoriales de tono
está determinado por dicho nivel de actividad de voz; y
un número variable de bits para representar
señales vectoriales de excitación del libro de códigos de dicha
trama de muestras de voz digitalizadas (s(n)), en el que
dicho número variable de bits para la representación de dichas
señales vectoriales de excitación del libro de códigos está
determinado por dicho nivel de actividad de voz.
35. Aparato según la reivindicación 43, en el que
dicho paquete de datos de salida comprende además un número
variable de bits para la protección de error, en el que dicho
número variable de bits para la protección de error está determinado
por dicho nivel de actividad de voz.
36. Aparato según cualquiera de las
reivindicaciones 17 a 35, en el que dicho paquete de datos de
salida comprende:
ciento setenta y un bits que comprenden cuarenta
bits para los datos LPC, cuarenta bits para los datos de tono,
ochenta bits para los datos vectoriales de excitación y once bits
para la protección de error cuando dicha velocidad de datos de
salida es la velocidad completa;
ochenta bits que comprenden veinte bits para la
información de LPC, veinte bits para la información de tono y
cuarenta bits para los datos vectoriales de excitación cuando dicha
velocidad de datos de salida es la mitad de la velocidad;
cuarenta bits que comprenden diez bits para la
información de LPC, diez bits para la información de tono y veinte
bits para los datos vectoriales de excitación cuando dicha
velocidad de datos de salida es un cuarto de la velocidad; y
dieciséis bits que comprenden diez bits para la
información de LPC y seis bits para la información vectorial de
excitación cuando dicha velocidad de datos de salida es un octavo
de la velocidad.
37. Aparato según cualquiera de las
reivindicaciones 17 a 36, en el que dichos medios (90, 294, 296) de
selección de una velocidad de codificación están determinados por
una señal de velocidad externa.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US71366191A | 1991-06-11 | 1991-06-11 | |
US713661 | 1991-06-11 |
Publications (1)
Publication Number | Publication Date |
---|---|
ES2240252T3 true ES2240252T3 (es) | 2005-10-16 |
Family
ID=24866989
Family Applications (4)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
ES08016577T Expired - Lifetime ES2348319T3 (es) | 1991-06-11 | 1992-06-03 | Vocodificador de velocidad variable. |
ES01103641T Expired - Lifetime ES2225321T3 (es) | 1991-06-11 | 1992-06-03 | Aparaato y procedimiento para el enmascaramiento de errores en tramas de datos. |
ES92913505T Expired - Lifetime ES2166355T3 (es) | 1991-06-11 | 1992-06-03 | Vocodificador de velocidad variable. |
ES01103640T Expired - Lifetime ES2240252T3 (es) | 1991-06-11 | 1992-06-03 | Vocodificador de velocidad variable. |
Family Applications Before (3)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
ES08016577T Expired - Lifetime ES2348319T3 (es) | 1991-06-11 | 1992-06-03 | Vocodificador de velocidad variable. |
ES01103641T Expired - Lifetime ES2225321T3 (es) | 1991-06-11 | 1992-06-03 | Aparaato y procedimiento para el enmascaramiento de errores en tramas de datos. |
ES92913505T Expired - Lifetime ES2166355T3 (es) | 1991-06-11 | 1992-06-03 | Vocodificador de velocidad variable. |
Country Status (21)
Country | Link |
---|---|
US (3) | US5414796A (es) |
EP (8) | EP1107231B1 (es) |
JP (7) | JP3432822B2 (es) |
CN (8) | CN1091535C (es) |
AT (4) | ATE294441T1 (es) |
AU (3) | AU671952B2 (es) |
BR (1) | BR9206143A (es) |
CA (6) | CA2483296C (es) |
DE (4) | DE69232202T2 (es) |
DK (2) | DK1126437T3 (es) |
ES (4) | ES2348319T3 (es) |
FI (5) | FI120425B (es) |
HK (3) | HK1014796A1 (es) |
HU (1) | HU215861B (es) |
IL (4) | IL113986A (es) |
MX (1) | MX9202808A (es) |
NO (1) | NO319559B1 (es) |
RU (1) | RU2107951C1 (es) |
SG (1) | SG70558A1 (es) |
WO (1) | WO1992022891A1 (es) |
ZA (1) | ZA924082B (es) |
Families Citing this family (503)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7606575B2 (en) * | 1988-08-04 | 2009-10-20 | Broadcom Corporation | Remote radio data communication system with data rate switching |
US20010050943A1 (en) * | 1989-08-03 | 2001-12-13 | Mahany Ronald L. | Radio frequency communication network having adaptive communication parameters |
US6693951B1 (en) | 1990-06-25 | 2004-02-17 | Qualcomm Incorporated | System and method for generating signal waveforms in a CDMA cellular telephone system |
JP3432822B2 (ja) * | 1991-06-11 | 2003-08-04 | クゥアルコム・インコーポレイテッド | 可変速度ボコーダ |
US5355450A (en) | 1992-04-10 | 1994-10-11 | Avid Technology, Inc. | Media composer with adjustable source material compression |
AU3274593A (en) * | 1991-12-13 | 1993-07-19 | Avid Technology, Inc. | Quantization table adjustment |
SE469764B (sv) * | 1992-01-27 | 1993-09-06 | Ericsson Telefon Ab L M | Saett att koda en samplad talsignalvektor |
TW224191B (es) * | 1992-01-28 | 1994-05-21 | Qualcomm Inc | |
CA2105269C (en) * | 1992-10-09 | 1998-08-25 | Yair Shoham | Time-frequency interpolation with application to low rate speech coding |
FI95086C (fi) * | 1992-11-26 | 1995-12-11 | Nokia Mobile Phones Ltd | Menetelmä puhesignaalin tehokkaaksi koodaamiseksi |
US5453986A (en) | 1993-01-08 | 1995-09-26 | Multi-Tech Systems, Inc. | Dual port interface for a computer-based multifunction personal communication system |
US5812534A (en) | 1993-01-08 | 1998-09-22 | Multi-Tech Systems, Inc. | Voice over data conferencing for a computer-based personal communications system |
US5535204A (en) | 1993-01-08 | 1996-07-09 | Multi-Tech Systems, Inc. | Ringdown and ringback signalling for a computer-based multifunction personal communications system |
US5617423A (en) | 1993-01-08 | 1997-04-01 | Multi-Tech Systems, Inc. | Voice over data modem with selectable voice compression |
US5754589A (en) | 1993-01-08 | 1998-05-19 | Multi-Tech Systems, Inc. | Noncompressed voice and data communication over modem for a computer-based multifunction personal communications system |
US5546395A (en) | 1993-01-08 | 1996-08-13 | Multi-Tech Systems, Inc. | Dynamic selection of compression rate for a voice compression algorithm in a voice over data modem |
US5864560A (en) | 1993-01-08 | 1999-01-26 | Multi-Tech Systems, Inc. | Method and apparatus for mode switching in a voice over data computer-based personal communications system |
US6009082A (en) | 1993-01-08 | 1999-12-28 | Multi-Tech Systems, Inc. | Computer-based multifunction personal communication system with caller ID |
US5452289A (en) | 1993-01-08 | 1995-09-19 | Multi-Tech Systems, Inc. | Computer-based multifunction personal communications system |
US7082106B2 (en) | 1993-01-08 | 2006-07-25 | Multi-Tech Systems, Inc. | Computer-based multi-media communications system and method |
US5657423A (en) * | 1993-02-22 | 1997-08-12 | Texas Instruments Incorporated | Hardware filter circuit and address circuitry for MPEG encoded data |
AU683056B2 (en) * | 1993-04-16 | 1997-10-30 | Media 100 Inc. | Adaptive video decompression |
CA2160568A1 (en) * | 1993-04-16 | 1994-10-27 | James M. Hardiman | Adaptive video compression using variable quantization |
FI96248C (fi) * | 1993-05-06 | 1996-05-27 | Nokia Mobile Phones Ltd | Menetelmä pitkän aikavälin synteesisuodattimen toteuttamiseksi sekä synteesisuodatin puhekoodereihin |
US5659659A (en) * | 1993-07-26 | 1997-08-19 | Alaris, Inc. | Speech compressor using trellis encoding and linear prediction |
ZA946674B (en) * | 1993-09-08 | 1995-05-02 | Qualcomm Inc | Method and apparatus for determining the transmission data rate in a multi-user communication system |
US5649299A (en) * | 1993-10-27 | 1997-07-15 | Motorola, Inc. | Apparatus and method for adapting a digital radiotelephone system to increased subscriber traffic |
US6005856A (en) | 1993-11-01 | 1999-12-21 | Omnipoint Corporation | Communication protocol for spread spectrum wireless communication system |
US6094575A (en) | 1993-11-01 | 2000-07-25 | Omnipoint Corporation | Communication system and method |
IL111469A0 (en) | 1993-11-01 | 1994-12-29 | Omnipoint Corp | Despreading/demodulating direct sequence spread spectrum signals |
US6088590A (en) | 1993-11-01 | 2000-07-11 | Omnipoint Corporation | Method and system for mobile controlled handoff and link maintenance in spread spectrum communication |
JP3182032B2 (ja) * | 1993-12-10 | 2001-07-03 | 株式会社日立国際電気 | 音声符号化通信方式及びその装置 |
US5621852A (en) * | 1993-12-14 | 1997-04-15 | Interdigital Technology Corporation | Efficient codebook structure for code excited linear prediction coding |
US5784532A (en) * | 1994-02-16 | 1998-07-21 | Qualcomm Incorporated | Application specific integrated circuit (ASIC) for performing rapid speech compression in a mobile telephone system |
EP0702863B1 (en) * | 1994-02-17 | 2004-10-20 | Motorola, Inc. | Method and apparatus for controlling encoding rate in a communication system |
CA2142391C (en) * | 1994-03-14 | 2001-05-29 | Juin-Hwey Chen | Computational complexity reduction during frame erasure or packet loss |
US5615298A (en) * | 1994-03-14 | 1997-03-25 | Lucent Technologies Inc. | Excitation signal synthesis during frame erasure or packet loss |
US5574825A (en) * | 1994-03-14 | 1996-11-12 | Lucent Technologies Inc. | Linear prediction coefficient generation during frame erasure or packet loss |
US5682386A (en) | 1994-04-19 | 1997-10-28 | Multi-Tech Systems, Inc. | Data/voice/fax compression multiplexer |
US5757801A (en) | 1994-04-19 | 1998-05-26 | Multi-Tech Systems, Inc. | Advanced priority statistical multiplexer |
FI98162C (fi) * | 1994-05-30 | 1997-04-25 | Tecnomen Oy | HMM-malliin perustuva puheentunnistusmenetelmä |
US5602961A (en) * | 1994-05-31 | 1997-02-11 | Alaris, Inc. | Method and apparatus for speech compression using multi-mode code excited linear predictive coding |
US5638412A (en) | 1994-06-15 | 1997-06-10 | Qualcomm Incorporated | Method for providing service and rate negotiation in a mobile communication system |
US5603096A (en) * | 1994-07-11 | 1997-02-11 | Qualcomm Incorporated | Reverse link, closed loop power control in a code division multiple access system |
TW271524B (es) * | 1994-08-05 | 1996-03-01 | Qualcomm Inc | |
US5742734A (en) * | 1994-08-10 | 1998-04-21 | Qualcomm Incorporated | Encoding rate selection in a variable rate vocoder |
US5754584A (en) | 1994-09-09 | 1998-05-19 | Omnipoint Corporation | Non-coherent spread-spectrum continuous-phase modulation communication system |
US5856998A (en) | 1994-09-09 | 1999-01-05 | Omnipoint Corporation | Method and apparatus for correlating a continuous phase modulated spread spectrum signal |
US5881100A (en) | 1994-09-09 | 1999-03-09 | Omnipoint Corporation | Method and apparatus for coherent correlation of a spread spectrum signal |
US5627856A (en) | 1994-09-09 | 1997-05-06 | Omnipoint Corporation | Method and apparatus for receiving and despreading a continuous phase-modulated spread spectrum signal using self-synchronizing correlators |
US5648982A (en) | 1994-09-09 | 1997-07-15 | Omnipoint Corporation | Spread spectrum transmitter |
US5963586A (en) | 1994-09-09 | 1999-10-05 | Omnipoint Corporation | Method and apparatus for parallel noncoherent correlation of a spread spectrum signal |
US5610940A (en) | 1994-09-09 | 1997-03-11 | Omnipoint Corporation | Method and apparatus for noncoherent reception and correlation of a continous phase modulated signal |
US5832028A (en) | 1994-09-09 | 1998-11-03 | Omnipoint Corporation | Method and apparatus for coherent serial correlation of a spread spectrum signal |
US5629956A (en) | 1994-09-09 | 1997-05-13 | Omnipoint Corporation | Method and apparatus for reception and noncoherent serial correlation of a continuous phase modulated signal |
US5754585A (en) | 1994-09-09 | 1998-05-19 | Omnipoint Corporation | Method and apparatus for serial noncoherent correlation of a spread spectrum signal |
US5692007A (en) | 1994-09-09 | 1997-11-25 | Omnipoint Corporation | Method and apparatus for differential phase encoding and decoding in spread-spectrum communication systems with continuous-phase modulation |
US5680414A (en) | 1994-09-09 | 1997-10-21 | Omnipoint Corporation | Synchronization apparatus and method for spread spectrum receiver |
US5953370A (en) | 1994-09-09 | 1999-09-14 | Omnipoint Corporation | Apparatus for receiving and correlating a spread spectrum signal |
US5757847A (en) | 1994-09-09 | 1998-05-26 | Omnipoint Corporation | Method and apparatus for decoding a phase encoded signal |
US5659574A (en) | 1994-09-09 | 1997-08-19 | Omnipoint Corporation | Multi-bit correlation of continuous phase modulated signals |
US6141353A (en) * | 1994-09-15 | 2000-10-31 | Oki Telecom, Inc. | Subsequent frame variable data rate indication method for various variable data rate systems |
US5537410A (en) * | 1994-09-15 | 1996-07-16 | Oki Telecom | Subsequent frame variable data rate indication method |
JPH08102687A (ja) * | 1994-09-29 | 1996-04-16 | Yamaha Corp | 音声送受信方式 |
EP0710948B1 (en) * | 1994-10-05 | 2002-02-27 | Advanced Micro Devices, Inc. | Apparatus and method for analyzing speech signals to determine parameters expressive of characteristics of the speech signals |
US5546448A (en) * | 1994-11-10 | 1996-08-13 | Multi-Tech Systems, Inc. | Apparatus and method for a caller ID modem interface |
US5781880A (en) * | 1994-11-21 | 1998-07-14 | Rockwell International Corporation | Pitch lag estimation using frequency-domain lowpass filtering of the linear predictive coding (LPC) residual |
JPH08179796A (ja) * | 1994-12-21 | 1996-07-12 | Sony Corp | 音声符号化方法 |
FR2729246A1 (fr) * | 1995-01-06 | 1996-07-12 | Matra Communication | Procede de codage de parole a analyse par synthese |
US5784403A (en) * | 1995-02-03 | 1998-07-21 | Omnipoint Corporation | Spread spectrum correlation using saw device |
JP3303580B2 (ja) * | 1995-02-23 | 2002-07-22 | 日本電気株式会社 | 音声符号化装置 |
US6292476B1 (en) * | 1997-04-16 | 2001-09-18 | Qualcomm Inc. | Method and apparatus for providing variable rate data in a communications system using non-orthogonal overflow channels |
ZA961025B (en) * | 1995-02-28 | 1996-07-16 | Qualcomm Inc | Method and apparatus for providing variable rate data in a communications system using non-orthogonal overflow channels |
US5991725A (en) * | 1995-03-07 | 1999-11-23 | Advanced Micro Devices, Inc. | System and method for enhanced speech quality in voice storage and retrieval systems |
US5699478A (en) * | 1995-03-10 | 1997-12-16 | Lucent Technologies Inc. | Frame erasure compensation technique |
JPH08263099A (ja) * | 1995-03-23 | 1996-10-11 | Toshiba Corp | 符号化装置 |
US6137840A (en) | 1995-03-31 | 2000-10-24 | Qualcomm Incorporated | Method and apparatus for performing fast power control in a mobile communication system |
TW347616B (en) | 1995-03-31 | 1998-12-11 | Qualcomm Inc | Method and apparatus for performing fast power control in a mobile communication system a method and apparatus for controlling transmission power in a mobile communication system is disclosed. |
US6977967B1 (en) * | 1995-03-31 | 2005-12-20 | Qualcomm Incorporated | Method and apparatus for performing fast power control in a mobile communication system |
US5548253A (en) * | 1995-04-17 | 1996-08-20 | Omnipoint Corporation | Spectrally efficient quadrature amplitude modulator |
US5508708A (en) * | 1995-05-08 | 1996-04-16 | Motorola, Inc. | Method and apparatus for location finding in a CDMA system |
JP2728122B2 (ja) * | 1995-05-23 | 1998-03-18 | 日本電気株式会社 | 無音圧縮音声符号化復号化装置 |
US6356607B1 (en) | 1995-06-05 | 2002-03-12 | Omnipoint Corporation | Preamble code structure and detection method and apparatus |
US5689502A (en) * | 1995-06-05 | 1997-11-18 | Omnipoint Corporation | Efficient frequency division duplex communication system with interleaved format and timing adjustment control |
US5745484A (en) * | 1995-06-05 | 1998-04-28 | Omnipoint Corporation | Efficient communication system using time division multiplexing and timing adjustment control |
US5959980A (en) * | 1995-06-05 | 1999-09-28 | Omnipoint Corporation | Timing adjustment control for efficient time division duplex communication |
US5802046A (en) * | 1995-06-05 | 1998-09-01 | Omnipoint Corporation | Efficient time division duplex communication system with interleaved format and timing adjustment control |
US6526038B1 (en) * | 1995-06-07 | 2003-02-25 | Telcordia Technologies, Inc. | Periodic wireless broadcast |
GB9512284D0 (en) * | 1995-06-16 | 1995-08-16 | Nokia Mobile Phones Ltd | Speech Synthesiser |
US6885652B1 (en) | 1995-06-30 | 2005-04-26 | Interdigital Technology Corporation | Code division multiple access (CDMA) communication system |
US7020111B2 (en) | 1996-06-27 | 2006-03-28 | Interdigital Technology Corporation | System for using rapid acquisition spreading codes for spread-spectrum communications |
ZA965340B (en) | 1995-06-30 | 1997-01-27 | Interdigital Tech Corp | Code division multiple access (cdma) communication system |
US7929498B2 (en) | 1995-06-30 | 2011-04-19 | Interdigital Technology Corporation | Adaptive forward power control and adaptive reverse power control for spread-spectrum communications |
US7123600B2 (en) | 1995-06-30 | 2006-10-17 | Interdigital Technology Corporation | Initial power control for spread-spectrum communications |
FI100157B (fi) * | 1995-07-12 | 1997-09-30 | Nokia Mobile Phones Ltd | Muuttuvanopeuksiset piirikytketyt siirtopalvelut TDMA-pohjaisissa solu kkojärjestelmissä |
US6041046A (en) * | 1995-07-14 | 2000-03-21 | Omnipoint Corporation | Cyclic time hopping in time division multiple access communication system |
US5754733A (en) * | 1995-08-01 | 1998-05-19 | Qualcomm Incorporated | Method and apparatus for generating and encoding line spectral square roots |
FR2737948B1 (fr) * | 1995-08-16 | 1997-10-17 | Alcatel Mobile Comm France | Dispositif de commande de volume sonore pour recepteur de signaux de parole codes par blocs |
JP3522012B2 (ja) * | 1995-08-23 | 2004-04-26 | 沖電気工業株式会社 | コード励振線形予測符号化装置 |
KR100232519B1 (ko) * | 1995-08-31 | 1999-12-01 | 다치카와 게이지 | 무성 압축 제어 기능을 갖는 비동기 전송 모드 전송 방법, 시스템, 및 그를 이용한 송신기 및 수신기 |
US5950164A (en) * | 1995-09-29 | 1999-09-07 | Olympus Optical Co., Ltd. | Voice recording apparatus capable of displaying remaining recording capacity of memory according to encoding bit rates |
JP4005154B2 (ja) * | 1995-10-26 | 2007-11-07 | ソニー株式会社 | 音声復号化方法及び装置 |
JP3680380B2 (ja) * | 1995-10-26 | 2005-08-10 | ソニー株式会社 | 音声符号化方法及び装置 |
JPH09152896A (ja) * | 1995-11-30 | 1997-06-10 | Oki Electric Ind Co Ltd | 声道予測係数符号化・復号化回路、声道予測係数符号化回路、声道予測係数復号化回路、音声符号化装置及び音声復号化装置 |
US5956674A (en) * | 1995-12-01 | 1999-09-21 | Digital Theater Systems, Inc. | Multi-channel predictive subband audio coder using psychoacoustic adaptive bit allocation in frequency, time and over the multiple channels |
US5822721A (en) * | 1995-12-22 | 1998-10-13 | Iterated Systems, Inc. | Method and apparatus for fractal-excited linear predictive coding of digital signals |
US5737716A (en) * | 1995-12-26 | 1998-04-07 | Motorola | Method and apparatus for encoding speech using neural network technology for speech classification |
US5867763A (en) * | 1996-02-08 | 1999-02-02 | Qualcomm Incorporated | Method and apparatus for integration of a wireless communication system with a cable T.V. system |
US5839052A (en) * | 1996-02-08 | 1998-11-17 | Qualcom Incorporated | Method and apparatus for integration of a wireless communication system with a cable television system |
JPH09230896A (ja) * | 1996-02-28 | 1997-09-05 | Sony Corp | 音声合成装置 |
US5754537A (en) * | 1996-03-08 | 1998-05-19 | Telefonaktiebolaget L M Ericsson (Publ) | Method and system for transmitting background noise data |
EP0886927B1 (en) * | 1996-03-27 | 2006-06-07 | Motorola, Inc. | Method and apparatus for providing a multi-party speech connection for use in a wireless communication system |
SE506341C2 (sv) * | 1996-04-10 | 1997-12-08 | Ericsson Telefon Ab L M | Metod och anordning för rekonstruktion av en mottagen talsignal |
GB2312360B (en) * | 1996-04-12 | 2001-01-24 | Olympus Optical Co | Voice signal coding apparatus |
US5708757A (en) * | 1996-04-22 | 1998-01-13 | France Telecom | Method of determining parameters of a pitch synthesis filter in a speech coder, and speech coder implementing such method |
US6205190B1 (en) | 1996-04-29 | 2001-03-20 | Qualcomm Inc. | System and method for reducing interference generated by a CDMA communications device |
US6047254A (en) * | 1996-05-15 | 2000-04-04 | Advanced Micro Devices, Inc. | System and method for determining a first formant analysis filter and prefiltering a speech signal for improved pitch estimation |
US5937374A (en) * | 1996-05-15 | 1999-08-10 | Advanced Micro Devices, Inc. | System and method for improved pitch estimation which performs first formant energy removal for a frame using coefficients from a prior frame |
JP3092652B2 (ja) * | 1996-06-10 | 2000-09-25 | 日本電気株式会社 | 音声再生装置 |
US6744882B1 (en) | 1996-07-23 | 2004-06-01 | Qualcomm Inc. | Method and apparatus for automatically adjusting speaker and microphone gains within a mobile telephone |
JP3266819B2 (ja) * | 1996-07-30 | 2002-03-18 | 株式会社エイ・ティ・アール人間情報通信研究所 | 周期信号変換方法、音変換方法および信号分析方法 |
US5883927A (en) * | 1996-07-31 | 1999-03-16 | Nextwave Telecom, Inc. | Digital wireless telecommunication device for reduced interference with hearing aids |
JPH1049199A (ja) * | 1996-08-02 | 1998-02-20 | Nec Corp | 無音圧縮音声符号化復号化装置 |
US5726983A (en) * | 1996-08-09 | 1998-03-10 | Motorola, Inc. | Communication device with variable frame processing time |
US5812968A (en) * | 1996-08-28 | 1998-09-22 | Ericsson, Inc. | Vocoder apparatus using the link margin |
US5881053A (en) * | 1996-09-13 | 1999-03-09 | Qualcomm Incorporated | Method for a wireless communications channel |
SE507370C2 (sv) * | 1996-09-13 | 1998-05-18 | Ericsson Telefon Ab L M | Metod och anordning för att alstra komfortbrus i linjärprediktiv talavkodare |
US7788092B2 (en) * | 1996-09-25 | 2010-08-31 | Qualcomm Incorporated | Method and apparatus for detecting bad data packets received by a mobile telephone using decoded speech parameters |
CA2265640A1 (en) * | 1996-09-25 | 1998-04-02 | Qualcomm Incorporated | Method and apparatus for detecting bad data packets received by a mobile telephone using decoded speech parameters |
US6205130B1 (en) | 1996-09-25 | 2001-03-20 | Qualcomm Incorporated | Method and apparatus for detecting bad data packets received by a mobile telephone using decoded speech parameters |
US6014622A (en) * | 1996-09-26 | 2000-01-11 | Rockwell Semiconductor Systems, Inc. | Low bit rate speech coder using adaptive open-loop subframe pitch lag estimation and vector quantization |
US5954834A (en) * | 1996-10-09 | 1999-09-21 | Ericsson Inc. | Systems and methods for communicating desired audio information over a communications medium |
US5905794A (en) * | 1996-10-15 | 1999-05-18 | Multi-Tech Systems, Inc. | Caller identification interface using line reversal detection |
US6496543B1 (en) * | 1996-10-29 | 2002-12-17 | Qualcomm Incorporated | Method and apparatus for providing high speed data communications in a cellular environment |
US5781593A (en) * | 1996-11-14 | 1998-07-14 | Omnipoint Corporation | Methods and apparatus for vocoder synchronization in mobile communication network |
US6141373A (en) * | 1996-11-15 | 2000-10-31 | Omnipoint Corporation | Preamble code structure and detection method and apparatus |
FI964975A (fi) * | 1996-12-12 | 1998-06-13 | Nokia Mobile Phones Ltd | Menetelmä ja laite puheen koodaamiseksi |
US6172965B1 (en) * | 1996-12-23 | 2001-01-09 | Nortel Networks Limited | Duplex transmission scheme |
JP2856185B2 (ja) * | 1997-01-21 | 1999-02-10 | 日本電気株式会社 | 音声符号化復号化システム |
CN100361485C (zh) * | 1997-01-23 | 2008-01-09 | 摩托罗拉公司 | 通信系统中非线性处理的装置和方法 |
US6335922B1 (en) | 1997-02-11 | 2002-01-01 | Qualcomm Incorporated | Method and apparatus for forward link rate scheduling |
US7751370B2 (en) | 2001-07-13 | 2010-07-06 | Qualcomm Incorporated | Method and apparatus for forward link rate scheduling |
US6014375A (en) * | 1997-02-13 | 2000-01-11 | Ericsson Inc. | TDMA radio protocol with adaptive vocoder selection |
JP3067676B2 (ja) * | 1997-02-13 | 2000-07-17 | 日本電気株式会社 | Lspの予測符号化装置及び方法 |
US5832443A (en) * | 1997-02-25 | 1998-11-03 | Alaris, Inc. | Method and apparatus for adaptive audio compression and decompression |
US6104993A (en) * | 1997-02-26 | 2000-08-15 | Motorola, Inc. | Apparatus and method for rate determination in a communication system |
EP0976216B1 (de) * | 1997-02-27 | 2002-11-27 | Siemens Aktiengesellschaft | Verfahren und anordnung zur rahmenfehlerdetektion zwecks fehlerverdeckung insbesondere bei gsm übertragungen |
US6167375A (en) * | 1997-03-17 | 2000-12-26 | Kabushiki Kaisha Toshiba | Method for encoding and decoding a speech signal including background noise |
US6282228B1 (en) | 1997-03-20 | 2001-08-28 | Xircom, Inc. | Spread spectrum codes for use in communication |
US6480521B1 (en) * | 1997-03-26 | 2002-11-12 | Qualcomm Incorporated | Method and apparatus for transmitting high speed data in a spread spectrum communications system |
US5907822A (en) * | 1997-04-04 | 1999-05-25 | Lincom Corporation | Loss tolerant speech decoder for telecommunications |
EP0922278B1 (en) * | 1997-04-07 | 2006-04-05 | Koninklijke Philips Electronics N.V. | Variable bitrate speech transmission system |
KR100198476B1 (ko) * | 1997-04-23 | 1999-06-15 | 윤종용 | 노이즈에 견고한 스펙트럼 포락선 양자화기 및 양자화 방법 |
US6014623A (en) * | 1997-06-12 | 2000-01-11 | United Microelectronics Corp. | Method of encoding synthetic speech |
US6075792A (en) | 1997-06-16 | 2000-06-13 | Interdigital Technology Corporation | CDMA communication system which selectively allocates bandwidth upon demand |
US6003003A (en) * | 1997-06-27 | 1999-12-14 | Advanced Micro Devices, Inc. | Speech recognition system having a quantizer using a single robust codebook designed at multiple signal to noise ratios |
US6044343A (en) * | 1997-06-27 | 2000-03-28 | Advanced Micro Devices, Inc. | Adaptive speech recognition with selective input data to a speech classifier |
US6032116A (en) * | 1997-06-27 | 2000-02-29 | Advanced Micro Devices, Inc. | Distance measure in a speech recognition system for speech recognition using frequency shifting factors to compensate for input signal frequency shifts |
US6175590B1 (en) | 1997-08-08 | 2001-01-16 | Qualcomm Inc. | Method and apparatus for determining the rate of received data in a variable rate communication system |
US6097972A (en) * | 1997-08-29 | 2000-08-01 | Qualcomm Incorporated | Method and apparatus for processing power control signals in CDMA mobile telephone system |
US6058359A (en) * | 1998-03-04 | 2000-05-02 | Telefonaktiebolaget L M Ericsson | Speech coding including soft adaptability feature |
US6049537A (en) * | 1997-09-05 | 2000-04-11 | Motorola, Inc. | Method and system for controlling speech encoding in a communication system |
US5898696A (en) * | 1997-09-05 | 1999-04-27 | Motorola, Inc. | Method and system for controlling an encoding rate in a variable rate communication system |
AU4661497A (en) * | 1997-09-30 | 1999-03-22 | Qualcomm Incorporated | Channel gain modification system and method for noise reduction in voice communication |
US6920150B1 (en) * | 1997-09-30 | 2005-07-19 | Lucent Technologies Inc. | Adaptive communications transcoding and error control |
US5897613A (en) * | 1997-10-08 | 1999-04-27 | Lucent Technologies Inc. | Efficient transmission of voice silence intervals |
US6070136A (en) * | 1997-10-27 | 2000-05-30 | Advanced Micro Devices, Inc. | Matrix quantization with vector quantization error compensation for robust speech recognition |
US6067515A (en) * | 1997-10-27 | 2000-05-23 | Advanced Micro Devices, Inc. | Split matrix quantization with split vector quantization error compensation and selective enhanced processing for robust speech recognition |
US5953695A (en) * | 1997-10-29 | 1999-09-14 | Lucent Technologies Inc. | Method and apparatus for synchronizing digital speech communications |
US9118387B2 (en) | 1997-11-03 | 2015-08-25 | Qualcomm Incorporated | Pilot reference transmission for a wireless communication system |
US7184426B2 (en) | 2002-12-12 | 2007-02-27 | Qualcomm, Incorporated | Method and apparatus for burst pilot for a time division multiplex system |
US6563803B1 (en) | 1997-11-26 | 2003-05-13 | Qualcomm Incorporated | Acoustic echo canceller |
US6044339A (en) * | 1997-12-02 | 2000-03-28 | Dspc Israel Ltd. | Reduced real-time processing in stochastic celp encoding |
DE19753697B4 (de) * | 1997-12-03 | 2006-04-27 | Siemens Ag | Verfahren und Funkstation zur Datenübertragung in einem Kommunikationssystem |
US6049765A (en) * | 1997-12-22 | 2000-04-11 | Lucent Technologies Inc. | Silence compression for recorded voice messages |
US6104994A (en) * | 1998-01-13 | 2000-08-15 | Conexant Systems, Inc. | Method for speech coding under background noise conditions |
JPH11215006A (ja) * | 1998-01-29 | 1999-08-06 | Olympus Optical Co Ltd | ディジタル音声信号の送信装置及び受信装置 |
US6799159B2 (en) * | 1998-02-02 | 2004-09-28 | Motorola, Inc. | Method and apparatus employing a vocoder for speech processing |
US6381569B1 (en) | 1998-02-04 | 2002-04-30 | Qualcomm Incorporated | Noise-compensated speech recognition templates |
US6603751B1 (en) * | 1998-02-13 | 2003-08-05 | Qualcomm Incorporated | Method and system for performing a handoff in a wireless communication system, such as a hard handoff |
US6545989B1 (en) | 1998-02-19 | 2003-04-08 | Qualcomm Incorporated | Transmit gating in a wireless communication system |
US6104991A (en) * | 1998-02-27 | 2000-08-15 | Lucent Technologies, Inc. | Speech encoding and decoding system which modifies encoding and decoding characteristics based on an audio signal |
FI113571B (fi) | 1998-03-09 | 2004-05-14 | Nokia Corp | Puheenkoodaus |
US6121904A (en) * | 1998-03-12 | 2000-09-19 | Liquid Audio, Inc. | Lossless data compression with low complexity |
US6118392A (en) * | 1998-03-12 | 2000-09-12 | Liquid Audio Inc. | Lossless data compression with low complexity |
US6125348A (en) * | 1998-03-12 | 2000-09-26 | Liquid Audio Inc. | Lossless data compression with low complexity |
US6043763A (en) * | 1998-03-12 | 2000-03-28 | Liquid Audio, Inc. | Lossless data compression with low complexity |
US6028541A (en) * | 1998-03-12 | 2000-02-22 | Liquid Audio Inc. | Lossless data compression with low complexity |
US6169906B1 (en) * | 1998-03-24 | 2001-01-02 | Motorola, Inc. | Method of transmitting messages in a dispatch call |
US20030194033A1 (en) | 1998-05-21 | 2003-10-16 | Tiedemann Edward G. | Method and apparatus for coordinating transmission of short messages with hard handoff searches in a wireless communications system |
US6577645B2 (en) | 1998-06-03 | 2003-06-10 | Siemens Aktiengesellschaft | Method and radio set for transmitting messages |
EP1084586B1 (de) * | 1998-06-03 | 2004-12-22 | Siemens Aktiengesellschaft | Verfahren und funkgerät zur übertragung von nachrichten |
US6141639A (en) * | 1998-06-05 | 2000-10-31 | Conexant Systems, Inc. | Method and apparatus for coding of signals containing speech and background noise |
US6810377B1 (en) * | 1998-06-19 | 2004-10-26 | Comsat Corporation | Lost frame recovery techniques for parametric, LPC-based speech coding systems |
JP3273599B2 (ja) * | 1998-06-19 | 2002-04-08 | 沖電気工業株式会社 | 音声符号化レート選択器と音声符号化装置 |
US6034971A (en) * | 1998-06-30 | 2000-03-07 | Motorola, Inc. | Method and apparatus for controlling communication system capacity |
US6081776A (en) * | 1998-07-13 | 2000-06-27 | Lockheed Martin Corp. | Speech coding system and method including adaptive finite impulse response filter |
DE19833318C2 (de) * | 1998-07-24 | 2001-08-02 | Bosch Gmbh Robert | Verfahren zur Übertragung von digitalen Nutzdaten |
US6163766A (en) * | 1998-08-14 | 2000-12-19 | Motorola, Inc. | Adaptive rate system and method for wireless communications |
US6173254B1 (en) * | 1998-08-18 | 2001-01-09 | Denso Corporation, Ltd. | Recorded message playback system for a variable bit rate system |
JP4308345B2 (ja) * | 1998-08-21 | 2009-08-05 | パナソニック株式会社 | マルチモード音声符号化装置及び復号化装置 |
US7117146B2 (en) * | 1998-08-24 | 2006-10-03 | Mindspeed Technologies, Inc. | System for improved use of pitch enhancement with subcodebooks |
US6449590B1 (en) | 1998-08-24 | 2002-09-10 | Conexant Systems, Inc. | Speech encoder using warping in long term preprocessing |
US6240386B1 (en) * | 1998-08-24 | 2001-05-29 | Conexant Systems, Inc. | Speech codec employing noise classification for noise compensation |
US6385573B1 (en) * | 1998-08-24 | 2002-05-07 | Conexant Systems, Inc. | Adaptive tilt compensation for synthesized speech residual |
US6188980B1 (en) * | 1998-08-24 | 2001-02-13 | Conexant Systems, Inc. | Synchronized encoder-decoder frame concealment using speech coding parameters including line spectral frequencies and filter coefficients |
US6480822B2 (en) * | 1998-08-24 | 2002-11-12 | Conexant Systems, Inc. | Low complexity random codebook structure |
US6493665B1 (en) * | 1998-08-24 | 2002-12-10 | Conexant Systems, Inc. | Speech classification and parameter weighting used in codebook search |
US6260010B1 (en) * | 1998-08-24 | 2001-07-10 | Conexant Systems, Inc. | Speech encoder using gain normalization that combines open and closed loop gains |
US7072832B1 (en) | 1998-08-24 | 2006-07-04 | Mindspeed Technologies, Inc. | System for speech encoding having an adaptive encoding arrangement |
US6823303B1 (en) * | 1998-08-24 | 2004-11-23 | Conexant Systems, Inc. | Speech encoder using voice activity detection in coding noise |
US6330533B2 (en) * | 1998-08-24 | 2001-12-11 | Conexant Systems, Inc. | Speech encoder adaptively applying pitch preprocessing with warping of target signal |
US6798736B1 (en) | 1998-09-22 | 2004-09-28 | Qualcomm Incorporated | Method and apparatus for transmitting and receiving variable rate data |
US7272556B1 (en) * | 1998-09-23 | 2007-09-18 | Lucent Technologies Inc. | Scalable and embedded codec for speech and audio signals |
US6347297B1 (en) * | 1998-10-05 | 2002-02-12 | Legerity, Inc. | Matrix quantization with vector quantization error compensation and neural network postprocessing for robust speech recognition |
US6219642B1 (en) | 1998-10-05 | 2001-04-17 | Legerity, Inc. | Quantization using frequency and mean compensated frequency input data for robust speech recognition |
US6353808B1 (en) * | 1998-10-22 | 2002-03-05 | Sony Corporation | Apparatus and method for encoding a signal as well as apparatus and method for decoding a signal |
JP3343082B2 (ja) * | 1998-10-27 | 2002-11-11 | 松下電器産業株式会社 | Celp型音声符号化装置 |
US6754630B2 (en) * | 1998-11-13 | 2004-06-22 | Qualcomm, Inc. | Synthesis of speech from pitch prototype waveforms by time-synchronous waveform interpolation |
US6463407B2 (en) | 1998-11-13 | 2002-10-08 | Qualcomm Inc. | Low bit-rate coding of unvoiced segments of speech |
US6424938B1 (en) * | 1998-11-23 | 2002-07-23 | Telefonaktiebolaget L M Ericsson | Complex signal activity detection for improved speech/noise classification of an audio signal |
US6233549B1 (en) | 1998-11-23 | 2001-05-15 | Qualcomm, Inc. | Low frequency spectral enhancement system and method |
US6289099B1 (en) | 1998-11-30 | 2001-09-11 | Qualcomm Inc. | Ringer for satellite user terminals |
US6256606B1 (en) * | 1998-11-30 | 2001-07-03 | Conexant Systems, Inc. | Silence description coding for multi-rate speech codecs |
US6275485B1 (en) | 1998-12-03 | 2001-08-14 | Qualcomm Inc. | Noise characterization in a wireless communication system |
US6512925B1 (en) | 1998-12-03 | 2003-01-28 | Qualcomm, Incorporated | Method and apparatus for controlling transmission power while in soft handoff |
US6182030B1 (en) | 1998-12-18 | 2001-01-30 | Telefonaktiebolaget Lm Ericsson (Publ) | Enhanced coding to improve coded communication signals |
US6691084B2 (en) | 1998-12-21 | 2004-02-10 | Qualcomm Incorporated | Multiple mode variable rate speech coding |
US6542486B1 (en) * | 1998-12-22 | 2003-04-01 | Nortel Networks Limited | Multiple technology vocoder and an associated telecommunications network |
US6393074B1 (en) | 1998-12-31 | 2002-05-21 | Texas Instruments Incorporated | Decoding system for variable-rate convolutionally-coded data sequence |
US7406098B2 (en) * | 1999-01-13 | 2008-07-29 | Qualcomm Incorporated | Resource allocation in a communication system supporting application flows having quality of service requirements |
US6324509B1 (en) | 1999-02-08 | 2001-11-27 | Qualcomm Incorporated | Method and apparatus for accurate endpointing of speech in the presence of noise |
US6226607B1 (en) | 1999-02-08 | 2001-05-01 | Qualcomm Incorporated | Method and apparatus for eighth-rate random number generation for speech coders |
US6330247B1 (en) | 1999-02-08 | 2001-12-11 | Qualcomm Incorporated | Communication protocol between a communication device and an external accessory |
US6574596B2 (en) | 1999-02-08 | 2003-06-03 | Qualcomm Incorporated | Voice recognition rejection scheme |
EP1159738B1 (en) * | 1999-02-08 | 2006-04-05 | QUALCOMM Incorporated | Speech synthesizer based on variable rate speech coding |
US6411926B1 (en) | 1999-02-08 | 2002-06-25 | Qualcomm Incorporated | Distributed voice recognition system |
US6587446B2 (en) * | 1999-02-11 | 2003-07-01 | Qualcomm Incorporated | Handoff in a wireless communication system |
US6260009B1 (en) | 1999-02-12 | 2001-07-10 | Qualcomm Incorporated | CELP-based to CELP-based vocoder packet translation |
US6449592B1 (en) | 1999-02-26 | 2002-09-10 | Qualcomm Incorporated | Method and apparatus for tracking the phase of a quasi-periodic signal |
US6088347A (en) * | 1999-03-10 | 2000-07-11 | Massachusetts Institute Of Technology | Variable chip rate code-division multiple access |
US6397177B1 (en) * | 1999-03-10 | 2002-05-28 | Samsung Electronics, Co., Ltd. | Speech-encoding rate decision apparatus and method in a variable rate |
US6233552B1 (en) * | 1999-03-12 | 2001-05-15 | Comsat Corporation | Adaptive post-filtering technique based on the Modified Yule-Walker filter |
US6519479B1 (en) | 1999-03-31 | 2003-02-11 | Qualcomm Inc. | Spoken user interface for speech-enabled devices |
US6747963B1 (en) * | 1999-04-12 | 2004-06-08 | Samsung Electronics Co., Ltd. | Apparatus and method for gated transmission in a CDMA communication system |
US7058573B1 (en) * | 1999-04-20 | 2006-06-06 | Nuance Communications Inc. | Speech recognition system to selectively utilize different speech recognition techniques over multiple speech recognition passes |
US6260017B1 (en) | 1999-05-07 | 2001-07-10 | Qualcomm Inc. | Multipulse interpolative coding of transition speech frames |
US6947469B2 (en) | 1999-05-07 | 2005-09-20 | Intel Corporation | Method and Apparatus for wireless spread spectrum communication with preamble processing period |
US6766295B1 (en) | 1999-05-10 | 2004-07-20 | Nuance Communications | Adaptation of a speech recognition system across multiple remote sessions with a speaker |
US6661832B1 (en) * | 1999-05-11 | 2003-12-09 | Qualcomm Incorporated | System and method for providing an accurate estimation of received signal interference for use in wireless communications systems |
US6954727B1 (en) * | 1999-05-28 | 2005-10-11 | Koninklijke Philips Electronics N.V. | Reducing artifact generation in a vocoder |
US6397175B1 (en) | 1999-07-19 | 2002-05-28 | Qualcomm Incorporated | Method and apparatus for subsampling phase spectrum information |
US6393394B1 (en) | 1999-07-19 | 2002-05-21 | Qualcomm Incorporated | Method and apparatus for interleaving line spectral information quantization methods in a speech coder |
US6324505B1 (en) * | 1999-07-19 | 2001-11-27 | Qualcomm Incorporated | Amplitude quantization scheme for low-bit-rate speech coders |
US6330532B1 (en) | 1999-07-19 | 2001-12-11 | Qualcomm Incorporated | Method and apparatus for maintaining a target bit rate in a speech coder |
US6324503B1 (en) | 1999-07-19 | 2001-11-27 | Qualcomm Incorporated | Method and apparatus for providing feedback from decoder to encoder to improve performance in a predictive speech coder under frame erasure conditions |
US6496706B1 (en) | 1999-07-23 | 2002-12-17 | Qualcomm Incorporated | Method and system for transmit gating in a wireless communication system |
US6704328B1 (en) * | 1999-07-26 | 2004-03-09 | Nortel Networks, Limited | Signalling scheme and messaging structure to support the smoothing of large bit rate transmissions |
US6603752B1 (en) | 1999-07-29 | 2003-08-05 | Ahmed Saifuddin | Method and system for controlling transmission energy in a variable rate gated communication system |
US6633552B1 (en) * | 1999-08-06 | 2003-10-14 | Qualcomm Incorporated | Method and apparatus for determining the closed loop power control set point in a wireless packet data communication system |
US6658112B1 (en) | 1999-08-06 | 2003-12-02 | General Dynamics Decision Systems, Inc. | Voice decoder and method for detecting channel errors using spectral energy evolution |
US6597667B1 (en) | 1999-08-18 | 2003-07-22 | Qualcomm Incorporated | Network based muting of a cellular telephone |
US6493329B1 (en) * | 1999-08-23 | 2002-12-10 | Qualcomm Incorporated | Adaptive channel estimation in a wireless communication system |
US8064409B1 (en) | 1999-08-25 | 2011-11-22 | Qualcomm Incorporated | Method and apparatus using a multi-carrier forward link in a wireless communication system |
US6426971B1 (en) | 1999-09-13 | 2002-07-30 | Qualcomm Incorporated | System and method for accurately predicting signal to interference and noise ratio to improve communications system performance |
US6636829B1 (en) * | 1999-09-22 | 2003-10-21 | Mindspeed Technologies, Inc. | Speech communication system and method for handling lost frames |
US6604070B1 (en) | 1999-09-22 | 2003-08-05 | Conexant Systems, Inc. | System of encoding and decoding speech signals |
US6782360B1 (en) * | 1999-09-22 | 2004-08-24 | Mindspeed Technologies, Inc. | Gain quantization for a CELP speech coder |
US6581032B1 (en) | 1999-09-22 | 2003-06-17 | Conexant Systems, Inc. | Bitstream protocol for transmission of encoded voice signals |
US6959274B1 (en) | 1999-09-22 | 2005-10-25 | Mindspeed Technologies, Inc. | Fixed rate speech compression system and method |
AU2003262451B2 (en) * | 1999-09-22 | 2006-01-19 | Macom Technology Solutions Holdings, Inc. | Multimode speech encoder |
US7054809B1 (en) * | 1999-09-22 | 2006-05-30 | Mindspeed Technologies, Inc. | Rate selection method for selectable mode vocoder |
AU766830B2 (en) * | 1999-09-22 | 2003-10-23 | Macom Technology Solutions Holdings, Inc. | Multimode speech encoder |
US6574593B1 (en) | 1999-09-22 | 2003-06-03 | Conexant Systems, Inc. | Codebook tables for encoding and decoding |
US6708024B1 (en) * | 1999-09-22 | 2004-03-16 | Legerity, Inc. | Method and apparatus for generating comfort noise |
US6496798B1 (en) * | 1999-09-30 | 2002-12-17 | Motorola, Inc. | Method and apparatus for encoding and decoding frames of voice model parameters into a low bit rate digital voice message |
US6772126B1 (en) * | 1999-09-30 | 2004-08-03 | Motorola, Inc. | Method and apparatus for transferring low bit rate digital voice messages using incremental messages |
US6850506B1 (en) | 1999-10-07 | 2005-02-01 | Qualcomm Incorporated | Forward-link scheduling in a wireless communication system |
US6621804B1 (en) | 1999-10-07 | 2003-09-16 | Qualcomm Incorporated | Method and apparatus for predicting favored supplemental channel transmission slots using transmission power measurements of a fundamental channel |
US7522631B1 (en) * | 1999-10-26 | 2009-04-21 | Qualcomm, Incorporated | Method and apparatus for efficient data transmission control in a wireless voice-over-data communication system |
US6463274B1 (en) * | 1999-10-26 | 2002-10-08 | Denso Corporation | Multiple class of service determination for digital cellular telephones |
US6438518B1 (en) | 1999-10-28 | 2002-08-20 | Qualcomm Incorporated | Method and apparatus for using coding scheme selection patterns in a predictive speech coder to reduce sensitivity to frame error conditions |
US6496794B1 (en) * | 1999-11-22 | 2002-12-17 | Motorola, Inc. | Method and apparatus for seamless multi-rate speech coding |
US6772112B1 (en) | 1999-12-10 | 2004-08-03 | Lucent Technologies Inc. | System and method to reduce speech delay and improve voice quality using half speech blocks |
BR0006803A (pt) * | 1999-12-10 | 2001-12-11 | Lucent Technologies Inc | Sistema e método para reduzir retardo de fala emelhorar a qualidade de fala utilizando meiosblocos |
US7574351B2 (en) * | 1999-12-14 | 2009-08-11 | Texas Instruments Incorporated | Arranging CELP information of one frame in a second packet |
US6745024B1 (en) | 2000-01-10 | 2004-06-01 | Qualcomm Incorporated | System and method for preparing and sending an electronic mail communication using a wireless communications device |
US6510409B1 (en) * | 2000-01-18 | 2003-01-21 | Conexant Systems, Inc. | Intelligent discontinuous transmission and comfort noise generation scheme for pulse code modulation speech coders |
US7127390B1 (en) * | 2000-02-08 | 2006-10-24 | Mindspeed Technologies, Inc. | Rate determination coding |
EP1126651A1 (en) * | 2000-02-16 | 2001-08-22 | Lucent Technologies Inc. | Link adaptation for RT-EGPRS |
US6721368B1 (en) | 2000-03-04 | 2004-04-13 | Qualcomm Incorporated | Transmitter architectures for communications systems |
ES2287122T3 (es) | 2000-04-24 | 2007-12-16 | Qualcomm Incorporated | Procedimiento y aparato para cuantificar de manera predictiva habla sonora. |
US6584438B1 (en) | 2000-04-24 | 2003-06-24 | Qualcomm Incorporated | Frame erasure compensation method in a variable rate speech coder |
US6980527B1 (en) | 2000-04-25 | 2005-12-27 | Cwill Telecommunications, Inc. | Smart antenna CDMA wireless communication system |
US6285682B1 (en) * | 2000-05-01 | 2001-09-04 | Motorola, Inc. | Method and apparatus for determining the frame rate of a frame |
US7080009B2 (en) * | 2000-05-01 | 2006-07-18 | Motorola, Inc. | Method and apparatus for reducing rate determination errors and their artifacts |
FI115329B (fi) * | 2000-05-08 | 2005-04-15 | Nokia Corp | Menetelmä ja järjestely lähdesignaalin kaistanleveyden vaihtamiseksi tietoliikenneyhteydessä, jossa on valmiudet useisiin kaistanleveyksiin |
US7089181B2 (en) | 2001-05-30 | 2006-08-08 | Intel Corporation | Enhancing the intelligibility of received speech in a noisy environment |
US7035790B2 (en) | 2000-06-02 | 2006-04-25 | Canon Kabushiki Kaisha | Speech processing system |
US7072833B2 (en) | 2000-06-02 | 2006-07-04 | Canon Kabushiki Kaisha | Speech processing system |
US6954745B2 (en) | 2000-06-02 | 2005-10-11 | Canon Kabushiki Kaisha | Signal processing system |
US7010483B2 (en) | 2000-06-02 | 2006-03-07 | Canon Kabushiki Kaisha | Speech processing system |
US6735563B1 (en) | 2000-07-13 | 2004-05-11 | Qualcomm, Inc. | Method and apparatus for constructing voice templates for a speaker-independent voice recognition system |
US6671669B1 (en) * | 2000-07-18 | 2003-12-30 | Qualcomm Incorporated | combined engine system and method for voice recognition |
US6510142B1 (en) | 2000-07-21 | 2003-01-21 | Motorola, Inc. | Method and apparatus for reduced reversed traffic in a cellular telephone system |
US6856954B1 (en) * | 2000-07-28 | 2005-02-15 | Mindspeed Technologies, Inc. | Flexible variable rate vocoder for wireless communication systems |
US6728669B1 (en) * | 2000-08-07 | 2004-04-27 | Lucent Technologies Inc. | Relative pulse position in celp vocoding |
WO2002013183A1 (fr) * | 2000-08-09 | 2002-02-14 | Sony Corporation | Procede et dispositif de traitement de donnees vocales |
US6477502B1 (en) | 2000-08-22 | 2002-11-05 | Qualcomm Incorporated | Method and apparatus for using non-symmetric speech coders to produce non-symmetric links in a wireless communication system |
US6842733B1 (en) | 2000-09-15 | 2005-01-11 | Mindspeed Technologies, Inc. | Signal processing system for filtering spectral content of a signal for speech coding |
US6937979B2 (en) * | 2000-09-15 | 2005-08-30 | Mindspeed Technologies, Inc. | Coding based on spectral content of a speech signal |
US6850884B2 (en) * | 2000-09-15 | 2005-02-01 | Mindspeed Technologies, Inc. | Selection of coding parameters based on spectral content of a speech signal |
US7133823B2 (en) * | 2000-09-15 | 2006-11-07 | Mindspeed Technologies, Inc. | System for an adaptive excitation pattern for speech coding |
US6802035B2 (en) * | 2000-09-19 | 2004-10-05 | Intel Corporation | System and method of dynamically optimizing a transmission mode of wirelessly transmitted information |
US6760882B1 (en) | 2000-09-19 | 2004-07-06 | Intel Corporation | Mode selection for data transmission in wireless communication channels based on statistical parameters |
US7068683B1 (en) | 2000-10-25 | 2006-06-27 | Qualcomm, Incorporated | Method and apparatus for high rate packet data and low delay data transmissions |
US7171355B1 (en) | 2000-10-25 | 2007-01-30 | Broadcom Corporation | Method and apparatus for one-stage and two-stage noise feedback coding of speech and audio signals |
US6973098B1 (en) | 2000-10-25 | 2005-12-06 | Qualcomm, Incorporated | Method and apparatus for determining a data rate in a high rate packet data wireless communications system |
ATE333751T1 (de) * | 2000-11-09 | 2006-08-15 | Koninkl Kpn Nv | Messen einer übertragungsqualität einer telefonverbindung in einem fernmeldenetz |
US7606703B2 (en) * | 2000-11-15 | 2009-10-20 | Texas Instruments Incorporated | Layered celp system and method with varying perceptual filter or short-term postfilter strengths |
US6999430B2 (en) * | 2000-11-30 | 2006-02-14 | Qualcomm Incorporated | Method and apparatus for transmitting data traffic on a wireless communication channel |
US6804218B2 (en) | 2000-12-04 | 2004-10-12 | Qualcomm Incorporated | Method and apparatus for improved detection of rate errors in variable rate receivers |
US7472059B2 (en) * | 2000-12-08 | 2008-12-30 | Qualcomm Incorporated | Method and apparatus for robust speech classification |
US7505594B2 (en) * | 2000-12-19 | 2009-03-17 | Qualcomm Incorporated | Discontinuous transmission (DTX) controller system and method |
SE0004818D0 (sv) * | 2000-12-22 | 2000-12-22 | Coding Technologies Sweden Ab | Enhancing source coding systems by adaptive transposition |
US7346918B2 (en) | 2000-12-27 | 2008-03-18 | Z-Band, Inc. | Intelligent device system and method for distribution of digital signals on a wideband signal distribution system |
WO2002054601A1 (en) | 2000-12-29 | 2002-07-11 | Morphics Technology, Inc. | Channel codec processor configurable for multiple wireless communications standards |
US7113522B2 (en) * | 2001-01-24 | 2006-09-26 | Qualcomm, Incorporated | Enhanced conversion of wideband signals to narrowband signals |
US7062445B2 (en) * | 2001-01-26 | 2006-06-13 | Microsoft Corporation | Quantization loop with heuristic approach |
US7120134B2 (en) | 2001-02-15 | 2006-10-10 | Qualcomm, Incorporated | Reverse link channel architecture for a wireless communication system |
US20040204935A1 (en) * | 2001-02-21 | 2004-10-14 | Krishnasamy Anandakumar | Adaptive voice playout in VOP |
US6760587B2 (en) | 2001-02-23 | 2004-07-06 | Qualcomm Incorporated | Forward-link scheduling in a wireless communication system during soft and softer handoff |
US7289461B2 (en) | 2001-03-15 | 2007-10-30 | Qualcomm Incorporated | Communications using wideband terminals |
US20020181546A1 (en) * | 2001-03-23 | 2002-12-05 | Odenwalder Joseph P. | Preamble channels |
US6760576B2 (en) | 2001-03-27 | 2004-07-06 | Qualcomm Incorporated | Method and apparatus for enhanced rate determination in high data rate wireless communication systems |
US8199696B2 (en) * | 2001-03-29 | 2012-06-12 | Qualcomm Incorporated | Method and apparatus for power control in a wireless communication system |
US7230941B2 (en) | 2001-04-26 | 2007-06-12 | Qualcomm Incorporated | Preamble channel decoding |
US6625172B2 (en) | 2001-04-26 | 2003-09-23 | Joseph P. Odenwalder | Rescheduling scheduled transmissions |
JP4591939B2 (ja) * | 2001-05-15 | 2010-12-01 | Kddi株式会社 | 適応的符号化伝送装置および受信装置 |
US7170924B2 (en) * | 2001-05-17 | 2007-01-30 | Qualcomm, Inc. | System and method for adjusting combiner weights using an adaptive algorithm in wireless communications system |
US6990137B2 (en) * | 2001-05-17 | 2006-01-24 | Qualcomm, Incorporated | System and method for received signal prediction in wireless communications systems |
JP3859462B2 (ja) * | 2001-05-18 | 2006-12-20 | 株式会社東芝 | 予測パラメータ分析装置および予測パラメータ分析方法 |
US6789059B2 (en) * | 2001-06-06 | 2004-09-07 | Qualcomm Incorporated | Reducing memory requirements of a codebook vector search |
GB2387304B (en) | 2001-06-28 | 2004-07-07 | Samsung Electronics Co Ltd | Apparatus and method for decoding TFCI bits for a hard split mode in a CDMA mobile communication system |
US7489655B2 (en) * | 2001-07-06 | 2009-02-10 | Qualcomm, Incorporated | Method and apparatus for predictive scheduling in a bi-directional communication system |
JP2003044098A (ja) * | 2001-07-26 | 2003-02-14 | Nec Corp | 音声帯域拡張装置及び音声帯域拡張方法 |
US7110942B2 (en) * | 2001-08-14 | 2006-09-19 | Broadcom Corporation | Efficient excitation quantization in a noise feedback coding system using correlation techniques |
WO2003017555A2 (en) * | 2001-08-17 | 2003-02-27 | Broadcom Corporation | Improved bit error concealment methods for speech coding |
US7162415B2 (en) * | 2001-11-06 | 2007-01-09 | The Regents Of The University Of California | Ultra-narrow bandwidth voice coding |
US7453801B2 (en) * | 2001-11-08 | 2008-11-18 | Qualcomm Incorporated | Admission control and resource allocation in a communication system supporting application flows having quality of service requirements |
KR100962153B1 (ko) * | 2001-12-05 | 2010-06-10 | 퀄컴 인코포레이티드 | 통신 시스템에서 서비스 품질을 조정하기 위한 시스템 및방법 |
US7027982B2 (en) * | 2001-12-14 | 2006-04-11 | Microsoft Corporation | Quality and rate control strategy for digital audio |
US7146313B2 (en) * | 2001-12-14 | 2006-12-05 | Microsoft Corporation | Techniques for measurement of perceptual audio quality |
GB2383239B (en) * | 2001-12-15 | 2004-03-17 | Motorola Inc | A method and apparatus for transmitting data |
US7206740B2 (en) * | 2002-01-04 | 2007-04-17 | Broadcom Corporation | Efficient excitation quantization in noise feedback coding with general noise shaping |
JP3778087B2 (ja) * | 2002-01-18 | 2006-05-24 | 富士ゼロックス株式会社 | データ符号化装置及びデータ復号装置 |
US6957183B2 (en) * | 2002-03-20 | 2005-10-18 | Qualcomm Inc. | Method for robust voice recognition by analyzing redundant features of source signal |
US7313520B2 (en) * | 2002-03-20 | 2007-12-25 | The Directv Group, Inc. | Adaptive variable bit rate audio compression encoding |
US7321559B2 (en) * | 2002-06-28 | 2008-01-22 | Lucent Technologies Inc | System and method of noise reduction in receiving wireless transmission of packetized audio signals |
US6980695B2 (en) * | 2002-06-28 | 2005-12-27 | Microsoft Corporation | Rate allocation for mixed content video |
CA2392640A1 (en) * | 2002-07-05 | 2004-01-05 | Voiceage Corporation | A method and device for efficient in-based dim-and-burst signaling and half-rate max operation in variable bit-rate wideband speech coding for cdma wireless systems |
US8090577B2 (en) * | 2002-08-08 | 2012-01-03 | Qualcomm Incorported | Bandwidth-adaptive quantization |
JP2004151123A (ja) * | 2002-10-23 | 2004-05-27 | Nec Corp | 符号変換方法、符号変換装置、プログラム及びその記憶媒体 |
US7602722B2 (en) * | 2002-12-04 | 2009-10-13 | Nortel Networks Limited | Mobile assisted fast scheduling for the reverse link |
GB2396271B (en) * | 2002-12-10 | 2005-08-10 | Motorola Inc | A user terminal and method for voice communication |
US7698132B2 (en) * | 2002-12-17 | 2010-04-13 | Qualcomm Incorporated | Sub-sampled excitation waveform codebooks |
US7120447B1 (en) * | 2003-02-24 | 2006-10-10 | Nortel Networks Limited | Selectable mode vocoder management algorithm for CDMA based networks |
US6965859B2 (en) * | 2003-02-28 | 2005-11-15 | Xvd Corporation | Method and apparatus for audio compression |
KR100480341B1 (ko) * | 2003-03-13 | 2005-03-31 | 한국전자통신연구원 | 광대역 저전송률 음성 신호의 부호화기 |
US7009999B2 (en) | 2003-03-28 | 2006-03-07 | Qualcomm Incorporated | Selective variable rate encoding to regulate data frame size |
KR20050007977A (ko) * | 2003-07-12 | 2005-01-21 | 삼성전자주식회사 | 이동 통신 시스템에서의 보코더의 모드 및 전송율 제어 방법 |
US7577756B2 (en) * | 2003-07-15 | 2009-08-18 | Special Devices, Inc. | Dynamically-and continuously-variable rate, asynchronous data transfer |
US7609763B2 (en) * | 2003-07-18 | 2009-10-27 | Microsoft Corporation | Advanced bi-directional predictive coding of video frames |
US7343291B2 (en) * | 2003-07-18 | 2008-03-11 | Microsoft Corporation | Multi-pass variable bitrate media encoding |
US7383180B2 (en) * | 2003-07-18 | 2008-06-03 | Microsoft Corporation | Constant bitrate media encoding techniques |
US7146309B1 (en) | 2003-09-02 | 2006-12-05 | Mindspeed Technologies, Inc. | Deriving seed values to generate excitation values in a speech coder |
US7613606B2 (en) * | 2003-10-02 | 2009-11-03 | Nokia Corporation | Speech codecs |
US7379875B2 (en) * | 2003-10-24 | 2008-05-27 | Microsoft Corporation | Systems and methods for generating audio thumbnails |
US7505764B2 (en) * | 2003-10-28 | 2009-03-17 | Motorola, Inc. | Method for retransmitting a speech packet |
US20050147131A1 (en) * | 2003-12-29 | 2005-07-07 | Nokia Corporation | Low-rate in-band data channel using CELP codewords |
KR100629997B1 (ko) * | 2004-02-26 | 2006-09-27 | 엘지전자 주식회사 | 오디오 신호의 인코딩 방법 |
US8473286B2 (en) * | 2004-02-26 | 2013-06-25 | Broadcom Corporation | Noise feedback coding system and method for providing generalized noise shaping within a simple filter structure |
EP1722359B1 (en) * | 2004-03-05 | 2011-09-07 | Panasonic Corporation | Error conceal device and error conceal method |
JP2005337573A (ja) | 2004-05-26 | 2005-12-08 | Sanden Corp | 熱交換器 |
JPWO2006008932A1 (ja) * | 2004-07-23 | 2008-05-01 | 松下電器産業株式会社 | 音声符号化装置および音声符号化方法 |
JP4936894B2 (ja) * | 2004-08-27 | 2012-05-23 | パナソニック株式会社 | オーディオデコーダ、方法及びプログラム |
EP2189978A1 (en) | 2004-08-30 | 2010-05-26 | QUALCOMM Incorporated | Adaptive De-Jitter Buffer for voice over IP |
SE0402372D0 (sv) | 2004-09-30 | 2004-09-30 | Ericsson Telefon Ab L M | Signal coding |
SE528213C3 (sv) * | 2004-09-30 | 2006-10-31 | Ericsson Telefon Ab L M | Förfaranden och arrangemang för adaptiva trösklar vid val av kodek |
US8085678B2 (en) | 2004-10-13 | 2011-12-27 | Qualcomm Incorporated | Media (voice) playback (de-jitter) buffer adjustments based on air interface |
US7697480B2 (en) * | 2004-11-22 | 2010-04-13 | Motorola, Inc | Method and apparatus for inter-system active handoff of a hybrid subscriber unit |
US20060109819A1 (en) * | 2004-11-22 | 2006-05-25 | Marin James S | Method and apparatus for inter-system active handoff of a hybrid subscriber unit |
US8102872B2 (en) * | 2005-02-01 | 2012-01-24 | Qualcomm Incorporated | Method for discontinuous transmission and accurate reproduction of background noise information |
US20060224381A1 (en) * | 2005-04-04 | 2006-10-05 | Nokia Corporation | Detecting speech frames belonging to a low energy sequence |
US20060241937A1 (en) * | 2005-04-21 | 2006-10-26 | Ma Changxue C | Method and apparatus for automatically discriminating information bearing audio segments and background noise audio segments |
US7983301B2 (en) * | 2005-06-24 | 2011-07-19 | O2Micro International, Ltd. | Method for extended transmission capabilities of short message service |
US20080201689A1 (en) * | 2005-06-30 | 2008-08-21 | Freescale Semiconductor, Inc. | Vector Crc Computatuion on Dsp |
US20070005347A1 (en) * | 2005-06-30 | 2007-01-04 | Kotzin Michael D | Method and apparatus for data frame construction |
JP5035816B2 (ja) * | 2005-07-14 | 2012-09-26 | 一般財団法人電力中央研究所 | 細孔内付着液体残留量推定方法 |
US7542421B2 (en) * | 2005-09-09 | 2009-06-02 | Tropos Networks | Adaptive control of transmission power and data rates of transmission links between access nodes of a mesh network |
CN1964244B (zh) * | 2005-11-08 | 2010-04-07 | 厦门致晟科技有限公司 | 一种用声码器收发数字信号的方法 |
EP1955320A2 (en) * | 2005-12-02 | 2008-08-13 | QUALCOMM Incorporated | Systems, methods, and apparatus for frequency-domain waveform alignment |
TWI330355B (en) * | 2005-12-05 | 2010-09-11 | Qualcomm Inc | Systems, methods, and apparatus for detection of tonal components |
KR100744542B1 (ko) * | 2005-12-08 | 2007-08-01 | 한국전자통신연구원 | 가변대역 멀티코덱 QoS 제어 장치 및 방법 |
US8032369B2 (en) * | 2006-01-20 | 2011-10-04 | Qualcomm Incorporated | Arbitrary average data rates for variable rate coders |
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 |
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 |
JP4816115B2 (ja) * | 2006-02-08 | 2011-11-16 | カシオ計算機株式会社 | 音声符号化装置及び音声符号化方法 |
US8036242B2 (en) * | 2006-02-15 | 2011-10-11 | Qualcomm Incorporated | Dynamic capacity operating point management for a vocoder in an access terminal |
US7720499B2 (en) * | 2006-02-27 | 2010-05-18 | Tropos Networks, Inc. | Regulation of transmission power control in mitigate self interference by optimizing link transmission parameters in a wireless network |
JP4771835B2 (ja) * | 2006-03-06 | 2011-09-14 | 株式会社リコー | トナー及び画像形成方法 |
FR2898443A1 (fr) * | 2006-03-13 | 2007-09-14 | France Telecom | Procede de codage d'un signal audio source, dispositif de codage, procede et dispositif de decodage, signal, produits programme d'ordinateur correspondants |
US7778828B2 (en) * | 2006-03-15 | 2010-08-17 | Sasken Communication Technologies Ltd. | Method and system for automatic gain control of a speech signal |
US8392176B2 (en) * | 2006-04-10 | 2013-03-05 | Qualcomm Incorporated | Processing of excitation in audio coding and decoding |
KR100900438B1 (ko) * | 2006-04-25 | 2009-06-01 | 삼성전자주식회사 | 음성 패킷 복구 장치 및 방법 |
DE102006025042B4 (de) * | 2006-05-26 | 2008-08-14 | Infineon Technologies Ag | Datenratenfehler-tolerante Synchronisation eines digitalen Empfängers |
US8036186B2 (en) * | 2006-07-26 | 2011-10-11 | Tropos Networks, Inc. | Adaptively setting transmission power levels of nodes within a wireless mesh network |
US8260609B2 (en) | 2006-07-31 | 2012-09-04 | Qualcomm Incorporated | Systems, methods, and apparatus for wideband encoding and decoding of inactive frames |
US8135047B2 (en) | 2006-07-31 | 2012-03-13 | Qualcomm Incorporated | Systems and methods for including an identifier with a packet associated with a speech signal |
KR100883652B1 (ko) * | 2006-08-03 | 2009-02-18 | 삼성전자주식회사 | 음성 구간 검출 방법 및 장치, 및 이를 이용한 음성 인식시스템 |
US8214202B2 (en) * | 2006-09-13 | 2012-07-03 | Telefonaktiebolaget L M Ericsson (Publ) | Methods and arrangements for a speech/audio sender and receiver |
US7877253B2 (en) * | 2006-10-06 | 2011-01-25 | Qualcomm Incorporated | Systems, methods, and apparatus for frame erasure recovery |
EP2074711A2 (en) | 2006-10-06 | 2009-07-01 | ViaSat, Inc. | Forward and reverse calibration for ground-based beamforming |
CA2663904C (en) * | 2006-10-10 | 2014-05-27 | Qualcomm Incorporated | Method and apparatus for encoding and decoding audio signals |
KR100833499B1 (ko) * | 2006-10-27 | 2008-05-29 | 한국전자통신연구원 | 가변 대역 멀티 코덱의 음성 품질 측정 장치 및 방법 |
CN100587186C (zh) * | 2006-11-02 | 2010-02-03 | 邹家祥 | 一种保温组合墙板构筑墙体的方法 |
US8279889B2 (en) * | 2007-01-04 | 2012-10-02 | Qualcomm Incorporated | Systems and methods for dimming a first packet associated with a first bit rate to a second packet associated with a second bit rate |
US8254455B2 (en) * | 2007-06-30 | 2012-08-28 | Microsoft Corporation | Computing collocated macroblock information for direct mode macroblocks |
US8428957B2 (en) | 2007-08-24 | 2013-04-23 | Qualcomm Incorporated | Spectral noise shaping in audio coding based on spectral dynamics in frequency sub-bands |
US20090198500A1 (en) * | 2007-08-24 | 2009-08-06 | Qualcomm Incorporated | Temporal masking in audio coding based on spectral dynamics in frequency sub-bands |
US20090094026A1 (en) * | 2007-10-03 | 2009-04-09 | Binshi Cao | Method of determining an estimated frame energy of a communication |
US8326617B2 (en) | 2007-10-24 | 2012-12-04 | Qnx Software Systems Limited | Speech enhancement with minimum gating |
US8015002B2 (en) | 2007-10-24 | 2011-09-06 | Qnx Software Systems Co. | Dynamic noise reduction using linear model fitting |
US8606566B2 (en) * | 2007-10-24 | 2013-12-10 | Qnx Software Systems Limited | Speech enhancement through partial speech reconstruction |
WO2009078093A1 (ja) * | 2007-12-18 | 2009-06-25 | Fujitsu Limited | 非音声区間検出方法及び非音声区間検出装置 |
MX2010009307A (es) * | 2008-03-14 | 2010-09-24 | Panasonic Corp | Dispositivo de codificacion, dispositivo de decodificacion y metodo de los mismos. |
US8325800B2 (en) | 2008-05-07 | 2012-12-04 | Microsoft Corporation | Encoding streaming media as a high bit rate layer, a low bit rate layer, and one or more intermediate bit rate layers |
US8379851B2 (en) | 2008-05-12 | 2013-02-19 | Microsoft Corporation | Optimized client side rate control and indexed file layout for streaming media |
US7925774B2 (en) * | 2008-05-30 | 2011-04-12 | Microsoft Corporation | Media streaming using an index file |
US7948887B2 (en) * | 2008-06-24 | 2011-05-24 | Microsoft Corporation | Network bandwidth measurement |
US8144602B2 (en) * | 2008-08-06 | 2012-03-27 | Jds Uniphase Corporation | Network load tester with real-time detection and recording |
US8265140B2 (en) | 2008-09-30 | 2012-09-11 | Microsoft Corporation | Fine-grained client-side control of scalable media delivery |
US8964692B2 (en) * | 2008-11-10 | 2015-02-24 | Qualcomm Incorporated | Spectrum sensing of bluetooth using a sequence of energy detection measurements |
EP2211335A1 (en) * | 2009-01-21 | 2010-07-28 | Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. | Apparatus, method and computer program for obtaining a parameter describing a variation of a signal characteristic of a signal |
US8189666B2 (en) | 2009-02-02 | 2012-05-29 | Microsoft Corporation | Local picture identifier and computation of co-located information |
US8949114B2 (en) | 2009-06-04 | 2015-02-03 | Optis Wireless Technology, Llc | Method and arrangement for estimating the quality degradation of a processed signal |
KR20110001130A (ko) * | 2009-06-29 | 2011-01-06 | 삼성전자주식회사 | 가중 선형 예측 변환을 이용한 오디오 신호 부호화 및 복호화 장치 및 그 방법 |
CN102483926B (zh) | 2009-07-27 | 2013-07-24 | Scti控股公司 | 在处理语音信号中通过把语音作为目标和忽略噪声以降噪的系统及方法 |
US8811200B2 (en) | 2009-09-22 | 2014-08-19 | Qualcomm Incorporated | Physical layer metrics to support adaptive station-dependent channel state information feedback rate in multi-user communication systems |
US9202476B2 (en) | 2009-10-19 | 2015-12-01 | Telefonaktiebolaget L M Ericsson (Publ) | Method and background estimator for voice activity detection |
EP2506253A4 (en) * | 2009-11-24 | 2014-01-01 | Lg Electronics Inc | METHOD AND DEVICE FOR PROCESSING AUDIO SIGNAL |
US8781822B2 (en) * | 2009-12-22 | 2014-07-15 | Qualcomm Incorporated | Audio and speech processing with optimal bit-allocation for constant bit rate applications |
US20110196673A1 (en) * | 2010-02-11 | 2011-08-11 | Qualcomm Incorporated | Concealing lost packets in a sub-band coding decoder |
US8374858B2 (en) * | 2010-03-09 | 2013-02-12 | Dts, Inc. | Scalable lossless audio codec and authoring tool |
US9082416B2 (en) * | 2010-09-16 | 2015-07-14 | Qualcomm Incorporated | Estimating a pitch lag |
JP5712288B2 (ja) | 2011-02-14 | 2015-05-07 | フラウンホーファー−ゲゼルシャフト・ツール・フェルデルング・デル・アンゲヴァンテン・フォルシュング・アインゲトラーゲネル・フェライン | 重複変換を使用した情報信号表記 |
TWI488176B (zh) | 2011-02-14 | 2015-06-11 | Fraunhofer Ges Forschung | 音訊信號音軌脈衝位置之編碼與解碼技術 |
AU2012217269B2 (en) | 2011-02-14 | 2015-10-22 | Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E.V. | Apparatus and method for processing a decoded audio signal in a spectral domain |
ES2534972T3 (es) | 2011-02-14 | 2015-04-30 | Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. | Predicción lineal basada en esquema de codificación utilizando conformación de ruido de dominio espectral |
MX2013009306A (es) | 2011-02-14 | 2013-09-26 | Fraunhofer Ges Forschung | Aparato y metodo para codificar y decodificar una señal de audio utilizando una porcion alineada anticipada. |
JP5849106B2 (ja) * | 2011-02-14 | 2016-01-27 | フラウンホーファー−ゲゼルシャフト・ツール・フェルデルング・デル・アンゲヴァンテン・フォルシュング・アインゲトラーゲネル・フェライン | 低遅延の統合されたスピーチ及びオーディオ符号化におけるエラー隠しのための装置及び方法 |
TWI480857B (zh) | 2011-02-14 | 2015-04-11 | Fraunhofer Ges Forschung | 在不活動階段期間利用雜訊合成之音訊編解碼器 |
WO2012110448A1 (en) | 2011-02-14 | 2012-08-23 | Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. | Apparatus and method for coding a portion of an audio signal using a transient detection and a quality result |
PL2676267T3 (pl) | 2011-02-14 | 2017-12-29 | Fraunhofergesellschaft Zur Förderung Der Angewandten Forschung E V | Kodowanie i dekodowanie pozycji impulsów ścieżek sygnału audio |
US8762136B2 (en) * | 2011-05-03 | 2014-06-24 | Lsi Corporation | System and method of speech compression using an inter frame parameter correlation |
US8990074B2 (en) * | 2011-05-24 | 2015-03-24 | Qualcomm Incorporated | Noise-robust speech coding mode classification |
FR2977969A1 (fr) * | 2011-07-12 | 2013-01-18 | France Telecom | Adaptation de fenetres de ponderation d'analyse ou de synthese pour un codage ou decodage par transformee |
US9208796B2 (en) * | 2011-08-22 | 2015-12-08 | Genband Us Llc | Estimation of speech energy based on code excited linear prediction (CELP) parameters extracted from a partially-decoded CELP-encoded bit stream and applications of same |
EP2798631B1 (en) * | 2011-12-21 | 2016-03-23 | Huawei Technologies Co., Ltd. | Adaptively encoding pitch lag for voiced speech |
US9111531B2 (en) * | 2012-01-13 | 2015-08-18 | Qualcomm Incorporated | Multiple coding mode signal classification |
CN108831501B (zh) * | 2012-03-21 | 2023-01-10 | 三星电子株式会社 | 用于带宽扩展的高频编码/高频解码方法和设备 |
MY178710A (en) | 2012-12-21 | 2020-10-20 | Fraunhofer Ges Forschung | Comfort noise addition for modeling background noise at low bit-rates |
AU2013366642B2 (en) | 2012-12-21 | 2016-09-22 | Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E.V. | Generation of a comfort noise with high spectro-temporal resolution in discontinuous transmission of audio signals |
KR101754094B1 (ko) | 2013-04-05 | 2017-07-05 | 돌비 인터네셔널 에이비 | 고급 양자화기 |
FR3008533A1 (fr) * | 2013-07-12 | 2015-01-16 | Orange | Facteur d'echelle optimise pour l'extension de bande de frequence dans un decodeur de signaux audiofrequences |
US9640185B2 (en) * | 2013-12-12 | 2017-05-02 | Motorola Solutions, Inc. | Method and apparatus for enhancing the modulation index of speech sounds passed through a digital vocoder |
US9570095B1 (en) * | 2014-01-17 | 2017-02-14 | Marvell International Ltd. | Systems and methods for instantaneous noise estimation |
US9721580B2 (en) * | 2014-03-31 | 2017-08-01 | Google Inc. | Situation dependent transient suppression |
CN105023579A (zh) * | 2014-04-30 | 2015-11-04 | 中国电信股份有限公司 | 语音通信中语音编码实现方法、装置和通信终端 |
EP2980796A1 (en) * | 2014-07-28 | 2016-02-03 | Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. | Method and apparatus for processing an audio signal, audio decoder, and audio encoder |
TWI602172B (zh) * | 2014-08-27 | 2017-10-11 | 弗勞恩霍夫爾協會 | 使用參數以加強隱蔽之用於編碼及解碼音訊內容的編碼器、解碼器及方法 |
CN104833105A (zh) * | 2015-05-28 | 2015-08-12 | 芜湖美的厨卫电器制造有限公司 | 热水器和热水器系统 |
US11631421B2 (en) * | 2015-10-18 | 2023-04-18 | Solos Technology Limited | Apparatuses and methods for enhanced speech recognition in variable environments |
KR102595478B1 (ko) * | 2016-01-03 | 2023-10-27 | 아우로 테크놀로지스 엔브이 | 예측자 모델을 이용한 신호 인코더, 디코더 및 방법 |
US11227214B2 (en) | 2017-11-14 | 2022-01-18 | Advanced Micro Devices, Inc. | Memory bandwidth reduction techniques for low power convolutional neural network inference applications |
EA038803B1 (ru) * | 2017-12-25 | 2021-10-21 | Федеральное государственное унитарное предприятие "Всероссийский научно-исследовательский институт автоматики им. Н.Л. Духова" | Способ адаптивной цифровой фильтрации импульсных помех и фильтр для его реализации |
US11948073B2 (en) | 2018-04-20 | 2024-04-02 | Advanced Micro Devices, Inc. | Machine learning inference engine scalability |
RU2691122C1 (ru) * | 2018-06-13 | 2019-06-11 | Ордена трудового Красного Знамени федеральное государственное бюджетное образовательное учреждение высшего образования "Московский технический университет связи и информатики" (МТУСИ) | Способ и устройство компандирования звуковых вещательных сигналов |
US11775799B2 (en) | 2018-08-02 | 2023-10-03 | Advanced Micro Devices, Inc. | Runtime extension for neural network training with heterogeneous memory |
US11769041B2 (en) | 2018-10-31 | 2023-09-26 | Advanced Micro Devices, Inc. | Low latency long short-term memory inference with sequence interleaving |
US10756795B2 (en) | 2018-12-18 | 2020-08-25 | XCOM Labs, Inc. | User equipment with cellular link and peer-to-peer link |
US11063645B2 (en) | 2018-12-18 | 2021-07-13 | XCOM Labs, Inc. | Methods of wirelessly communicating with a group of devices |
CN111338974A (zh) | 2018-12-19 | 2020-06-26 | 超威半导体公司 | 用于矩阵数学指令集的图块化算法 |
CN111353575B (zh) | 2018-12-20 | 2025-01-10 | 超威半导体公司 | 用于卷积神经网络的图块化格式 |
US11330649B2 (en) | 2019-01-25 | 2022-05-10 | XCOM Labs, Inc. | Methods and systems of multi-link peer-to-peer communications |
US10756767B1 (en) | 2019-02-05 | 2020-08-25 | XCOM Labs, Inc. | User equipment for wirelessly communicating cellular signal with another user equipment |
CN111723918A (zh) | 2019-03-18 | 2020-09-29 | 超威半导体公司 | 用于卷积内核的自动生成和调谐工具 |
US11610142B2 (en) | 2019-05-28 | 2023-03-21 | Ati Technologies Ulc | Safety monitor for image misclassification |
US11210199B2 (en) | 2019-05-31 | 2021-12-28 | Ati Technologies Ulc | Safety monitor for invalid image transform |
US11250867B1 (en) * | 2019-10-08 | 2022-02-15 | Rockwell Collins, Inc. | Incorporating data into a voice signal with zero overhead |
JP7332890B2 (ja) | 2019-11-19 | 2023-08-24 | アイコム株式会社 | 音声通信システム、音声通信方法、および、音声通信プログラム |
US11023390B1 (en) * | 2020-03-27 | 2021-06-01 | Arm Limited | Resizing circuitry |
CN112767953B (zh) * | 2020-06-24 | 2024-01-23 | 腾讯科技(深圳)有限公司 | 语音编码方法、装置、计算机设备和存储介质 |
Family Cites Families (71)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US32580A (en) * | 1861-06-18 | Water-elevatok | ||
US3633107A (en) * | 1970-06-04 | 1972-01-04 | Bell Telephone Labor Inc | Adaptive signal processor for diversity radio receivers |
JPS5017711A (es) * | 1973-06-15 | 1975-02-25 | ||
US3988674A (en) * | 1975-03-17 | 1976-10-26 | Communications Satellite Corporation (Comsat) | Frame synchronization in speech predictive encoded communication system |
US4076958A (en) * | 1976-09-13 | 1978-02-28 | E-Systems, Inc. | Signal synthesizer spectrum contour scaler |
US4214125A (en) * | 1977-01-21 | 1980-07-22 | Forrest S. Mozer | Method and apparatus for speech synthesizing |
CA1123955A (en) * | 1978-03-30 | 1982-05-18 | Tetsu Taguchi | Speech analysis and synthesis apparatus |
DE3023375C1 (es) * | 1980-06-23 | 1987-12-03 | Siemens Ag, 1000 Berlin Und 8000 Muenchen, De | |
US4379949A (en) * | 1981-08-10 | 1983-04-12 | Motorola, Inc. | Method of and means for variable-rate coding of LPC parameters |
JPS6011360B2 (ja) * | 1981-12-15 | 1985-03-25 | ケイディディ株式会社 | 音声符号化方式 |
US4535472A (en) * | 1982-11-05 | 1985-08-13 | At&T Bell Laboratories | Adaptive bit allocator |
EP0111612B1 (fr) * | 1982-11-26 | 1987-06-24 | International Business Machines Corporation | Procédé et dispositif de codage d'un signal vocal |
DE3370423D1 (en) * | 1983-06-07 | 1987-04-23 | Ibm | Process for activity detection in a voice transmission system |
US4672670A (en) * | 1983-07-26 | 1987-06-09 | Advanced Micro Devices, Inc. | Apparatus and methods for coding, decoding, analyzing and synthesizing a signal |
EP0163829B1 (en) * | 1984-03-21 | 1989-08-23 | Nippon Telegraph And Telephone Corporation | Speech signal processing system |
IT1179803B (it) * | 1984-10-30 | 1987-09-16 | Cselt Centro Studi Lab Telecom | Metodo e dispositivo per la correzione di errori causati da rumore di tipo impulsivo su segnali vocali codificati con bassa velocita di ci fra e trasmessi su canali di comunicazione radio |
US4937873A (en) * | 1985-03-18 | 1990-06-26 | Massachusetts Institute Of Technology | Computationally efficient sine wave synthesis for acoustic waveform processing |
US4885790A (en) * | 1985-03-18 | 1989-12-05 | Massachusetts Institute Of Technology | Processing of acoustic waveforms |
US4856068A (en) * | 1985-03-18 | 1989-08-08 | Massachusetts Institute Of Technology | Audio pre-processing methods and apparatus |
US4831636A (en) * | 1985-06-28 | 1989-05-16 | Fujitsu Limited | Coding transmission equipment for carrying out coding with adaptive quantization |
US4827517A (en) * | 1985-12-26 | 1989-05-02 | American Telephone And Telegraph Company, At&T Bell Laboratories | Digital speech processor using arbitrary excitation coding |
US4797929A (en) * | 1986-01-03 | 1989-01-10 | Motorola, Inc. | Word recognition in a speech recognition system using data reduced word templates |
CA1299750C (en) * | 1986-01-03 | 1992-04-28 | Ira Alan Gerson | Optimal method of data reduction in a speech recognition system |
JPH0748695B2 (ja) * | 1986-05-23 | 1995-05-24 | 株式会社日立製作所 | 音声符号化方式 |
US4899384A (en) * | 1986-08-25 | 1990-02-06 | Ibm Corporation | Table controlled dynamic bit allocation in a variable rate sub-band speech coder |
US4771465A (en) * | 1986-09-11 | 1988-09-13 | American Telephone And Telegraph Company, At&T Bell Laboratories | Digital speech sinusoidal vocoder with transmission of only subset of harmonics |
US4797925A (en) * | 1986-09-26 | 1989-01-10 | Bell Communications Research, Inc. | Method for coding speech at low bit rates |
US4903301A (en) * | 1987-02-27 | 1990-02-20 | Hitachi, Ltd. | Method and system for transmitting variable rate speech signal |
US5054072A (en) * | 1987-04-02 | 1991-10-01 | Massachusetts Institute Of Technology | Coding of acoustic waveforms |
US4969192A (en) * | 1987-04-06 | 1990-11-06 | Voicecraft, Inc. | Vector adaptive predictive coder for speech and audio |
US4868867A (en) * | 1987-04-06 | 1989-09-19 | Voicecraft Inc. | Vector excitation speech or audio coder for transmission or storage |
US5202953A (en) * | 1987-04-08 | 1993-04-13 | Nec Corporation | Multi-pulse type coding system with correlation calculation by backward-filtering operation for multi-pulse searching |
US4890327A (en) * | 1987-06-03 | 1989-12-26 | Itt Corporation | Multi-rate digital voice coder apparatus |
US4802171A (en) * | 1987-06-04 | 1989-01-31 | Motorola, Inc. | Method for error correction in digitally encoded speech |
US4831624A (en) * | 1987-06-04 | 1989-05-16 | Motorola, Inc. | Error detection method for sub-band coding |
US4899385A (en) * | 1987-06-26 | 1990-02-06 | American Telephone And Telegraph Company | Code excited linear predictive vocoder |
CA1337217C (en) * | 1987-08-28 | 1995-10-03 | Daniel Kenneth Freeman | Speech coding |
BR8807683A (pt) * | 1987-09-02 | 1990-06-26 | Moltech Invent Sa | Um material composito de ceramica/metal |
US4811404A (en) * | 1987-10-01 | 1989-03-07 | Motorola, Inc. | Noise suppression system |
US4852179A (en) * | 1987-10-05 | 1989-07-25 | Motorola, Inc. | Variable frame rate, fixed bit rate vocoding method |
US4896361A (en) * | 1988-01-07 | 1990-01-23 | Motorola, Inc. | Digital speech coder having improved vector excitation source |
EP0331857B1 (en) * | 1988-03-08 | 1992-05-20 | International Business Machines Corporation | Improved low bit rate voice coding method and system |
EP0331858B1 (en) * | 1988-03-08 | 1993-08-25 | International Business Machines Corporation | Multi-rate voice encoding method and device |
US5023910A (en) * | 1988-04-08 | 1991-06-11 | At&T Bell Laboratories | Vector quantization in a harmonic speech coding arrangement |
US4864561A (en) * | 1988-06-20 | 1989-09-05 | American Telephone And Telegraph Company | Technique for improved subjective performance in a communication system using attenuated noise-fill |
JPH0783315B2 (ja) * | 1988-09-26 | 1995-09-06 | 富士通株式会社 | 可変レート音声信号符号化方式 |
US5077798A (en) * | 1988-09-28 | 1991-12-31 | Hitachi, Ltd. | Method and system for voice coding based on vector quantization |
DE3853161T2 (de) * | 1988-10-19 | 1995-08-17 | Ibm | Vektorquantisierungscodierer. |
NL8901032A (nl) * | 1988-11-10 | 1990-06-01 | Philips Nv | Coder om extra informatie op te nemen in een digitaal audiosignaal met een tevoren bepaald formaat, een decoder om deze extra informatie uit dit digitale signaal af te leiden, een inrichting voor het opnemen van een digitaal signaal op een registratiedrager, voorzien van de coder, en een registratiedrager verkregen met deze inrichting. |
JP3033060B2 (ja) * | 1988-12-22 | 2000-04-17 | 国際電信電話株式会社 | 音声予測符号化・復号化方式 |
CA2005115C (en) * | 1989-01-17 | 1997-04-22 | Juin-Hwey Chen | Low-delay code-excited linear predictive coder for speech or audio |
US5222189A (en) * | 1989-01-27 | 1993-06-22 | Dolby Laboratories Licensing Corporation | Low time-delay transform coder, decoder, and encoder/decoder for high-quality audio |
DE68916944T2 (de) * | 1989-04-11 | 1995-03-16 | Ibm | Verfahren zur schnellen Bestimmung der Grundfrequenz in Sprachcodierern mit langfristiger Prädiktion. |
US5060269A (en) * | 1989-05-18 | 1991-10-22 | General Electric Company | Hybrid switched multi-pulse/stochastic speech coding technique |
US4975956A (en) * | 1989-07-26 | 1990-12-04 | Itt Corporation | Low-bit-rate speech coder using LPC data reduction processing |
GB2235354A (en) * | 1989-08-16 | 1991-02-27 | Philips Electronic Associated | Speech coding/encoding using celp |
US5091945A (en) * | 1989-09-28 | 1992-02-25 | At&T Bell Laboratories | Source dependent channel coding with error protection |
WO1991005333A1 (en) * | 1989-10-06 | 1991-04-18 | Motorola, Inc. | Error detection/correction scheme for vocoders |
US5307441A (en) * | 1989-11-29 | 1994-04-26 | Comsat Corporation | Wear-toll quality 4.8 kbps speech codec |
JPH03181232A (ja) * | 1989-12-11 | 1991-08-07 | Toshiba Corp | 可変レート符号化方式 |
US5097507A (en) * | 1989-12-22 | 1992-03-17 | General Electric Company | Fading bit error protection for digital cellular multi-pulse speech coder |
CH680030A5 (es) * | 1990-03-22 | 1992-05-29 | Ascom Zelcom Ag | |
JP3102015B2 (ja) * | 1990-05-28 | 2000-10-23 | 日本電気株式会社 | 音声復号化方法 |
US5103459B1 (en) * | 1990-06-25 | 1999-07-06 | Qualcomm Inc | System and method for generating signal waveforms in a cdma cellular telephone system |
US5235671A (en) * | 1990-10-15 | 1993-08-10 | Gte Laboratories Incorporated | Dynamic bit allocation subband excited transform coding method and apparatus |
US5187745A (en) * | 1991-06-27 | 1993-02-16 | Motorola, Inc. | Efficient codebook search for CELP vocoders |
JP3432822B2 (ja) * | 1991-06-11 | 2003-08-04 | クゥアルコム・インコーポレイテッド | 可変速度ボコーダ |
US5734789A (en) * | 1992-06-01 | 1998-03-31 | Hughes Electronics | Voiced, unvoiced or noise modes in a CELP vocoder |
US5495555A (en) * | 1992-06-01 | 1996-02-27 | Hughes Aircraft Company | High quality low bit rate celp-based speech codec |
US5566206A (en) * | 1993-06-18 | 1996-10-15 | Qualcomm Incorporated | Method and apparatus for determining data rate of transmitted variable rate data in a communications receiver |
US5537410A (en) * | 1994-09-15 | 1996-07-16 | Oki Telecom | Subsequent frame variable data rate indication method |
-
1992
- 1992-06-03 JP JP50090293A patent/JP3432822B2/ja not_active Expired - Lifetime
- 1992-06-03 RU RU93058657A patent/RU2107951C1/ru active
- 1992-06-03 AT AT01103640T patent/ATE294441T1/de active
- 1992-06-03 DE DE69232202T patent/DE69232202T2/de not_active Expired - Lifetime
- 1992-06-03 SG SG1996007441A patent/SG70558A1/en unknown
- 1992-06-03 AT AT01103641T patent/ATE272883T1/de active
- 1992-06-03 EP EP01103640A patent/EP1107231B1/en not_active Expired - Lifetime
- 1992-06-03 ES ES08016577T patent/ES2348319T3/es not_active Expired - Lifetime
- 1992-06-03 CA CA002483296A patent/CA2483296C/en not_active Expired - Lifetime
- 1992-06-03 DE DE69233397T patent/DE69233397T2/de not_active Expired - Lifetime
- 1992-06-03 EP EP06025869A patent/EP1763020A3/en not_active Withdrawn
- 1992-06-03 CA CA002483322A patent/CA2483322C/en not_active Expired - Lifetime
- 1992-06-03 HU HU9303533A patent/HU215861B/hu unknown
- 1992-06-03 EP EP08016577A patent/EP1998319B1/en not_active Expired - Lifetime
- 1992-06-03 CA CA002483324A patent/CA2483324C/en not_active Expired - Lifetime
- 1992-06-03 ES ES01103641T patent/ES2225321T3/es not_active Expired - Lifetime
- 1992-06-03 DE DE69233794T patent/DE69233794D1/de not_active Expired - Lifetime
- 1992-06-03 DK DK01103641T patent/DK1126437T3/da active
- 1992-06-03 ES ES92913505T patent/ES2166355T3/es not_active Expired - Lifetime
- 1992-06-03 CA CA002102099A patent/CA2102099C/en not_active Expired - Lifetime
- 1992-06-03 EP EP01116324A patent/EP1162601A3/en not_active Withdrawn
- 1992-06-03 CA CA002568984A patent/CA2568984C/en not_active Expired - Lifetime
- 1992-06-03 AU AU21865/92A patent/AU671952B2/en not_active Expired
- 1992-06-03 EP EP02007854A patent/EP1239456A1/en not_active Withdrawn
- 1992-06-03 DK DK92913505T patent/DK0588932T3/da active
- 1992-06-03 AT AT92913505T patent/ATE208945T1/de active
- 1992-06-03 AT AT08016577T patent/ATE477571T1/de not_active IP Right Cessation
- 1992-06-03 EP EP92913505A patent/EP0588932B1/en not_active Expired - Lifetime
- 1992-06-03 DE DE69233502T patent/DE69233502T2/de not_active Expired - Lifetime
- 1992-06-03 EP EP01103641A patent/EP1126437B1/en not_active Expired - Lifetime
- 1992-06-03 BR BR9206143A patent/BR9206143A/pt not_active IP Right Cessation
- 1992-06-03 ES ES01103640T patent/ES2240252T3/es not_active Expired - Lifetime
- 1992-06-03 WO PCT/US1992/004605 patent/WO1992022891A1/en active Application Filing
- 1992-06-03 CA CA002635914A patent/CA2635914A1/en not_active Abandoned
- 1992-06-03 EP EP06005794A patent/EP1675100A2/en not_active Withdrawn
- 1992-06-04 ZA ZA924082A patent/ZA924082B/xx unknown
- 1992-06-09 IL IL11398692A patent/IL113986A/en not_active IP Right Cessation
- 1992-06-09 IL IL11398892A patent/IL113988A/en not_active IP Right Cessation
- 1992-06-09 IL IL11398792A patent/IL113987A/en not_active IP Right Cessation
- 1992-06-09 IL IL10214692A patent/IL102146A/en not_active IP Right Cessation
- 1992-06-11 CN CN92104618A patent/CN1091535C/zh not_active Expired - Lifetime
- 1992-06-11 CN CNA2006101003661A patent/CN1909059A/zh active Pending
- 1992-06-11 CN CNB011231645A patent/CN1286086C/zh not_active Expired - Lifetime
- 1992-06-11 CN CNB011229659A patent/CN1196271C/zh not_active Expired - Lifetime
- 1992-06-11 MX MX9202808A patent/MX9202808A/es unknown
- 1992-06-11 CN CNB021055114A patent/CN1220334C/zh not_active Expired - Lifetime
-
1993
- 1993-01-14 US US08/004,484 patent/US5414796A/en not_active Expired - Lifetime
- 1993-12-10 NO NO19934544A patent/NO319559B1/no not_active IP Right Cessation
- 1993-12-13 FI FI935597A patent/FI120425B/fi not_active IP Right Cessation
-
1994
- 1994-12-23 US US08/363,170 patent/US5657420A/en not_active Expired - Lifetime
-
1996
- 1996-07-31 AU AU60893/96A patent/AU693374B2/en not_active Expired
- 1996-12-06 CN CN96118597A patent/CN1112673C/zh not_active Expired - Lifetime
- 1996-12-06 CN CN96123201A patent/CN1119796C/zh not_active Expired - Lifetime
-
1997
- 1997-01-23 US US08/788,728 patent/US5778338A/en not_active Expired - Lifetime
- 1997-02-21 AU AU14825/97A patent/AU711484B2/en not_active Expired
-
1998
- 1998-12-28 HK HK98116163A patent/HK1014796A1/xx not_active IP Right Cessation
-
2001
- 2001-05-14 JP JP2001144031A patent/JP3566669B2/ja not_active Expired - Lifetime
- 2001-07-10 FI FI20011508A patent/FI20011508L/fi not_active Application Discontinuation
- 2001-07-10 FI FI20011509A patent/FI20011509L/fi not_active Application Discontinuation
- 2001-11-08 JP JP2001343016A patent/JP2002202800A/ja active Pending
-
2002
- 2002-04-09 CN CN02105511A patent/CN1398052A/zh active Granted
-
2003
- 2003-06-17 JP JP2003172114A patent/JP3751957B2/ja not_active Expired - Lifetime
-
2004
- 2004-09-23 HK HK04107333A patent/HK1064785A1/xx not_active IP Right Cessation
-
2005
- 2005-01-26 JP JP2005018692A patent/JP3955600B2/ja not_active Expired - Lifetime
- 2005-09-21 JP JP2005273821A patent/JP3964915B2/ja not_active Expired - Lifetime
-
2006
- 2006-04-11 JP JP2006108635A patent/JP4191746B2/ja not_active Expired - Lifetime
- 2006-12-15 FI FI20061122A patent/FI20061122L/fi not_active Application Discontinuation
- 2006-12-15 FI FI20061121A patent/FI118702B/fi not_active IP Right Cessation
-
2009
- 2009-06-02 HK HK09104958.3A patent/HK1127152A1/xx not_active IP Right Cessation
Also Published As
Similar Documents
Publication | Publication Date | Title |
---|---|---|
ES2240252T3 (es) | Vocodificador de velocidad variable. | |
JP4064236B2 (ja) | 広帯域信号コーディング用の代数コードブック中のパルス位置と符号の索引付け方法 | |
ES2266003T3 (es) | Suavizador de la ganancia en un descodificador de señal de habla y audio de banda ancha. | |
AU685902B2 (en) | Linear prediction coefficient generation during frame erasure or packet loss | |
KR100417635B1 (ko) | 광대역 신호들 코딩에서 적응성 대역폭 피치 검색 방법 및디바이스 | |
KR100488080B1 (ko) | 멀티모드 음성 인코더 | |
JP3396480B2 (ja) | 多重モード音声コーダのためのエラー保護 |