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 PDFInfo
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 57
- 230000005236 sound signal Effects 0.000 claims abstract description 71
- 230000008569 process Effects 0.000 claims abstract description 19
- 230000003750 conditioning effect Effects 0.000 claims abstract 3
- 238000005070 sampling Methods 0.000 claims description 18
- 238000004458 analytical method Methods 0.000 claims description 5
- 238000013479 data entry Methods 0.000 claims description 5
- 238000005259 measurement Methods 0.000 claims description 4
- 230000003321 amplification Effects 0.000 claims description 2
- 238000003199 nucleic acid amplification method Methods 0.000 claims description 2
- 230000006870 function Effects 0.000 description 79
- 230000000875 corresponding effect Effects 0.000 description 45
- 230000002123 temporal effect Effects 0.000 description 39
- 238000001914 filtration Methods 0.000 description 19
- 238000012545 processing Methods 0.000 description 18
- 238000004422 calculation algorithm Methods 0.000 description 15
- 239000000284 extract Substances 0.000 description 13
- 238000010586 diagram Methods 0.000 description 8
- 238000006243 chemical reaction Methods 0.000 description 7
- 230000008859 change Effects 0.000 description 5
- 238000012360 testing method Methods 0.000 description 5
- 241000282414 Homo sapiens Species 0.000 description 4
- 238000003909 pattern recognition Methods 0.000 description 4
- 238000000547 structure data Methods 0.000 description 4
- 238000013459 approach Methods 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 3
- 230000001419 dependent effect Effects 0.000 description 3
- 238000000605 extraction Methods 0.000 description 3
- 230000000737 periodic effect Effects 0.000 description 3
- 238000001228 spectrum Methods 0.000 description 3
- 230000001755 vocal effect Effects 0.000 description 3
- 238000013461 design Methods 0.000 description 2
- 238000011156 evaluation Methods 0.000 description 2
- 238000012417 linear regression Methods 0.000 description 2
- 238000012549 training Methods 0.000 description 2
- 210000001260 vocal cord Anatomy 0.000 description 2
- 238000012935 Averaging Methods 0.000 description 1
- 230000006978 adaptation Effects 0.000 description 1
- 230000003044 adaptive effect Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000002596 correlated effect Effects 0.000 description 1
- 238000000354 decomposition reaction Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 210000003205 muscle Anatomy 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 230000033764 rhythmic process Effects 0.000 description 1
- 238000010845 search algorithm Methods 0.000 description 1
- 230000011664 signaling Effects 0.000 description 1
- 230000003595 spectral effect Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 239000013589 supplement Substances 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L15/00—Speech recognition
- G10L15/08—Speech classification or search
- G10L15/18—Speech classification or search using natural language modelling
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L15/00—Speech recognition
- G10L15/02—Feature extraction for speech recognition; Selection of recognition unit
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L15/00—Speech recognition
- G10L15/08—Speech classification or search
- G10L15/18—Speech classification or search using natural language modelling
- G10L15/183—Speech classification or search using natural language modelling using context dependencies, e.g. language models
- G10L15/187—Phonemic context, e.g. pronunciation rules, phonotactical constraints or phoneme n-grams
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L15/00—Speech recognition
- G10L15/02—Feature extraction for speech recognition; Selection of recognition unit
- G10L2015/025—Phonemes, 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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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
\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:
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.
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:
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:
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:
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:
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:
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:
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.
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.
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
\global\parskip1.000000\baselineskip
\vskip1.000000\baselineskip
\vskip1.000000\baselineskip
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.
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)
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)
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 |
-
1996
- 1996-03-11 JP JP09532536A patent/JP2000506995A/ja not_active Ceased
- 1996-03-11 AU AU53591/96A patent/AU5359196A/en not_active Abandoned
- 1996-03-11 WO PCT/US1996/003140 patent/WO1997034293A1/en active IP Right Grant
- 1996-03-11 ES ES96910381T patent/ES2297839T3/es not_active Expired - Lifetime
- 1996-03-11 AT AT96910381T patent/ATE378673T1/de not_active IP Right Cessation
- 1996-03-11 DE DE69637326T patent/DE69637326D1/de not_active Expired - Fee Related
- 1996-03-11 EP EP96910381A patent/EP0886854B1/en not_active Expired - Lifetime
- 1996-03-11 KR KR1019980707199A patent/KR19990087730A/ko not_active Application Discontinuation
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) | 音声処理装置 |