ES2297839T3 - Sistema y metodo para el reconocimiento de voz en tiempo real independiente del usuario. - Google Patents

Sistema y metodo para el reconocimiento de voz en tiempo real independiente del usuario. Download PDF

Info

Publication number
ES2297839T3
ES2297839T3 ES96910381T ES96910381T ES2297839T3 ES 2297839 T3 ES2297839 T3 ES 2297839T3 ES 96910381 T ES96910381 T ES 96910381T ES 96910381 T ES96910381 T ES 96910381T ES 2297839 T3 ES2297839 T3 ES 2297839T3
Authority
ES
Spain
Prior art keywords
sound
processor
voice
audio signal
signal
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
ES96910381T
Other languages
English (en)
Inventor
C. Hal Hansen
Dale Lynn Shepherd
Robert Brian Moncur
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.)
Fonix Corp
Original Assignee
Fonix Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fonix Corp filed Critical Fonix Corp
Application granted granted Critical
Publication of ES2297839T3 publication Critical patent/ES2297839T3/es
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/08Speech classification or search
    • G10L15/18Speech classification or search using natural language modelling
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/02Feature extraction for speech recognition; Selection of recognition unit
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/08Speech classification or search
    • G10L15/18Speech classification or search using natural language modelling
    • G10L15/183Speech classification or search using natural language modelling using context dependencies, e.g. language models
    • G10L15/187Phonemic context, e.g. pronunciation rules, phonotactical constraints or phoneme n-grams
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/02Feature extraction for speech recognition; Selection of recognition unit
    • G10L2015/025Phonemes, fenemes or fenones being the recognition units

