ES2733099T3 - Sistemas, procedimientos y aparatos para la detección de cambio de señal - Google Patents

Sistemas, procedimientos y aparatos para la detección de cambio de señal Download PDF

Info

Publication number
ES2733099T3
ES2733099T3 ES07813616T ES07813616T ES2733099T3 ES 2733099 T3 ES2733099 T3 ES 2733099T3 ES 07813616 T ES07813616 T ES 07813616T ES 07813616 T ES07813616 T ES 07813616T ES 2733099 T3 ES2733099 T3 ES 2733099T3
Authority
ES
Spain
Prior art keywords
spectral
values
sequence
frame
voice signal
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
ES07813616T
Other languages
English (en)
Inventor
Vivek Rajendran
Ananthapadmanabhan A Kandhadai
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Qualcomm Inc
Original Assignee
Qualcomm Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Family has litigation
First worldwide family litigation filed litigation Critical https://patents.darts-ip.com/?family=38812761&utm_source=google_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=ES2733099(T3) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Application filed by Qualcomm Inc filed Critical Qualcomm Inc
Application granted granted Critical
Publication of ES2733099T3 publication Critical patent/ES2733099T3/es
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L19/00Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
    • G10L19/012Comfort noise or silence coding
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L19/00Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L25/00Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00
    • G10L25/78Detection of presence or absence of voice signals
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L25/00Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00
    • G10L25/78Detection of presence or absence of voice signals
    • G10L2025/783Detection of presence or absence of voice signals based on threshold decision
    • G10L2025/786Adaptive threshold

Landscapes

  • Engineering & Computer Science (AREA)
  • Computational Linguistics (AREA)
  • Signal Processing (AREA)
  • Health & Medical Sciences (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • Acoustics & Sound (AREA)
  • Multimedia (AREA)
  • Telephone Function (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Telephonic Communication Services (AREA)

Abstract

Un procedimiento de procesamiento de señal de voz, comprendiendo dicho procedimiento: generar una secuencia de valores de inclinación espectral que se basa en una pluralidad de tramas inactivas de la señal de voz, en el que cada uno de los valores de inclinación espectral se basa en al menos un coeficiente de reflexión de una trama inactiva correspondiente de la señal de voz; calcular un cambio entre al menos dos valores de la secuencia de coeficientes de reflexión basados en valores de inclinación espectral; para una trama inactiva entre la pluralidad de tramas inactivas, decidir si transmitir una trama de descriptor de inserción de silencio, SID; y en el que dicha decisión de si transmitir la trama de descriptor de inserción de silencio, SID, se basa en el cambio calculado.

Description

DESCRIPCIÓN
Sistemas, procedimientos y aparatos para la detección de cambio de señal
SOLICITUDES RELACIONADAS
[0001] Esta solicitud reivindica el beneficio de la Solicitud de Patente Provisional de Estados Unidos n.° 60/834 689, titulada "SPECTRAL TILT BASED DTX SCHEME [ESQUEMA DE DTX BASADO EN LA INCLINACIÓN ESPECTRAL]", expediente de apoderado n.° 061657P1, presentada el 31 de julio de 2006.
CAMPO
[0002] Esta divulgación se refiere al procesamiento de señales.
ANTECEDENTES
[0003] La transmisión de voz mediante técnicas digitales se ha generalizado, en particular en telefonía de larga distancia, telefonía por conmutación de paquetes, como Voz sobre IP (VoIP), y telefonía digital por radio, como la telefonía celular. Dicha proliferación ha generado interés en reducir la cantidad de información utilizada para transferir una comunicación de voz a través de un canal de transmisión mientras se mantiene la calidad percibida de la voz reconstruida.
[0004] Los dispositivos que están configurados para comprimir la voz extrayendo parámetros que se relacionan con un modelo de generación de voz humana se denominan "codificadores de voz". Los codificadores de voz pueden incluir un codificador y un descodificador. El codificador típicamente divide la señal de voz entrante (una señal digital que representa información de audio) en segmentos de tiempo llamados "tramas", analiza cada trama para extraer ciertos parámetros relevantes y cuantifica los parámetros en una representación binaria, como un conjunto de bits o un paquete de datos binarios. Los paquetes de datos se transmiten a través de un canal de transmisión (es decir, una conexión de red alámbrica o inalámbrica) a un receptor que incluye un descodificador. El descodificador recibe y procesa paquetes de datos, los descuantifica para producir los parámetros, y recrea tramas de voz usando los parámetros descuantificados.
[0005] En una conversación típica, cada altavoz está en silencio aproximadamente un sesenta por ciento de las veces. Los codificadores de voz en general se configuran para distinguir las tramas de la señal de voz que contienen voz ("tramas activas") de las tramas de la señal de voz que contienen solo silencio o ruido de fondo ("tramas inactivas"). Dicho codificador puede configurarse para usar diferentes modos de codificación y/o velocidades para codificar tramas activas e inactivas. Por ejemplo, los codificadores de voz en general están configurados para transmitir tramas inactivas codificadas (también llamadas "descriptores de silencio", "descripciones de silencio" o SID) a una velocidad de transmisión de bits más baja que las tramas activas codificadas.
[0006] En cualquier momento durante una comunicación telefónica dúplex completo, se puede esperar que la entrada a por lo menos uno de los codificadores de voz será una trama inactiva. Puede ser deseable que un codificador transmita SID por menos de todas las tramas inactivas. Dicha operación también se llama transmisión discontinua (DTX). En un ejemplo, un codificador de voz realiza DTX transmitiendo un SID para cada cadena de 32 tramas inactivas consecutivas. El descodificador correspondiente aplica información en el SID para actualizar un modelo de generación de ruido que utiliza un algoritmo de generación de ruido de confort para sintetizar tramas inactivas. Un ejemplo de un sistema de codificación de voz correspondiente se describe en la Solicitud de Patente Europea EP1229520 de Li Dunling et al., "Silence insertion description (sid) frame detection with human auditory perception compensation [Detección de trama de descripción de inserción de silencio (sid) con compensación de percepción auditiva humana]", 07.08.2002.
SUMARIO
[0007] Un procedimiento de procesamiento de una señal de voz de acuerdo con una configuración incluye la generación de una secuencia de valores de inclinación espectral que se basa en una pluralidad de tramas inactivas de la señal de voz. Este procedimiento incluye el cálculo de un cambio entre al menos dos valores de la secuencia de valores de inclinación espectral y, para una trama inactiva entre la pluralidad de tramas inactivas, decidir si transmitir una descripción para la trama. En este procedimiento, decidir si transmitir una descripción para la trama se basa en el cambio calculado.
[0008] Un producto de programa informático de acuerdo con otra configuración incluye un medio legible por ordenador. Este medio incluye código para hacer que al menos un ordenador genere una secuencia de valores de inclinación espectral que se basa en una pluralidad de tramas inactivas de la señal de voz. Este medio incluye código para hacer que al menos un ordenador calcule un cambio entre al menos dos valores de la secuencia de valores de inclinación espectral; y el código para hacer que al menos un ordenador decida, para una trama inactiva entre la pluralidad de tramas inactivas, y basándose en el cambio calculado, si transmitir una descripción para la trama.
[0009] Un aparato para procesar una señal de voz de acuerdo con otra configuración incluye medios para generar una secuencia de valores de inclinación espectral que se basa en una pluralidad de tramas inactivas de la señal de voz. Este aparato incluye medios para calcular un cambio entre al menos dos valores de la secuencia de valores de inclinación espectral; y medios para decidir, para una trama inactiva entre la pluralidad de tramas inactivas, y basándose en el cambio calculado, si transmitir una descripción para la trama.
[0010] Sin embargo, el alcance exacto de la protección de la presente solicitud es como se define mediante las reivindicaciones adjuntas.
BREVE DESCRIPCIÓN DE LOS DIBUJOS
[0011]
La FIGURA 1A muestra un diagrama de flujo de un procedimiento M100 de acuerdo con una configuración. La FIGURA 1B muestra un diagrama de bloques de un aparato A100 de acuerdo con una configuración.
La FIGURA 1C muestra un diagrama de flujo de una implementación M101 del procedimiento M100.
La FIGURA 1D muestra un diagrama de bloques de una implementación A101 del aparato A100.
La FIGURA 2 muestra un diagrama de bloques de una implementación 132 del suavizador 130.
La FIGURA 3 muestra un ejemplo ilustrativo en el que cada círculo representa una de una serie de tramas consecutivas de una señal de voz a lo largo del tiempo.
La FIGURA 4 muestra un diagrama de bloques de una implementación 142 de la calculadora 140.
La FIGURA 5 muestra un diagrama de bloques de una implementación 152 del comparador 150.
La FIGURA 6 muestra un diagrama de bloques de una implementación 154 del comparador 150.
La FIGURA 7A muestra un diagrama de bloques de una implementación A102 del aparato A100.
La FIGURA 7B muestra un ejemplo en el que varias indicaciones de transmisión diferentes se combinan en una indicación de transmisión compuesta.
La FIGURA 8A muestra una lista de códigos fuente para un conjunto de instrucciones que se pueden ejecutar para realizar una implementación del procedimiento M100.
La FIGURA 8B muestra una lista de códigos fuente para un conjunto de instrucciones que se pueden ejecutar para realizar otra implementación del procedimiento M100.
La FIGURA 9 muestra un diagrama de flujo de un procedimiento que comprende una combinación del procedimiento M101 y un procedimiento de codificación de voz.
La FIGURA 10 muestra un diagrama de bloques de un aparato que comprende una combinación de un aparato A101 y un codificador de voz.
La FIGURA 11A muestra un diagrama de flujo de una implementación M200 del procedimiento M100.
La FIGURA 11B muestra un diagrama de flujo de una implementación A200 del aparato A100.
La FIGURA 12A muestra un diagrama de flujo de una implementación M110 del procedimiento M101.
La FIGURA 12B muestra un diagrama de flujo de una implementación M210 del procedimiento M200.
La FIGURA 12C muestra un diagrama de flujo de una implementación M120 del procedimiento M101.
La FIGURA 12D muestra un diagrama de flujo de una implementación M220 del procedimiento M200.
Las FIGURAS 13A y 13B muestran ejemplos de un contorno de inclinación espectral suavizado sin y con la aplicación de una persistencia, respectivamente.
La FIGURA 14 muestra una lista de códigos fuente para un conjunto de instrucciones que se pueden ejecutar para realizar una implementación adicional del procedimiento M100.
La FIGURA 15 muestra un diagrama de bloques de un ejemplo de un circuito lógico de persistencia.
La FIGURA 16A muestra un diagrama de bloques de una implementación 134 del suavizador 132.
La FIGURA 16B muestra un diagrama de bloques de una implementación 136 del suavizador 132.
La FIGURA 17A muestra un diagrama de bloques de un ejemplo 62 de un generador de señales de control 60 configurado para generar una señal de control de actualización basada en una ganancia de predicción.
La FIGURA 17B muestra un diagrama de bloques de un ejemplo 64 del generador de señales de control 62 que está configurado para aplicar una persistencia.
La FIGURA 18 muestra un diagrama de bloques de una implementación 66 del generador de señales de control 64 que también incluye el circuito lógico de persistencia 52.
La FIGURA 19A muestra un diagrama de bloques de un ejemplo 72 del circuito de control de indicación de transmisión 70.
La FIGURA 19B muestra un diagrama de bloques de una implementación 156 del comparador 152.
La FIGURA 20 muestra un diagrama de bloques de un ejemplo 82 de un circuito de control 80 configurado para generar una señal de control de actualización y para bloquear una indicación de transmisión de SID.
La FIGURA 21 muestra una lista de códigos fuente para un conjunto de instrucciones que se pueden ejecutar para realizar una implementación adicional del procedimiento M100.
DESCRIPCIÓN DETALLADA
[0012] Las configuraciones descritas en el presente documento incluyen sistemas, procedimientos y aparatos para detectar un cambio en una señal de voz. Por ejemplo, se divulgan configuraciones para detectar un cambio durante un período inactivo de la señal y, basándose en dicha detección, iniciar una actualización de una descripción de la señal. Estas configuraciones típicamente están concebidas para su uso en redes de conmutación de paquetes (por ejemplo, redes cableadas y/o inalámbricas dispuestas para transmitir transmisiones de voz de acuerdo con protocolos como Voz por IP o VoIP), aunque también se contempla expresamente el uso en redes de conmutación de circuitos y por la presente se divulga.
[0013] A menos que esté expresamente limitado por su contexto, el término "calcular" se usa en el presente documento para indicar cualquiera de sus significados comunes, tales como calcular, evaluar, suavizar y seleccionar a partir de una pluralidad de valores. Cuando se usa el término "que comprende" en la presente descripción y en las reivindicaciones, no excluye otros elementos u operaciones. El término "A se basa en B" se utiliza para indicar cualquiera de sus significados ordinarios, incluidos los casos (i) "A se basa en al menos B" y (ii) "A es igual a B" (si es apropiado en el contexto particular).
[0014] Un codificador que practica DTX puede estar configurado para dejar caer (o "suprimir") las tramas más inactivas de acuerdo con un esquema de supresión. Un ejemplo de un esquema de supresión emite actualizaciones en la descripción de silencio a intervalos regulares (por ejemplo, una vez cada 16.a o 32.a trama consecutiva inactiva). Otros esquemas de supresión (también denominados esquemas de "supresión inteligente") están configurados para emitir actualizaciones de la descripción de silencio al detectar fluctuaciones en la energía y/o características espectrales que pueden indicar cambios en el ruido de fondo.
[0015] Un esquema de supresión que se basa solo en las fluctuaciones de la energía a veces puede no detectar cambios perceptualmente significativos en el ruido de fondo. En algunos casos, las tramas inactivas que son perceptivamente diferentes tendrán características de energía similares (típicamente codificadas como valores de ganancia). Aunque el ruido de fondo en una calle ("ruido de calle") puede tener una distribución de energía en el tiempo que es similar a la del ruido de fondo en un espacio abarrotado ("ruido de balbuceo"), por ejemplo, estos dos tipos de ruido en general se perciben de forma muy diferente. Un esquema de supresión que no distingue entre diferentes tipos de ruido perceptivamente puede dar lugar a distorsiones acústicas en el descodificador. Debido a que las tramas activas también incluyen el ruido de fondo, por ejemplo, puede producirse una discontinuidad acústica cuando el descodificador cambia de una trama activa descodificada a un ruido de confort que se genera a partir de un SID inadecuado.
[0016] Es deseable para un esquema de supresión detectar cambios en el ruido de fondo que puedan ser perceptivamente significativos. Por ejemplo, puede ser deseable que un esquema de supresión detecte un cambio repentino en una o más características espectrales del ruido de fondo (por ejemplo, inclinación espectral). Se puede usar un procedimiento o aparato como se describe en el presente documento para implementar dicho esquema de supresión. De forma alternativa, un procedimiento o aparato como se describe en el presente documento puede usarse para complementar otro esquema de supresión. Por ejemplo, un codificador de voz o un procedimiento de codificación de voz puede combinar un procedimiento o aparato como se describe en el presente documento con un esquema de supresión como se describe en la patente de EE. UU. Apl. Publ. n.° 2006/0171419 (Spindola et al., publicado el 3 de agosto de 2006) o con otro esquema de supresión que está configurado para detectar un cambio en la energía de la trama y/o un cambio en una característica espectral de la señal de voz, como una diferencia entre vectores de pares de líneas espectrales.
[0017] La FIGURA 1A muestra un diagrama de flujo de un procedimiento M100 de acuerdo con una configuración general. Basándose en una pluralidad de tramas inactivas de una señal de voz, la tarea T200 genera una secuencia de valores de inclinación espectral. La tarea T400 calcula un cambio dentro de la secuencia de valores de inclinación espectral (por ejemplo, un cambio entre al menos dos valores de la secuencia). Para una trama inactiva de la señal de voz, la tarea T500 decide si transmitir una descripción de silencio para la trama, en el que la decisión se basa en el cambio calculado. Por ejemplo, la decisión de si transmitir una descripción puede basarse en una relación entre (A) una magnitud del cambio calculado y (B) un valor umbral.
[0018] En una implementación típica del procedimiento de M100, cada uno de entre la secuencia de valores de inclinación espectral se basa en una inclinación espectral de una trama inactiva correspondiente. La inclinación espectral de una trama de una señal de voz es un valor que describe una distribución de la energía dentro de la trama en un rango de frecuencias. Típicamente, la inclinación espectral indica una inclinación del espectro de la señal sobre la trama correspondiente y puede ser positiva o negativa. El acto de generar el siguiente valor de la secuencia de valores de inclinación espectral también se denomina "actualizar" la secuencia.
[0019] Los valores de la secuencia de valores de inclinación espectral están en general dispuestos para ser secuenciales en el tiempo, de tal manera que los valores sucesivos de la secuencia corresponden a segmentos de la señal que son sucesivas en el tiempo. Se puede decir que una secuencia de valores de inclinación espectral dispuestos de esta manera representa un contorno que describe cambios en la inclinación del espectro de energía de la señal de voz a lo largo del tiempo (es decir, un contorno de inclinación espectral).
[0020] La tarea T200 puede implementarse para generar la secuencia de valores de inclinación espectral en cualquiera de varias formas diferentes. Por ejemplo, la tarea T200 puede configurarse para recibir una secuencia de este tipo desde un elemento de almacenamiento o matriz (por ejemplo, una matriz o unidad de memoria de semiconductores), desde otra tarea de un proceso más grande como un procedimiento de codificación de voz, o desde un elemento de Un aparato tal como un codificador de voz. De forma alternativa, la tarea T200 puede configurarse para calcular tal secuencia como se describe en el presente documento.
[0021] La tarea T200 puede configurarse para generar la secuencia recibida o calculada (también indicada aquí como x) como la secuencia generada de los valores de inclinación espectral. De forma alternativa, la tarea T200 puede configurarse para generar una secuencia de valores de inclinación espectral y realizando una o más operaciones en esta secuencia x. Estas otras operaciones pueden incluir seleccionar otra secuencia de entre los valores de la secuencia x: por ejemplo, seleccionar cada n-ésimo valor, donde n es un número entero mayor que uno, y/o seleccionar solo aquellos valores que corresponden a tramas inactivas. Estas otras operaciones también pueden incluir suavizar la secuencia recibida, calculada o seleccionada como se describe en el presente documento.
[0022] La duración de cada segmento en tiempo (también denominado "segmento" o "trama") de la señal de voz se selecciona típicamente para que sea suficientemente corta como para que pueda esperarse que la envolvente espectral de la señal permanezca relativamente estacionaria. Por ejemplo, una longitud de trama típica es de veinte milisegundos, que corresponde a 160 muestras a una velocidad de muestreo de ocho kilohercios (kHz), aunque se puede usar cualquier longitud de trama o velocidad de muestreo que se considere adecuada para la aplicación particular. En algunas aplicaciones, las tramas no se superponen, mientras que en otras aplicaciones, se utiliza un esquema de tramas superpuestas. Por ejemplo, es común que un codificador de voz utilice un esquema de trama superpuesta en el codificador y un esquema de trama no superpuesta en el descodificador.
[0023] En una aplicación típica, una matriz de puertas lógicas está configurada para realizar una, más de una, o incluso la totalidad de las diversas tareas de procedimiento M100. Por ejemplo, tal tarea o tareas pueden implementarse como un código ejecutable por máquina para ser ejecutado por una matriz programable tal como un procesador. Las tareas del procedimiento M100 también pueden realizarse mediante más de una de dichas matrices. En estas u otras implementaciones, las tareas pueden realizarse dentro de un dispositivo para comunicaciones inalámbricas tales como un teléfono móvil u otro dispositivo que tenga dicha capacidad de comunicaciones. Dicho dispositivo puede configurarse para comunicarse con redes conmutadas de circuitos y/o conmutadas de paquetes (por ejemplo, usando uno o más protocolos tales como VolP). Por ejemplo, dicho dispositivo puede incluir circuitos de RF configurados para transmitir SIDs y tramas activas codificadas. El procedimiento M100 también puede implementarse como un código legible por máquina incorporado en un producto de programa informático (por ejemplo, uno o más medios de almacenamiento de datos como discos, flash u otras tarjetas de memoria no volátil, chips de memoria de semiconductores, etc.).
[0024] En una aplicación típica del procedimiento de M100, la tarea T400 itera más de la secuencia de valores de inclinación espectral generados por la tarea T200 para calcular una serie de cambios basándose en pares sucesivos de los valores de inclinación espectral, y la tarea T500 itera más de la serie de cambios para realizar una serie de decisiones de transmisión. En general, la tarea T200 se ejecuta como un proceso en curso, y las tareas T400 y T500 iteran en serie o en paralelo, de manera que se generan un valor de inclinación espectral y un cambio calculado correspondiente y una indicación de transmisión para cada trama inactiva de la señal de voz (por ejemplo, posiblemente después de un período de inicialización de una o más tramas inactivas). También es posible implementar el procedimiento M100 de modo que la tarea T200 genere un valor de inclinación espectral con menos frecuencia que cada trama inactiva (por ejemplo, para cada segunda o tercera trama), de manera que la tarea T400 se realice con la misma frecuencia o con menor frecuencia que la tarea T200 (por ejemplo, para cada segunda o tercera iteración de la tarea T200), y/o tal que la tarea T500 se realice con la misma frecuencia o con menor frecuencia que la tarea T400 (por ejemplo, para cada segunda o tercera iteración de la tarea T400).
[0025] La FIGURA 1B muestra un diagrama de bloques de un aparato A100 de acuerdo con una configuración general. El generador de secuencias 120 está configurado para generar una secuencia de valores de inclinación espectral que se basa en una pluralidad de tramas inactivas de una señal de voz. Por ejemplo, el generador de secuencias 120 puede configurarse para realizar una implementación de la tarea T200 como se describe en el presente documento. La calculadora 140 está configurada para calcular un cambio entre al menos dos valores de la secuencia de valores de inclinación espectral. Por ejemplo, la calculadora 140 puede configurarse para realizar una implementación de la tarea T400 como se describe en el presente documento. El comparador 150 está configurado para decidir si transmitir una descripción para un segmento inactivo de la señal de voz, en el que la decisión se basa en el cambio calculado (por ejemplo, en una relación entre (A) una magnitud del cambio calculado y (B) a valor umbral). Por ejemplo, el comparador 150 puede configurarse para realizar una implementación de la tarea T500 como se describe en el presente documento. En una aplicación típica, una implementación del aparato A100 está dispuesta para procesar una secuencia de valores de inclinación espectral y producir una serie de decisiones de transmisión basadas en la secuencia.
[0026] Los diversos elementos del aparato A100 pueden implementarse en cualquier combinación de hardware, software y/o firmware que se considere adecuada para la aplicación prevista. Por ejemplo, cualquiera de estos elementos puede implementarse como una o más matrices de puertas lógicas. Cualquiera de dos o más, o incluso todos, de estos elementos pueden implementarse dentro de la misma matriz o matrices. Dicha matriz o matrices pueden implementarse dentro de uno o más chips (por ejemplo, dentro de un conjunto de chips que incluya dos o más chips). Cualquiera de los diversos elementos del aparato A100 también puede implementarse como uno o más ordenadores (por ejemplo, matrices programadas para ejecutar uno o más conjuntos o secuencias de instrucciones, también denominadas "procesadores"), y dos o más, o incluso todos, de estos elementos pueden implementarse dentro del mismo ordenador u ordenadores. Los diversos elementos del aparato A100 pueden incluirse en un dispositivo para para comunicaciones inalámbricas tales como un teléfono móvil u otro dispositivo que tenga dicha capacidad de comunicaciones. Dicho dispositivo puede configurarse para comunicarse con redes conmutadas de circuitos y/o conmutadas de paquetes (por ejemplo, usando uno o más protocolos tales como VoIP). Por ejemplo, un dispositivo de este tipo puede incluir un codificador de voz configurado para transmitir SID de acuerdo con los resultados de las correspondientes decisiones de transmisión y/o los circuitos de RF configurados para transmitir tramas activas codificadas y SID.
[0027] Un ejemplo de un parámetro cuyo valor puede ser utilizado para indicar la inclinación espectral de una trama es el primer coeficiente de reflexión ko. y otros parámetros de este tipo se describen a continuación. La tarea T200 puede organizarse para recibir una secuencia de valores de inclinación espectral de otra tarea de un procedimiento más amplio, como un procedimiento de codificación de voz. De forma alternativa, la tarea T200 puede implementarse para incluir una tarea T210 que está configurada para calcular dichos valores como se describe a continuación. Del mismo modo, el generador de secuencias 120 puede estar dispuesto para recibir una secuencia de valores de inclinación espectral de otro elemento de un aparato más grande, como un codificador de voz o un dispositivo de comunicaciones. De forma alternativa, el generador de secuencias 120 puede implementarse para incluir una calculadora 128 que está configurada para calcular dichos valores como se describe a continuación.
[0028] La tarea T200 puede implementarse para incluir una tarea T300 que suaviza una secuencia de valores de inclinación espectral. Una implementación típica de la tarea T300 está configurada para filtrar una secuencia de valores de inclinación espectral de acuerdo con un modelo autorregresivo, como un filtro de respuesta de impulso infinito (IIR). Un ejemplo particular de la tarea T300 realiza la siguiente operación de filtrado IIR de primer orden para calcular cada valor de la secuencia suavizada y como un promedio ponderado de un valor actual de una secuencia de entrada de valores de inclinación espectral xy un valor previo de la secuencia suavizada y:
y [n \ - ax[n] + (1 - a)y[n - 1], (1)
donde n denota un índice secuencia!. Dependiendo del grado de suavizado deseado, el factor de ganancia a puede tener cualquier valor de 0 a 1. En general, el factor de ganancia a tiene un valor no mayor a 0,6. Por ejemplo, el factor de ganancia a puede tener un valor en un rango de 0,1 (o de 0,15) a 0,4 (o a 0,5). En un ejemplo particular, la secuencia x es una serie de valores del coeficiente primera reflexión ko. y el factor de ganancia a tiene el valor de 0,2 (cero coma dos). La FIGURA 1C muestra un diagrama de flujo de una implementación M101 del procedimiento M100 en el que la tarea T200 se implementa como tarea T300. La FIG. 1D muestra un diagrama de bloques de una implementación A101 del aparato A100 en el que el generador de secuencias 120 se implementa como un suavizador 130 que está configurado para realizar una implementación de la tarea T300.
[0029] La FIGURA 2 muestra un diagrama de bloques de un ejemplo de implementación 132 del suavizador 130. El suavizador 132 incluye un primer multiplicador dispuesto para aplicar un factor de ganancia G10 al valor actual x[n] de la secuencia de entrada de los valores de inclinación espectral; un segundo multiplicador dispuesto para aplicar un factor de ganancia G20 al valor anterior y[n-1 ] de la secuencia suavizada de los valores de inclinación espectral, según se obtiene del elemento de retardo D; y un sumador dispuesto para generar y [n] como la suma de los dos productos. Puede ser deseable (por ejemplo, para la estabilidad) que el factor de ganancia G10 tenga un valor a como se describió anteriormente con referencia a la tarea T300 y que el factor de ganancia G20 tenga el valor (1 - a). En un ejemplo particular, la secuencia x es una serie de valores del coeficiente de primera reflexión ko. el factor de ganancia G10 tiene el valor 0,2 (cero coma dos), y el factor de ganancia G-20 tiene el valor 0,8 (cero coma ocho). Como se señaló anteriormente, el suavizador 132 se puede implementar en cualquier combinación de hardware, software y/o firmware que se considere adecuado para la aplicación prevista.
[0030] De forma alternativa o adicionalmente, la tarea T300 puede configurarse para calcular un valor de la secuencia suavizada de los valores de inclinación espectral de y mediante la realización de una o más de las operaciones de promediado, integración y/o filtrado de paso bajo de la secuencia de valores de inclinación espectral x (o en el resultado de realizar una operación de suavizado en la secuencia x). En una implementación alternativa del procedimiento M100, por ejemplo, la tarea T300 está configurada para filtrar la secuencia x de acuerdo con un modelo de promedio móvil, como un filtro de respuesta de impulso finito (FIR). En una implementación alternativa adicional del procedimiento M100, la tarea T300 está configurada para filtrar la secuencia x de acuerdo con un modelo de promedio móvil autorregresivo (ARMA). De manera similar, el suavizador 130 puede implementarse como un integrador u otro filtro de paso bajo (como un filtro FIR o ARMA) configurado para producir un valor suavizado basado en dos o más valores de entrada.
[0031] El procedimiento M100 se implementa típicamente de manera que cada valor de la secuencia de valores de inclinación espectral x que se suaviza en la tarea T300 corresponde a una de una pluralidad de tramas sucesivas de la señal de voz. De manera similar, el aparato A100 se implementa típicamente de manera que cada valor de la secuencia x que se suaviza mediante el suavizador 130 corresponde a una de una pluralidad de tramas sucesivas de la señal de voz. Se observa que estas tramas sucesivas no tienen que ser consecutivas, como se describe con más detalle a continuación.
[0032] Una señal de voz típicamente contendrá tramas activas, así como tramas inactivas. Sin embargo, es probable que la distribución de energía durante una trama activa se debe principalmente a factores distintos al ruido de fondo, de modo que es poco probable que los valores de distribución de energía de las tramas activas proporcionen información fiable sobre los cambios en el ruido de fondo. Por lo tanto, puede ser conveniente que la secuencia de valores de inclinación espectral x incluya solo valores que correspondan a tramas inactivas. En tal caso, los valores de la secuencia x pueden corresponder a tramas sucesivas (inactivas) que no son consecutivas en la señal de voz.
[0033] Para ilustrar este principio, la FIGURA 3 muestra un ejemplo en el que cada círculo representa uno de una serie de tramas consecutivas de una señal de voz en el tiempo. Cada uno de los círculos que representan tramas inactivas están marcados con el número de índice del valor correspondiente en la secuencia de valores de inclinación espectral x. En este ejemplo, los valores 74 y 75 son consecutivos en la secuencia. Aunque las tramas inactivas que corresponden a los valores 74 y 75 son sucesivas en la señal de voz, están separadas por un bloque de tramas activas y, por lo tanto, no son consecutivas entre sí.
[0034] El procedimiento M100 puede disponerse de tal manera que la tarea T300 reciba solo valores de inclinación espectral de la secuencia x que corresponden a tramas inactivas. De forma alternativa, la tarea T300 puede implementarse para seleccionar, entre una secuencia de valores de inclinación espectral correspondientes a tramas consecutivas, solo aquellos valores que corresponden a tramas inactivas. Por ejemplo, tal implementación de la tarea T300 puede configurarse para seleccionar valores de inclinación espectral correspondientes a tramas inactivas (y/o rechazar valores correspondientes a tramas activas) basándose en una indicación de actividad de voz recibida de un codificador de voz, un procedimiento de codificación de voz, o una tarea de detección de actividad de voz T100 como se describe a continuación.
[0035] Del mismo modo, el aparato A100 puede disponerse de tal manera que el suavizador 130 recibe solo los valores de inclinación espectral de la secuencia x que corresponden a tramas inactivas. De forma alternativa, se puede implementar un suavizador 130 para seleccionar, de entre una secuencia de valores de inclinación espectral correspondientes a tramas consecutivas, solo aquellos valores que corresponden a tramas inactivas. Por ejemplo, tal implementación del suavizador 130 puede configurarse para seleccionar valores de inclinación espectral correspondientes a tramas inactivas (y/o rechazar valores correspondientes a tramas activas) basándose en una indicación de actividad de voz recibida de un codificador de voz, un procedimiento de codificación de voz, o un detector de actividad de voz 110 como se describe a continuación.
[0036] La tarea T400 calcula un cambio entre al menos dos valores de la secuencia de valores de inclinación espectral generados por la tarea T200. Por ejemplo, la tarea T400 puede configurarse para calcular una diferencia (también llamada "delta") entre valores consecutivos de la secuencia suavizada y de acuerdo con una expresión como la siguiente:
-M y| n \ by\n 1|, (2)
donde z denota la salida y b denota un factor de ganancia. La FIGURA 4 muestra una implementación 142 de la calculadora 140 que se puede usar para realizar un caso particular de este ejemplo de tarea T400 en el que b es igual a uno (es decir, de acuerdo con la operación de filtrado de paso alto FIR de primer orden z[n] = y[n] - y[n-1]). Otras implementaciones de la calculadora 140 y/o la tarea T400 pueden configurarse para aplicar dicha operación de filtrado utilizando un valor diferente de b. Por ejemplo, el valor de b puede seleccionarse de acuerdo con una respuesta de frecuencia deseada. Para un caso en el que la tarea T200 está configurada para generar una secuencia x, tal implementación de la tarea T400 o la calculadora 142 se puede organizar para calcular una diferencia de acuerdo con una expresión como z[n]=x[n]-x[n-1]. Como se señaló anteriormente, la calculadora 142 puede implementarse en cualquier combinación de hardware, software y/o firmware que se considere adecuado para la aplicación prevista.
[0037] De forma alternativa o adicionalmente, la tarea T400 puede configurarse para realizar una o más otras operaciones diferenciadoras en la secuencia generada de los valores de inclinación espectral, tal como una operación diferente de filtrado de paso alto (por ejemplo, la aplicación de un filtro de paso alto IIR de primer orden a la secuencia generada), o de otro modo calcular una distancia u otro cambio entre los valores de la secuencia generada. De manera similar, la calculadora 140 puede implementarse como un diferenciador, una calculadora de diferencias u otro filtro IIR o FIR de paso alto configurado para calcular una diferencia u otra distancia o cambiar entre dos o más valores de entrada.
[0038] El cambio calculado por tarea T400 puede usarse para indicar una velocidad de cambio de la secuencia generada de los valores de inclinación espectral. Por ejemplo, la magnitud de z[n] como se describió anteriormente puede usarse para indicar cuánto ha cambiado el contorno de inclinación espectral del ruido de fondo de una trama inactiva a la siguiente. La tarea T400 típicamente se organiza para calcular de forma iterativa una serie de distancias cuyas magnitudes representan una velocidad de cambio del contorno suavizado en los períodos de trama respectivos.
[0039] La tarea T500 decide si transmitir una descripción para un segmento inactivo de la señal de voz, en el que la decisión se basa en un cambio correspondiente calculado por la tarea T400. Por ejemplo, la tarea T500 puede configurarse para decidir si transmitir una descripción comparando una magnitud del cambio calculado con un valor umbral T. Dicha implementación de la tarea T500 puede configurarse para establecer un indicador binario de acuerdo con el resultado de esta comparación:
1, \z [n ]\> T
p [" J = 13)
0, en otro caso
donde el valor del indicador p[n] indica el resultado de la decisión de transmisión. En este caso, un valor p[n] de uno o TRUE lógico es una indicación de transmisión positiva (es decir, una indicación de transmisión que tiene un estado positivo, una indicación de habilitación de transmisión, una indicación de una decisión de transmitir), que indica que una actualización de la descripción del silencio debe ser transmitida para la trama actual; y un valor p[n] de cero o FALSE lógico es una indicación de transmisión negativa (es decir, una indicación de transmisión que tiene un estado negativo, una indicación de deshabilitación de la transmisión, una indicación de una decisión de no transmitir), que indica que no debe transmitirse ninguna actualización de la descripción de silencio para la trama actual. En un ejemplo, el umbral T tiene un valor de 0,2. Se puede usar un valor umbral más bajo para proporcionar una mayor sensibilidad a las variaciones en la secuencia generada de los valores de inclinación espectral, mientras que se puede usar un valor umbral más alto para proporcionar un mayor rechazo de transitorios en la secuencia generada de los valores de inclinación espectral.
[0040] Un experto en la técnica reconocerá que, en una implementación alternativa de procedimiento M100, la tarea T400 puede configurarse para calcular el cambio como una magnitud de acuerdo con una expresión como la siguiente:
Figure imgf000008_0001
y esa tarea T500 puede configurarse para establecer un indicador binario de acuerdo con el resultado de una comparación como la siguiente:
Jl, z[n\ > T
/> [« ]= L U} en ot .ro caso ■
El procedimiento M100 también se puede implementar para incluir una variación diferente de la tarea T500, como una implementación que compara un valor umbral con una magnitud media de dos o más de los cambios calculados (por ejemplo, una magnitud media de los cambios calculados para las tramas actuales y anteriores).
[0041] La FIGURA 5 muestra un diagrama de bloques de una implementación 152 del comparador 150 que se puede usar para realizar una implementación de la tarea T500. En este ejemplo, el comparador 152 está configurado para realizar la decisión de transmisión calculando la magnitud del cambio calculado y comparando la magnitud con un valor umbral T10. En un ejemplo particular, el umbral T10 tiene un valor de 0,2 (cero coma dos). La FIGURA 6 muestra un diagrama de bloques de otra implementación 154 del comparador 150 que puede usarse para realizar una implementación de la tarea T500. En este ejemplo, el comparador 154 está configurado para comparar un valor firmado del cambio calculado con los valores umbral positivo y negativo T10 y T20, respectivamente, y emitir una indicación de transmisión positiva si el cambio calculado es mayor que (de forma alternativa, no menor que) el valor umbral T10 o menor que (de forma alternativa, no mayor que) el valor umbral T20. En un ejemplo, el valor umbral T20 tiene un valor que es negativo del valor umbral T10, de manera que los comparadores 152 y 154 están configurados para producir el mismo resultado. Sin embargo, el comparador 154 también puede implementarse de manera tal que el valor umbral T20 tenga una magnitud diferente que el valor umbral T10 si se desea.
[0042] Se dispone de una implementación adicional del comparador 150 para recibir el cambio calculado a partir de la calculadora 140 como una magnitud y para comparar esta magnitud con T10 umbral. Como se señaló anteriormente, tales implementaciones del comparador 150 (es decir, que incluyen los comparadores 152 y 154) pueden implementarse en cualquier combinación de hardware, software y/o firmware que se considere adecuado para la aplicación prevista. La FIGURA 7A muestra un diagrama de bloques de una implementación A102 del aparato A100 que está configurado para realizar varias operaciones como se describió anteriormente en la señal de entrada x[n] para producir una indicación de transmisión correspondiente.
[0043] La FIGURA 8A muestra un ejemplo de una lista de código fuente para un conjunto de instrucciones que puede ser ejecutada por una matriz programable de elementos lógicos u otra máquina de estado (por ejemplo, un ordenador o procesador) para realizar una implementación del procedimiento M101 que incluye implementaciones de las tareas T300, T400 y T500. En este ejemplo, la variable k0 contiene el valor de inclinación espectral x[n] para la trama actual, la variable y_current tiene inicialmente el valor más reciente de la secuencia suavizada de los valores de inclinación espectral y, y el indicador p mantiene el estado de la indicación de transmisión. La Parte 1 realiza la tarea T300 calculando un valor actual de la secuencia suavizada y de acuerdo con la expresión (1) anterior, utilizando un valor de 0,2 para el factor de ganancia a. La Parte 2 realiza la tarea T400 calculando un cambio entre los valores actuales y más recientes de la secuencia suavizada y de acuerdo con la expresión (2) anterior, utilizando un valor de uno para el factor de ganancia b. La Parte 3 realiza la tarea T500 estableciendo el indicador p de acuerdo con el resultado de una comparación entre el cambio calculado y un valor umbral, utilizando un valor umbral de 0,2. En una aplicación típica, el conjunto de instrucciones se ejecuta de forma iterativa (por ejemplo, para cada trama inactiva), de manera que el valor inicial de la variable y_current para cada iteración es el valor final de la variable y_current como se calculó durante la iteración anterior.
[0044] Como se describió anteriormente, la tarea T300 puede configurarse para calcular un valor actual de la secuencia suavizada de los valores de inclinación espectral y basándose en uno o más valores pasados de una secuencia de valores de inclinación espectral x y/o uno o más valores pasados de la secuencia suavizada y. Para un valor inicial de la secuencia suavizada y, sin embargo, es posible que no exista un valor pasado de la secuencia x y/o de la secuencia suavizada y. Si la tarea T300 calcula un valor de la secuencia suavizada y utilizando un valor arbitrario o un valor cero en lugar de un valor pasado, el resultado puede hacer que la tarea T400 genere un cambio calculado que es inapropiadamente grande, lo cual a su vez puede hacer que la tarea T500 emita una indicación de transmisión positiva incluso en el caso de que el contorno de inclinación espectral sea realmente constante.
[0045] Puede ser deseable inicializar una o más variables (por ejemplo, ubicaciones de almacenamiento de datos) que están configuradas para mantener los valores pasados de la secuencia x y/o de la secuencia suavizada y. Dicha inicialización puede realizarse antes de que la tarea T300 se ejecute por primera vez y/o se pueda realizar dentro de la tarea T300. Por ejemplo, una o más de estas variables pueden inicializarse al valor actual de la secuencia x. En un ejemplo particular, una variable configurada para almacenar el valor pasado de la secuencia suavizada (y[n-1] en la expresión (1) anterior) se inicializa al valor actual de la secuencia de entrada (x[n] en la expresión (1) anterior). Para un ejemplo diferente en el que la tarea T400 se organiza para calcular un cambio basado en los valores x[n] y x[n-7], se inicializa una variable configurada para almacenar el valor pasado de la secuencia de entrada x[n-1] al valor actual de la secuencia de entrada x[n]. De forma alternativa o adicional, el procedimiento M100 puede configurarse para evitar la emisión de indicaciones de transmisión positivas para las primeras tramas inactivas (por ejemplo, forzando a la tarea T500 a emitir indicaciones de transmisión que tienen estados negativos para esas tramas). En tal caso, la tarea T200 (posiblemente incluyendo la tarea T300) puede configurarse para usar un valor inicial arbitrario o cero para cada uno de uno o más valores pasados en lugar de inicializar esas variables como se describe en el presente documento.
[0046] La FIGURA 8B muestra otro ejemplo de una lista de código fuente para un conjunto de instrucciones que puede ser ejecutada por una matriz programable de elementos lógicos u otra máquina de estado (por ejemplo, un procesador) para realizar una implementación del procedimiento M101 que incluye una implementación T310 de la tarea T300 así como implementaciones de tareas T400 y T500. En este ejemplo, la tarea T310 incluye una operación de inicialización que utiliza una variable Y_VALID para indicar si el conjunto de instrucciones se ha llamado antes y, por lo tanto, si el valor almacenado en la variable y_current es válido. En este caso, la rutina de llamada (por ejemplo, un procedimiento mayor como un procedimiento de codificación de voz) se configurará para inicializar el valor de Y_VALID en FALSE antes de llamar al conjunto de instrucciones. Si el conjunto de instrucciones determina que el valor de Y_VALID es FALSE (es decir, si el conjunto de instrucciones se ejecuta por primera vez), la variable y_current se inicializa con el valor actual de la variable k0.
[0047] Una descripción de silencio (SID) típicamente incluye una descripción de una envolvente espectral de una trama y/o una descripción de una envolvente de energía de una trama. Estas descripciones pueden obtenerse a partir de la trama inactiva actual y/o de una o más tramas inactivas anteriores. Un SID también puede llamarse con otros nombres como "actualizar a la descripción de silencio", "descriptor de silencio", "descriptor de inserción de silencio", "trama de descriptor de ruido de confort" y "parámetros de ruido de confort". En el ejemplo particular de un códec de velocidad variable mejorada (EVRC) como se describe en el documento 3GPP2 C.S0014-C versión 1,0, "Códec de velocidad variable mejorada, opciones de servicio de voz 3, 68 y 70 para sistemas digitales de espectro de dispersión de banda ancha", los SID se codifican a velocidad octava (dieciséis bits por trama) utilizando un modo de codificación de predicción lineal con ruido (NELP), mientras que las tramas activas se codifican a velocidad completa (171 bits por trama), media velocidad (80 bits por trama), o velocidad de cuarto (40 bits por trama) utilizando los modos de predicción lineal con excitación de código (CELP), período de paso de prototipo (PPP) o codificación NELP.
[0048] Una descripción de envolvente espectral incluye en general un conjunto de parámetros de codificación, tales como coeficientes de filtro, coeficientes de reflexión, frecuencias espectrales de línea (LSF), pares espectrales de línea (LSP), frecuencias espectrales de inmitancia (SISA), pares espectrales de inmitancia (ISP), coeficientes cepstrales, o relaciones de área de registro. El conjunto de parámetros de codificación, que pueden organizarse como uno o más vectores, típicamente se cuantifican como uno o más índices en tablas de búsqueda o "libros de códigos" correspondientes.
[0049] Longitudes típicas de una descripción envolvente espectral dentro de un SID actualmente van desde ocho a 28 bits. En el ejemplo particular de un EVRC como se describe en 3GPP2 C.S0014-C versión 1,0 mencionada anteriormente, cada SID de dieciséis bits incluye un índice LSPIDX1 de cuatro bits en un libro de códigos para información de baja frecuencia de la envolvente espectral y un índice LSPIDX2 de cuatro bits en un libro de códigos para obtener información de alta frecuencia de la envolvente espectral. En el ejemplo particular del códec de voz de frecuencia múltiple adaptativa (AMR), como se describe en el documento ETSI TS 126092 V6.0.0 (Instituto Europeo de Normalización de Telecomunicaciones (ETSI), Sophia Antipolis Cedex, FR, diciembre de 2004), cada uno de los SID de 35 bits incluye un índice de ocho o nueve bits para cada uno de los tres subvectores LSF. En el ejemplo particular del códec de voz de banda ancha AMR, como se describe en el documento ETSI TS 126192 V6.0.0 (ETSI, diciembre de 2004), cada SID de 35 bits incluye un índice de cinco o seis bits para cada uno de cinco Subvectores ISF.
[0050] Una descripción de envolvente de energía puede incluir un valor de ganancia que han de aplicarse a la trama (también llamado una "trama de ganancia"). De forma adicional o alternativa, una descripción de la envolvente de energía puede incluir valores de ganancia que se aplicarán a cada una de una serie de subtramas de la trama (denominadas colectivamente "perfil de ganancia"). Típicamente, la trama de ganancia y/o el perfil de ganancia se cuantifican como uno o más índices en los libros de códigos correspondientes, aunque en algunos casos se puede usar un algoritmo para cuantificar y/o descalificar la trama de ganancia y/o el perfil de ganancia sin usar un libro de códigos. Las longitudes típicas de una descripción de envolvente de energía dentro de un SID actualmente varían de cinco a ocho bits. En el ejemplo particular de un EVRC como se describe en 3GPP2 C.S0014-C v.1,0 al que se hace referencia anteriormente, cada SID de dieciséis bits incluye un índice de energía de ocho bits FGIDX. En los ejemplos particulares del códec de voz AMR como se describe en ETSI TS 126 092 V6.0.0 a los que se hizo referencia anteriormente y el códec de voz AMR de banda ancha como se describe en ETSI TS 126 192 V6.0.0 al que se hizo referencia anteriormente, cada SID de 35 bits incluye un índice de energía de seis bits.
[0051] El procedimiento M100 o el aparato A100 se pueden usar como un esquema de supresión para soportar DTX. Por ejemplo, un procedimiento que incluye el procedimiento M100 o un dispositivo que incluye el aparato A100 puede configurarse para realizar la transmisión de un SID solo cuando el estado de la indicación de transmisión producida por la tarea T500 es positivo. También se pueden usar otros esquemas de supresión para soportar DTX. Un ejemplo de este tipo es un procedimiento o aparato que emite una indicación de transmisión de SID positiva cuando el número de tramas inactivas consecutivas que se han producido desde que la transmisión de SID más reciente alcanza (de forma alternativa, supera) un umbral DTX_MAX. Los valores típicos para DTX_MAX incluyen 16 y 32. Un ejemplo adicional de un esquema de supresión emite una indicación de transmisión de SID positiva cuando el número de tramas inactivas consecutivas que se han producido desde que la trama activa más reciente alcanza (de manera alternativa, supera) un umbral.
[0052] Otros esquemas de supresión que pueden ser utilizados para soportar DTX incluyen esquemas que están configurados para emitir una indicación SID de transmisión positiva al detectar un cambio en la energía y/o descripciones de envolvente espectral de la señal de voz. Por ejemplo, un esquema de este tipo puede configurarse para emitir una indicación de transmisión de SID positiva, lo cual indica una decisión de transmitir una descripción para la trama inactiva actual, al detectar que una distancia entre las descripciones de la envolvente espectral (por ejemplo, la LSF, LSP, ISF, o vectores ISP) de la trama y del último SID transmitido excede un valor umbral (de forma alternativa, no es menor que un valor umbral). Puede ser deseable filtrar (por ejemplo, suavizar) las descripciones de envoltura espectral antes de calcular las distancias. Una variación de dicho esquema está configurada para emitir una indicación de transmisión de SID positiva si también detecta que una distancia entre las descripciones de la envolvente de energía de la trama inactiva actual y la última SID transmitida excede un valor umbral (de forma alternativa, no es menor que un umbral valor). Se configura una variación adicional para emitir una indicación de transmisión de SID positiva si detecta que se cumple alguna de estas condiciones. Entre otros esquemas de supresión que se pueden usar se incluyen esquemas configurados para emitir una indicación de transmisión de SID positiva de acuerdo con una comparación entre un valor umbral y un valor tal como un valor absoluto medio de la trama o un valor de energía de la trama (por ejemplo, una suma de cuadrados de las muestras), cuyo valor puede filtrarse y/o ponderarse.
[0053] Otro ejemplo de un esquema de supresión que se puede utilizar para soportar DTX está configurado para emitir una indicación positiva de transmisión de SID al detectar que la distancia Itakura entre la última SID transmitida y la trama inactiva actual supera un valor umbral (de forma alternativa, no es menor que un valor umbral). Una variación de dicho esquema está configurada para emitir una indicación de transmisión de SID positiva al detectar que la distancia de Itakura entre (A) el último SID transmitido y (B) un promedio de la trama inactiva actual y la trama inactiva anterior excede un valor umbral (de forma alternativa, no es menor que un valor umbral). La distancia de Itakura es una medida del cambio espectral basado en la autocorrelación y los valores de energía residual, y se puede encontrar una descripción de dicho esquema en la Recomendación UIT-T G.729 Anexo B (Unión Internacional de Telecomunicaciones, Ginebra, Suiza, octubre de 1996).
[0054] Una implementación del procedimiento M100 o el aparato A100 puede combinarse con uno o más otros esquemas de supresión, tales como uno o más de los descritos anteriormente. Por ejemplo, un aparato que incluye o realiza una implementación de este tipo puede configurarse para transmitir un SID si alguno de sus esquemas de supresión emite una indicación de transmisión de SID positiva para esa trama. La FIGURA 7B muestra una implementación de un ejemplo de este tipo en el que varias indicaciones de transmisión diferentes se combinan en una indicación de transmisión compuesta utilizando una operación OR lógica.
[0055] Como se ha señalado anteriormente, un SID puede obtenerse a partir de una o más tramas inactivas. Por ejemplo, puede ser deseable que un dispositivo que incluya un aparato A100 o un procedimiento que incluya el procedimiento M100 calcule y transmita un SID que represente un promedio de varias tramas inactivas codificadas en lugar de transmitir el SID como una trama inactiva codificada única. Dicho promedio puede calcularse utilizando una operación de filtrado FIR o IIR y/o utilizando un procedimiento estadístico como el filtrado de mediana, que puede incluir descartar valores atípicos o reemplazar los valores atípicos con un valor de mediana. Por ejemplo, el dispositivo o procedimiento puede configurarse para calcular el SID suavizando estadísticamente las descripciones de energía y de envolvente espectral de la trama actual con las de una o más tramas inactivas anteriores, de modo que el SID resultante contenga los valores de ganancia y frecuencia que se hayan producido más a menudo en el pasado reciente.
[0056] El número de tramas sobre las que se calcula el promedio puede ser fijo o puede variar de acuerdo con, por ejemplo, una medida de estacionariedad. Un ejemplo de tal medida es una distancia (por ejemplo, la distancia de Itakura) entre los promedios espectrales tomados en dos conjuntos diferentes de tramas. En uno de los ejemplos descritos en el Anexo B de G.729 al que se hizo referencia anteriormente, el promedio se calcula sobre las seis tramas pasadas (incluida la trama actual) y sobre las dos tramas pasadas. Si la distancia entre estos dos promedios excede un valor umbral (de forma alternativa, no es menor que un valor umbral), el SID incluye una descripción espectral promediada en dos tramas (por ejemplo, se supone que la señal es localmente no estacionaria). De lo contrario, el SID incluye una descripción espectral promediada en seis tramas (por ejemplo, se supone que la señal es localmente estacionaria). En el ejemplo particular del códec de banda ancha AMR como se describe en ETSI TS 126192 V6.0.0 al que se hizo referencia anteriormente, el SID incluye una indicación de interpolación cuyo estado se establece de acuerdo con la suma de las distancias espectrales entre la trama actual y las siete tramas anteriores o de acuerdo con una distancia entre la energía de la trama actual y un valor de energía promedio sobre tramas anteriores.
[0057] El procedimiento M100 puede implementarse de manera tal que la tarea T200 reciba la secuencia de valores de inclinación espectral de otro proceso, tal como un proceso de codificación de voz. Por ejemplo, un dispositivo o sistema configurado para ejecutar una implementación del procedimiento M100 típicamente también se configurará para realizar un procedimiento de codificación de voz en la señal de voz. Un procedimiento de codificación de voz puede incluir un análisis de codificación de predicción lineal (LPC), que calcula un conjunto de coeficientes que modelan una muestra de una señal de voz en el tiempo t como una combinación lineal de muestras de la señal de voz en momentos anteriores a t. Un análisis de LPC realizado por un codificador de voz de un dispositivo de comunicaciones (por ejemplo, un teléfono celular) tiene típicamente un orden de cuatro, seis, ocho, diez, 12, 16, 20, 24, 28 o 32. Para un caso en el que se realicen análisis de LPC separados en diferentes bandas de frecuencias de la señal de voz, la tarea T200 puede organizarse para recibir la secuencia de valores de inclinación espectral basándose en el análisis de una banda de baja frecuencia (por ejemplo, incluyendo frecuencias por debajo de 1 kHz) o una banda de frecuencias de rango medio (por ejemplo, incluyendo al menos frecuencias entre 1 y 2 kHz).
[0058] La tarea T200 puede estar dispuesta para recibir la secuencia de valores de inclinación espectral como una secuencia de coeficientes de reflexión, tal como una secuencia de primer o segundo coeficiente de reflexión. El rango de configuraciones divulgadas en el presente documento incluye procedimientos que comprenden una combinación del procedimiento M100 y un procedimiento de codificación de voz (por ejemplo, como se muestra en la FIGURA 9), así como procedimientos de codificación de voz que incluyen el procedimiento M100.
[0059] El aparato A100 puede implementarse de manera tal que el generador de secuencia 120 reciba la secuencia de valores de inclinación espectral de otro aparato, tal como un codificador de voz. Por ejemplo, un dispositivo o sistema que incluye una implementación del aparato A100 típicamente también incluirá un codificador de voz, que puede estar configurado para realizar un análisis LPC en la señal de voz. En tal caso, el generador de secuencia 120 puede estar dispuesto para recibir la secuencia de valores de inclinación espectral como una secuencia de coeficientes de reflexión. El rango de configuraciones aquí divulgado incluye un aparato que comprende una combinación de un aparato A100 y un codificador de voz (por ejemplo, como se muestra en la FIGURA 10), así como codificadores de voz que incluyen el aparato A100.
[0060] De forma alternativa, la tarea T200 puede implementarse para incluir una T210 tarea que calcula la secuencia de valores de inclinación espectral basándose en una pluralidad de tramas inactivas de la señal de voz. La tarea T210 se puede configurar, por ejemplo, para evaluar la inclinación espectral de la señal en cada una de una serie de tramas de acuerdo con una o más de varias técnicas diferentes, como se describe a continuación. La FIGURA 11A muestra un diagrama de flujo de una implementación M200 del procedimiento M100 que incluye una implementación T202 de la tarea T200. La tarea T210 también puede organizarse para proporcionar la secuencia calculada de valores de inclinación espectral a otras tareas de un proceso más grande, como un procedimiento de codificación de voz. El procedimiento M100 también puede implementarse de manera tal que la tarea T200 se implementa como tarea T210.
[0061] La FIGURA 11B muestra un diagrama de bloques de una implementación A200 del aparato A100 que incluye una implementación 122 del generador de secuencia 120. El generador de secuencias 122 incluye una calculadora 128 que está configurada para calcular la secuencia de valores de inclinación espectral basándose en una pluralidad de tramas inactivas de la señal de voz. Por ejemplo, la calculadora 128 puede configurarse para realizar una implementación de la tarea T210 como se describe en el presente documento. Al igual que otros elementos del aparato A200, la calculadora 128 puede implementarse en cualquier combinación de hardware, software y/o firmware que se considere adecuada para la aplicación prevista. La calculadora 128 también se puede disponer para proporcionar la secuencia calculada de valores de inclinación espectral a otras tareas de un aparato más grande, como un codificador de voz. El aparato A100 también puede implementarse de manera tal que el generador de secuencia 120 se implemente como calculadora 128.
[0062] Una implementación típica de la tarea T210 está configurada para calcular una inclinación espectral como el primer coeficiente de reflexión de una trama correspondiente de la señal de voz. El primer coeficiente de reflexión de una trama (típicamente denotado como ka) puede calcularse como la relación R(1)/R(0) (es decir, el primer valor de autocorrelación normalizado de la trama), que tiene un valor escalar entre -1 y 1 para valores de muestra en el rango de -1 a 1. En esta expresión, R(1) denota el primer coeficiente de autocorrelación de la trama (es decir, el valor de la función de autocorrelación para la trama con un retardo de una muestra) y R(0) denota el coeficiente de autocorrelación cero-ésimo de la trama (es decir, el valor de la función de autocorrelación para la trama con un retardo de cero).
[0063] En otras implementaciones, la tarea T210 está configurada para calcular una inclinación espectral como el segundo coeficiente de reflexión de una trama correspondiente de la señal de voz. El segundo coeficiente de reflexión de una trama (típicamente denotado como ki) se puede calcular como:
k _ R(2) - ktR(l) _ R(0)R(2) - k ( l )2
1 (\-k{)R(Q) R ( 0 f - R( } ) 2
donde R(2) denota el segundo coeficiente de autocorrelación de la trama (es decir, el valor de la función de autocorrelación para la trama con un retardo de dos muestras). La tarea T210 también se puede implementar para calcular uno o más coeficientes de reflexión de una trama correspondiente (por ejemplo, el primer y/o segundo coeficiente de reflexión) basándose en uno o más parámetros diferentes, como uno o más coeficientes de filtro LPC.
[0064] La gama de implementaciones de tarea T210 no se limita a las que calculan la inclinación espectral como un coeficiente de reflexión. De forma adicional o alternativa, la tarea T210 puede configurarse para realizar una o más técnicas de evaluación espectral diferentes para calcular una inclinación espectral de una trama o tramas. Dichas técnicas de evaluación espectral pueden incluir el cálculo de una inclinación espectral para cada trama como una relación entre la energía de una banda de alta frecuencia y la energía de una banda de baja frecuencia. Dicho cálculo puede incluir realizar una transformación de frecuencia en el segmento, como una transformada de Fourier discreta (DFT). Dichas técnicas de evaluación espectral pueden incluir calcular la inclinación espectral como el número de cruces cero dentro de cada segmento. En tal caso, se puede tomar un mayor número de cruces cero para indicar una mayor cantidad de energía de alta frecuencia.
[0065] En el cálculo de la secuencia de valores de inclinación espectral, la tarea T210 puede configurarse para realizar un cálculo basado en los valores de la función de autocorrelación, tales como el cálculo de uno o más coeficientes de reflexión como se describe anteriormente. Un procedimiento de autocorrelación para calcular los parámetros del modelo LPC, como el filtro o los coeficientes de reflexión, implica realizar una serie de iteraciones para resolver una ecuación que incluye una matriz de Toeplitz. En algunas implementaciones, la tarea T210 está configurada para realizar un procedimiento de autocorrelación de acuerdo con cualquiera de los algoritmos recursivos bien conocidos de Levinson y/o Durbin para resolver tal ecuación. Un algoritmo de este tipo en general calcula los coeficientes de reflexión (también llamados coeficientes de correlación parcial (PARCOR), coeficientes de PARCOR negativos o parámetros de Schur-Szego) como intermedios en el proceso de producir un conjunto de coeficientes de filtro LPC.
[0066] En otras implementaciones, la tarea T210 está configurada para realizar una serie de iteraciones para calcular uno o más coeficientes de reflexión, en lugar de un conjunto de coeficientes de filtro. Por ejemplo, la tarea T210 puede configurarse para usar una implementación del algoritmo de Leroux-Gueguen para obtener uno o más coeficientes de reflexión. De forma alternativa, la tarea T210 puede configurarse para usar una implementación de otro procedimiento iterativo bien conocido para obtener uno o más coeficientes de reflexión a partir de los valores de autocorrelación, como el algoritmo recursivo de Schur (que puede configurarse para un cálculo paralelo eficiente) o el algoritmo de Burg recursivo.
[0067] La tarea T210 puede configurarse para calcular uno o más valores de la función de autocorrelación para una trama correspondiente de la señal de voz. Por ejemplo, la tarea T210 puede configurarse para evaluar la función de autocorrelación de una trama para un valor de retardo particular m (donde m es un número entero no menor que cero) de acuerdo con una expresión como la siguiente:
jV -I-wí
R{m)= X 'S 'IM * m ],
; -0
donde N denota el número de muestras en la trama. De forma alternativa, la tarea T210 puede configurarse para recibir valores de la función de autocorrelación (por ejemplo, de un codificador de voz o un procedimiento de codificación de voz u otro proceso).
[0068] Un codificador de voz o procedimiento de codificación de voz pueden estar configurados para utilizar los valores de la función de autocorrelación en una operación de codificación, tales como el cálculo de parámetros de un modelo LPC (por ejemplo, filtro y/o coeficientes de reflexión). Puede ser deseable que dicho codificador de voz o procedimiento de codificación de voz realice una o más operaciones de preprocesamiento en los valores de autocorrelación. Por ejemplo, los valores de autocorrelación R(m) se pueden suavizar espectralmente realizando una operación como la siguiente:
Figure imgf000013_0001
En tal contexto, la tarea T210 puede configurarse para realizar un suavizado espectral u otra operación de preprocesamiento en los valores de autocorrelación y/o para calcular los valores del parámetro de inclinación espectral utilizando valores de autocorrelación que se han suavizado espectralmente o preprocesado de otro modo.
[0069] Antes de que la función de autocorrelación se aplique a la señal de voz (por ejemplo, mediante la tarea T210 o un codificador de voz o procedimiento de codificación de voz), puede ser deseable aplicar una función de ventanas w[n] a la señal. Por ejemplo, puede ser conveniente poner a cero la señal de voz fuera de la trama a la que se está aplicando actualmente la función de autocorrelación. En algunos casos, la función de ventana w[n] es rectangular o triangular. Puede ser deseable usar una función de ventana cónica que tenga bajas ponderaciones de muestra en cada extremo de la ventana, lo cual puede ayudar a reducir el efecto de los componentes fuera de la ventana. Por ejemplo, puede ser conveniente utilizar una ventana de coseno elevada, como la siguiente función de ventana de Hamming:
2 mi
0,46 cos 0 < n < N - 1
N - r
Figure imgf000014_0001
0, en otra parte
donde N es el número de muestras en la trama.
[0070] Entre otras ventanas cónicas que pueden ser usarse se incluyen las ventanas Hanning, Blackman, Kaiser y Bartlett. La trama de ventana Sw [n] se puede calcular de acuerdo con una expresión como la siguiente:
í „ [ f l ] - s[«]vr(«]; 0 < « < ¿ V - 1.
La función de ventanas no tiene por qué ser simétrica, de modo que una mitad de la ventana puede tener una ponderación diferente a la otra mitad. También se puede usar una ventana híbrida, como una ventana de Hammingcosine o una ventana que tiene dos mitades de ventanas diferentes (por ejemplo, dos ventanas de Hamming de diferentes tamaños). Una o más operaciones de preprocesamiento, como la ponderación perceptiva, se pueden realizar en los valores de muestra y/o en los valores de ventana (por ejemplo, mediante la tarea T210 o un codificador de voz o procedimiento de codificación de voz) antes de que se utilicen para evaluar la función de autocorrelación.
[0071] La función de ventana w[n] puede estar configurada para incluir las muestras de la trama actual, así como muestras de una o más tramas adyacentes. En algunos casos, la ventana incluye muestras de la trama actual y las tramas anterior y futura adyacentes (por ejemplo, una ventana de 5-20-5 que incluye los 5 milisegundos inmediatamente antes y después de una trama de 20 milisegundos). En otros casos, la ventana incluye muestras solo de la trama actual y de la trama anterior adyacente (por ejemplo, una ventana de 10-20 que incluye la trama actual de 20 milisegundos y los últimos 10 milisegundos de la trama anterior).
[0072] Para un caso en el que se aplica una función de ventana a la señal de voz (por ejemplo, mediante la tarea T210 o un codificador de voz o procedimiento de codificación de voz), la función de autocorrelación de una trama puede calcularse de acuerdo con una expresión de la forma siguiente:
Figure imgf000014_0002
[0073] Como se señaló anteriormente, puede ser deseable para la tarea T300 o el suavizador 130 suavizar una secuencia que incluye solo los valores que corresponden a tramas inactivas. En tal caso, el procedimiento M100 o el aparato A100 pueden estar dispuestos para recibir una indicación del nivel de actividad de voz en una trama (por ejemplo, desde un codificador de voz o un procedimiento de codificación de voz). Por ejemplo, una indicación de este tipo (también llamada "indicación de actividad de voz") puede tener la forma de una variable o indicador binario cuyo estado indica si una trama correspondiente está activa o inactiva.
[0074] Una indicación de actividad de voz puede utilizarse para controlar una operación de la tarea de suavizado T300. Por ejemplo, la indicación de actividad de voz se puede usar para permitir la generación de un valor de inclinación espectral suavizada a partir de una trama inactiva correspondiente y/o para evitar la generación de un valor de inclinación espectral suavizada a partir de una trama activa correspondiente. En uno de estos ejemplos, un ordenador o procesador está configurado para controlar la tarea T300 para suavizar un valor de inclinación espectral solo si la indicación de actividad de voz indica que la trama correspondiente es una trama inactiva. De forma alternativa, la tarea T300 puede incluir la decisión de generar o no un valor de inclinación espectral suavizado, o de si aceptar o rechazar un valor de inclinación espectral, de acuerdo con el valor de una detección de actividad de voz correspondiente. La FIGURA 12A muestra un diagrama de flujo de una implementación M110 del procedimiento M101 que incluye una implementación T320 de la tarea T300.
[0075] Una indicación de actividad de voz puede ser utilizada para controlar una operación de tarea de cálculo T210. Por ejemplo, la indicación de actividad de voz se puede usar para permitir la generación de una inclinación espectral para una trama inactiva correspondiente y/o para evitar la generación de una inclinación espectral para una trama activa correspondiente. En uno de estos ejemplos, un procesador está configurado para controlar la tarea T210 para calcular una inclinación espectral solo si la indicación de actividad de voz indica que la trama actual es una trama inactiva. De forma alternativa, la tarea T210 puede configurarse para incluir una decisión de si generar una inclinación espectral para una trama dada, o puede configurarse para controlar su entrada (por ejemplo, aceptar o rechazar una trama) y/o su salida (por ejemplo, si emitir un valor de inclinación espectral), de acuerdo con el valor de una indicación de actividad de voz correspondiente. La FIGURA 12B muestra un diagrama de flujo de una implementación M210 del procedimiento M200 que incluye una implementación T204 de la tarea T202, donde la tarea T204 incluye una implementación T220 de la tarea T210.
[0076] De forma alternativa a recibir una indicación de actividad de voz, el procedimiento M100 puede implementarse para incluir una tarea T100 que está configurada para indicar si una trama es activa o inactiva. Por ejemplo, la tarea T100 puede configurarse para calcular una indicación de actividad de voz (VAI) como se describe anteriormente. La FIGURA 12C muestra un diagrama de flujo de una implementación M120 del procedimiento M101 que incluye la tarea T100, y la FIGURA 12D muestra un diagrama de flujo de una implementación M220 del procedimiento M200 que incluye la tarea T100. La tarea T100 puede configurarse para clasificar una trama como activa o inactiva basándose en uno o más factores como la energía de banda completa, la energía de banda baja, la energía de banda alta, los parámetros espectrales (por ejemplo, uno o más LSF y/o coeficientes de reflexión), periodicidad y velocidad de cruce cero. Por ejemplo, tal clasificación puede incluir comparar un valor de tal característica con un valor umbral fijo o adaptativo, y/o calcular la magnitud de un cambio en el valor de tal característica (por ejemplo, la magnitud de una diferencia entre dos valores, o la magnitud de una diferencia entre un valor y un promedio corriente) y comparar la magnitud con un valor umbral fijo o adaptativo.
[0077] La tarea T100 puede configurarse para evaluar la energía de la trama actual en cada una de una banda de baja frecuencia y una banda de alta frecuencia, y para indicar que la trama está inactiva si la energía en cada banda es menor que (de forma alternativa, no mayor que) un umbral respectivo. Tales umbrales pueden ser fijos o adaptativos. Por ejemplo, cada umbral puede basarse en una velocidad de codificación deseada. Un ejemplo de un par de umbrales adaptativos se describe en la Sección 4,7 de C.S0014-C v.1.0 a la que se hizo referencia anteriormente. En este ejemplo, el umbral para cada banda se basa en un punto de operación de anclaje (obtenido a partir de una velocidad de datos media deseada), una estimación del nivel de ruido de fondo en esa banda para la trama anterior y una relación señal/ruido en esa banda para la trama anterior.
[0078] Una transición de voz activa a voz inactiva se produce típicamente durante un período de varias tramas, y las primeras varias tramas inactivas después de una transición desde voz activa puede incluir restos de expresar además del ruido de fondo. Los restos de voz pueden hacer que estas tramas inactivas posteriores a la transición tengan inclinaciones espectrales que difieren de las del ruido de fondo, y estas diferencias pueden corromper la secuencia de valores de inclinación espectral generados por la tarea T200 y conducir a una transmisión innecesaria de SID.
[0079] Como se señaló anteriormente, puede ser deseable que la tarea T200 produzca un valor de la secuencia x que se basa en solo tramas inactivas. Del mismo modo, puede ser deseable que la tarea T300 produzca un valor de la secuencia suavizada y que se base en uno o más valores de inclinación espectral desde tramas inactivas solamente. También puede ser conveniente para una implementación del procedimiento M100 evitar el uso de valores de inclinación espectral de una o más tramas de post-transición para actualizar el contorno de inclinación espectral. Dicha limitación puede ayudar a reducir la probabilidad de falsos positivos mediante la tarea de decisión T500.
[0080] La tarea T200 puede configurarse para generar uno o más valores de la secuencia generada de valores de inclinación espectral de acuerdo con una distancia en el tiempo entre la trama inactiva correspondiente y la trama activa anterior. Por ejemplo, tal implementación de la tarea T200 o la tarea T300 puede configurarse para retardar o suspender, para una o más tramas inactivas, el inicio de la actualización del contorno de inclinación espectral después de una transición desde la voz activa. Las FIGURAS 13A y 13B ilustran ejemplos de los efectos de dicha transición y de dicho retardo o suspensión, respectivamente. La FIGURA 13A muestra un cambio brusco en la amplitud de un contorno de inclinación espectral suavizado causado por los restos de voces en las tramas posteriores a la transición. Tal cambio puede llevar a una decisión de transmisión de SID positiva indeseable. En este ejemplo particular, el parámetro de inclinación espectral es el primer coeficiente de reflexión ka, de modo que los restos de sonoridad causan un aumento brusco en la amplitud del contorno de inclinación espectral suavizado, aunque los remanentes de voz pueden causar una disminución brusca de la amplitud en lugar de un caso en el que se utiliza otro parámetro de inclinación espectral. A modo de comparación, la FIGURA 13B muestra un ejemplo en el que se aplica un retardo (también denominado "persistencia") para deshabilitar la actualización del contorno suavizado durante las tramas posteriores a la transición. En este caso, el aumento brusco observado en la FIGURA 13A no ocurre. En un ejemplo particular, se usa una persistencia de cinco tramas después de una transición de voz activa a inactiva.
[0081] La FIGURA 14 muestra un ejemplo de una lista de códigos fuente para un conjunto de instrucciones que puede ser ejecutada por una matriz programable de elementos lógicos u otra máquina de estado (por ejemplo, un procesador) para realizar una implementación del procedimiento M100 que incluye una implementación T312 de la tarea T310, así como implementaciones de las tareas T400 y T500. En este ejemplo, la tarea T312 lee una variable FRAME_ACTIVE que almacena el estado actual de la indicación de actividad de voz. Si el valor de FRAME_ACTIVE es TRUE, lo cual indica que la trama actual está activa, entonces se almacena un recuento de persistencia en la variable hangover_1 y el conjunto de instrucciones finaliza. En este ejemplo particular, el recuento de persistencia es cinco, aunque se puede usar cualquier otro valor entero positivo. Cuando el valor de FRAME_ACTIVE se hace FALSE, lo cual indica que la trama actual está inactiva, cada iteración subsiguiente del conjunto de instrucciones disminuye el valor de la variable hangover_1 y termina antes de que el valor de la variable hangover_1 llegue a cero. En este ejemplo, las tareas T400 y T500 se implementan usando las instrucciones descritas anteriormente con referencia a la FIGURA 8B.
[0082] Los ejemplos del procedimiento M100 y el aparato A100 incluyen implementaciones configuradas para controlar la actualización del contorno de inclinación espectral de acuerdo con el estado de una señal de control de actualización. Dicha señal puede basarse en una indicación de actividad de voz como se describe anteriormente. La variable FRAME_ACTIVE que se muestra en la FIGURA 14 es un ejemplo de una señal de control de actualización (específicamente, una señal de deshabilitación de actualización). Se puede usar un circuito lógico de persistencia 50 para calcular una señal de control de actualización retardando una transición de activo a inactivo en la indicación de actividad de voz. La FIGURA 15 muestra una implementación 52 del circuito lógico de persistencia 50 que está configurado para generar una señal de control de actualización (específicamente, una señal de habilitación de actualización). En esta figura, el estado de la indicación de actividad de voz es bajo para una trama inactiva y alto para una trama activa, se utiliza una línea de retardo pulsada que tiene tres elementos de retardo para implementar una persistencia de tres tramas, y se utiliza una operación lógica NOR para combina las indicaciones de actividad de voz actual y diferida. En otros ejemplos, el estado de la indicación de actividad de voz puede ser alto para una trama inactiva y bajo para una trama activa, y en este caso las indicaciones de actividad de voz actual y retardada pueden combinarse utilizando una operación lógica AND. En cuanto a la línea de retardo obtenida, otros ejemplos de este circuito pueden usar cualquier número de elementos de retardo de acuerdo con la duración deseada de la persistencia. De forma alternativa, se puede implementar un circuito lógico de persistencia 50 para usar un contador de retardo para contar hacia atrás (o hacia adelante) desde una transición activa a inactiva y/o para calcular una señal de deshabilitación de actualización en lugar de una señal de habilitación de actualización.
[0083] El generador de secuencia 120 puede estar configurado para generar uno o más valores de la secuencia generada de los valores de inclinación espectral de acuerdo con una distancia en el tiempo entre la trama inactiva correspondiente y la trama activa anterior. Por ejemplo, el generador de secuencias 120 o el suavizador 130 pueden configurarse para suspender el inicio de la actualización del contorno de inclinación espectral después de una transición de activo a inactivo de acuerdo con una persistencia deseada. Una implementación de este tipo del generador de secuencias 120 o el suavizador 130 puede configurarse para incluir una implementación del circuito lógico de persistencia 50 como se describe anteriormente. La FIGURA 16A muestra una implementación 134 del suavizador 132. En este ejemplo, un selector (por ejemplo, un multiplexor) cambia la entrada del suavizador entre el valor actual de la secuencia (es decir, x[n]) y el valor anterior del contorno de inclinación espectral suavizado (es decir, y[n-1]) de acuerdo con el estado de la señal de control de actualización. De forma alternativa, una implementación del suavizador 110 puede configurarse para almacenar el valor actual de x[n] cuando la señal de control de actualización es alta, y para usar este valor almacenado para la entrada cuando la señal de control de actualización es baja.
[0084] La FIGURA 16B muestra otra implementación 136 del suavizador 132 que incluye una implementación del circuito lógico de persistencia 50 como se describió anteriormente. Este ejemplo incluye dos selectores (por ejemplo, multiplexores) que están configurados para emitir diferentes factores de ganancia de acuerdo con el estado de la señal de control de actualización. El primer selector genera el factor de ganancia que se aplicará a x[n]. Cuando el estado de la señal de control de actualización es alto, este selector genera el factor de ganancia F10, y cuando el estado de la señal de control de actualización es alto, este selector genera el factor de ganancia F12. El segundo selector genera el factor de ganancia que se aplicará a y[n-1]. Cuando el estado de la señal de control de actualización es alto, este selector genera el factor de ganancia F20, y cuando el estado de la señal de control de actualización es alto, este selector genera el factor de ganancia F22. En un ejemplo, los factores de ganancia F10 y F12 tienen los valores 0,2 y 0, respectivamente, y los factores de ganancia F20 y F22 tienen los valores 0,8 y 1,0, respectivamente.
[0085] Una aplicación adicional del suavizador 136 puede estar configurada para seleccionar entre más de dos valores para cada factor de ganancia, de manera que la transición de la suspensión a la operación normal del suavizador es más gradual. En lugar de un circuito lógico de persistencia que genera una señal de control binaria, por ejemplo, tal suavidad puede incluir una implementación del circuito lógico de persistencia 50 que está configurado para generar una señal de control que tiene más de dos estados. Un ejemplo de este tipo de circuito lógico de persistencia 50 puede configurarse para generar una señal de control de actualización que pasa por los estados c en respuesta a una transición de activo a inactivo, donde c es un número entero mayor que dos. En tal caso, los dos selectores del suavizado 136 pueden configurarse de tal manera que, en respuesta a la transición y en una serie de tramas c, el factor de ganancia aplicado a x[n] pase a través de los valores c de mínimo a máximo (por ejemplo, de 0,0 a 0,2) mientras que el factor de ganancia aplicado a y[n-1] pasa a través de los valores de c de máximo a mínimo (por ejemplo, de 1,0 a 0,8).
[0086] Una medida de ganancia de codificación describe una relación entre la energía de una señal recibida por un codificador de voz (o procedimiento de codificación de voz) y la energía de un error de codificación correspondiente. Típicamente, un codificador de voz o un procedimiento de codificación de voz codificarán las tramas activas de manera más eficiente que las tramas inactivas, de modo que la medida de la ganancia de codificación será mayor para las tramas activas que para las tramas inactivas. Un ejemplo de una medida de ganancia de codificación para una trama es la relación de la energía de la señal Ein inicial (por ejemplo, la energía de la trama de ventana) a la energía de la Eerr de codificación residual. En tales casos, la energía de cada señal se calcula típicamente como la suma de las magnitudes de las muestras. Otra medida común de la ganancia de codificación para el análisis de LPC es la ganancia
de predicción, que se puede calcular como el recíproco del producto de O - * - ) para todos i < j (de forma alternativa, para todos i, 1 < i < j), donde j es el orden del análisis LPC y indica el coeficiente de reflexión i-ésimo.
[0087] El grado de ganancia de codificación lograda por un codificador de voz o procedimiento de codificación de voz tiende a variar de trama a trama a medida que las estadísticas de la señal cambian. Sin embargo, durante una serie de tramas inactivas, se puede esperar que la señal sea relativamente estacionaria, de modo que sus estadísticas no varíen significativamente. Por lo tanto se puede esperar que el valor Gc de una medida de ganancia de codificación se mantenga relativamente constante incluso durante los cambios perceptualmente significativos en el ruido de fondo.
[0088] Un gran cambio en el valor Gc de una medida de ganancia de codificación puede indicar que la señal de voz ha cambiado debido a un factor distinto de un cambio en el ruido de fondo. Un factor que puede causar tal cambio en el valor Gc es la actividad de voz que está por debajo del umbral de detección del detector de actividad de voz del codificador. En tal caso, también puede ocurrir un gran cambio en el valor de inclinación espectral, lo cual lleva a una decisión de transmisión de SID positiva por parte de la tarea T500, incluso si el ruido de fondo no ha cambiado significativamente.
[0089] Puede ser deseable implementar el procedimiento M100 para dar cuenta de los cambios en la inclinación espectral que se asocian con cambios en el valor Gc de una medida de ganancia de codificación. Por ejemplo, una implementación T230 de la tarea T200 o una implementación T330 de la tarea T300 puede configurarse para habilitar o deshabilitar la actualización de contorno basándose en la magnitud de una variación en el valor Gc de una medida de ganancia de codificación.
[0090] En algunos casos, la medida de ganancia de codificación se puede calcular en términos de un error de codificación, como en una expresión como
Figure imgf000017_0001
Del mismo modo, la ganancia de predicción se puede calcular como un error de predicción, como en una expresión
como ¡ para todos i < j (de forma alternativa, para todos 1 < i < j). La medida de la ganancia de codificación también se puede calcular de acuerdo con otras expresiones que, por ejemplo, también incluyen el
n a - * ; *
producto ' para todos i < j (de forma alternativa, para todos 1 < i < j), o una relación entre E¡n y Eerr, como factor o término.
[0091] La medida de ganancia de codificación puede expresarse en una escala lineal o en otro dominio, tal como en una escala logarítmica. Entre los ejemplos de tales expresiones se incluye lo siguiente:
Figure imgf000017_0002
La medida de la ganancia de codificación se evalúa típicamente para cada trama, pero también puede evaluarse con menos frecuencia (por ejemplo, para cada segunda o tercera trama) y/o en un intervalo más largo (por ejemplo, en un par o triplete de tramas).
[0092] En una disposición típica, la tarea T230 o T330 está configurada para deshabilitar la actualización del contorno de inclinación espectral generada cuando el valor de Gc cambia en más de una cantidad umbral (de forma alternativa, por no menos de una cantidad umbral) de una trama inactiva a la siguiente. En un ejemplo particular, la tarea T330 está configurada para deshabilitar la actualización del contorno suavizado cuando el valor de la ganancia de predicción cambia en más de 0,72 dB respecto a la trama inactiva anterior a la trama inactiva actual. Una implementación de la tarea T230 o la tarea T330 puede configurarse para aplicar una persistencia para extender dicha deshabilitación a una o más tramas posteriores. Una implementación adicional de la tarea T230 o la tarea T330 también puede configurarse para aplicar una persistencia después de una transición de la voz activa como se describió anteriormente (por ejemplo, con referencia a las FIGs. 13A-16B).
[0093] Puede ser deseable implementar el aparato A100 para dar cuenta de los cambios en un contorno de inclinación espectral que se asocian con cambios en el valor Gc de una medida de ganancia (tal como uno de los ejemplos descritos anteriormente) de codificación. Por ejemplo, el aparato A100 puede implementarse para incluir un generador de señales de control 60 configurado para generar una señal de control de actualización cuyo estado se basa en la magnitud de una variación en la ganancia de predicción. La FIGURA 17A muestra un diagrama de bloques de un ejemplo 62 del generador de señales de control 60. El generador de señales de control 60 también se puede implementar para aplicar una persistencia, como en el ejemplo del generador de señales de control 64 que se muestra en la FIGURA 17B. En un ejemplo particular, el valor del umbral T30 es 0,72 dB. Una implementación del suavizador 134 o 136 puede incluir una implementación del generador 60 de señales de control en lugar de, o además de, un circuito que está configurado para retardar una transición de activo a inactivo en una indicación de actividad de voz. Por ejemplo, tal implementación puede incluir un generador de señales de control 66 como se muestra en la FIGURA 18, que combina las operaciones del circuito lógico de persistencia 62 y el generador de señales de control 64.
[0094] Una implementación del procedimiento M100 puede estar configurada para controlar la generación de una indicación SID transmisión de acuerdo con un cambio en el valor de una medida de ganancia de codificación. Por ejemplo, una implementación del procedimiento M100 puede incluir una implementación de la tarea T400 que está configurada para generar una distancia de cero si el valor de la medida de ganancia de codificación (por ejemplo, la ganancia de predicción) cambia en más de una cantidad de umbral (de forma alternativa, por no menos que una cantidad de umbral) de una trama inactiva a la siguiente. Además, o de forma alternativa, una implementación del procedimiento M100 puede incluir una implementación de la tarea T500 que está configurada para habilitar o inhabilitar la generación de una indicación de transmisión de SID positiva de acuerdo con la magnitud de una variación en la ganancia de predicción. Una implementación T510 de la tarea T500 está configurada para deshabilitar la generación de una indicación de transmisión de SID positiva a menos que la ganancia de predicción cambie en menos de (de forma alternativa, no más de) un valor umbral desde la trama inactiva anterior a la trama inactiva actual. En uno de esos ejemplos particulares, el valor umbral es de 0,65 dB. El control de la generación de la indicación de transmisión se puede realizar además o como una alternativa al control de la actualización de un contorno de inclinación espectral.
[0095] Una implementación del aparato A100 puede estar configurado para controlar la generación de la indicación SID de transmisión de acuerdo con un cambio en el valor Gc de una medida de la ganancia de codificación. La FIGURA 19A muestra un diagrama de bloques de un ejemplo 72 de un circuito de control de indicación de transmisión 70 que está configurado para bloquear una indicación de transmisión de SID positiva de acuerdo con una relación entre un umbral T40 y la magnitud de un cambio en la ganancia de predicción. En un ejemplo particular, el valor umbral T40 es 0,65.dB. La FIGURA 19B muestra un diagrama de bloques de una implementación 156 del comparador 152 que incluye un circuito de control de indicación de transmisión 72.
[0096] Una implementación del aparato A100 puede configurarse para controlar la generación de tanto una señal de control de actualización como una indicación de transmisión de SID, basándose en un cambio en el valor Gc de una medida de la ganancia de codificación. La FIGURA 20 muestra un diagrama de bloques de un ejemplo 82 de un circuito de control 80 configurado para realizar estas operaciones. Dicho circuito puede estar dispuesto para recibir una indicación de transmisión de SID desde el comparador 150 y para proporcionar una señal de control de actualización al suavizador 130. Dicho circuito también se puede implementar dentro del suavizador 130 o del comparador 150. En el suavizador 134 o 136, por ejemplo, el circuito de control 82 puede estar dispuesto para reemplazar el circuito lógico de persistencia 52 y para bloquear una indicación de transmisión de SID desde el comparador 150 de acuerdo con la ganancia de predicción. En otro ejemplo, el circuito de control 82 puede estar dispuesto dentro del comparador 152 para bloquear la indicación de transmisión de SID de acuerdo con la ganancia de predicción y también para proporcionar una señal de control de actualización al suavizador 130.
[0097] La FIGURA 21 muestra un ejemplo de una lista de códigos fuente para un conjunto de instrucciones que pueden ejecutarse mediante una matriz programable de elementos lógicos u otra máquina de estado (por ejemplo, un procesador) para realizar una implementación del procedimiento M100 que incluye una implementación T332 de las tareas T312 y T330, una implementación T510 de la tarea T500 y una implementación de la tarea T400. En este ejemplo, el estado de la variable FRAME_ACTIVE indica si la trama actual está activa o inactiva, el estado de la variable YVALID indica si el conjunto de instrucciones se ha llamado antes (y, por lo tanto, si el valor almacenado en la variable y_current es válido) y el valor de la variable Gc indica la ganancia de predicción para la trama actual.
[0098] Si el conjunto de instrucciones determina que el valor de Y_VALID es FALSE (es decir, si el conjunto de instrucciones se está ejecutando por primera vez), la variable Gc_current se inicializa con el valor actual de la variable Gc. La diferencia absoluta entre los valores actuales y pasados de Gc se almacena en la variable Gc_diff, y si esta diferencia es mayor que un valor umbral, se aplica una persistencia de dos tramas. En la Parte 3, el indicador p se establece solo si el valor de Gc_diff es menor que un valor umbral.
[0099] Los ejemplos particulares de implementaciones lógicas descritas en el presente documento se presentan para explicar la divulgación y no para limitarla, y los expertos en la técnica entenderán fácilmente que las implementaciones lógicas alternativas se incluyen dentro del alcance de esta divulgación. Por ejemplo, la lógica de selección implementada en un contexto como una puerta AND dispuesta para producir una señal alta activa solo cuando todas sus entradas son altas puede implementarse en otro contexto como una puerta OR dispuesta para producir una señal baja activa solo cuando todas sus entradas son bajas. Una cuenta regresiva desde un primer valor hasta un segundo valor también se puede implementar como una cuenta regresiva desde el segundo valor hasta el primer valor, y viceversa. Una indicación positiva o TRUE se puede expresar utilizando un valor binario alto en un contexto y un valor binario bajo en otro contexto.
[0100] En los ejemplos analizados anteriormente, se supone que la secuencia de valores de inclinación espectral incluye un valor para cada uno en una serie de tramas inactivas consecutivas. Sin embargo, también se contempla que el procedimiento M100 y el aparato A100 puedan implementarse de manera tal que la secuencia de valores de inclinación espectral incluya menos de un valor para cada uno en una serie de tramas inactivas consecutivas. Por ejemplo, la secuencia puede incluir un valor para cada otra trama (o cada tercera trama, etc.) en la serie. Dicha secuencia se puede obtener ignorando tramas intermedias o descartando valores de dichas tramas, o promediando los valores de cada par (triplete, etc.) de tramas. De forma adicional o alternativa, tales principios pueden aplicarse a otras secuencias, tales como una secuencia de valores de una medida de ganancia de codificación.
[0101] Los expertos en la técnica entenderán que la información y las señales pueden representarse usando cualquiera de entre una variedad de tecnologías y técnicas diferentes. Por ejemplo, los datos, las instrucciones, los comandos, la información, las señales, los bits y los símbolos que puedan haberse mencionado a lo largo de la descripción anterior pueden representarse mediante tensiones, corrientes, ondas electromagnéticas, campos o partículas magnéticos, campos o partículas ópticos, o cualquier combinación de los mismos. Aunque la señal a partir de la cual se obtiene la secuencia generada de valores de inclinación espectral se denomina "señal de voz", también se contempla y se describe de esta manera que esta señal puede transportar música u otro contenido de información no de voz durante las tramas activas.
[0102] Los elementos de las diversas implementaciones del aparato 100 descritos en el presente documento pueden fabricarse como dispositivos electrónicos y/u ópticos que residan, por ejemplo, en el mismo chip o entre dos o más chips en un conjunto de chips. Un ejemplo de dicho dispositivo es una matriz fija o programable de elementos lógicos, tales como transistores o puertas. Uno o más elementos de las diversas implementaciones del aparato 100 descrito en el presente documento también pueden implementarse total o parcialmente como uno o más conjuntos de instrucciones dispuestos para ejecutarse en una o más matrices fijas o programables de elementos lógicos tales como microprocesadores, procesadores incorporados, núcleos IP, procesadores de señales digitales, FPGAs (matrices de puertas programables por campo), ASSP (productos estándar específicos de la aplicación) y ASIC (circuitos integrados específicos de la aplicación).
[0103] Es posible que uno o más elementos de una implementación de un aparato 100 como se describe en el presente documento se usen para realizar tareas o ejecutar otros conjuntos de instrucciones que no estén directamente relacionados con una operación del aparato, tal como una tarea relacionada con otra operación de un dispositivo o sistema en el que el aparato esté incorporado. También es posible que uno o más elementos de una implementación del aparato A100 tengan una estructura en común (por ejemplo, un procesador usado para ejecutar partes de código correspondientes a diferentes elementos en tiempos diferentes, un conjunto de instrucciones ejecutadas para realizar las tareas correspondientes a diferentes elementos en tiempos diferentes o una disposición de dispositivos electrónicos y/u ópticos que realicen operaciones para diferentes elementos en tiempos diferentes). En uno de estos ejemplos, el suavizador 130, la calculadora 140 y el comparador 150 se implementan como conjuntos de instrucciones dispuestas para ejecutarse en el mismo procesador. En otro ejemplo, el generador de secuencias 120 o incluso un codificador de voz (que puede incluir el aparato A100) se implementa como uno o más conjuntos de instrucciones dispuestas para ejecutarse en ese procesador.
[0104] Se proporciona la presentación anterior de las configuraciones descritas con el fin de permitir que cualquier experto en la técnica realice o use los procedimientos y otras estructuras divulgados en el presente documento. Los diagramas de flujo y otras estructuras que se muestran y describen en el presente documento son solo ejemplos. Son posibles diversas modificaciones de estas configuraciones, y los principios genéricos presentados en el presente documento pueden aplicarse también a otras configuraciones.
[0105] Las configuraciones descritas en el presente documento se pueden implementar en parte o en su totalidad como un circuito por cable, como una configuración de circuito fabricada en un circuito integrado específico de aplicación, o como un programa de firmware cargado en un almacenamiento no volátil o un programa de software cargado a partir de o en un medio de almacenamiento de datos como código legible por máquina, siendo dicho código instrucciones ejecutables mediante una matriz de elementos lógicos tales como un microprocesador u otra unidad de procesamiento de señales digitales. El medio de almacenamiento de datos puede ser una matriz de elementos de almacenamiento tales como memoria de semiconductor (que puede incluir, sin limitación, RAM (memoria de acceso aleatorio) dinámica o estática, ROM (memoria de solo lectura) y/o flash RAM), o memoria ferroeléctrica, magnetorresistiva, ovónica, polimérica o de cambio de fase; o un medio de disco tal como un disco magnético u óptico. El término "software" debería entenderse como que incluye código fuente, código de lenguaje ensamblador, código de máquina, código binario, firmware, macrocódigo, microcódigo, uno o más conjuntos o secuencias de instrucciones ejecutables mediante una matriz de elementos lógicos y cualquier combinación de dichos ejemplos.
[0106] Los procedimientos divulgados en el presente documento también pueden realizarse de forma tangible (por ejemplo, en uno o más medios de almacenamiento de datos como se ha mencionado anteriormente) como uno o más conjuntos de instrucciones legibles y/o ejecutables mediante una máquina que incluye una matriz de elementos lógicos (por ejemplo, un procesador, un microprocesador, un microcontrolador u otra máquina de estados finitos).
[0107] Los expertos en la técnica apreciarán, además, que los diversos bloques lógicos, módulos, circuitos y operaciones ilustrativos descritos en relación con las configuraciones divulgadas en el presente documento pueden implementarse como hardware electrónico, software informático o combinaciones de ambos. Dichos bloques lógicos, módulos, circuitos y operaciones pueden implementarse o realizarse con un procesador de uso general, con un procesador de señales digitales (DSP), con ASIC, una FPGA u otro dispositivo de lógica programable, puerta discreta o lógica de transistor, componentes de hardware discretos o cualquier combinación de los mismos diseñada para producir las funciones descritas en el presente documento. Un procesador de uso general puede ser un microprocesador pero, de forma alternativa, el procesador puede ser cualquier procesador, controlador, microcontrolador o máquina de estados convencional. Un procesador también puede implementarse como una combinación de dispositivos informáticos, por ejemplo, una combinación de un DSP y un microprocesador, una pluralidad de microprocesadores, uno o más microprocesadores junto con un núcleo DSP o cualquier otra configuración de este tipo.
[0108] Las tareas de los procedimientos y algoritmos descritos en el presente documento pueden incorporarse directamente en hardware, en un módulo de software ejecutado por un procesador o en una combinación de los dos. Un módulo de software puede residir en una memoria RAM, en una memoria flash, en una memoria ROM, en una memoria EPROM, en una memoria EEPROM, en registros, en un disco duro, en un disco extraíble, en un CD-ROM o en cualquier otra forma de medio de almacenamiento conocido en la técnica. Un medio de almacenamiento ilustrativo está acoplado al procesador de tal manera que el procesador puede leer información de, y escribir información a, el medio de almacenamiento. De forma alternativa, el medio de almacenamiento puede estar integrado en el procesador. El procesador y el medio de almacenamiento pueden residir en un ASIC. El ASIC puede residir en un terminal de usuario. De forma alternativa, el procesador y el medio de almacenamiento pueden residir como componentes discretos en un terminal de usuario.

Claims (14)

REIVINDICACIONES
1. Un procedimiento de procesamiento de señal de voz, comprendiendo dicho procedimiento:
generar una secuencia de valores de inclinación espectral que se basa en una pluralidad de tramas inactivas de la señal de voz, en el que cada uno de los valores de inclinación espectral se basa en al menos un coeficiente de reflexión de una trama inactiva correspondiente de la señal de voz;
calcular un cambio entre al menos dos valores de la secuencia de coeficientes de reflexión basados en valores de inclinación espectral;
para una trama inactiva entre la pluralidad de tramas inactivas, decidir si transmitir una trama de descriptor de inserción de silencio, SID; y
en el que dicha decisión de si transmitir la trama de descriptor de inserción de silencio, SID, se basa en el cambio calculado.
2. El procedimiento para procesar una señal de voz de acuerdo con la reivindicación 1, en el que dicha generación de una secuencia de valores de inclinación espectral comprende suavizar una secuencia de entrada de valores de inclinación espectral para generar la secuencia de valores de inclinación espectral, en el que cada uno de los valores de inclinación espectral de la secuencia de entrada indica una inclinación espectral de una correspondiente de la pluralidad de tramas inactivas.
3. El procedimiento para procesar una señal de voz de acuerdo con la reivindicación 1, en el que cada uno de una pluralidad de valores de inclinación espectral se basa en al menos uno de los valores de inclinación espectral en una secuencia de entrada de valores de inclinación espectral.
4. El procedimiento para procesar una señal de voz de acuerdo con la reivindicación 1, en el que cada uno de una pluralidad de valores de inclinación espectral se basa en (A) una inclinación espectral de una correspondiente de la pluralidad de tramas inactivas y (B) al menos uno de los valores de inclinación espectral anteriores en una secuencia de entrada de valores de inclinación espectral.
5. El procedimiento para procesar una señal de voz de acuerdo con la reivindicación 1, en el que el cambio calculado se basa en una diferencia entre valores consecutivos en la secuencia de valores de inclinación espectral.
6. El procedimiento para procesar una señal de voz de acuerdo con la reivindicación 1, en el que el resultado de dicha decisión de si transmitir una trama de descriptor de inserción de silencio, SID, para la trama se basa en una relación entre (A) una magnitud del cambio calculado y (B) un valor umbral.
7. El procedimiento para procesar una señal de voz de acuerdo con la reivindicación 1, en el que dicho procedimiento comprende, si el resultado de dicha decisión de si transmitir una trama de descriptor de inserción de silencio, SID, es una decisión de transmitir una trama de descriptor de inserción de silencio, SID, transmitir la trama de descriptor de inserción de silencio, SID, que incluye al menos uno de una descripción de envolvente espectral y una descripción de envolvente de energía.
8. El procedimiento para procesar una señal de voz de acuerdo con la reivindicación 7, en el que dicho procedimiento comprende calcular el descriptor de inserción de silencio, SID, basado en al menos una entre (A) descripciones de envolvente espectral de cada una de una pluralidad de tramas inactivas y (B) descripciones de envolvente de energía de cada una de una pluralidad de tramas inactivas.
9. El procedimiento para procesar una señal de voz de acuerdo con la reivindicación 1, en el que dicho procedimiento comprende calcular, para cada uno de una pluralidad de valores de inclinación espectral en la secuencia de valores de inclinación espectral, un cambio entre el valor de inclinación espectral y al menos un valor de inclinación espectral previo en la secuencia de valores de inclinación espectral, y
en el que dicho procedimiento comprende, para cada una de las tramas inactivas de la señal de voz, decidir si transmitir una trama de descriptor de inserción de silencio, SID, y
en el que, para cada una de las tramas inactivas, el resultado de dicha decisión de si transmitir una descripción para la trama se basa en al menos uno de los cambios calculados.
10. Un aparato para procesar una señal de voz, comprendiendo dicho aparato:
medios para generar una secuencia de valores de inclinación espectral que se basa en una pluralidad de tramas inactivas de la señal de voz en la que cada uno de los valores de inclinación espectral se basa en al menos un coeficiente de reflexión de una trama inactiva correspondiente de la señal de voz;
medios para calcular un cambio entre al menos dos valores de la secuencia de valores de inclinación espectral basados en coeficientes de reflexión; y
medios para decidir, para una trama inactiva entre la pluralidad de tramas inactivas, y basándose en el cambio calculado, si transmitir una trama de descriptor de inserción de silencio, SID.
11. El aparato para procesar una señal de voz de acuerdo con la reivindicación 10, en el que dicho aparato comprende medios para transmitir, en respuesta a una decisión por parte de dichos medios para decidir transmitir una trama de descriptor de inserción de silencio, SID, un descriptor de inserción de silencio, SID, que incluye al menos uno de una descripción de envolvente espectral y una descripción de envolvente de energía.
12. El aparato para procesar una señal de voz de acuerdo con la reivindicación 10, en el que dichos medios para generar una secuencia de valores de inclinación espectral están configurados para generar valores de inclinación espectral de acuerdo con una distancia en el tiempo entre la trama inactiva y una trama activa precedente de la señal de voz.
13. El aparato para procesar una señal de voz de acuerdo con la reivindicación 10, en el que dichos medios para generar una secuencia de valores de inclinación espectral están configurados, para al menos uno entre la secuencia de valores de inclinación espectral, para establecer el valor de inclinación espectral en el anterior entre la secuencia de valores de inclinación espectral en respuesta a la detección de que un cambio en una medida de ganancia de codificación excede un valor umbral.
14. Un producto de programa informático, que comprende un medio legible por ordenador, con dicho medio que comprende código que cuando se ejecuta lleva a cabo el procedimiento de cualquiera de las reivindicaciones 1 a 9.
ES07813616T 2006-07-31 2007-07-31 Sistemas, procedimientos y aparatos para la detección de cambio de señal Active ES2733099T3 (es)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US83468906P 2006-07-31 2006-07-31
US11/830,548 US8725499B2 (en) 2006-07-31 2007-07-30 Systems, methods, and apparatus for signal change detection
PCT/US2007/074895 WO2008016942A2 (en) 2006-07-31 2007-07-31 Systems, methods, and apparatus for signal change detection

Publications (1)

Publication Number Publication Date
ES2733099T3 true ES2733099T3 (es) 2019-11-27

Family

ID=38812761

Family Applications (1)

Application Number Title Priority Date Filing Date
ES07813616T Active ES2733099T3 (es) 2006-07-31 2007-07-31 Sistemas, procedimientos y aparatos para la detección de cambio de señal

Country Status (10)

Country Link
US (1) US8725499B2 (es)
EP (1) EP2047457B1 (es)
JP (1) JP4995913B2 (es)
KR (1) KR101060533B1 (es)
BR (1) BRPI0715063B1 (es)
CA (1) CA2657420C (es)
ES (1) ES2733099T3 (es)
HU (1) HUE042959T2 (es)
RU (1) RU2417456C2 (es)
WO (1) WO2008016942A2 (es)

Families Citing this family (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101565919B1 (ko) * 2006-11-17 2015-11-05 삼성전자주식회사 고주파수 신호 부호화 및 복호화 방법 및 장치
CN101246688B (zh) * 2007-02-14 2011-01-12 华为技术有限公司 一种对背景噪声信号进行编解码的方法、系统和装置
US8032359B2 (en) 2007-02-14 2011-10-04 Mindspeed Technologies, Inc. Embedded silence and background noise compression
WO2008103087A1 (en) * 2007-02-21 2008-08-28 Telefonaktiebolaget L M Ericsson (Publ) Double talk detector
CN100555414C (zh) * 2007-11-02 2009-10-28 华为技术有限公司 一种dtx判决方法和装置
KR101235830B1 (ko) * 2007-12-06 2013-02-21 한국전자통신연구원 음성코덱의 품질향상장치 및 그 방법
KR101441897B1 (ko) * 2008-01-31 2014-09-23 삼성전자주식회사 잔차 신호 부호화 방법 및 장치와 잔차 신호 복호화 방법및 장치
DE102008009718A1 (de) * 2008-02-19 2009-08-20 Siemens Enterprise Communications Gmbh & Co. Kg Verfahren und Mittel zur Enkodierung von Hintergrundrauschinformationen
DE102008009719A1 (de) * 2008-02-19 2009-08-20 Siemens Enterprise Communications Gmbh & Co. Kg Verfahren und Mittel zur Enkodierung von Hintergrundrauschinformationen
US8463603B2 (en) * 2008-09-06 2013-06-11 Huawei Technologies Co., Ltd. Spectral envelope coding of energy attack signal
ES2410259T3 (es) * 2008-10-16 2013-07-01 Telefonaktiebolaget L M Ericsson (Publ) Aparato y método para controlar transmisiones esporádicas de Descriptor de Inserción de Silencio (SID)
WO2010146711A1 (ja) * 2009-06-19 2010-12-23 富士通株式会社 音声信号処理装置及び音声信号処理方法
JP5870476B2 (ja) * 2010-08-04 2016-03-01 富士通株式会社 雑音推定装置、雑音推定方法および雑音推定プログラム
CN103187065B (zh) 2011-12-30 2015-12-16 华为技术有限公司 音频数据的处理方法、装置和系统
CN103325386B (zh) 2012-03-23 2016-12-21 杜比实验室特许公司 用于信号传输控制的方法和系统
ES2799773T3 (es) * 2013-01-29 2020-12-21 Fraunhofer Ges Forschung Llenado de ruido sin información secundaria para codificadores tipo CELP
JP6082126B2 (ja) 2013-01-29 2017-02-15 フラウンホーファーゲゼルシャフト ツール フォルデルング デル アンゲヴァンテン フォルシユング エー.フアー. 音声信号を合成するための装置及び方法、デコーダ、エンコーダ、システム及びコンピュータプログラム
US9711156B2 (en) * 2013-02-08 2017-07-18 Qualcomm Incorporated Systems and methods of performing filtering for gain determination
US9741350B2 (en) 2013-02-08 2017-08-22 Qualcomm Incorporated Systems and methods of performing gain control
US9179404B2 (en) 2013-03-25 2015-11-03 Qualcomm Incorporated Method and apparatus for UE-only discontinuous-TX smart blanking
EP3671738B1 (en) * 2013-04-05 2024-06-05 Dolby International AB Audio encoder and decoder
US9263061B2 (en) * 2013-05-21 2016-02-16 Google Inc. Detection of chopped speech
CN105225668B (zh) 2013-05-30 2017-05-10 华为技术有限公司 信号编码方法及设备
US9570093B2 (en) 2013-09-09 2017-02-14 Huawei Technologies Co., Ltd. Unvoiced/voiced decision for speech processing
US9479272B2 (en) 2014-05-14 2016-10-25 Samsung Electronics Co., Ltd Method and apparatus for processing a transmission signal in communication system
CN106533391A (zh) * 2016-11-16 2017-03-22 上海艾为电子技术股份有限公司 无限冲激响应滤波器及其控制方法
EP3382703A1 (en) 2017-03-31 2018-10-03 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Apparatus and methods for processing an audio signal
WO2020002448A1 (en) * 2018-06-28 2020-01-02 Telefonaktiebolaget Lm Ericsson (Publ) Adaptive comfort noise parameter determination
BR112021012753A2 (pt) * 2019-01-13 2021-09-08 Huawei Technologies Co., Ltd. Método implementado por computador para codificação de áudio, dispositivo eletrônico e meio legível por computador não transitório
CN117436712B (zh) * 2023-12-21 2024-04-12 山东铁鹰建设工程有限公司 一种施工挂篮运行风险实时监测方法及系统

Family Cites Families (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5511073A (en) 1990-06-25 1996-04-23 Qualcomm Incorporated Method and apparatus for the formatting of data for transmission
CA2483324C (en) * 1991-06-11 2008-05-06 Qualcomm Incorporated Estimation of background noise in a variable rate vocoder
US5341456A (en) * 1992-12-02 1994-08-23 Qualcomm Incorporated Method for determining speech encoding rate in a variable rate vocoder
US5704003A (en) 1995-09-19 1997-12-30 Lucent Technologies Inc. RCELP coder
JPH09152894A (ja) * 1995-11-30 1997-06-10 Denso Corp 有音無音判別器
US5960389A (en) * 1996-11-15 1999-09-28 Nokia Mobile Phones Limited Methods for generating comfort noise during discontinuous transmission
WO1999010719A1 (en) * 1997-08-29 1999-03-04 The Regents Of The University Of California Method and apparatus for hybrid coding of speech at 4kbps
US5991718A (en) 1998-02-27 1999-11-23 At&T Corp. System and method for noise threshold adaptation for voice activity detection in nonstationary noise environments
US6415252B1 (en) * 1998-05-28 2002-07-02 Motorola, Inc. Method and apparatus for coding and decoding speech
US7072832B1 (en) * 1998-08-24 2006-07-04 Mindspeed Technologies, Inc. System for speech encoding having an adaptive encoding arrangement
AU1524300A (en) 1998-11-13 2000-06-05 Qualcomm Incorporated Closed-loop variable-rate multimode predictive speech coder
US6691084B2 (en) 1998-12-21 2004-02-10 Qualcomm Incorporated Multiple mode variable rate speech coding
JP4438127B2 (ja) 1999-06-18 2010-03-24 ソニー株式会社 音声符号化装置及び方法、音声復号装置及び方法、並びに記録媒体
US6330532B1 (en) 1999-07-19 2001-12-11 Qualcomm Incorporated Method and apparatus for maintaining a target bit rate in a speech coder
US6687668B2 (en) * 1999-12-31 2004-02-03 C & S Technology Co., Ltd. Method for improvement of G.723.1 processing time and speech quality and for reduction of bit rate in CELP vocoder and CELP vococer using the same
EP1164580B1 (en) * 2000-01-11 2015-10-28 Panasonic Intellectual Property Management Co., Ltd. Multi-mode voice encoding device and decoding device
US6889186B1 (en) * 2000-06-01 2005-05-03 Avaya Technology Corp. Method and apparatus for improving the intelligibility of digitally compressed speech
US6807525B1 (en) 2000-10-31 2004-10-19 Telogy Networks, Inc. SID frame detection with human auditory perception compensation
US7013269B1 (en) * 2001-02-13 2006-03-14 Hughes Electronics Corporation Voicing measure for a speech CODEC system
US20030028386A1 (en) * 2001-04-02 2003-02-06 Zinser Richard L. Compressed domain universal transcoder
US6879955B2 (en) 2001-06-29 2005-04-12 Microsoft Corporation Signal modification based on continuous time warping for low bit rate CELP coding
CN1703736A (zh) 2002-10-11 2005-11-30 诺基亚有限公司 用于源控制可变比特率宽带语音编码的方法和装置
US20040098255A1 (en) 2002-11-14 2004-05-20 France Telecom Generalized analysis-by-synthesis speech coding method, and coder implementing such method
KR20050049103A (ko) 2003-11-21 2005-05-25 삼성전자주식회사 포만트 대역을 이용한 다이얼로그 인핸싱 방법 및 장치
US8102872B2 (en) 2005-02-01 2012-01-24 Qualcomm Incorporated Method for discontinuous transmission and accurate reproduction of background noise information
US7231348B1 (en) * 2005-03-24 2007-06-12 Mindspeed Technologies, Inc. Tone detection algorithm for a voice activity detector
US8260611B2 (en) 2005-04-01 2012-09-04 Qualcomm Incorporated Systems, methods, and apparatus for highband excitation generation
PT1875463T (pt) 2005-04-22 2019-01-24 Qualcomm Inc Sistemas, métodos e aparelho para nivelamento de fator de ganho
US8032369B2 (en) 2006-01-20 2011-10-04 Qualcomm Incorporated Arbitrary average data rates for variable rate coders

Also Published As

Publication number Publication date
BRPI0715063B1 (pt) 2019-12-24
US20080027716A1 (en) 2008-01-31
JP4995913B2 (ja) 2012-08-08
JP2009545779A (ja) 2009-12-24
BRPI0715063A2 (pt) 2013-05-28
KR20090033461A (ko) 2009-04-03
RU2009107181A (ru) 2010-09-10
CA2657420A1 (en) 2008-02-07
CA2657420C (en) 2015-12-15
WO2008016942A2 (en) 2008-02-07
HUE042959T2 (hu) 2019-07-29
US8725499B2 (en) 2014-05-13
RU2417456C2 (ru) 2011-04-27
WO2008016942A3 (en) 2008-04-10
EP2047457A2 (en) 2009-04-15
KR101060533B1 (ko) 2011-08-30
EP2047457B1 (en) 2019-03-27

Similar Documents

Publication Publication Date Title
ES2733099T3 (es) Sistemas, procedimientos y aparatos para la detección de cambio de señal
ES2349554T3 (es) Codificación de señales.
ES2625895T3 (es) Método y dispositivo para la ocultación eficiente del borrado de tramas en códecs de voz basados en la predicción lineal
ES2659177T3 (es) Codificador de audio, descodificador de audio, método para proveer una información de audio codificada, método para proveer una información de audio descodificada, programa informático y representación codificada utilizando una ampliación de ancho de banda adaptable a la señal
ES2347473T3 (es) Procedimiento y aparato de deteccion de componentes tonales de señales de audio.
KR101092167B1 (ko) 피치-조정 및 비-피치-조정 코딩을 이용한 신호 인코딩
ES2909183T3 (es) Procedimientos y aparatos de clasificación de señales de audio
ES2269518T3 (es) Metodo y sistema para generar ruido de confort en comunicaciones de voz.
ES2642574T3 (es) Generación de ruido de confort
ES2900594T3 (es) Procedimiento para determinar un modo de codificación
ES2943588T3 (es) Decodificador para generar una señal de audio mejorada en frecuencia, procedimiento de decodificación, codificador para generar una señal codificada y procedimiento de codificación que utiliza información lateral de selección compacta
ES2908183T3 (es) Decisión no sonora para el procesamiento de la voz
TWI467979B (zh) 用於信號改變偵測之系統、方法及裝置
ES2610102T3 (es) Método y aparato para detectar una señal de voz
JP6680816B2 (ja) 信号符号化方法及びデバイス
RU2682851C2 (ru) Усовершенствованная коррекция потери кадров с помощью речевой информации
Farsi et al. Improving voice activity detection used in ITU-T G. 729. B
HK1203685B (en) Signal encoding method and device