Landscapes

  • Engineering & Computer Science (AREA)
  • Computational Linguistics (AREA)
  • Health & Medical Sciences (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • Acoustics & Sound (AREA)
  • Multimedia (AREA)
  • Artificial Intelligence (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Telephonic Communication Services (AREA)
  • Machine Translation (AREA)

Abstract

SE EXPONE UN SISTEMA Y UN PROCEDIMIENTO PARA IDENTIFICAR LOS TIPOS SONOROS DE FONEMAS, QUE ESTAN CONTENIDOS EN UNA SEÑAL AUDIO DEL HABLA. EL SISTEMA INCLUYE UN MICROFONO (12) Y UNA CIRCUITERIA CONDICIONANTE ASOCIADA (14), PARA RECIBIR UNA SEÑAL AUDIO DE HABLA Y CONVERTIRLA EN UNA SEÑAL ELECTRICA REPRESENTATIVA. SE MUESTREA ENTONCES LA SEÑAL ELECTRICA Y SE CONVIERTE EN UNA SEÑAL DIGITAL DE AUDIO, CON UN CONVERSOR DIGITAL-ANALOGICO (34). SE INTRODUCE LA SEÑAL DIGITAL DE AUDIO EN UN PROCESADOR PROGRAMABLE DE SONIDO DIGITAL (18), QUE TRATA DIGITALMENTE EL SONIDO, PARA EXTRAER DIVERSAS CARACTERISTICAS DE SONIDO EN EL DOMINIO DE TIEMPO Y DE FRECUENCIA. ESTAS CARACTERISTICAS SE INTRODUCEN EN UN PROCESADOR PROGRAMABLE ANFITRION DE SONIDO (20), QUE COMPARA LAS CARACTERISTICAS DE SONIDO CON DATOS NORMALIZADOS DE SONIDO. BASADO EN ESTA COMPARACION, EL PROCESADOR ANFITRION DE SONIDO (20) IDENTIFICA LOS SONIDOS ESPECIFICOS DE FONEMAS QUE ESTAN CONTENIDOS EN LA SEÑAL AUDIO DEL HABLA. EL PROCESADOR PROGRAMABLE ANFITRION DE SONIDO (20) INCLUYE ADEMAS PROCEDIMIENTOS DE PROGRAMAS DE TRATAMIENTO LINGUISTICO, PARA CONVERTIR LOS SONIDOS DE FONEMAS EN PALABRAS INGLESAS O EN OTRAS PALABRAS DE LENGUAJES NATURALES. ESTAS PALABRAS SE INTRODUCEN EN UN PROCESADOR ANFITRION (22) QUE UTILIZA ENTONCES LAS PALABRAS, BIEN COMO DATOS O COMO ORDENES.

Description

Sistema y método para el reconocimiento de voz en tiempo real independiente del usuario.
Antecedentes de la invención 1. Campo técnico
La presente invención se refiere en general al reconocimiento de la voz. Más particularmente, la presente invención se dirige a un sistema y un método para el reconocimiento preciso de la voz humana continua de cualquier interlocutor.
2. Información de antecedentes
Lingüistas, científicos e ingenieros han intentado durante muchos años construir máquinas que pudiesen reconocer la voz humana. Aunque en los últimos años este objetivo ha empezado a realizarse en ciertos aspectos, los sistemas disponibles actualmente no han podido producir resultados que emulen estrechamente las características de los seres humanos. Esta incapacidad de proporcionar satisfactoriamente el reconocimiento de voz se debe principalmente a las dificultades que están involucradas en extraer e identificar los sonidos individuales que componen la voz humana. Estas dificultades se agravan por el hecho de que las amplias variaciones acústicas que se producen entre los diferentes interlocutores.
De forma simplista, la voz puede considerarse como una secuencia de sonidos tomados de un conjunto de más o menos cuarenta sonidos básicos llamados "fonemas". Los diferentes sonidos, o fonemas, se producen variando la forma del tracto vocal mediante el control muscular de los articuladores de la voz (labios, lengua, mandíbula, etc.). Un flujo de un conjunto particular de fonemas representará colectivamente una palabra o una frase. De este modo, es necesaria la extracción de los fonemas particulares contenidos dentro de una señal de voz para conseguir el reconocimiento de voz.
Sin embargo, están presentes varios factores que hacen extremadamente difícil el fenómeno de extracción. Por ejemplo, se producen amplias variaciones acústicas cuando el mismo fonema se pronuncia por diferentes interlocutores. Esto se debe a las diferencias en el aparato vocales, tal como la longitud del tracto vocal. Además, el mismo interlocutor puede producir acústicamente diferentes versiones de un mismo fonema desde una interpretación a la siguiente. También, hay a menudo límites no identificables entre sonidos o incluso palabras. Otras dificultades resultan del hecho de que los fonemas se pronuncian con amplias variaciones en dialecto, entonación, ritmo, acento, volumen y tono. Finalmente, la señal de voz puede contener amplias variaciones en los ruidos relacionados con la voz que hacen difícil identificar y extraer los fonemas con precisión.
Los dispositivos de reconocimiento de voz que están actualmente disponibles intentan minimizar los problemas y variaciones anteriores proporcionando sólo un número limitado de funciones y capacidades. Por ejemplo, muchos sistemas existentes se clasifican como sistemas "dependientes del interlocutor". Un sistema dependiente del interlocutor debe "entrenarse" para una única voz de un interlocutor obteniendo y almacenando una base de datos de patrones para cada palabra del vocabulario pronunciada por ese interlocutor en particular. El principal inconveniente de estos tipos de sistemas es que son sistemas de "un interlocutor único", y sólo pueden utilizarse por el interlocutor que ha completado el tiempo que se consume en el proceso de entrenamiento. Además, el tamaño del vocabulario de tales sistemas está limitado a los vocabularios específicos contenidos en la base de datos. Finalmente, estos sistemas típicamente no pueden reconocer la voz continua hablada de forma natural, y requieren que el usuario pronuncie las palabras separadas por distintos periodos de silencio.
Los sistemas disponibles actualmente "independientes del interlocutor" están también severamente limitados en su funcionamiento. Aunque cualquier interlocutor puede usar el sistema sin necesidad de entrenamiento, estos sistemas pueden reconocer sólo palabras de un vocabulario extremadamente pequeño. Además requieren también que las palabras se pronuncien aisladas por distintas pausas entre las mismas, y de este modo no pueden reconocer la voz continua hablada de forma natural.
El documento US 4.181.813 describe un sistema y un método para el reconocimiento de voz. La amplitud de la señal de voz en la entrada está normalizada, y la señal normalizada y la información de amplitud se digitalizan con moduladores delta. Una componente de la señal de la voz filtrada por un paso alto se compara con un umbral predeterminado para obtener información acerca de los sonidos de siseo. Un algoritmo implementado por un microprocesador detecta la información correspondiente a la presencia y ausencia de un número predeterminado de inversiones de pendiente sucesivas en la señal de voz normalizada en la modulación delta. El algoritmo calcula indicaciones a partir de los pulsos digitales correspondientes a la señal filtrada por el paso alto y a partir de la información de amplitud con modulación delta. El algoritmo calcula una pluralidad de proporciones características de forma de onda de la voz de los intervalos de tiempo entre las diversas transiciones de pendiente y compara las proporciones características de la forma de onda de la voz con una pluralidad de proporciones de fonemas almacenadas que representan un conjunto de fonemas para detectar la coincidencia entre los mismos.
El documento US 4.852.170 describe un sistema de ordenador de reconocimiento de voz en tiempo real que incluye un analizador de espectros para determinar el contenido de frecuencia de los segmentos sucesivos de voz. Cada segmento se analiza lógicamente para identificar de forma unívoca la clase de fonemas de los cuales forma parte, y a continuación se analiza el espectro de frecuencia del segmento para identificar de forma unívoca el fonema específico dentro del tipo.
El documento US 4.817.154 describe un método y un aparato para codificar y decodificar la información principal de la señal de voz. La amplitud y la frecuencia de la señal de voz se digitalizan por separado. La amplitud se digitaliza usando un detector de envolvente, un filtro paso bajo y un convertidor de analógico a digital. La información de frecuencia se digitaliza usando un limitador de amplitud, un convertidor de frecuencia a voltaje y un convertidor de analógico a digital. Ambas señales pueden transmitirse o almacenarse antes de reconstruir la señal de voz.
El documento US 5.027.410 describe un procesamiento y filtrado de señal adaptativo y programable para ayuda de la audición. Una señal analógica procedente de un micrófono se convierte a datos digitales después de pasar un filtro de pre-énfasis, un amplificador de control automático de ganancia y un filtro paso bajo. Después del procesamiento digital en un procesador de señal digital se convierte de nuevo a señal analógica que se amplifica y se proporciona al usuario.
Breve resumen de la invención
Es el objeto de la presente invención superar las limitaciones de la técnica anterior de reconocimiento de voz y proporcionar un reconocimiento de voz independiente del interlocutor, más fiable.
Este objeto se consigue por el sistema de reconocimiento de sonidos de acuerdo con la reivindicación 1 y por el método de la reivindicación 14. Las realizaciones ventajosas de la invención son objeto de las reivindicaciones dependientes.
Brevemente resumido, en la realización preferida, se recibe una señal de audio de voz de un interlocutor y se introduce a un medio procesador de audio. El medio procesador de audio recibe la señal de voz, la convierte al formato eléctrico correspondiente y a continuación acondiciona eléctricamente la señal de modo que esté en una forma que sea adecuada para el muestreo digital posterior.
Una vez que la señal de audio de voz se ha convertido a una señal eléctrica de audio representativa, se envía a un medio convertidor de analógico a digital. El convertidor de analógico a digital muestrea la señal eléctrica de audio a una tasa de muestreo adecuada, y saca la señal de audio digitalizada.
La señal de audio digitalizada se procesa a continuación de forma programable por un medio de reconocimiento de sonido, que procesa la señal de audio digitalizada de modo que extrae las diversas características del sonido en el dominio del tiempo y en el dominio de la frecuencia, y a continuación identifica el tipo de sonido de fonema particular que está contenido dentro de la señal de audio de voz. Esta extracción característica y la identificación del fonema se hacen de tal modo que el reconocimiento de voz se produce independientemente de la fuente de la señal de audio de voz. Esencialmente, no hay necesidad para el usuario de "entrenar" en primer lugar el sistema con las características individuales de su voz. Además, el proceso se produce sustancialmente en tiempo real de modo que no se requiera que el interlocutor haga una pausa entre cada palabra, y de este modo puede hablar a una velocidad conversacional normal.
Además para extraer los tipos de sonidos de fonemas a partir de la señal de audio de voz entrante, el medio de reconocimiento de sonidos implementa diversas técnicas de procesamiento lingüístico para traducir las cadenas de fonemas a las correspondientes palabras o frases. Esto puede hacerse esencialmente para cualquier lenguaje que se compone de tipos de sonidos de fonemas.
En la realización preferida, el medio de reconocimiento de sonidos está comprendido de un medio procesador digital de sonidos y un medio del procesador de sonido del ordenador. El procesador digital de sonidos incluye un dispositivo programable y una lógica asociada para realizar de forma programable las etapas de programa usadas para procesar digitalmente la señal de audio de voz, y por consiguiente extraer las diversas características del sonido en el dominio del tiempo y en el dominio de la frecuencia de esa señal. Estos datos característicos del sonido se almacenan a continuación en una estructura de datos, que corresponde a la porción específica de la señal de audio.
El medio procesador de sonidos del ordenador incluye también un dispositivo programable y su lógica asociada. Está programado para realizar las etapas necesarias para evaluar las diversas características del sonido contenidas dentro de la estructura de datos, y generar a continuación el tipo de sonido de fonema que corresponde a esas características particulares. Además para identificar los fonemas, en la realización preferida el procesador de sonido del ordenador también realiza las etapas de programa necesarias para implementar la porción de procesamiento lingüístico del método global. De este modo, el flujo entrante de fonemas se traduce a las palabras o frases representativas.
La realización preferida incluye además un medio electrónico, conectado al medio de reconocimiento de sonidos, para recibir la palabra o frase traducida desde el flujo entrante de fonemas identificados. El medio electrónico, como por ejemplo un ordenador personal, procesa a continuación la palabra de forma programable como cualquier entrada de datos, como por ejemplo un texto para una aplicación de procesamiento de palabras, o como una entrada de comandos, como por ejemplo un comando del sistema operativo.
Breve descripción de los dibujos
Para la forma en la que se obtienen lo referido anteriormente y otras ventajas y objetos de la invención, se presentará una descripción más particular de la invención descrita de forma breve anteriormente por referencia a una realización específica de la misma que se ilustra en los dibujos adjuntos. Entendiendo que estos dibujos representan sólo una realización típica de la invención y que no se consideran para limitar su alcance, se describirá y se explicará la invención en lo que se entiende ahora como su mejor modo con especificidad adicional y detalle mediante el uso de los dibujos acompañantes en los que:
la Figura 1 es un diagrama funcional de bloques del sistema global de reconocimiento de voz;
la Figura 2 es un diagrama funcional de bloques más detallado que ilustra el sistema de reconocimiento de voz;
las Figuras 3A a 3Y son esquemas que ilustran en detalle el circuito que compone los bloques funcionales de la Figura 2;
la Figura 4 es un diagrama de flujo funcional que ilustra el método global del programa de la presente invención;
las Figuras 5A-5B son diagramas de flujo que ilustran el método del programa usado para implementar uno de los bloques funcionales de la Figura 4;
las Figuras 6-6D son diagramas de flujo que ilustran el método del programa usado para implementar uno de los bloques funcionales de la Figura 4;
la Figura 7 es un diagrama de flujo que ilustra el método del programa usado para implementar uno de los bloques funcionales de la Figura 4;
las Figuras 8-8D son diagramas de flujo que ilustran el método del programa usado para implementar uno de los bloques funcionales de la Figura 4;
la Figura 9 es un diagrama de flujo que ilustra el método del programa usado para implementar uno de los bloques funcionales de la Figura 4;
las Figuras 10-10C son diagramas de flujo que ilustran el método del programa usado para implementar uno de los bloques funcionales de la Figura 4;
la Figura 11 es un diagrama de flujo que ilustra el método del programa usado para implementar uno de los bloques funcionales de la Figura 4;
las Figuras 12A-12C son representaciones x-y de los datos de un sonido normalizado de ejemplo.
Descripción detallada de las realizaciones preferidas
La siguiente descripción detallada se divide en dos partes. En la primera parte se describe el sistema global, incluyendo una descripción detallada de los bloques funcionales que componen el sistema, y el modo en el que están interconectados los diversos bloques funcionales. En la segunda parte, se describe el método por el cual se controla de forma programable el sistema global para conseguir en tiempo real, el reconocimiento de voz independientemente del interlocutor.
I. El sistema
En primer lugar se hace referencia a la Figura 1, donde una realización preferida actualmente del sistema global de reconocimiento de voz se designa como 10 en general. El sistema 10 incluye un medio procesador de audio para recibir una señal de audio de voz y para convertir esa señal en una señal eléctrica de audio representativa. En la realización preferida, el medio procesador de audio está comprendido por un medio para introducir la señal de audio y convertirla en una señal eléctrica, tal como un micrófono de condensador normalizado mostrado genéricamente como 12. Pueden utilizarse otros diversos dispositivos de entrada para introducir una señal de audio, incluyendo, pero no limitando a dispositivos tales como un dictáfono, un teléfono o un micrófono sin hilos.
Además del micrófono 12, el medio procesador de audio comprende también preferiblemente una circuitería de procesador de audio apropiada 14. Esta circuitería 14 recibe la señal eléctrica de audio generada por el micrófono 12, y a continuación funciona de modo que acondiciona la señal de forma que esté en una condición eléctrica adecuada para su muestreo digital.
La circuitería del procesador de audio 14 está conectada eléctricamente a continuación a un medio convertidor de analógico a digital, ilustrado en la realización preferida como la circuitería de conversión A/D 34. Esta circuitería 34 recibe la señal eléctrica de audio, que está en un formato analógico y la convierte a un formato digital, sacando una señal de audio digitalizada.
La señal de audio digitalizada se pasa a continuación a un medio de reconocimiento de sonidos, que en la realización preferida corresponde con el bloque designado en 16 y denominado como la circuitería del procesador de reconocimiento de sonidos. En general, la circuitería del procesador de reconocimiento de sonidos 16 analiza de forma programable la versión digitalizada de la señal de audio de modo que puede extraer las diversas características acústicas de la señal. Una vez que se han obtenido las características necesarias, la circuitería 16 puede identificar los tipos de sonidos de fonemas específicos contenidos dentro de la señal de audio de voz. Esencialmente, la identificación de este fonema se hace sin referencia a las características de la voz del interlocutor individual, y se hace de modo tal que la identificación del fonema se produce en tiempo real, permitiendo por lo tanto al interlocutor hablar a una tasa normal de conversación.
La circuitería del procesador de reconocimiento de sonidos 16 obtiene las características acústicas necesarias de dos modos. En primer lugar, evalúa la representación en el dominio del tiempo de la señal de audio, y a partir de esa representación extrae diversos parámetros representativos del tipo de sonido de fonema contenido dentro de la señal. El tipo de sonido incluiría, por ejemplo, si el sonido es "de voz", "no de voz" o "de silencio".
En segundo lugar, la circuitería del procesador de reconocimiento de sonido 16 evalúa la representación en el dominio de la frecuencia de la señal de audio. Esencialmente, esto se hace filtrando sucesivamente la representación en el dominio del tiempo de la señal de audio usando un número predeterminado de filtros que tienen diversas frecuencias de corte. Esto produce varias señales filtradas, cada una de las cuales es representativa de una forma de onda de señal la individual que es una componente de la forma de onda de la señal de audio compleja. La circuitería del procesador de reconocimiento de sonido 16 "mide" a continuación cada una de las señales filtradas, y por lo tanto extrae los diversos datos en el dominio de la frecuencia, incluyendo la frecuencia y amplitud de cada una de las señales. Estas características del dominio de la frecuencia, junto con las características en el dominio del tiempo, proporcionan suficiente "información" acerca de la señal de audio de modo que la circuitería del procesador 16 puede identificar los sonidos del fonema que están contenidos en el mismo.
Una vez que la circuitería del procesador de reconocimiento 16 ha extraído los sonidos del fonema correspondiente, invoca de forma programable una serie de herramientas del programa lingüístico. De este modo, la circuitería del procesador 16 traduce la serie de fonemas identificados en las correspondientes sílabas, palabras o frases.
Continuando con referencia a la Figura 1, el ordenador principal 22 está conectado eléctricamente a la circuitería del procesador de reconocimiento de sonidos 16. En una realización preferida, el ordenador principal 22 es un ordenador personal de mesa normal, sin embargo podría comprender virtualmente cualquier dispositivo que utilice un ordenador programable que requiera entrada de datos y/o control. Por ejemplo, el ordenador principal 22 podría ser un sistema de entrada de datos para el manejo automático de equipajes, clasificación de paquetes, control de calidad, diseño y fabricación con ayuda de ordenador, y diversos sistemas de comandos y control.
A medida que la circuitería del procesador 16 traduce las cadenas de fonemas, la palabra o frase correspondiente se pasa al ordenador principal 22. El ordenador principal 22, bajo el control de programa apropiado, utiliza a continuación la palabra o frase como un comando del sistema operativo o de la aplicación o, alternativamente, como datos que se introducen directamente dentro de la aplicación, tal como un procesador de palabras o base de datos.
A continuación se hace referencia a la Figura 2 donde se muestra una realización preferida actualmente del sistema de reconocimiento de voz 10 con más detalle. Como se muestra, se recibe una señal de audio de voz en el micrófono 12, o dispositivo similar. La señal eléctrica de audio representativa se pasa a continuación a la porción del sistema de la circuitería del procesador de audio 16. En la realización preferida de este circuito, la señal eléctrica de audio se introduce a un medio de amplificación de señal para amplificar la señal a un nivel adecuado, tal como el circuito amplificador 26. Aunque pueden usarse varios circuitos diferentes para implementar esta función, en la realización preferida, el circuito amplificador 26 consiste de una configuración de amplificador de dos etapas, dispuestas de modo que proporcionan una ganancia global de aproximadamente 300. Con tal configuración, con una entrada del micrófono 12 de aproximadamente 60 dbm, el circuito amplificador 26 producirá una señal de salida de aproximadamente el nivel de línea.
En la realización preferida, la señal eléctrica amplificada de audio se pasa a continuación a un medio para limitar el nivel de salida de la señal de audio de modo que se impida una condición de sobrecarga a otros componentes contenidos dentro del sistema 10. El medio limitador está comprendido por circuito amplificador limitador 28, que puede diseñarse usando una diversidad de técnicas, un ejemplo de las cuales se muestra en el esquema detallado de la Figura 3.
A continuación, la señal eléctrica de audio amplificada se pasa a un medio de filtrado para filtrar las altas frecuencias de la señal eléctrica de audio, como por ejemplo el circuito de filtrado anti-solapamiento 30. Este circuito, que de nuevo puede diseñarse usando cualquiera de varios diseños de circuitos, simplemente limita la frecuencia más alta que puede pasar a otros circuitos dentro del sistema 10. En la realización preferida, el circuito de filtro 30 limita la frecuencia de las señales a menos de aproximadamente 12 kHz.
La señal eléctrica de audio, que esta en un formato analógico, se pasa a continuación a un medio convertidor de analógico a digital para digitalizar la señal, que se muestra como el circuito de conversión A/D 34. En la realización preferida, el circuito de conversión A/D 34 utiliza un dispositivo convertidor de 16 bits de analógico a digital, que está basado en la tecnología de muestreo Sigma-Delta. Además, el dispositivo debe ser capaz de muestrear la señal analógica entrante a una tasa suficiente para evitar errores de solapamiento. Como mínimo, la tasa de muestreo debe ser al menos el doble de la frecuencia más alta de la onda de sonido entrante (tasa de Nyquist), y en la realización preferida la tasa de muestreo es de 44,1 kHz. Se apreciará que puede usarse cualquiera de los varios dispositivos de conversión A/D que están comercialmente disponibles. En el esquemático detallado de la Figura 3 se muestra un componente preferido actualmente, junto con la diversa circuitería de soporte.
Continuando con referencia a la Figura 2, una vez convertida la señal eléctrica de audio a una forma digital, la señal digitalizada se suministra a continuación a la circuitería de procesador de reconocimiento de sonidos 16. En la realización preferida actualmente, la circuitería del procesador de reconocimiento de sonido 16 está comprendida de un medio procesador de sonido digital y un medio del procesador de sonido del ordenador, ambos de los cuales están preferiblemente comprendidos de dispositivos programables. Se apreciará sin embargo que bajo ciertas circunstancias, la circuitería del procesador de reconocimiento de sonidos 16 podría estar comprendida de la circuitería equivalente adecuada que utilice un único dispositivo programable.
En la presente realización, el medio procesador de sonido digital está comprendido de diversos componentes de circuitos dentro de la caja de puntos 18 y se denomina como circuitería del procesador de sonido digital. Esta circuitería recibe la señal de audio digitalizada, y a continuación manipula de forma programable esos datos de modo que extrae las diversas características del sonido. Específicamente, la circuitería 18 en primer lugar analiza la señal de audio digitalizada en el dominio del tiempo, y en base a ese análisis, extrae al menos una característica del sonido en el dominio del tiempo de la señal de audio. Las características de interés en el dominio del tiempo ayudan a determinar si la señal de audio contiene un sonido de fonema que es "de voz", "no de voz", o "de silen- cio".
La circuitería del procesador de sonido digital 18 también manipula la señal de audio digitalizada de modo que obtiene diversa información en el dominio de la frecuencia acerca de la señal de audio. Esto se hace filtrando la señal de audio a través de varias bandas de filtrado y generando las correspondientes señales filtradas, cada una de las cuales está aún en el dominio del tiempo. La circuitería 18 mide las diversas propiedades exhibidas por estas formas de onda individuales, y a partir de esas mediciones, extrae al menos una característica del sonido de la señal de audio en el dominio de la frecuencia. Las características de interés en el dominio de la frecuencia incluyen la frecuencia, amplitud y pendiente de cada una de las señales componentes obtenidas como resultado del proceso de filtrado. Estas características se almacenan a continuación y se usan para determinar el tipo de sonido del fonema que está contenido en la señal de audio.
Continuando con referencia a la Figura 2, se muestra la circuitería del procesador de sonido digital 18 comprendiendo preferiblemente un primer medio programable para analizar la señal de audio digitalizada bajo el control del programa, tal como el procesador de sonido digital 36. El procesador de sonido digital 36 es preferiblemente un dispositivo procesador de señales digitales de propósito general de 24 bits programable, tal como el Motorola DSP56001. Sin embargo, podría usarse uno cualquiera de los diversos procesadores de señal digitales disponibles comercialmente.
Como se muestra, el procesador de sonido digital 36 preferiblemente hace interfaz - a través una disposición normalizada tipo bus de direcciones, datos y control 38 - con diversos otros componentes. Ellos incluyen, un medio de memoria de programa para almacenar el conjunto de etapas de programa ejecutadas por el DSP 36, tal como la memoria de programa del DSP 40; un medio de memoria de datos para almacenar los datos utilizados por el DSP 36, tal como la memoria de datos del DSP 42; y una lógica de control adecuada 44 para implementar las diversas temporizaciones normalizadas y las funciones de control tales como conmutación y configuración de direcciones y datos. Se apreciará por los especialistas en la técnica que podrían usarse diversos otros componentes y funciones junto con el procesador de sonido digital 36.
Continuando con referencia a la Figura 2, en la realización preferida actualmente, el medio del procesador de sonidos del ordenador está comprendido de diversos componentes de circuitos dentro de la caja de puntos 20 y denominada como circuitería del procesador de sonidos del ordenador. Esta circuitería del procesador de sonidos del ordenador 20 está conectada eléctricamente y hace interfaz, a través de una interfaz de ordenador apropiada 52, con la circuitería de procesador de sonido digital 18. En general, esta circuitería 20 recibe la diversa información de características de la señal de audio generada por la circuitería del procesador de sonido digital 18 a través de la interfaz del ordenador 52. La circuitería del procesador de sonidos del ordenador 20 analiza esta información y a continuación identifica el tipo de sonido del fonema que está contenido dentro de la señal de audio comparando las características de la señal con los datos de sonidos normalizados que se han compilado comprobando una muestra representativa de interlocutores. Una vez identificados los sonidos de los fonemas, la circuitería del procesador de sonidos del ordenador 20 utiliza diversas técnicas de procesamiento lingüístico para traducir los fonemas en una sílaba, palabra o frase represen-
tativa.
La circuitería del procesador de sonidos del ordenador 20 como se muestra comprende preferiblemente un segundo medio programable para analizar las características de la señal de audio digitalizada bajo el control del programa, tal como el procesador de sonidos del ordenador 54. El procesador de sonidos del ordenador 36 es preferiblemente un dispositivo CPU de propósito general de 32 bits programable, tal como el Motorola 68EC030. Sin embargo, podría usarse también uno cualquiera de los diversos procesadores programables disponibles comercialmente.
Como se muestra, el procesador de sonidos del ordenador 54 preferiblemente hace interfaz - a través de una disposición normalizada tipo bus de direcciones datos y control 56 - con diversos otros componentes. Ellos incluyen: un medio de memoria de programa para almacenar el conjunto de etapas de programa ejecutadas por el procesador de sonidos del ordenador 54, tal como la memoria de programa del ordenador 58, un medio de memoria de datos para almacenar los datos utilizados por el procesador de sonidos del ordenador 54, tal como la memoria de datos del ordenador 60; y una lógica de control adecuada 64 para implementar las diversas funciones de temporización y control normalizados tales como la conmutación y configuración de direcciones y datos. De nuevo se apreciará por los especialistas en la técnica que podrían usarse otros componentes y funciones diversos junto con el procesador de sonidos del ordenador 54.
También está incluido en la realización preferida un medio para hacer de interfaz entre la circuitería del procesador de sonidos del ordenador 20 y un dispositivo electrónico externo. En la realización preferida, el medio de interfaz está comprendido de una circuitería de interfaz normalizada RS-232 66 y el cable RS-232 asociado 24. Sin embargo, podrían usarse otras disposiciones de interfaz electrónica, tal como una interfaz de un puerto paralelo normalizado, una interfaz digital de instrumentos musicales (MIDI), o una disposición de interfaz eléctrica no
normalizada.
En la realización preferida, la circuitería del procesador de sonidos del ordenador 20 hace interfaz con un medio electrónico para recibir la palabra generada por la circuitería del procesador de sonidos del ordenador 20 y para procesar esa palabra o como una entrada de datos o como una entrada de comandos. A modo de ejemplo y no de limitación, el medio electrónico que recibe está comprendido por un ordenador principal 22, tal como un ordenador personal de sobremesa normalizado. El ordenador principal 22 está conectado a la circuitería del procesador de sonidos del ordenador 20 a través de una interfaz RS-232 56 y el cable 24 y, a través de un método de programa apropiado, utiliza palabras entrantes como datos, tal como texto para una aplicación de un procesador de palabras, o como un comando, tal como para un sistema operativo o un programa de aplicación. Se apreciará que el ordenador principal 22 puede ser virtualmente cualquier dispositivo electrónico que requiera datos sobre una entrada de
comandos.
En las Figuras 3A-3Y se ilustra un ejemplo de circuito electrónico que se ha construido y usado para implementar el diagrama de bloques descrito anteriormente. Estas figuras son diagramas esquemáticos eléctricos detallados que muestran las interconexiones, tipo de dispositivos y/o valor de cada elemento de circuito utilizado. Se observará que las Figuras 3A-3Y se han incluido simplemente para mostrar un ejemplo de uno de tales circuitos que se ha usado para implementar los bloques funcionales descritos en la Figura 2. Podrían diseñarse otras implementaciones que también funcionarían satisfactoriamente.
II. El Método
Refiriéndonos ahora a la Figura 4, se ilustra un diagrama de flujo funcional que muestra una realización preferida actualmente del método del programa global usado por el presente sistema. Como se muestra, el método permite al sistema de reconocimiento de voz 10 recibir de forma continua una señal de voz entrante, procesar electrónicamente y manipular esa señal de modo que se genere el contenido fonético de la señal, y a continuación producir una palabra o flujo de palabras que corresponden al contenido fonético. Esencialmente, el método no está restringido a un interlocutor cualquiera, o un grupo de interlocutores. Más bien, permite el reconocimiento sin restricciones de palabras continuas de voz procedentes de cualquier interlocutor de un lenguaje determinado.
A continuación sigue una descripción general de las funciones globales realizadas por el presente método. Seguirá una descripción más detallada de las etapas del programa preferido usado para realizar estas funciones. Refiriéndonos en primer lugar al bloque funcional indicado en 100, la porción del procesador de audio 16 del sistema recibe la señal de audio de voz en el micrófono 12, y el circuito de conversión analógico/digital 34 digitaliza la señal analógica a una tasa de muestreo adecuada. La tasa de muestreo preferida es 44,1 kHz, aunque pueden usarse otras tasas de muestreo, siempre que cumplan con la tasa de muestreo de Nyquist para evitar los problemas de solapamiento. La señal de voz digitalizada se descompone en "segmentos temporales" sucesivos. En la primera realización, cada uno de estos segmentos temporales contiene 10.240 puntos de datos, o 232 milisegundos de datos en el dominio del
tiempo.
Cada segmento temporal de 10.240 puntos de datos se pasa a continuación a la porción del algoritmo etiquetado "Evaluar en el Dominio del Tiempo" mostrado con el número 102. Esta porción del método descompone además los segmentos temporales en "porciones temporales" sucesivas. Cada porción temporal contiene 256 puntos de datos, o 58 milisegundos de datos en el dominio del tiempo. A continuación se extraen las diversas características de los sonidos contenidos dentro de cada porción temporal. Específicamente, en la realización preferida se calculan y se almacenan en la estructura de datos correspondiente la amplitud de la envolvente media absoluta, la media de las diferencias absolutas, y la tasa de cruces por cero para la porción de la señal de voz contenida dentro de cada porción temporal. A partir de estas características diversas, se determina a continuación si el sonido particular contenido dentro de la porción temporal es de silencio, de voz o no de voz. Esta información se almacena también en la estructura de datos correspondiente de la porción temporal.
En 104 se muestra la siguiente etapa en el algoritmo global etiquetada "Descomponer". En esta porción del método del programa, cada porción temporal se descompone en las formas de onda componentes individuales filtrando sucesivamente las porciones temporales usando una pluralidad de bandas de filtrado. A partir de cada una de estas señales filtradas, la función de Descomponer extrae directamente características adicionales que identifican los sonidos "midiendo" cada señal. Las características de identificación incluyen, por ejemplo, la frecuencia fundamental de la porción temporal si es de voz; y la frecuencia y amplitud de cada una de las señales filtradas. Esta información se almacena también en cada una de las estructuras de datos correspondientes de la porción temporal.
La siguiente etapa en el algoritmo global está en 106 y se etiqueta como "Punto de Inteligencia Máxima". En esta porción del programa, las porciones temporales que datos de sonido que son los más pertinentes para la identificación del sonido se identifican como puntos de "máxima inteligencia"; las otras porciones temporales se ignoran. Además de incrementar la precisión de la identificación de los fonemas posteriores, esta función también reduce la cantidad de procesamiento adicional requerido para identificar los sonidos contenidos dentro del segmento temporal.
Una vez identificados esas porciones temporales que se necesitan para identificar el sonido particular contenido dentro del segmento temporal, el sistema ejecuta a continuación las etapas de programa correspondientes al bloque funcional 110 etiquetado como "Evaluar". En esta porción del algoritmo, se analiza toda la información contenida dentro de cada estructura de datos correspondiente de la porción temporal y se identifican hasta cinco de los sonidos fonéticos más probables (es decir, fonemas) contenidos dentro de la porción temporal. Se asigna también un nivel de probabilidad a cada uno de los posibles sonidos, y se clasifican en ese orden. Los sonidos identificados y sus probabilidades se almacenan a continuación dentro de la estructura de datos de la porción temporal particular. Cada tipo de sonido de fonema individual se identifica por medio de un número único de identificación denominado como valor "PASCII".
La siguiente etapa funcional en el método del programa global se realiza por el sistema en el bloque funcional 110 con etiqueta "Comprimir Sonidos de Voz". En esta función, se descartan las porciones temporales que no corresponden a "puntos de máxima inteligencia". Sólo se retienen las porciones temporales que contienen los datos necesarios para identificar el sonido particular. También, se combinan las porciones temporales que contienen secciones contiguas "de silencio", reduciendo por lo tanto adicionalmente el número global de porciones temporales. De nuevo esta etapa reduce la cantidad de procesamiento que debe producirse y facilita adicionalmente el reconocimiento de sonidos en tiempo real.
En este punto en el algoritmo, queda una secuencia de porciones temporales, cada una de las cuales tiene una estructura de datos correspondiente que contiene diversas características del sonido seleccionadas tanto del dominio del tiempo como del dominio de la frecuencia. Cada estructura identifica también el tipo de sonido de fonema más probable correspondiente a esas características de sonido particulares. Estos datos se pasan a la etapa siguiente del método del programa global, mostrado en el bloque funcional 112 y etiquetado como "Procesador Lingüístico". El procesador Lingüístico recibe las estructuras de datos, y traduce el flujo de sonidos (es decir, el flujo de fonemas) a las correspondientes letras, sílabas, palabra o frase Inglesas. Esta traducción se lleva a cabo generalmente realizando una diversidad de funciones de procesamiento lingüístico que comparan las secuencias fonéticas frente a las entradas en el léxico del sistema. Las funciones lingüísticas preferidas actualmente incluyen una búsqueda del diccionario fonético, una función de comprobación del contexto y la base de datos, y una función de comprobación de gramática
básica.
Una vez que se identifica la palabra o frase particular, se pasa a la porción del algoritmo "Procesador de Comandos", como se muestra en el bloque funcional 114. El procesador de Comandos determina si la palabra o frase constituye un texto que debería pasarse como datos a la aplicación de nivel superior, tal como un procesador de palabras, o si constituye un comando que debe pasarse directamente a la interfaz de comandos del sistema operativo o de la aplicación.
Como se ha observado en la descripción general anterior, se mantiene preferiblemente una estructura de datos para cada porción temporal de datos (es decir, 256 muestras de datos de sonidos digitalizado; 5,8 milisegundos de sonido) dentro de la memoria del sistema. Esta estructura de datos se denomina en este documento como estructura "Higgins", y su propósito es almacenar dinámicamente las diversas características de los sonidos y los datos que pueden usarse para identificar el tipo de fonema particular contenido dentro de la porción temporal correspondiente. Aunque puede almacenarse otra información en la estructura Higgins, la TABLA I ilustra una realización preferida de su contenido. La estructura de datos y su contenido se tratan con mayor detalle más adelante.
\vskip1.000000\baselineskip
TABLA I
1
\vskip1.000000\baselineskip
Las diversas etapas utilizadas para cumplir el método ilustrado en la Figura 4, se tratarán ahora con más detalle haciendo referencia específica a una realización preferida actualmente de la invención. Se apreciará que las etapas de programa particulares que se ilustran en los diagramas de flujo detallados contenidos en las Figuras 5 a 11 se plantean simplemente como un ejemplo de la realización preferida actualmente y el mejor modo entendido actualmente de implementar las funciones globales que se representan por el diagrama de flujo de la Figura 4.
Refiriéndonos en primer lugar a la Figura 5A, se muestran las etapas de programa particulares correspondiente a la función "Evaluación en el Dominio del Tiempo" ilustrada en el bloque funcional 102 de la Figura 4. Como ya se ha observado, el Procesador de Audio 16 recibe una señal de audio de voz desde el micrófono 12. La circuitería de conversión analógico/digital 34 muestrea digitalmente a continuación esa señal a una tasa de muestreo predeterminada, tal como la tasa de 44,1 kHz utilizada en la realización preferida. Estos datos en el dominio del tiempo se dividen en segmentos temporales consecutivos separados de longitudes predeterminadas. En la realización preferida, cada segmento temporal es de una duración de 232 milisegundos, y contiene 10.240 puntos de dato digitalizados. Cada segmento temporal se pasa a continuación, uno cada vez, a la función de Evaluación en el Dominio del Tiempo, como se muestra en la etapa 116 en la Figura 5A. Una vez recibido, el segmento temporal se segmenta adicionalmente en un número predeterminado de "porciones" iguales de tiempo. En la realización preferida, hay cuarenta de estas "porciones temporales" por cada segmento temporal, cada una de las cuales está comprendida por 256 puntos de datos y 5,8 milisegundos de voz.
El procesador de sonido digital 36 entra a continuación en un bucle de programa, comenzando con la etapa 118. Como se indica en esa etapa, para cada porción temporal el procesador 36 extrae diversas características acústicas variables con el tiempo. Por ejemplo, en la realización preferida el DSP 36 calcula la media absoluta de la amplitud de la señal de la porción temporal (L_{S}), la media de la diferencia absoluta de la señal de la porción temporal (L_{D}) y la tasa de cruce por cero (ZCR) de la señal de la porción temporal. La media absoluta de la amplitud L_{S} corresponde al valor absoluto de la media de las amplitudes (representada como el nivel del voltaje de la señal de línea) de los puntos de datos contenidos dentro de la porción temporal. La media de las diferencias absolutas L_{D} es la media de las diferencias de amplitud entre los puntos de datos en la porción temporal (es decir, calculada tomando la media de las diferencias entre el valor absoluto de una amplitud de de un punto de datos y la amplitud del punto de datos siguiente). La tasa de cruces por cero Z_{CR} se calcula dividiendo el número de cruces por cero que se producen dentro de la porción temporal por el número de puntos de datos (256) y multiplicando el resultado por 100. El número de cruces por cero es igual al número de veces que los datos en el dominio del tiempo cruzan el eje X, si tal cruce es de positivo a negativo o de negativo a positivo.
Las magnitudes de estas diversas propiedades acústicas pueden usarse para identificar el tipo general de sonidos contenidos dentro de cada porción temporal. Por ejemplo, La energía de los sonidos del habla "de voz" se encuentran generalmente en frecuencias más bajas que los sonidos "no de voz", y la amplitud de los sonidos no de voz es generalmente mucho más baja que la amplitud de los sonidos de voz. Estas generalizaciones son ciertas para todos los interlocutores, y los intervalos generales se han identificado analizando los datos de voz tomados de una amplia diversidad de interlocutores (es decir, hombres, mujeres, y niños). Comparando las diversas propiedades acústicas con estos intervalos predeterminados, puede determinarse el tipo de sonido, independientemente del interlocutor particular.
De este modo, en base a las propiedades acústicas identificadas en la etapa previa, el DSP 36 procede a continuación a esa porción del bucle de programa que identifica qué tipo de sonido está contenido dentro de la porción temporal particular. En la realización preferida, esta porción de código determina, en base a los intervalos identificados anteriormente obtenidos a partir de los datos de prueba, si el sonido contenido dentro de la porción temporal es "de silencio", "de voz", o "no de voz".
En la etapa 120, el promedio absoluto de la amplitud L_{S} se compara en primer lugar con un intervalo predeterminado del "nivel de silencio" o "QLEVEL" (es decir, el nivel de magnitud de amplitud que corresponde al silencio). En la realización preferida, QLEVEL es igual a 250, pero el valor puede en general ser cualquiera entre 200 y 500. Se apreciará que el "nivel de silencio" particular puede variar dependiendo de la aplicación o del entorno (por ejemplo, alto nivel de ruido de fondo, desviación de corriente continua elevada presente en la conversión analógico/digital o donde la señal entrante se amplifica a un nivel diferente) y de este modo puede ser un valor diferente. Si L_{S} es menor que QLEVEL, el sonido contenido dentro de la porción temporal se estima que es "de silencio" y el procesador 36 procede a la etapa 122. En la etapa 122, el DSP 36 comienza a construir la estructura de datos Higgins para la porción temporal actual dentro de la memoria de datos del DSP 42. En este punto, el procesador 36 coloca un identificador "Q" en el indicador "tipo" de la estructura de datos Higgins para esta porción temporal.
Si, por el contrario, L_{S} es mayor que QLEVEL, entonces el sonido contenido en la porción temporal no es silencio, y el procesador 36 procede a la etapa 124 para determinar si el sonido es en cambio un sonido "de voz". Para hacer esta determinación, la tasa de cruce por cero Z_{CR} se compara en primer lugar con un valor de tasa de cruces predeterminada encontrada para que sea indicativa de un sonido de voz para la mayor parte de los interlocutores. Una tasa de cruce por cero baja implica una frecuencia baja y, en la realización preferida, si es menor o igual de aproximadamente 10, el sonido de habla es probablemente de voz.
Si la Z_{CR} no cae por debajo de 10, se evalúa otra propiedad acústica del sonido antes de hacer la determinación de que el sonido es de voz. Esta propiedad se comprueba calculando la proporción de L_{D} a L_{S}, y comparando a continuación esa proporción con otro valor predeterminado que corresponde al punto de corte correspondiente a los sonidos de voz en la mayor parte de los interlocutores. En la realización preferida, si L_{D}/L_{S} es menor o igual que aproximadamente 15, entonces la señal es probablemente de voz. De este modo, si se determina en la etapa 124 que Z_{CR} es menor o igual que 10 y que L_{D}/L_{S} es menor o igual aproximadamente que 15, entonces se estima que el sonido es del tipo de voz (por ejemplo los sonidos /U/, /d/, /w/, /i/, /e/, etc.). Si es de voz, el procesador 36 continúa en la etapa 126 y coloca un identificador "V" en el indicador "tipo" de la estructura de datos Higgins correspondiente a esa porción temporal.
Si no es de voz, entonces el procesador 36 continúa en la etapa de programa 120 para determinar si el sonido es en cambio "no de voz", comparando de nuevo las propiedades identificadas en la etapa 118 con los intervalos obtenidos de los datos de prueba independientes del usuario. A tal efecto, el procesador 36 determina si Z_{CR} es mayor o igual que aproximadamente 20 y si L_{D}/L_{S} es mayor o igual que aproximadamente 30. Si se dan ambas condiciones, se considera que el sonido es del tipo no de voz (por ejemplo, ciertos sonidos aspirados). Si es de voz, el procesador 36 continúa en la etapa 130 y coloca un identificador "U" en el indicador "tipo" de la estructura de datos Higgins para esa porción temporal particular.
Algunos sonidos caerán en algún sitio entre las condiciones comprobadas para las etapas 124 y 128 (por ejemplo, Z_{CR} cae en algún sitio entre aproximadamente 11 y 19, y L_{D}/L_{S} cae en algún sitio entre aproximadamente 16 y 29) y deben evaluarse otras propiedades del sonido para determinar si el sonido es de voz o no es de voz. Esta porción del método de programa se realiza, como se indica en la etapa 132, ejecutando otro conjunto de etapas de programa denominadas como "¿es de Voz?". Las etapas de programa correspondientes a esta función se ilustran en la Figura 5B, a la cual se hace ahora referencia.
\global\parskip0.900000\baselineskip
Después de recibir los datos de la porción temporal actual en la etapa 141, el procesador continúa en la etapa 142, donde se implementa de forma programable dentro del DSP 36 un filtro paso bajo digital. La señal de voz contenida dentro de la porción temporal actual se pasa a continuación a través de este filtro. En la realización preferida, el filtro elimina las frecuencias por encima de 3000 Hz, y se recalcula la tasa de cruce por cero, como se ha tratado anteriormente. Esto es porque ciertas fricativas de voz tienen componentes de altas frecuencias de ruido que tienden a aumentar la tasa de cruce por cero de la señal. Para estos tipos de sonidos, la eliminación de las componentes de alta frecuencia hará caer la Z_{CR} a un nivel que corresponde a otros sonidos de voz. Por el contrario, si el sonido es un fricativo no de voz, entonces el Z_{CR} permanecerá en gran parte sin cambio y permanecerá en un nivel relativamente alto, porque la mayoría de la señal reside en las frecuencias más altas.
Una vez que se ha calculado el nuevo Z_{CR}, se realiza la etapa de programa 144 para evaluar adicionalmente si el sonido es un fricativo de voz o no de voz. En este punto, se localiza el punto de amplitud mínima absoluta de la porción temporal. Una vez localizado, el procesador 36 calcula la pendiente (es decir la derivada primera) de la línea definida entre ese punto y otro punto de datos sobre la forma de onda que está localizado a una distancia predeterminada desde el punto mínimo. En la realización preferida, la distancia predeterminada es de 50 puntos de datos, pero pueden usarse otros valores de distancia. Para un sonido fricativo de voz, la pendiente será relativamente alta ya que la señal es periódica, y de este modo exhibe un cambio bastante significativo en amplitud. En contraste, para un sonido fricativo no de voz la pendiente será relativamente baja porque la señal no es periódica y, una vez filtrada, se compondrá principalmente de ruido aleatorio que tiene una amplitud bastante constante.
Una vez calculada la Z_{CR} y la pendiente, el procesador 36 continúa en la etapa 146 y compara las magnitudes con los valores predeterminados correspondientes al umbral de un sonido fricativo de voz para la mayor parte de los interlocutores. En la realización preferida, si Z_{CR} es menor de aproximadamente 8, y si la pendiente es mayor de aproximadamente 35, entonces el sonido contenido dentro de la porción temporal se estima que es voz, y el indicador correspondiente "verdadero" se fija en la etapa 150. En caso contrario, el sonido se considera que no es voz, y se fija el indicador "falso" en la etapa 148. Una vez que se fija el indicador apropiado, la secuencia del programa "¿es de voz?" vuelve a su rutina llamante en la etapa 132, mostrada en la Figura 5A.
Refiriéndonos de nuevo a la Figura 5A en la etapa 134, en base a los resultados de la etapa anterior 132, se coloca el identificador apropiado "U" o "V" en el indicador de "tipo" de la estructura de datos para esa porción temporal particular. Una vez que se ha determinado si el sonido de voz contenido dentro de la porción temporal particular es de voz, no de voz o de silencio, y la estructura de datos Higgins se ha actualizado de acuerdo con las etapas 122, 126, 130 ó 134, el DSP 36 continúa en la etapa 136 y determina si se ha procesado la última de las 256 porciones temporales para este segmento temporal particular. Si es así, el DSP 36 vuelve a la rutina llamante principal (ilustrada en la Figura 4) como se indica en la etapa 140. Como alternativa, el DSP 36 obtiene la próxima porción temporal en la etapa 138, y procede como se ha descrito anteriormente.
Refiriéndonos de nuevo a la Figura 4, una vez que se ha completado la función "Evaluar los Parámetros en el Dominio del Tiempo" mostrada en el bloque funcional 102, se realiza la porción del algoritmo mostrado en el bloque funcional 104 "Descomponer la Señal de Voz".
Como se apreciará a partir de la siguiente descripción, para identificar con precisión el sonido contenido dentro del segmento temporal, deben estimarse características adicionales de identificación de la señal. Tales características se refieren a la amplitud y la frecuencia de cada una de las diversas señales componentes que componen la forma de onda compleja contenida dentro del periodo temporal. Esta información se obtiene filtrando sucesivamente el intervalo temporal en sus diversas señales componentes. Anteriormente, este tipo de "descomposición" se llevó a cabo normalmente realizando la Transformada Rápida de Fourier (FFT) sobre la señal de sonido. Sin embargo, este enfoque normalizado no es adecuado para evaluar la voz independientemente del usuario en tiempo real. Para muchos sonidos, la identificación precisa de las frecuencias componentes individuales es muy difícil, si no imposible, debido a la fuga espectral que está presente de forma inherente en la salida de la FFT. También, porque las señales componentes contenidas en las señales de voz están moduladas en amplitud debido al amortiguamiento glotal del espectro y porque la mayor parte de las señales de voz no son periódicas entonces, por definición, la FFT no es una herramienta adecuada. Sin embargo, tal información es crítica para llevar a cabo el reconocimiento de voz independiente del usuario con el nivel requerido de confianza.
Para evitar este problema, en la realización preferida del algoritmo Descomponer la Señal de Voz, no se realiza una FFT, en cambio, el DSP 36 filtra la señal de la porción temporal en las diversas componentes de señales filtradas. Como se describirá con detalle adicional, los datos en el dominio del frecuencia pueden extraerse directamente de cada una de estas señales filtradas. Estos datos pueden usarse a continuación para determinar las características del fonema específico contenido dentro de la porción temporal.
A modo de ejemplo y no de limitación, las etapas del programa detallado usadas para realizar esta función particular se muestran en el diagrama de flujo ilustrado en la Figura 6. Refiriéndonos en primer lugar a la etapa del programa 152, se recibe el segmento de tiempo actual (10.240 muestras de datos; 232 milisegundos de duración). El programa entra a continuación en un bucle, empezando con la etapa 154, en donde la señal de voz contenida dentro del segmento temporal actual se filtra sucesivamente en sus formas de onda componentes individuales usando un conjunto de filtros paso banda digitales que tienen bandas de frecuencia específicas. En la realización preferida, estas bandas de frecuencia están precalculadas, y almacenadas en la memoria de programa del DSP 40. En la etapa 154, el procesador 36 obtiene la primera banda de filtro, designada por una frecuencia baja (f_{L}) y una frecuencia alta (f_{H}), a partir de esta tabla de frecuencias predeterminadas de corte del filtro. En la realización preferida, las frecuencias de corte del filtro están localizadas en 0 Hz, 250 Hz, 500 Hz, 1000 Hz, 1500 Hz, 2000 Hz, 2500 Hz, 3000 Hz, 3500 Hz, 4000 Hz, 4500 Hz, 5000 Hz, 6000 Hz, 7000 Hz, 8000 Hz, 9000 Hz, y 10.000 Hz. Se apreciará que podrían usarse también diferentes o adicionales frecuencias de corte.
De este modo durante el primer paso a través del bucle que comienza en la etapa 154, f_{L} se fija a 0 Hz, y f_{H} a 250 Hz. El segundo paso a través del bucle fijará f_{L} a 250 Hz y f_{H} a 500 Hz y así sucesivamente.
Una vez fijados los parámetro de filtrado digital adecuados, el procesador 36 continúa en la etapa 158, donde se produce el filtrado actual del segmento temporal. A este efecto, la etapa invoca otra función denominada "Hacer el Paso de Filtrado" que se muestra con detalle adicional en la Figura 6A y a la cual se hace ahora referencia.
En la etapa 168 de la función Hacer el Paso de Filtrado, se reciben los parámetros de filtrado calculados anteriormente, así como los datos del segmento temporal (10.224 puntos de datos). En la etapa 170, se obtienen los coeficientes para el filtrado de una tabla predeterminada de coeficientes que corresponde a cada una de las diferentes bandas de filtrado. Como alternativa, podrían recalcularse los coeficientes por el procesador 36 para cada nueva banda de filtrado.
Una vez fijados los coeficientes de filtrado, el procesador 36 ejecuta la etapa de programa 172, donde se carga el segmento temporal actual en el filtro digital. Opcionalmente, mejor que cargar todas las muestras de datos, puede realizarse el sub-muestreo de la señal y cargarse sólo cada enésimo punto, donde n está en el rango de uno a cuatro. Antes de que la señal se sub-muestreo, se filtrará en paso bajo por debajo de una frecuencia menor o igual que la tasa de muestreo original dividido por 2*n. En la etapa 174, se realiza la operación de filtrado sobre los datos del segmento temporal actual. Los resultados de la operación de filtrado se escriben en las localizaciones de datos del segmento temporal correspondiente dentro de la memoria de datos del DSP 42. Aunque podrían usarse una cualquiera de una diversidad de diferentes implementaciones de filtrado digital para filtrar los datos, en la realización preferida el filtro paso banda digital es un filtro tipo IIR en cascada con una respuesta de Butterworth.
Una vez que se completa la operación de filtrado para la banda de filtro actual, el procesador 36 continúa en la etapa 176 donde se evalúan los resultados de la operación de filtrado. Esto se realiza por la función denominada "Evaluar los Datos Filtrados", que se muestra con detalle adicional en la Figura 6B, a la cual se hace ahora referencia.
En la etapa 182 de Evaluar los Datos de Filtrado, se recibe una porción temporal del segmento temporal filtrado anteriormente. Siguiendo a continuación en la etapa 183, se calcula la amplitud de esta señal filtrada. La amplitud se calcula usando la siguiente ecuación:
2
donde max = el valor de la amplitud más elevado en la porción temporal; y min = el valor de la amplitud más bajo en la porción temporal.
En la etapa 184 se mide la frecuencia de la señal filtrada. Esto se realiza mediante una función llamada "Medir la Frecuencia de la Señal Filtrada" que se muestra con detalle adicional en la Figura 6C. Refiriéndonos a esa figura, en la etapa 192 se reciben los datos de la porción temporal filtrados. En la etapa 194, el procesador 36 calcula la pendiente (es decir, la derivada primera) de la señal filtrada de cada punto de datos. Esta pendiente se calcula con referencia a la línea formada por el punto de datos anterior, el punto de datos para el cual se está calculando la pendiente, y el punto de datos siguiente, aunque también podría usarse otro método.
Siguiendo a continuación a la etapa 196, se localizan cada una de las posiciones de los puntos de datos correspondientes a un cambio de pendiente de un valor positivo a un valor negativo. Se determinan los cruces por cero que comienzan en el valor de amplitud máxima en la señal filtrada y avanzando en al menos tres cruces por cero. El valor de amplitud máxima representa el cierre de los pliegues vocales. Tomando esta medición de frecuencia después del cierre de los pliegues vocales se asegura la medición de la frecuencia más precisa. En la etapa 198 se calcula la distancia media entre estos puntos de cruce por cero. Esta distancia media es el tamaño de periodo medio de la señal, y de este modo puede calcularse la frecuencia media de la señal contenida dentro de esta porción temporal particular dividiendo la tasa de muestreo por este periodo medio. En la etapa 200, la frecuencia de la señal y el tamaño del periodo medio se devuel-
ven a la función "Evaluar los Datos Filtrados". El procesamiento continúa entonces en la etapa 184 en la Figura 6B.
Refiriéndonos de nuevo a esa figura, una vez que se ha determinado la frecuencia de la señal, se determina en la etapa 186 si esa frecuencia cae dentro de las frecuencias de corte de la banda de filtrado actual. Si es así, se ejecuta la etapa 188, en la que se almacenan la frecuencia y la amplitud en las disposiciones "ffreq" y "ampl." de la estructura de datos Higgins correspondiente de la porción temporal. Si la frecuencia no cae dentro de las frecuencias de corte de la banda de filtrado actual, entonces se descarta la frecuencia y se ejecuta la etapa 190, produciendo por lo tanto que el DSP 36 vuelva a la función llamante "Hacer el Paso de Filtrado". El procesamiento continúa entonces en la etapa 176 en la Figura 6A.
Como se muestra en la Figura 6A, una vez que se ha realizado la Función "Evaluar el Filtro", y se han determinado la frecuencia y la amplitud de la banda de frecuencia actual, el DSP 36 continúa a la siguiente etapa del programa 178. Esta etapa comprueba si se ha procesado la última porción temporal. Si no se ha procesado, entonces el programa continúa en el bucle, y continúa en la etapa de programa 176 para actuar de nuevo el filtro de banda actual sobre la siguiente porción temporal, como se ha descrito anteriormente. Si se ha filtrado la última porción temporal, entonces se realiza la etapa 180 y el procesador 36 vuelve a la función "Descomponer la Señal de Voz" donde continúa el procesamiento en la etapa 158 en la Figura 6.
Continuando con referencia a la Figura 6, el procesador determina en la etapa 159 si la primera banda de filtro se acaba de usar para este segmento temporal. Si es así, la próxima etapa en el proceso se muestra en la etapa de programa 162. En esta etapa se realiza una función denominada "Obtener la Frecuencia Fundamental", que se muestra con mayor detalle en la Figura 6D, y a la cual se hace ahora referencia.
Comenzando en la etapa 202 de esa función, se reciben los datos asociados con el segmento temporal actual. A continuación, el procesador 36 continúa en la etapa de programa 204 e identifica, indagando los contenidos de las localizaciones de la disposición "ffreq" respectiva, cuales de las porciones temporales tienen componentes de frecuencia que son menores de 350 Hz. Se eligió este rango de frecuencias (de 0 a 350 Hz) porque la frecuencia fundamental para la mayor parte de los interlocutores cae en algún sitio dentro del rango de 70 a 350 Hz. Limitando la búsqueda a este rango se asegura que se localizarán sólo las frecuencias fundamentales. Cuando se localiza una porción temporal que tiene una frecuencia que cae dentro de este rango, se coloca en una estructura de datos de tipo histograma. El histograma está descompuesto en "canales" que corresponden a bloques de 50 Hz dentro del intervalo de 0 a 350 Hz.
Una vez que se ha construido este histograma, el DSP 36 continúa en la etapa 206, y determina que canal en el histograma tienen el mayor número de frecuencias localizadas en el mismo. Las frecuencias contenidas en ese canal en particular se promedian a continuación, y el resultado es la Frecuencia Fundamental Media (F_{o}) para este segmento temporal particular. Este valor se almacena a continuación en la memoria de datos del DSP 42.
En la etapa 208, el DSP 36 calcula la media "móvil" de la frecuencia fundamental media, que se calcula para que sea igual a la media de las F_{o} calculadas en los segmentos temporales anteriores. En la realización preferida, la media móvil se calcula manteniendo corriendo una media de las ocho frecuencias fundamentales medias de segmentos temporales anteriores, que corresponden aproximadamente a dos segundos de voz. Esta media móvil puede usarse por el procesador 36 para monitorizar la tendencia en la voz del interlocutor, tal como un cambio en el volumen, y tono, o incluso un cambio en el interlocutor.
Una vez que se ha calculado la frecuencia fundamental media para el segmento temporal y la media móvil de las frecuencias fundamentales, el procesador 36 entra a continuación en un bucle para determinar si las porciones temporales individuales que componen el segmento temporal actual tiene una frecuencia fundamental f_{o} componente. Esta determinación se hace en la etapa 210, en la que el procesador 36, comenzando por la primera porción temporal, compara las diversas componentes de frecuencias de la porción temporal (previamente identificadas y almacenadas en la disposición ffreq en la correspondiente estructura de datos) con la frecuencia fundamental media F_{o} identificada en la etapa 206. Si una de las frecuencias está dentro aproximadamente el 30% de ese valor, entonces se estima que esa frecuencia es la frecuencia fundamental de la porción temporal, y se almacena como una f_{o} fundamental en la estructura de datos Higgins de la porción temporal, como se indica en la etapa de programa 214. Como se muestra en la etapa 212, esta comparación se hace para cada porción temporal. En la etapa 216, después de que se ha comprobado cada porción temporal, el DSP 36 vuelve a la rutina de Descomponer la Señal de Voz y continúa el procesamiento en la etapa 162 en la Figura 6.
En la etapa 160 en esa figura, el procesador 36 comprueba si el último par de frecuencias de corte (f_{L} y f_{H}) se han usado ya. Si no es así, el procesador 36 continúa el bucle en la etapa 154, y obtiene el siguiente conjunto de frecuencias de corte para la siguiente banda de filtrado. El DSP 36 sigue a continuación con el proceso de filtrado como se ha descrito anteriormente hasta que se ha usado la última de las bandas de filtrado para filtrar cada porción temporal. De este modo, cada segmento temporal se filtrará en cada una de las bandas de filtrado. Cuando se completa, se actualizará la estructura de datos Higgins para cada porción temporal con cada identificación inequívoca de la frecuencia, y su amplitud, contenida con cada una de las diversas bandas de filtrado. Ventajosamente los datos de frecuencia se han obtenido hasta el momento sin utilizar una aproximación de FFT, y de este modo se han evitado los problemas asociados con esa herramienta.
Una vez que se ha usado el par de frecuencias de corte final en la etapa 160, la etapa 166 hace que el DSP ejecute una vuelta al programa principal ilustrado en la Figura 4. Una vez completada la porción de Descomponer la Señal de Voz del método del programa, existe una estructura de Datos de Higgins para cada porción temporal. Contenidas dentro de esa estructura están diversas características del sonido seleccionadas tanto de los datos del dominio del tiempo como de los datos del dominio de la frecuencia. Estas características pueden utilizarse ahora para identificar el sonido particular, o fonema, transportado por la señal. En la realización preferida, la serie de etapas de programa utilizadas para implementar esta porción del método del programa están almacenadas dentro de la memoria de programa del ordenador 58, y se ejecutan por el Procesador de Sonido del Ordenador 54.
Esta primera función realizada por el procesador de sonido del ordenador 54 se ilustra en el bloque etiquetado como "Punto de Máxima Inteligencia" mostrado en el elemento 106 en la Figura 4. En esta función, el procesador 54 evalúa cuáles de las estructuras de datos Higgins son críticas para la identificación de los sonidos del fonema contenido dentro del segmento temporal. Esto reduce la cantidad de procesamiento necesario para identificar un fonema, y asegura que los fonemas se identifican con precisión.
Un ejemplo de las etapas de programa detalladas utilizadas para implementar esta función se muestran en la Figura 7, a la cual se hace ahora referencia. El proceso comienza en la etapa 230, donde el procesador de sonido del ordenador 54 recibe cada una de las Estructuras de Datos Higgins para el segmento temporal actual a través de la interfaz del ordenador 52, y las almacena dentro de la memoria de datos del ordenador 60. En la etapa 232, se calcula para todas las porciones temporales que contienen un sonido de voz, el valor absoluto de la pendiente de cada frecuencia de señal filtrada, y se suman a continuación. La pendiente de una señal filtrada particular se calcula preferiblemente con referencia a las frecuencias de las señales localizadas en las porciones temporales inmediatamente adyacentes. De este modo, se calcula la pendiente para la señal filtrada asociada con la segunda banda de frecuencias poniendo en referencia su frecuencia con las frecuencias de la señal de filtro correspondiente en las porciones temporales adyacentes (que están localizadas en la localización de la disposición segunda de la disposición ffreq respectiva). La suma de los valores absolutos de cada pendiente de la señal filtrada para cada porción temporal se almacena a continuación en la variable sumaPendientes de cada estructura de datos Higgins aplicable.
A continuación el procesador del ordenador 54 continúa en la etapa de programa 234. En esta etapa, se dirige una búsqueda de las porciones temporales que tienen un valor de sumaPendientes que pasa a través de un mínimo y que tiene también una amplitud media L_{S} que pasa a través de un máximo. Las porciones temporales que satisfacen ambos criterios son porciones temporales donde las frecuentas componentes están cambiando el mínimo (es decir, la pendiente mínima) y donde el sonido está en su amplitud media más elevada (es decir, la L_{S} más elevada), y se determina de esta forma que es el punto en el cual el sonido dinámico ha alcanzado lo más próximo a un sonido estático u objetivo. Esas porciones temporales que satisfacen ambos criterios se identifican como "puntos de máxima inteligencia" y la variable PMI correspondiente dentro de la estructura de datos Higgins se rellena con el valor de PMI. Otras porciones temporales contienen componentes de frecuencia que simplemente están conduciendo a este sonido objetivo, y de este modo contienen información que es menos relevante para la identificación del fonema particular.
Una vez identificadas qué porciones temporales "de voz" deben considerarse "puntos de máxima inteligencia", se hace lo mismo para toas las porciones temporales que contienen un sonido "no de voz". Esto se realiza en la etapa 236, donde cada porción temporal no de voz que tiene una amplitud media L_{S} que pasa a va a través de un máximo se identifica como un "punto de inteligencia máxima". De nuevo, la variable PMI correspondiente dentro de la estructura de datos Higgins apropiada se rellena con un valor de PMI.
A continuación el procesador del ordenador 54 continúa en la etapa de programa 238 donde se determina la "duración" de cada porción temporal identificada como un punto PMI calculado el número de porciones temporales que se han producido desde que sucedió la última porción temporal de PMI. Este valor de la duración es el valor actual de PMI que se sitúa dentro de cada estructura de datos de la porción temporal que se ha identificado como un "punto de máxima inteligencia". El procesador del ordenador 54 vuelve a continuación, como se indica en la etapa 240, a la rutina llamante principal mostrada en la Figura 4.
Refiriéndonos de nuevo a esa figura, el siguiente bloque funcional realizado es la función "Evaluar", mostrada en 108. Esta función analiza las características del sonido de cada uno de las porciones temporales identificadas como puntos de máxima inteligencia, y determina los sonidos más probables que ocurren durante estas porciones temporales. Esto generalmente se lleva a cabo comparando las características de sonido medidas (es decir, los contenidos de la estructura Higgins) con un conjunto de características de sonido normalizadas. Los valores del sonido se han calculado dirigiendo pruebas sobre una muestra representativa de diversos patrones de sonido de interlocutores individuales, identificando las características de cada uno de los sonidos, y formulando a continuación una tabla de características del sonido normalizadas para cada uno de los, más o menos, cuarenta fonemas que componen el lenguaje determinado.
Refiriéndonos a la Figura 8, se ilustra un ejemplo de las etapas de programa detalladas que se usan para implementar la función de Evaluar. Comenzando por la etapa de programa 242, se reciben cada una de las porciones temporales identificadas como puntos PMI. En la etapa 244, el procesador del ordenador 54 ejecuta una función denominada como "Calcular los Valores de las Componentes Armónicas".
La función Calcular los Valores de las Componentes Armónicas opera sobre la premisa de que la localización de frecuencias dentro de cualquier sonido particular puede representarse en términos de "semitonos". El término de semitono se usa típicamente en el contexto musical, pero es también útil en el análisis de sonidos. Sobre una escala musical o cromática, la frecuencia de las notas se dobla cada octava. Como hay doce notas dentro de una octava, las frecuencias de dos notas están relacionadas por la fórmula:
NOTA SUPERIOR = (NOTA INFERIOR)*2^{n/12},
siendo n el número de semitonos.
Dadas dos frecuencias (o notas), el número de semitonos entre las mismas viene dado por la ecuación:
3
De este modo, las diversas frecuencias dentro de un sonido particular pueden concebirse en términos de una escala musical calculando la distancia entre cada frecuencia componente y la frecuencia fundamental en términos de semitonos. Esta noción es importante porque se ha encontrado que para cualquier sonido determinado, la distancia (es decir, el número de semitonos) entre la frecuencia fundamental y las otras frecuencias componentes del sonido son muy similares para todos los interlocutores - hombres, mujeres y niños.
La función de Calcular los Valores de las Componentes Armónicas hace uso de este fenómeno construyendo una taba musical "normalizada" para todos los sonidos. Específicamente, esta tabla incluye la localización relativa de cada una de las componentes de frecuencia del sonido en términos de su distancia desde una frecuencia fundamental, en la que la distancia se señala como un número de semitonos. Esto se hace para cada sonido de fonema. Esta tabla musical normalizada se deriva desde las características de la señal que están presentes en cada tipo de sonido (fonema), que se obtienen mediante el muestreo de los datos tomados desde una muestra representativa de interlocutores.
Específicamente, las muestras de voz se tomaron de un grupo representativo de interlocutores cuyas frecuencias fundamentales cubrían un rango desde aproximadamente 70 Hz hasta aproximadamente 350 Hz. Las muestras de voz se eligen específicamente de modo que incluyen todos los, más o menos cuarenta, sonidos de fonemas que constituyen la lengua Inglesa. A continuación, se evalúa la señal en el dominio del tiempo para cada sonido de fonema, y se extraen todas las componentes de frecuencia del modo descrito anteriormente en la función de Descomponer usando las mismas bandas de frecuencia. De forma similar, se miden también las amplitudes para cada componente de frecuencia. A partir de estos datos, se determina el número de semitonos entre la frecuencia fundamental del sonido del fonema particular y cada una de las frecuencias componentes del sonido. Esto se hace para todos los tipos de sonidos de fonemas. Puede prepararse a continuación una representación x-y para cada una de las bandas de frecuencia para cada sonido. Se representan los puntos de muestra de cada interlocutor, con la frecuencia fundamental del interlocutor (en semitonos) sobre el eje x, y la distancia entre la frecuencia de la banda medida y la frecuencia fundamental (en semitonos) sobre el eje Y. Se realiza a continuación una regresión lineal sobre los datos resultantes, y la "línea de máximo ajuste" se dibuja a través de los puntos de datos. En las Figuras 12A-12C se muestra un ejemplo de tal representación, que ilustra los puntos de datos representativos para el sonido "Ah" (sonido PASCII 024), para las tres primeras bandas de frecuencias (mostradas como B1, B2 y B3).
Los gráficos de este tipo se preparan para todos los tipos de sonidos de fonemas, y se deducen las ecuaciones de la pendiente y la ordenada en el origen para cada banda de frecuencia para cada sonido. Los resultados se sitúan en un formato de tabla, un ejemplo preferido del cual se muestra en la TABLA II en el Apéndice A. Como se muestra, esta tabla contiene un sonido de fonema (indicado como un valor PASCII) y, para cada una de las frecuencias de la banda de paso, la pendiente (m) y la ordenada en el origen (b) de la línea de regresión lineal resultante. También está incluida en la tabla la media de las amplitudes de señal para todos los interlocutores, dividido por el valor correspondiente de L_{S}, en cada banda de frecuencia particular. Como alternativa, puede usarse en cambio el valor de la amplitud media.
Como puede verse desde el gráfico en las Figuras 12A-12C, los puntos de datos para cada uno de los interlocutores en el grupo de prueba están estrechamente agrupados acerca de la línea de regresión, independientemente de la frecuencia fundamental del interlocutor. Este mismo patrón existe también para la mayor parte de todos los distintos sonidos. Además, el patrón se extiende a interlocutores distintos de los que se han utilizado para generar los datos de muestra. De hecho, si se conocen la frecuencia fundamental y las localizaciones de las bandas de frecuencia (en semitonos) para cualquier sonido determinado generado por cualquier usuario determinado, puede determinarse el tipo de sonido correspondiente (fonema) por comparación con estos valores normalizados.
La función de Calcular los Valores de las Componentes Armónicas utiliza estos datos de las ecuaciones de sonido normalizados (TABLA II) para construir una tabla musical representativa que contiene las distancias de semitonos normalizadas para cada sonido. Esencialmente, se construye esta tabla de valores de modo que está correlacionada con una frecuencia fundamental específica, y específicamente, usa la frecuencia fundamental de la porción temporal que se está evaluando actualmente. La función también construye una tabla musical para los datos medidos de la porción temporal actual (es decir, f_{o} y los datos de ffreq de la estructura Higgins). Los datos "medidos" de la porción temporal se comparan a continuación con los datos del sonido "normalizado" y la coincidencia más próxima indica el tipo de sonido más probable (fonema). Como lo que se está comparando es esencialmente la distancia relativa de semitonos entre las diversas componentes de frecuencia y la frecuencia fundamental - que son consistentes para cualquiera sonido determinado para cada interlocutor - la técnica asegura que el sonido se reconoce independientemente del interlocutor particular.
En la Figura 8A se muestra un ejemplo de las etapas de programa detalladas usadas para llevar a cabo la función "Calcular los Valores de las Componentes Armónicas", a la cual se hace ahora referencia. Empezando en la etapa de programa 280, se recibe la estructura Higgins para la porción temporal actual. La etapa 282 convierte a continuación esa porción temporal en una escala musical. Esto se hace calculando el número de semitonos al cual está localizada cada componente de frecuencia (identificado en la función "Descomponer" y almacenado en la disposición de ffreq) de la frecuencia fundamental. Estas distancias se calculan con la siguiente ecuación:
4
donde N = 1 hasta 15, que corresponden a cada una de las diferentes frecuencias calculadas en la función Descomponer y almacenadas en la disposición de ffreq para esta porción temporal, y f_{o} = la frecuencia fundamental para esta porción temporal, también almacenada en la estructura de datos Higgins. El valor 60 se usa para normalizar el número de semitonos al número máximo aproximado de semitonos que se producen.
Los resultados del cálculo se almacenan por el procesador del ordenador 54 como una disposición en la memoria de datos del procesador del ordenador 60.
Una vez convertida la porción temporal a la escala musical, el procesador 54 entra a continuación en un bucle para empezar a construir la tabla normalizada de sonidos correspondiente, de modo que también se representa en la escala musical. De nuevo, esto se consigue con los datos de las ecuaciones normalizados (TABLA II), que se almacenan también como una disposición en la memoria de datos del ordenador principal 60.
Comenzando en la etapa 284, el procesador del ordenador 54 obtiene los datos de las ecuaciones normalizadas para un sonido, e indaga si la porción temporal actual contiene un sonido de voz. En caso de que no, el procesador 54 continúa en la etapa de programa 290, donde calcula el número de semitonos a los que cada componente de frecuencia (para cada una de las bandas de frecuencia identificada anteriormente) está localizada desde la frecuencia fundamental. Se calculan los nuevos "valores" con relación a la frecuencia fundamental de la porción temporal actual. La formula usada para calcular esta distancia es:
5
donde m = la pendiente de la línea de ecuación normalizada identificada anteriormente; b = la ordenada en el origen de la línea de ecuación normalizada identificada anteriormente; f_{o} = la frecuencia fundamental de la porción temporal actual; y el valor 60 se usa para normalizar el número de semitonos a un número máximo aproximado de semitonos que se producen.
Este cálculo se completa para todas las 15 bandas de frecuencias. Obsérvese que los sonidos no de voz tienen una frecuencia "fundamental" almacenada en la variable f_{o} de la estructura de datos. Para el propósito de la etapa de programa 290, el valor de la frecuencia identificado en la primera banda de frecuencias (es decir, contenida en la primera localización de la disposición ffreq), se usa como un "fundamental".
Si en la etapa 284 se determina que la porción temporal actual es de voz, el procesador de sonido del ordenador 54 continúa en la etapa 286 e indaga si el sonido normalizado actual es fricativo. Si es un sonido fricativo, entonces el procesador 54 continúa en la etapa 290 para calcular los valores para todas las bandas de frecuencias (de uno a quince) de la manera descrita anteriormente.
Si el sonido actual no es fricativo, el procesador del ordenador 54 continúa en la etapa 288. En esa etapa, se calculan los valores del mismo modo que en la etapa 290, pero sólo para las bandas de frecuencias de 1 hasta 11.
Después de la finalización de la etapa de programa 288 o la etapa 290, el procesador 54 continúa en la etapa 292, donde indaga si se ha procesado el sonido normalizado final de la tabla para esta porción temporal. Si no se ha procesado, se obtienen el siguiente sonido y su pendiente asociada y su ordenada en el origen, y se ejecuta de nuevo el bucle que comienza en la etapa 284. Si no quedan sonidos, entonces se completa la nueva tabla de valores normalizados, expresada en términos de escala musical, para la porción temporal actual (que también se ha convertido a la escala musical). El procesador del ordenador 54 sale de la rutina en la etapa 294, y vuelve a la función de Evaluar en la etapa 244 en la Figura 8.
Refiriéndonos de nuevo a esa figura, el procesador del ordenador 54 ejecuta a continuación la etapa de programa 250 para indagar si la porción temporal actual es de voz. Si no es de voz, el procesador 54 ejecuta la etapa de programa 246, que ejecuta una función denominada "Reconocimiento del Patrón Multi-variante"). Esta función simplemente compara los datos de sonidos "normalizados" con los datos de la porción temporal "medidos", y evalúa la proximidad de los dos conjuntos de datos correspondientes. En la realización preferida, se usa la función para comparar la frecuencia expresada en semitonos) y las componentes de amplitud de cada uno de los sonidos normalizados con la frecuencia (también expresada en semitonos) y las componentes de amplitud de la porción temporal actual. Una coincidencia estrecha indica que la porción temporal contiene ese sonido particular (fonema).
Un ejemplo del conjunto preferido actualmente de etapas de programa usadas para implementar la función "Reconocimiento del Patrón Multi-variante" se muestra en el diagrama de flujo del programa de la Figura 8B, al cual se hace ahora referencia. Comenzando en la etapa 260, se reciben una disposición que contiene las localizaciones de los componentes de frecuencia del sonido normalizado y sus amplitudes respectivas, y una disposición que contiene las localizaciones de los componentes de frecuencia de la porción temporal actual y sus amplitudes respectivas. Obsérvese que las localizaciones de frecuencia se expresan en términos de distancia de semitonos desde una frecuencia fundamental, calculadas en la función "Calcular los Valores de las Componentes Armónicas". Los valores de amplitud normalizados se obtienen a partir de los datos de prueba descritos anteriormente, ejemplos de los cuales se muestran en la TABLA II, y las componentes de amplitud para cada una de las porciones temporales están contenidas en la disposición "amplitud" de la estructura Higgins, como se ha descrito anteriormente.
En la etapa 262, el primer sonido normalizado contenido en la disposición normalizada se compara con los datos de la porción temporal correspondiente. Específicamente, se compara cada "punto de datos" de frecuencia y amplitud de la porción temporal con cada uno de los "puntos de datos" de frecuencia y amplitud del sonido normalizado actual. Se determinan a continuación los puntos de datos que coinciden más estrechamente.
A continuación, en la etapa de programa 264, se calculan para los puntos de datos que coinciden más estrechamente, la distancia Euclídea entre los datos de la porción temporal y los correspondientes datos normalizados. La distancia Euclídea (ED) se calcula con la siguiente ecuación:
6
Donde n = número de puntos comparados; "f" indica la frecuencia; y "a" indica la amplitud.
En la etapa de programa 266, esta distancia se compara con la distancia encontrada para otros sonidos normalizados. Si es uno de los cinco más pequeños encontrados hasta el momento, el sonido normalizado correspondiente se almacena en la estructura Higgins en la disposición de POSIBLES FONEMAS en la etapa 268. El procesador entonces continúa en la etapa 270 para comprobar si éste fue el último sonido normalizado dentro de la disposición, y si no lo fue, se obtiene el siguiente sonido normalizado en la etapa de programa 272. A continuación se efectúa el mismo bucle de comparación para el siguiente sonido normalizado. Si en la etapa 266 se ha encontrado que la distancia Euclidea calculada no es una de las cinco distancias más pequeñas ya encontradas, entonces el procesador 54 descarta ese sonido como una posibilidad, y continúa en la etapa 270 para comprobar si esta fue el sonido normalizado final dentro de la disposición. Si no lo fue, se obtiene el siguiente sonido normalizado en la etapa de programa 272, y se ejecuta de nuevo el bucle de comparación.
Este bucle continúa para comparar los datos de la porción temporal actual con los datos de sonidos normalizados hasta que se determina en la etapa 270 que no hay sonidos normalizados restantes para esta porción temporal particular. En este punto, se realiza la etapa 274, donde cada una de las posibilidades de sonido identificadas anteriormente (hasta cinco) se priorizan en orden descendente de probabilidad. La ordenación está basada en la siguiente ecuación:
7
donde ED = Distancia Euclídea calculada para ese sonido; SM = la suma de todas las ED de las posibilidades de sonidos identificados.
Cuanto más elevado sea el valor de probabilidad, más probable es que el sonido correspondiente sea el sonido contenido dentro de la porción temporal. Una vez que se han determinado las probabilidades para cada posible sonido, el procesador continúa en la etapa 276, y vuelve a la rutina llamante Evaluar en la etapa 246 de la Figura 8. La estructura de Higgins contiene ahora una disposición de los fonemas más probables (hasta cinco) correspondientes a esta porción temporal particular. A continuación el Procesador del ordenador 54 realiza la etapa 248 para determinar si hay otra porción temporal para evaluar. Si la hay, el procesador 54 entra de nuevo en el bucle en la etapa 242 para obtener la siguiente porción temporal y continua el procesamiento. Si no quedan porciones temporales, el procesador 54 ejecuta la etapa 260 y vuelve a la rutina llamante principal en la Figura 4.
Si en la etapa 250, se determinó en cambio que la porción temporal actual contenía un sonido de voz, entonces el procesador de sonido del ordenador 54 continúa en la etapa de programa 252. En esta etapa, el procesador del ordenador 54 determina si el sonido transportado en la porción temporal es un fricativo de voz, o si es otro tipo de sonido de voz. Esta determinación se hace inspeccionando el valor de la Amplitud Relativa (RA) y los valores de frecuencia contenidos en la disposición ffreq. Si RA es relativamente baja, que en la realización preferida es cualquier valor menor de aproximadamente 65, y si hay cualesquiera componentes de frecuencia que son relativamente altas, que en la realización preferida es cualquier frecuencia por encima da aproximadamente 6 kHz, entonces se estima que el sonido un fricativo de voz, y el ordenador 54 continúa en la etapa de programa 254. En caso contrario, el ordenador 54 continúa en la etapa de programa 256.
Las etapas de programa 254 y 256 invocan ambas la rutina "Reconocimiento del Patrón Multi-variante", y ambas vuelven una estructura Higgins que contiene hasta cinco sonidos posibles, como se ha descrito anteriormente. Después de completar la etapa de programa 254, el procesador del ordenador 54 obtendrá la siguiente porción temporal, como se indica en la etapa 248.
Sin embargo, cuando se completa la etapa de programa 258, el procesador del ordenador 54 ejecutará la etapa de programa 258, que corresponde a la función denominada "Ajuste de la Amplitud Relativa". Esta función asigna nuevos niveles de probabilidad a cada uno de los posibles sonidos identificados anteriormente por la rutina "Reconocimiento del Patrón Multi-variante" y almacenados en la estructura de datos Higgins. Este ajuste en la probabilidad está basado en otra comparación más entre los datos de la porción temporal y los datos de sonido normalizado. En la Figura 8C se muestra un ejemplo de las etapas del programa preferido actualmente necesario para implementar esta función, a la cual se hace ahora referencia.
Comenzando en la etapa de programa 300, se calcula la amplitud relativa (RA) para la porción temporal usando la siguiente fórmula:
8
donde L_{S} es la media absoluta de la amplitud para esta porción temporal almacenada en la Estructura Higgins; y AmplMax es la "media móvil" sobre los 2 segundos anteriores del L_{S} máximo para cada segmento temporal de datos (10.240 puntos de datos).
El procesador del ordenador 54 continúa en la etapa de programa 304 y calcula la diferencia entre la amplitud relativa normalizada calculada en la etapa 300, y la amplitud relativa normalizada para cada uno de los sonidos probables contenidos en la estructura de datos Higgins. Los datos de amplitud normalizados están comprendidos de las amplitudes medias obtenidas a partir de muestra representativa de interlocutores, un ejemplo de la cual se muestra en la TABLA III en el apéndice.
A continuación, se ordenan las diferencias en la etapa de programa 306, con la diferencia más pequeña en la mayor categoría y la diferencia más grande en la categoría más pequeña de uno. Procediendo a continuación a la etapa 308, se calculan los nuevos valores de probabilidad para cada uno de los sonidos probables promediando los niveles anteriores de confianza con la categoría de nuevos porcentajes calculados en el etapa 306. En la etapa de programa 310, los sonidos probables se clasifican de nuevo, desde el más probable al menos probable, en base a los nuevos valores de confianza calculados en la etapa 308. En la etapa 312, el procesador del ordenador 54 vuelve a la rutina llamante "Evaluar" en la etapa de programa 258 en la Figura 8.
Refiriéndonos de nuevo a la Figura 6 una vez completada la rutina de Ajuste de la Amplitud Relativa, el procesador de sonido del ordenador continúa en la etapa 248 y determina si queda otra porción temporal. Si queda, el procesador 54 entra de nuevo en el bucle en la etapa 242, y procesa una nueva porción temporal del mismo modo que se ha descrito anteriormente. Si no queda, el procesador 54 ejecuta la etapa 260 y vuelve a la rutina llamante principal en la Figura 4.
La siguiente etapa realizada por el procesador del ordenador de reconocimiento de sonido 54 se muestra en el bloque 110 en la Figura 4 y se denomina la función de "Comprimir los Sonidos de Voz". Como se ha tratado ya, esta función descarta las porciones temporales en el segmento temporal actual que no se denominan "puntos de máxima inteligencia". Además, combina cualesquiera porciones temporales contiguas que representan sonidos "de silencio". Eliminando las porciones temporales innecesarias, todas las que quedan son las porciones temporales necesarias (y los datos de la estructura Higgins asociada) para identificar los fonemas contenidos dentro del segmento temporal actual. Esta etapa reduce adicionalmente los requisitos de procesamiento global y asegura que el sistema es capaz de realizar el reconocimiento de sonidos sustancialmente en tiempo real.
En la Figura 9 se muestra un ejemplo preferido actualmente de las etapas de programa detalladas usadas para implementar la función " Comprimir los Sonidos de Voz", a la cual se hace ahora referencia. Comenzando en la etapa 316, el procesador de sonido del ordenador 54 recibe la secuencia existente de las porciones temporales y las estructuras de datos Higgins asociadas. En la etapa de programa 318, el procesador 54 elimina todas las estructuras Higgins que no contienen puntos PMI. A continuación, en la etapa de programa 320 el procesador 54 identifica las estructuras de datos contiguas que contienen secciones "de silencio", y reduce esas secciones contiguas en una estructura de datos representativa única. El valor de la duración de PMI en esa estructura de datos única se incrementa de modo que represente todas las estructuras "silenciosas" contiguas que se combinaron.
En este punto, exista en la memoria de datos del procesador del ordenador 60 un flujo continuo de estructuras de datos Higgins, cada una de las cuales contiene datos característicos del sonido y los posibles fonemas asociados con los mismos. Todos los aspectos innecesarios, irrelevantes y/o redundantes del segmento temporal se han descartado de modo que el flujo de datos restante representa la "esencia" de la señal de voz entrante. Esencialmente, estas características esenciales se han seleccionado de la señal de voz de modo que no dependen de cualquier interlocutor en particular. Además, se han extraído de forma tal que puede procesarse la señal de voz sustancialmente en tiempo real - esto es, puede recibirse y procesarse la entrada a una tasa normal de habla.
Una vez reducidos los datos de la estructura Higgins, la función de Comprimir los Sonidos de Voz produce que el procesador de reconocimiento de sonidos del ordenador 54 coloque esos datos en la memoria de datos del ordenador 60 en la etapa de programa 324. Continuando en la siguiente etapa de programa 326, el procesador de sonido del ordenador 54 vuelve a la porción principal del método del programa en la Figura 4.
Como se muestra en esa figura, la siguiente porción del método del programa corresponde a la función denominada el "Procesador Lingüístico". El Procesador Lingüístico es la porción del método que analiza adicionalmente los datos de la estructura Higgins, aplicando una serie de técnicas de procesamiento lingüístico de nivel más alto, identifica la palabra o frase que está contenida dentro de la porción de segmento de tiempo actual de la señal entrante de voz.
Aunque pueden usarse técnicas alternativas de procesamiento y acercamiento lingüístico, en el diagrama de flujo de la Figura 10 se muestra un conjunto de etapas de programa preferidas actualmente usadas para implementar el Procesador Lingüístico. Comenzando en la etapa de programa 350 de esa función, el procesador de sonido del ordenador 54 recibe el conjunto de datos de la estructura Higgins creados por la función de Comprimir los Sonidos de Voz ejecutada anteriormente. Como se ha tratado anteriormente, estos datos representan un flujo de los posibles fonemas contenidos en la porción de segmento temporal actual de la señal de voz entrante. En la etapa de programa 352, el procesador 54 pasa estos datos a la función denominada como "Búsqueda de Diccionario".
Como alternativa, la función de Búsqueda de Diccionario utiliza un diccionario de inglés fonético que contiene el deletreo de inglés de una palabra junto con su representación fonética correspondiente. Puede entonces usarse el diccionario para identificar la palabra Inglesa que corresponde a un flujo particular de fonemas. El diccionario está almacenado en un formato estructurado de base de datos adecuada, y está colocado dentro de la porción del diccionario de la memoria del ordenador 62. El diccionario fonético puede separarse lógicamente en varios diccionarios separados. Por ejemplo, en la realización preferida, el primer diccionario contiene una base de datos de las palabras de inglés usadas más comúnmente. Otro diccionario puede incluir una base de datos que contiene una colección de palabras más exhaustiva tal como Webster. Pueden estar comprendidos otros diccionarios de palabras más especializadas, y puede variar dependiendo de la aplicación particular. Por ejemplo, Puede ser un diccionario definido por el usuario, un diccionario médico, un diccionario legal, y así sucesivamente.
Todos los lenguajes pueden describirse en términos de un conjunto particular de sonidos fonéticos. De este modo, se apreciará que aunque la realización preferida utiliza un diccionario de palabras Inglesas, podría usarse cualquier otro diccionario de lengua no-Inglesa.
Básicamente, la Búsqueda del Diccionario explora el diccionario apropiado para determinar si la secuencia entrante de sonidos (como se identifica por las estructuras de datos Higgins) forma una palabra completa, o el comienzo de una posible palabra. Para hacer esto, se colocan los sonidos en caminos o "secuencias" para ayudar a la detección, por medio del diccionario fonético, el comienzo o el final de posibles palabras. De este modo, a medida que se recibe cada sonido de fonema, se añade al final de todas las "secuencias" no completadas. Cada secuencia se compara con los contenidos del diccionario para determinar si conduce a una posible palabra. Cuando se identifica una posible palabra (o conjunto de posibles palabras), se pasa al siguiente bloque funcional dentro de la porción del Procesador Lingüístico del programa para análisis adicional.
A modo de ejemplo y no de limitación, la Figura 10A ilustra un conjunto de etapas de programa preferido actualmente para implementar la función de Búsqueda del Diccionario. La función comienza en la etapa de programa 380, donde se recibe el conjunto actual de estructuras Higgins correspondiente al segmento temporal actual de voz. En la etapa de programa 384, el procesador de sonidos del ordenador 54 obtiene un sonido de fonema (como se representa en la estructura Higgins) y continúa en la etapa de programa 386 donde posiciona un puntero de búsqueda dentro del diccionario actual que corresponde a la primera secuencia activa. Una secuencia "activa" es una secuencia que podría formar potencialmente una palabra con la adición de un nuevo sonido o sonidos. En contraste, una secuencia se estima "inactiva" cuando se determina que no hay posibilidad de formar una palabra con la adición de nuevos sonidos.
De este modo, en la etapa 388 se añade el nuevo sonido fonético a la primera secuencia activa. En la etapa de programa 388, el procesador del ordenador 54 comprueba, explorando los contenidos del diccionario actual, si la secuencia actual forma una palabra, o si podría formar potencialmente una palabra añadiendo otros sonidos a la misma en caso afirmativo, se actualiza la secuencia añadiendo a la misma el nuevo sonido fonético en la etapa de programa 390. A continuación, en la etapa de programa 392, el procesador del ordenador determina si la secuencia actual forma una palabra válida. Si la forma, se fija un indicador de "nueva secuencia" en la etapa de programa 394 que indica que se formará una nueva secuencia que empieza con el sonido muy próximo. Si no se ha formado aún una palabra válida, el procesador 54 salta la etapa 394, y continúa directamente en la etapa 396 del programa.
Si en la etapa 388 el procesador del ordenador 54 determina en cambio, después de explorar la base de datos del diccionario, que la secuencia actual no conduciría nunca a una palabra válida, aunque se añadiesen sonidos adicionales, entonces el procesador 54 continúa en la etapa de programa 398. En esta etapa, esta secuencia se marca como "inactiva". El procesador 54 procede a continuación a la etapa de programa 396.
En la etapa 396, el procesador 54 comprueba si hay cualesquiera más secuencias activas a las cuales podría añadir el sonido actual. Si es así, el procesador 54 continuará en la etapa de programa 400 y añadirá el sonido a esta siguiente secuencia activa. A continuación el procesador 54 ejecutará de nuevo la etapa de programa 388, y procesará esta secuencia formada de nuevo del mismo modo que se ha descrito anteriormente.
Si en la etapa de programa 396 se determina en cambio que no quedan secuencias activas, entonces del procesador de sonido del ordenador 54 continúa en la etapa de programa 402. Allí, se indaga el indicador "nueva secuencia" para determinar si se activó en la etapa de programa 394, indicando por lo tanto que el sonido anterior había creado una palabra válida en combinación con una secuencia activa. Si se activó, el procesador procederá a la etapa de programa 406 y creará una nueva secuencia, y a continuación irá a la etapa de programa 408. Si no se activó, el procesador 54 procederá en cambio a la etapa de programa 404, donde se determinará si todas las secuencias están ahora inactivas. Si lo están, el procesador 54 procederá inmediatamente a la etapa de programa 408, y si no lo están, el procesador continuará en cambio a la etapa 406 donde abrirá una nueva secuencia antes de proceder a la etapa de programa 408.
En la etapa de programa 408, el procesador de sonido del ordenador 54 evalúa si se ha completado una palabra primaria, indagando si todas las secuencias inactivas, y la primera secuencia activa resulta en una ruptura de palabra común. Si es así, el procesador 54 sacará todas las palabras válidas que se han identificado hasta ahora a la porción de rutina llamante principal del Procesador Lingüístico. A continuación, el procesador 54 descartará todas las secuencias inactivas, y continúa en la etapa 384 para obtener el siguiente sonido de la estructura Higgins. Si en la etapa 408 se determina en cambio que no se ha terminado aún una palabra primaria, el procesador 54 procederá directamente a la etapa de programa 384 para obtener el siguiente sonido de la estructura Higgins. Una vez que se ha obtenido un nuevo sonido en la etapa 384, el procesador del ordenador 54 procede directamente a la etapa 386 y continúa el proceso descrito anteriormente.
Como la función de Búsqueda del Diccionario extrae palabras de los datos de estructura Higgins, pueden quedar ciertas posibilidades de palabras que no se han resuelto aún. De este modo el Procesador Lingüístico puede incluir opcionalmente funciones adicionales que resuelven además las posibilidades de palabras restantes. Una de tales funciones opcionales se denomina como la función de "Colocaciones de Palabras", mostrada en el bloque 354 en la Figura 10.
Generalmente, la función de Colocación de Palabras monitoriza las posibilidades de palabras que se han identificador por la función de Búsqueda del Diccionario para ver si forman una colocación de palabra "común". Un conjunto de estas colocaciones de palabras comunes están almacenadas en una base de datos separada del diccionario dentro de la memoria del diccionario 64. De este modo, pueden eliminarse ciertas posibilidades de palabras, o al menos asignarlas niveles de confianza más bajos, porque no encajan dentro de lo que se considera por el contrario una colocación de palabras común. Un ejemplo de las etapas de programa usadas para implementar esta función particular se muestra, a modo de ejemplo y no de limitación, en la Figura 10B, a la que se hace ahora referencia.
Comenzando en la etapa de programa 420, se recibe un conjunto de posibilidades de palabras. Comenzando con una de esas palabras en la etapa 422, el procesador de sonido del ordenador 54 procede a continuación a la etapa de programa 424 donde obtiene cualquier colocación que se ha formado por las palabras anteriores. La existencia de tales colocaciones se determinaría comparando continuamente palabras y frases con los contenidos del diccionario de colocaciones. Si tal colocación o colocaciones existen, entonces se comprueban la posibilidad de la palabra actual para ver si encaja dentro del contexto de la colocación. En la etapa 428, se descartan las colocaciones que no se aplican ya. A continuación el procesador 54 continúa en la etapa 430 para determinar si quedan cualesquiera posibilidades de palabras, si quedan, se comprueban también las palabras restantes dentro del contexto de colocación comenzando en la etapa de programa 422.
Una vez que se ha aplicado este proceso a todas las posibilidades de palabra, el procesador 54 identifica qué palabra o palabras se encontraron que "encajaban" dentro de la colocación, antes de volver, a través de la etapa de programa 436, a la rutina del Procesador Lingüístico. En base a los resultados de la rutina de Colocación, pueden eliminarse a continuación ciertas posibilidades de palabras restantes, o al menos asignarlas un nivel de confianza más bajo.
Otra función opcional que puede utilizarse para resolver las posibilidades de las palabras restantes es la función "Comprobación de Gramática", mostrada en el bloque 356 en la Figura 10. Esta función evalúa una posibilidad de palabra aplicando ciertas reglas gramaticales, y determinando a continuación si la palabra cumple con esas reglas. Las palabras que no encajan gramaticalmente pueden eliminarse como posibilidades, o asignarse niveles de confianza más bajos.
A modo de ejemplo, la función de Comprobación de Gramática puede implementarse con las etapas de programa que se muestran en la Figura 10C. De este modo, en la etapa 440, se recibe la posibilidad actual junto con la palabra anterior y la palabra siguiente. A continuación en la etapa 442, se indagan un conjunto de reglas de gramática, almacenadas en una porción de la memoria del procesador de sonido del ordenador, para determinar qué "parte de voz" se adaptaría mejor en el contexto gramatical de la palabra precedente y la palabra siguiente. Si la posibilidad de palabra actual coincide con esta "parte de la voz" en la etapa 444, entonces se asigna a esa palabra un nivel de confianza mas elevado antes de volver al Procesador Lingüístico en la etapa 446. Si la palabra actual no cumple con la "mejor adaptación" gramatical en la etapa 444, entonces se asigna un nivel de confianza bajo y vuelve a la rutina principal en la etapa 446. De nuevo, este nivel de confianza puede usarse a continuación para eliminar adicionalmente las posibilidades de palabras restantes.
Refiriéndonos de nuevo a la Figura 10, una vez completadas las diversas funciones que identifican el contenido de la palabra de la señal de voz entrante, la función del Procesador Lingüístico hace que el procesador de sonido del ordenador 54 determine el número de posibilidades de palabra que existen aún para cualquier serie determinada de estructuras Higgins.
Si no se han identificado aún posibilidades de palabras, entonces el procesador 54 determinará, en la etapa de programa 366, si queda una base de datos del diccionario fonético (es decir, un diccionario especializado, un diccionario definido por el usuario, etc.) que no se haya buscado aún. Si es así, el procesador 54 obtendrá el nuevo diccionario en la etapa 368, y a continuación ejecuta de nuevo el algoritmo de búsqueda comenzando en la etapa de programa 352. Si, por el contrario, no quedan diccionarios, a continuación se enviará la correspondiente serie no identificada de sonidos de fonemas (la "palabra no identificada") directamente a la porción del Procesador de Comandos de método de programa, que reside en el ordenador principal 22.
Si queda todavía más de una posibilidad de palabra en la etapa de programa 358, las palabras restantes se envían todas al Procesador de Comandos. De forma similar, si sólo queda una posibilidad de palabra, se envía esa palabra directamente a la porción de Procesador de Comandos del algoritmo. Una vez extraída la palabra, o las posibles palabras, la etapa de programa 370 hace que el procesador de sonido del ordenador 54 vuelva al algoritmo principal, mostrado en la Figura 4.
A medida que las palabras se extraen de la señal de voz entrante por el Procesador Lingüístico, se pasan inmediatamente a la siguiente función en el método del programa global denominado como el "Procesador de Comandos", mostrado en el bloque funcional 114 en la Figura 4. En el ejemplo ilustrativo, el Procesador de Comandos es una serie de etapas de programa que se ejecutan por el Ordenador Principal 22, tal como un ordenador personal de sobremesa normalizado. Como ya se ha observado, el ordenador principal 22 recibe las palabras entrantes por medio de un medio adecuado de comunicaciones, tal como un cable RS-232 normalizado 24 y la interfaz 66. El Procesador de Comandos recibe a continuación cada palabra, y determina el modo que debe usarse en el ordenador principal 22. Por ejemplo, puede introducirse una palabra hablada directamente como texto en una aplicación, tal como un documento del proce-
sador de palabras. A la inversa, la palabra hablada puede pasarse como un comando al sistema operativo o aplicación.
Refiriéndonos a continuación a la Figura 11, se ilustra un ejemplo de las etapas de programa usadas para implementar la función del Procesador de Comandos. Para empezar, la etapa de programa 450 hace que el ordenador principal 22 reciba una palabra creada por la porción del Procesador Lingüístico del algoritmo. El ordenador principal 22 determina a continuación, en la etapa 452, si la palabra recibida es un comando del sistema operativo. Esto se hace comparando la palabra con los contenidos de una base de datos del fichero de definición, que define todas las palabras que constituyen los comandos del sistema operativo. Si se recibe tal palabra de comando, se pasa directamente al sistema operativo del ordenador principal 22, como se muestra en la etapa de programa 454.
Si la palabra entrante no constituye un comando del sistema operativo, se ejecuta la etapa 456, donde se determina si la palabra es en cambio un comando de aplicación, como por ejemplo un comando a un procesador de palabras o una hoja de cálculo. De nuevo, se hace esta determinación se hace comparando la palabra con otra base de datos del fichero de definición, que define todas las palabras que constituyen un comando de aplicación. Si la palabra es una palabra del comando de aplicación, entonces se pasa directamente a la etapa 458, a la aplicación prevista.
Si la palabra entrante no es un comando del sistema operativo ni un comando de aplicación, entonces se ejecuta la etapa de programa 460, donde se determina si el Procesador de Comandos está aún en el "modo comandos". Si es así, se descarta la palabra en la etapa 464, y esencialmente se ignora. Sin embargo, si el Procesador de Comandos no está en el modo comandos, entonces la palabra se enviará directamente a la aplicación actual como un texto.
Una vez que se pasa la palabra como un comando al sistema operativo o a la aplicación en las etapas de programa 454 y 458, el ordenador principal 22 continúa en la etapa de programa 466 para determinar si la secuencia de comandos particular está ya completa. Si no lo está, el algoritmo permanece en el "modo comandos", y continúa monitorizando las palabras entrantes de modo que las pasa directamente como comandos al sistema operativo respectivo o a la aplicación. Si la secuencia de comando está completa en la etapa 466, el algoritmo saldrá a continuación del modo de comandos en la etapa de programa 470.
De este modo, el Procesador de Comandos actúa como un extremo de entrada para el sistema operativo y/o las aplicaciones que se están ejecutando sobre el ordenador principal 22. A medida que se recibe cada nueva palabra, se dirige selectivamente al recurso del ordenador adecuado. Actuando de este modo, el sistema y del método de la invención actual actúa como un medio para introducir datos y/o comandos a un ordenador personal normalizado. Como tal, el sistema reemplaza esencialmente, o suplementa otros dispositivos de entrada del ordenador, tales como teclados y dispositivos de señalización.
III. Sumario y alcance de la invención
En resumen, el sistema y el método de la presente invención para el reconocimiento de voz proporcionan una herramienta potente y muy necesaria, para proporcionar el reconocimiento de voz independiente del usuario. Esencialmente, el sistema y el método extraen sólo las componentes esenciales de una señal de voz entrante. El sistema aísla a continuación esas componentes de tal modo que pueden identificarse las características de sonido subyacente que son comunes a todos los interlocutores, y por lo tanto usarse para identificar con precisión la constitución fonética de las señales de voz. Esto permite que el sistema y el método reconozcan palabras del habla de cualquier interlocutor de un lenguaje determinado, sin requerir que el usuario "entrene" en primer lugar al sistema con las características de voz específicas.
Además, el sistema y el método implementan este reconocimiento de voz independiente del usuario de modo tal que se produce sustancialmente en "tiempo real". Como tal, el usuario puede hablar a velocidades conversacionales normales, y no requiere hacer pausas entre las palabras.
Finalmente, el sistema utiliza diversas técnicas de procesamiento lingüístico para traducir los sonidos fonéticos identificados en la palabra o frase correspondiente, de cualquier lenguaje determinado. Una vez identificado el flujo fonético, el sistema es capaz de reconocer un gran vocabulario de palabras y de frases
Apéndice A
9
\global\parskip1.000000\baselineskip
10
11
12
13
14
15
16
17
18
\vskip1.000000\baselineskip
\vskip1.000000\baselineskip
TABLA II
19
20

Claims (19)

1. Un sistema de reconocimiento de sonidos (10) para identificar los tipos de sonidos de los fonemas que están contenidos en una señal de audio de voz, comprendiendo el sistema de reconocimiento de sonidos (10):
un medio procesador de audio (12, 14) para recibir una señal de audio de voz y para convertir la señal de audio de voz en una señal eléctrica de audio representativa;
un medio convertidor de analógico a digital (34) para digitalizar la señal eléctrica de audio a una tasa de muestreo predeterminada de modo que se produce una señal de audio digitalizada; y
un medio de reconocimiento de sonido (16) adaptado para
a) realizar un análisis en el dominio del tiempo (102) sobre la señal de audio digitalizada de modo que se identifique al menos una característica del sonido en el dominio del tiempo característica de dicha señal de audio de voz; y
b) identificar al menos un tipo de sonido de fonema contenido dentro de la señal de audio de voz (108),
caracterizado porque dicho medio de reconocimiento de sonido (16) está configurado para realizar las etapas adicionales de
c) filtrar sucesivamente la señal de audio digitalizada, usando una pluralidad de bandas de filtrado que tienen distintas frecuencias de corte predeterminadas, en una pluralidad correspondiente de señales separadas filtradas en el dominio del tiempo (168, 170, 172, 174); y
d) medir al menos una característica del sonido en el dominio de la frecuencia de cada una de dichas señales filtradas (176); y
en que la etapa b) de identificación se basa en dicha, al menos una característica en el dominio del tiempo y dichas características en el dominio de la frecuencia.
2. Un sistema de reconocimiento de sonido (10) como el definido en la reivindicación 1, en el que el medio procesador de audio (12, 14) comprende:
un medio (12) para introducir la señal de audio de voz y para convertirla en una señal eléctrica de audio; y
un medio (14) para acondicionar la señal eléctrica de audio de modo que sea una forma eléctrica representativa que sea adecuada para el muestreo digital.
3. Un sistema de reconocimiento de sonido (10) como el definido en la reivindicación 2, en el que el medio de acondicionamiento (14) comprende:
un medio de amplificación de señal (12) para amplificar la señal eléctrica de audio a un nivel predeterminado;
un (28) para limitar el nivel de la señal eléctrica de audio amplificada a un nivel de salida predeterminado; y
un medio de filtrado (30), conectado al medio de limitación, para limitar la señal eléctrica de audio a una frecuencia máxima predeterminada de interés y proporcionar por lo tanto la señal eléctrica de audio representativa.
4. Un sistema de reconocimiento de sonido (10) como el definido en una de las reivindicaciones 1 a 3, que comprende además un medio electrónico (22) para recibir al menos una palabra en un lenguaje preseleccionado que corresponde al tipo, al menos uno, de sonido de fonema contenido dentro de la señal de audio de voz, y para procesar de forma programable la, al menos una, palabra como una entrada de datos o como una entrada de comandos.
5. Un sistema de reconocimiento de sonido (10) como el definido en una de las reivindicaciones 1 a 4, en el que dicha, al menos una, característica en el dominio del tiempo incluye al menos una de las siguientes: la amplitud media de la señal de audio de voz; la media de las diferencias absolutas de la señal de audio de voz; y la tasa de cruce por cero de la señal de audio de voz.
6. Un sistema de reconocimiento de sonido (10) como el definido en una de las reivindicaciones 1 a 5, en el que dicha característica del sonido en el dominio de la frecuencia incluye la frecuencia de al menos una de dichas señales filtradas.
7. Un sistema de reconocimiento de sonido (10) como el definido en una de las reivindicaciones 1 a 6, en el que dicha característica del sonido en el dominio de la frecuencia incluye la amplitud de al menos una de dichas señales filtradas.
8. Un sistema de reconocimiento de sonido (10) como el definido en una de las reivindicaciones 1 a 7, en el que dicho tipo, al menos uno, de sonido de fonema contenido dentro de la señal de audio de voz se identifica comparando las características medidas del sonido en el dominio de la frecuencia con una pluralidad de sonidos normalizados cada uno de los cuales tiene un tipo de sonido de fonema asociado y al menos una característica correspondiente normalizada en el dominio de la frecuencia, en el que el tipo, al menos uno, de sonido identificado es el tipo de sonido normalizado que tiene una característica normalizada en el dominio de la frecuencia que coincide con la característica medida del sonido en el dominio de la frecuencia más estrechamente.
9. Un sistema de reconocimiento de sonido (10) como el definido en la reivindicación 8, en el que la característica medida del sonido en el dominio de la frecuencia, y la pluralidad de características normalizadas en el dominio de frecuencia se expresan en término de una escala cromática.
10. Un sistema de reconocimiento de sonido (10) como el definido en una de las reivindicaciones 1 a 9, comprendiendo dicho medio de reconocimiento de sonido (16) una circuitería del procesador de reconocimiento de sonidos que realiza las etapas (a) a (d) realizando las etapas correspondientes de un programa de ordenador.
11. Un sistema de reconocimiento de sonido (10) como el definido la reivindicación 10, comprendiendo dicha circuitería del procesador de reconocimiento de sonido un medio procesador de sonido digital (18) para realizar las etapas (a), (c) y (d) y un medio procesador de sonido del ordenador (20) para realizar la etapa (b) y para traducir dicho tipo, al menos uno, de sonido de fonema en al menos una palabra representativa de un lenguaje preseleccionado.
12. Un sistema de reconocimiento de sonido (10) como el definido la reivindicación 11, en el que el medio procesador de sonido digital (18) comprende:
un primer medio programable (36) para ejecutar de forma programable una serie predeterminada de etapas de programa;
un medio de memoria de programa (40) para almacenar la serie predeterminada de etapas de programa utilizadas por dicho primer medio programable (36); y
un medio de memoria de datos (42) para proporcionar un área de almacenamiento digital para su uso por dicho primer medio programable (36).
13. Un sistema de reconocimiento de sonido (10) como el definido en una de las reivindicaciones 11 y 12, en el que el medio procesador de sonido del ordenador (20) comprende:
un segundo medio programable (54) para ejecutar de forma programable una serie predeterminada de etapas de programa;
un medio de memoria de programa (58) para almacenar la serie predeterminada de etapas de programa utilizadas por dicho segundo medio programable (54); y
un medio de memoria de datos (60) para proporcionar un área de almacenamiento digital para su uso por dicho primer medio programable (54).
14. Un método para identificar los tipos de sonidos de fonemas que están contenidos dentro de una señal de audio de voz, comprendiendo el método las etapas de:
recibir una señal de audio de voz;
convertir la señal de audio de voz en una señal eléctrica de audio representativa;
digitalizar la señal eléctrica de audio a una tasa de muestreo predeterminada de modo que se produzca una señal de audio digitalizada (100);
realizar un análisis en el dominio del tiempo sobre la señal de audio digitalizada (102) de modo que se identifique al menos una característica del sonido en el dominio del tiempo de dicha señal de audio de voz; y
identificar al menos un tipo de sonido de fonema contenido dentro de la señal de audio de voz (108),
caracterizado por las etapas adicionales de
usar una pluralidad de bandas de filtrado que tienen distintas frecuencias de corte predeterminadas, que filtran de forma sucesiva la señal de audio digitalizada en la pluralidad correspondiente de señales filtradas separadas en el dominio del tiempo (168, 170, 172, 174); y
medir al menos una característica del sonido en el dominio de la frecuencia a partir de cada una de dichas señales filtradas (176); y
en que dicha etapa de identificación se basa en dicha, al menos una, característica del sonido en el dominio del tiempo y dichas características del sonido en el dominio de la frecuencia.
15. Un método como el definido en la reivindicación 14, en el que dicha, al menos una, característica en el dominio del tiempo incluye al menos una de las siguientes: la amplitud media de la señal de audio de voz; la media de las diferencias absolutas de la señal de audio de voz; y la tasa de cruces por cero de la señal de audio de voz.
16. Un método como el definido en una de las reivindicaciones 14 ó 15, en el que dicha característica del sonido en el dominio de la frecuencia incluye una frecuencia de al menos una de dichas señales filtradas.
17. Un método como el definido en una de las reivindicaciones 14 a 16, en el que dicha característica del sonido en el dominio de la frecuencia incluye la amplitud de al menos una de dichas señales filtradas.
18. Un método como el definido en la reivindicación 16, en el que el tipo, al menos uno, de sonido de fonema contenido dentro de la señal de audio de voz se identifica comparando la, al menos una, característica de sonido medida en el dominio de la frecuencia con una pluralidad de valores de sonido cada uno de los cuales tiene un tipo de sonido de fonema asociado y al menos una característica normalizada correspondiente del sonido en el dominio de la frecuencia normalizada, en el que el tipo, al menos uno, del sonido identificado es el tipo de sonido normalizado que tiene una característica del sonido normalizada en el dominio de la frecuencia que coincide con la característica medida en el dominio de la frecuencia más estrechamente.
19. Un método como el definido en la reivindicación 18, en el que la, al menos una, característica medida del sonido en el dominio de la frecuencia, y la pluralidad de características normalizadas del sonido en el dominio de la frecuencia se expresan en términos de una escala cromática.
ES96910381T 1996-03-11 1996-03-11 Sistema y metodo para el reconocimiento de voz en tiempo real independiente del usuario. Expired - Lifetime ES2297839T3 (es)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US1996/003140 WO1997034293A1 (en) 1996-03-11 1996-03-11 User independent, real-time speech recognition system and method

Publications (1)

Publication Number Publication Date
ES2297839T3 true ES2297839T3 (es) 2008-05-01

Family

ID=22254816

Family Applications (1)

Application Number Title Priority Date Filing Date
ES96910381T Expired - Lifetime ES2297839T3 (es) 1996-03-11 1996-03-11 Sistema y metodo para el reconocimiento de voz en tiempo real independiente del usuario.

Country Status (8)

Country Link
EP (1) EP0886854B1 (es)
JP (1) JP2000506995A (es)
KR (1) KR19990087730A (es)
AT (1) ATE378673T1 (es)
AU (1) AU5359196A (es)
DE (1) DE69637326D1 (es)
ES (1) ES2297839T3 (es)
WO (1) WO1997034293A1 (es)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003280684A (ja) * 2002-03-25 2003-10-02 Electronic Navigation Research Institute カオス論的診断感度増感装置
KR100707727B1 (ko) * 2004-07-15 2007-04-16 주식회사 현원 휴대용 파일 재생기
RU2466468C1 (ru) * 2011-06-30 2012-11-10 Даниил Александрович Кочаров Система и способ распознавания речи

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3969972A (en) * 1975-04-02 1976-07-20 Bryant Robert L Music activated chromatic roulette generator
US4181813A (en) * 1978-05-08 1980-01-01 John Marley System and method for speech recognition
US4817154A (en) * 1986-12-09 1989-03-28 Ncr Corporation Method and apparatus for encoding and decoding speech signal primary information
US4852170A (en) * 1986-12-18 1989-07-25 R & D Associates Real time computer speech recognition system
US5027410A (en) * 1988-11-10 1991-06-25 Wisconsin Alumni Research Foundation Adaptive, programmable signal processing and filtering for hearing aids

Also Published As

Publication number Publication date
EP0886854A4 (en) 1999-09-22
WO1997034293A1 (en) 1997-09-18
EP0886854B1 (en) 2007-11-14
JP2000506995A (ja) 2000-06-06
KR19990087730A (ko) 1999-12-27
EP0886854A1 (en) 1998-12-30
AU5359196A (en) 1997-10-01
DE69637326D1 (de) 2007-12-27
ATE378673T1 (de) 2007-11-15

Similar Documents

Publication Publication Date Title
US5873062A (en) User independent, real-time speech recognition system and method
JP5208352B2 (ja) 声調言語用分節声調モデリング
Nwe et al. Detection of stress and emotion in speech using traditional and FFT based log energy features
RU2466468C1 (ru) Система и способ распознавания речи
Yang et al. BaNa: A noise resilient fundamental frequency detection algorithm for speech and music
US20010010039A1 (en) Method and apparatus for mandarin chinese speech recognition by using initial/final phoneme similarity vector
Cherif et al. Pitch detection and formant analysis of Arabic speech processing
ES2297839T3 (es) Sistema y metodo para el reconocimiento de voz en tiempo real independiente del usuario.
Mishra et al. An Overview of Hindi Speech Recognition
Slaney et al. Pitch-gesture modeling using subband autocorrelation change detection.
JP2012155301A (ja) 状況認知型音声認識方法
US20060190257A1 (en) Apparatus and methods for vocal tract analysis of speech signals
Abdul-Kadir et al. Modelling of the Arabic plosive consonants characteristics based on spectrogram
Wang et al. A novel method for automatic tonal and non-tonal language classification
Wang et al. Automatic language recognition with tonal and non-tonal language pre-classification
KR100393196B1 (ko) 음성인식장치및방법
JPH0283595A (ja) 音声認識方法
AlDahri et al. Detection of Voice Onset Time (VOT) for unvoiced stop sound in Modern Standard Arabic (MSA) based on power signal
KR20080065775A (ko) 구화 교육용 발성 시각화 시스템
KR19980065481A (ko) 운율 분석 결과에 근거한 음소 분리 방법
KR100322704B1 (ko) 음성신호의지속시간변경방법
Cai Analysis of Acoustic Feature Extraction Algorithms in Noisy Environments
Paliwal et al. Feature Extraction and Processing Analysis in Speech Recognition
JPS6227798A (ja) 音声認識装置
JPH02240700A (ja) 音声処理装置