ES2238394T3 - Sistema de reconocimiento que utiliza arboles lexicos. - Google Patents
Sistema de reconocimiento que utiliza arboles lexicos.Info
- Publication number
- ES2238394T3 ES2238394T3 ES01306565T ES01306565T ES2238394T3 ES 2238394 T3 ES2238394 T3 ES 2238394T3 ES 01306565 T ES01306565 T ES 01306565T ES 01306565 T ES01306565 T ES 01306565T ES 2238394 T3 ES2238394 T3 ES 2238394T3
- Authority
- ES
- Spain
- Prior art keywords
- nodes
- active
- node
- algorithm
- score
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Lifetime
Links
- 238000000034 method Methods 0.000 claims abstract description 21
- 230000008569 process Effects 0.000 claims description 12
- 230000007246 mechanism Effects 0.000 claims description 11
- 238000012545 processing Methods 0.000 claims description 6
- 238000004540 process dynamic Methods 0.000 claims 1
- 230000007704 transition Effects 0.000 description 9
- 238000010586 diagram Methods 0.000 description 7
- 239000000203 mixture Substances 0.000 description 6
- 238000010845 search algorithm Methods 0.000 description 4
- 230000006399 behavior Effects 0.000 description 3
- 238000000605 extraction Methods 0.000 description 3
- 238000012549 training Methods 0.000 description 3
- 238000013459 approach Methods 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 230000001186 cumulative effect Effects 0.000 description 2
- 238000009826 distribution Methods 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 238000012935 Averaging Methods 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 239000012141 concentrate Substances 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 239000006185 dispersion Substances 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000001939 inductive effect Effects 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 238000003062 neural network model Methods 0.000 description 1
- 238000012805 post-processing Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 239000004575 stone Substances 0.000 description 1
- 230000002123 temporal effect Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
- 239000013598 vector Substances 0.000 description 1
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/31—Indexing; Data structures therefor; Storage structures
- G06F16/316—Indexing structures
- G06F16/322—Trees
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Machine Translation (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Character Discrimination (AREA)
- Adornments (AREA)
Abstract
Sistema de procesamiento dinámico, que comprende una estructura (30) de datos en árbol implementada en una memoria legible por ordenador, accesible por un procesador, teniendo dicha estructura de datos en árbol una pluralidad de nodos que define topológicamente un nodo raíz y una pluralidad de generaciones padre-hijos, incluyendo una generación de hijos más profunda que se encuentra topológicamente más alejada de la raíz; caracterizado por un algoritmo de recorrido de nodos implementado por dicho procesador, recorriendo dicho algoritmo dichos nodos basándose en un conjunto de reglas de recorrido de nodos, según las cuales los nodos de una generación dada se procesan antes de que se procesen los nodos padre de dicha generación dada, la generación hija más profunda se procesa primero, y el recorrido de nodos entre los nodos de cada generación avanza en la misma dirección topológica.
Description
Sistema de reconocimiento que utiliza árboles
léxicos.
La presente invención se refiere a un sistema de
procesamiento dinámico, que comprende una estructura de datos en
árbol implementada en una memoria legible por ordenador, accesible
por un procesador, teniendo dicha estructura de datos en árbol una
pluralidad de nodos que define topológicamente un nodo raíz y una
pluralidad de generaciones padre-hijos, incluyendo
una generación de hijos más profunda que se encuentra
topológicamente más alejada de la raíz.
Las técnicas de programación dinámica se emplean
habitualmente hoy en día para problemas de alineamiento temporal
tanto en el reconocimiento del habla aislada y continua como en
problemas de búsqueda de secuencias de palabras óptimas en el
reconocimiento del habla continua (palabras conectadas). Un tipo
bien conocido de reconocimiento por programación dinámica que puede
usarse en el contexto del Modelo Oculto de Markov (HMM) es el
algoritmo de Viterbi. Las técnicas de programación dinámica también
pueden emplearse con una variedad de otros tipos de modelos del
habla a parte de los HMM, tales como modelos de redes neuronales,
por ejemplo.
El algoritmo de Viterbi clásico es un algoritmo
inductivo en el cual, en cada instante (cada marco), el algoritmo
almacena la mejor posible secuencia de estados para cada uno de los
estados finales como una etapa intermedia para la secuencia O de
observación deseada. De esta manera, el algoritmo descubre en última
instancia el mejor trayecto para cada uno de los estados finales
como el último estado para la secuencia de observación deseada. De
entre éstos, el algoritmo selecciona el de la probabilidad más alta.
El algoritmo de Viterbi clásico avanza marco a marco, buscando
encontrar la mejor correspondencia entre una enunciación hablada y
los modelos enseñados anteriormente.
Tomando como ejemplo el caso de un reconocedor de
Modelos Ocultos de Markov, la probabilidad de que la secuencia
observada (la enunciación del hablante de prueba) sea generada por
el modelo (HMM) es la suma de las probabilidades para cada trayecto
posible a través de todas las posibles secuencias observables. Se
calcula la probabilidad de cada trayecto, y se identifica el más
probable. El algoritmo de Viterbi calcula el trayecto más probable y
recuerda los estados a través de los que pasa.
El algoritmo de Viterbi clásico es
computacionalmente caro. Guarda listas enlazadas o tablas de
dispersión para mantener la lista de todas las hipótesis (o tokens).
En las operaciones contables de almacenamiento y consulta de
artículos de estas listas o tablas se consume mucha energía
computacional.
Puesto que el algoritmo de Viterbi clásico es
computacionalmente caro, puede frenar perceptiblemente la velocidad
aparente del reconocedor de habla. Esto resulta especialmente
problemático en los sistemas de tiempo real en los que se necesita
un tiempo de respuesta rápido. Una solución actual consiste en usar
procesadores más potentes - una solución cara que puede no resultar
deseable en algunos sistemas empotrados y productos de consumo
pequeños, tales como teléfonos celulares y equipos de
entretenimiento doméstico.
En el documento US 5.983.180 se da a conocer un
método de reconocimiento automático de datos. Unas unidades de datos
secuenciales, representadas como tokens secuenciales, se agrupan en
uno o más artículos. Los artículos conocidos se almacenan como unos
respectivos modelos de secuencia en estado finito. Cada estado
corresponde a un token, y los modelos que tienen estados comunes de
prefijo se organizan en una estructura de árbol, de manera que los
estados de sufijo comprendan ramas de los estados comunes de prefijo
y haya una pluralidad de estructuras de árbol que tienen cada una un
estado diferente de prefijo. Cada unidad de datos secuenciales se
compara con unas unidades referenciales de datos identificadas por
tokens de referencia para generar puntuaciones que indican la
similitud de las unidades de datos a unidades referenciales de
datos. Se calcula una puntuación para el estado final en los modelos
mediante unas etapas de cálculo secuencial de la puntuación
acumulada para que un modelo alcance el estado final que comprende
una rama en el árbol; identificar la rama más cercana a la hoja
correspondiente a un siguiente modelo para el que todavía no se ha
calculado una puntuación acumulada para la última etapa; y acumular
la puntuación de la rama identificada más cercana para el siguiente
modelo hasta el estado final. Estas etapas se repiten para las ramas
de los árboles. El artículo correspondiente a un modelo que tiene la
puntuación acumulada más alta se reconoce como el modelo que mejor
se corresponde a los datos.
La invención se define en las reivindicaciones 1
y 15. Según un aspecto de la presente invención, se proporciona un
sistema de programación dinámica del tipo anteriormente mencionado,
caracterizado por un algoritmo de recorrido de nodos implementado
por el procesador, recorriendo dicho algoritmo los nodos basándose
en un conjunto de reglas de recorrido de nodos, según las cuales los
nodos de una generación dada se procesan antes de que se procese el
nodo padre de dicha generación dada, la generación hija más profunda
se procesa primero, y el recorrido de nodos entre los nodos de cada
generación avanza en la dirección topológica.
La invención se describirá a continuación a
título de ejemplo únicamente, con referencia a los dibujos adjuntos,
de los que:
La figura 1 es un diagrama de bloques de un
reconocedor de habla que ilustra cómo puede utilizarse un
decodificador construido de acuerdo con la presente invención para
implementar un reconocedor basado en modelos;
la figura 2 muestra la estructura de datos
preferida actualmente para el árbol léxico empleado por la
invención;
la figura 3 es un diagrama de estructura de datos
utilizado para representar cada nodo del árbol léxico;
la figura 4a es un diagrama de líneas temporales
que ilustra la tarea básica realizada por un decodificador que
emplea la invención en una aplicación de habla continua;
la figura 4b es un diagrama de árbol que muestra
cómo se recorre la envolvente activa;
la figura 5 es una serie de diagramas de árbol
útil para comprender el comportamiento dinámico del algoritmo; y
la figura 6 es un diagrama de flujo del
algoritmo.
En la figura 1 se muestra un sistema ejemplar de
reconocimiento del habla. El sistema funciona en dos fases: una fase
de formación, durante la cual el sistema aprende los patrones
preferidos que representan los distintos sonidos del habla (por
ejemplo, frases, palabras, fonos) que constituyen el vocabulario de
la aplicación; y una fase de reconocimiento, durante la cual se
identifica una pauta desconocida de entrada contemplando el conjunto
de referencias. Durante la fase de formación, cada referencia se
aprende a partir de ejemplos hablados y almacenados en forma, bien
de plantillas obtenidas mediante algún método de promediación (en
los sistemas de correspondencia de plantillas), bien de modelos que
caracterizan las propiedades estadísticas de patrones (como en los
sistemas estocásticos). Uno de los sistemas estocásticos más
populares utiliza un enfoque estadístico de modelización que emplea
Modelos Ocultos de Markov (HMM).
Tal como se ilustra en la figura 1, el
reconocedor de habla ejemplar realiza el proceso de reconocimiento
en tres etapas. Tal como se representa en 10, primero se lleva a
cabo un análisis del habla y una extracción de características sobre
el habla de entrada. Esta etapa se concentra en extraer un conjunto
de parámetros obtenidos por análisis de señales. La siguiente etapa,
representada en 12, implica una clasificación de patrones. Es en
esta etapa cuando se realizaría el algoritmo de Viterbi clásico.
Durante esta etapa, se calcula una medida de similitud entre el
habla de entrada y cada patrón de referencia. El proceso define una
medida local de fidelidad entre vectores de característica e implica
además un método para alinear dos patrones de habla, los cuales
pueden diferir en duración y velocidad de habla. La etapa de
clasificación de patrones utiliza un diccionario 14 de patrones o
modelos que contiene la información generada durante la etapa de
formación. La última etapa es la etapa 16 de decisión. Durante esta
etapa, al patrón desconocido se le asigna la etiqueta de patrón de
referencia "más fiel". Normalmente, esta decisión se basa en
reglas que tienen en cuenta los resultados de las mediciones de
similitud.
Puesto que muchos reconocedores utilizados
popularmente hoy en día emplean Modelos Ocultos de Markov como
modelo del habla, en la figura 1 se muestra en 20 una sencilla
ilustración de un Modelo Oculto de Markov. Sin embargo, se admitirá
que los principios de la presente invención no se limitan a
reconocedores que emplean Modelos Ocultos de Markov. En la figura 1
se ilustra un Modelo Oculto de Markov de tres estados, con los
estados designados s_{1}, s_{2} y s_{3}. Naturalmente, una
implementación de trabajo podría emplear un número de estados
diferente, y el número de estados seleccionado aquí es meramente a
efectos ilustrativos. Aunque la invención no se restringe a HMM LR
(left-to-right - de izquierda a
derecha), el algoritmo da los mejores resultados con esta clase de
modelos. Por tanto, el HMM ilustrado en la figura 1 es un HMM LR en
el que las transiciones de estado avanzan únicamente de izquierda a
derecha sin saltarse estados.
El Modelo Oculto de Markov implica una
recopilación de probabilidades, algunas asociadas con los estados en
sí y otras asociadas con la realización de una transición desde ese
estado hasta otro estado o hasta sí mismo. En la figura 1, las
transiciones de estado se ilustran mediante flechas. Obsérvese que
algunas flechas representan una transición desde un estado hasta un
estado distinto, mientras que otras flechas representan una
transición desde un estado hasta sí mismo.
Cada frase, palabra o fono a representar mediante
los modelos de habla tendrá su propio modelo, que constará de
valores de probabilidad asociados con cada transición y asociados
con cada estado. Por tanto, cada bucle propio tiene una probabilidad
de transición asociada, representada en 22; cada bucle a otro estado
tiene su probabilidad 24 de transición asociada. Además, cada estado
tiene asimismo información de probabilidad asociada a él.
Puesto que los valores de probabilidad asociados
con cada estado pueden ser más complejos que lo que podría
representar un valor individual, algunos sistemas representarán las
probabilidades asociadas con cada estado en términos de una
distribución gaussiana. Algunas veces, se utiliza una mezcla de
múltiples distribuciones de manera combinada para comprender datos
de densidad de la mezcla gaussiana. Tales datos se muestran
esquemáticamente en 26 y se hace referencia a ellos mediante un
indicador 28 de índice de mezcla. Por tanto, asociado con cada
estado se encuentra un indicador de índice de mezcla, el cual a su
vez identifica la información de densidad de la mezcla gaussiana
para ese estado. Naturalmente, cabe repetirse que el reconocedor de
habla y la estructura de Modelo Oculto de Markov ilustrados en la
figura 1 están destinados a ser tan sólo ejemplares de un tipo de
reconocedor con el que puede usarse la invención. En general, la
invención puede utilizarse con cualquier sistema que realice una
programación dinámica en la clasificación de patrones. Tal como se
ha indicado anteriormente, los mejores resultados de HMM se obtienen
con HMM LR. Por tanto, la invención puede emplearse, por ejemplo, en
lugar del algoritmo de Viterbi clásico.
Para más información en lo que respecta a la
estructura básica de los sistemas de reconocimiento del habla y de
Modelos Ocultos de Markov, véase Junqua, Jean-Claude
y Haton, Jean-Paul, Robustness in Automatic
Speech Recognition, Fundamentals and Applications, Kluwer
Academic Publishers, 1996.
La presente invención puede utilizarse para
mejorar enormemente la manera en la que se realiza la etapa 12 de
clasificación de patrones. La invención emplea una estructura de
datos única para representar el diccionario 14 de patrones o modelos
en combinación con un algoritmo único que recorre la estructura de
datos para descubrir la mejorar hipótesis de correspondencia. En
esta sección se describirá la estructura de datos preferida; el
algoritmo preferido se describirá en la siguiente sección. La
estructura de datos preferida representa el diccionario 14 de
patrones o modelos como un árbol léxico que se ha aplanado en una
lista enlazada. La figura 2 ilustra esta topología. Más
específicamente, la figura 2 muestra un ejemplo de un árbol 30
léxico que almacena palabras individuales que están formadas por
letras. El algoritmo, descrito posteriormente más abajo, recorre
este árbol léxico de manera sincronizada en el tiempo y aplica
ecuaciones de programación dinámica en cada nodo activo. Por tanto,
el algoritmo recorre el árbol, de nodo a nodo, comprobando si la
letra en cada nodo corresponde o no a la letra identificada en la
etapa 10 de extracción de características (figura 1).
Al contemplar el árbol léxico ejemplar presentado
en la figura 2, debería reconocerse que el ejemplo ilustrado, que
emplea palabras formadas por letras que deletrean esas palabras, se
ha seleccionado aquí meramente a efectos educativos. En un sistema
de reconocimiento del habla, las características extraídas durante
el análisis del habla en la etapa 10 pueden ser características o
sus correspondientes unidades de sonido, tales como fonemas, sílabas
o similares. En otras palabras, la invención no se limita sólo a
aplicaciones en las que, en cada nodo, se comprueban letras
individuales para identificar la palabra que esas letras deletrean.
Más bien, en cada nodo puede utilizarse cualquier unidad adecuada.
Por ejemplo, en un reconocedor de habla continua, el sistema puede
representar palabras completas en cada nodo, y los árboles léxicos
contendrían indicadores de frases u oraciones enteras formadas por
esas palabras.
Con referencia a la figura 2, obsérvese que el
árbol 30 léxico se representa como una lista 32 enlazada aplanada
que incluye un número de características específicas para
identificar no sólo la topología de la lista, sino también el camino
en el que se recorrería la lista para reflejar un recorrido de nodos
del árbol correspondiente. Más específicamente, la lista se
construye de manera que todos los nodos en el mismo nivel de
descenso dentro del árbol se representen como entradas contiguas en
la lista. Por tanto, la lista enlazada comienza con una primera
estructura o nodo para representar el nodo raíz del árbol. Debajo de
la estructura de nodo raíz se encuentran las estructuras para los
nodos hijos inmediatamente siguientes, correspondientes en este
ejemplo a unos nodos k y h en el árbol. Siguiendo adelante con la
lista enlazada, los dos siguientes nodos en este ejemplo representan
los hijos de segundo nivel, concretamente unos nodos aa y aa del
árbol. Los tres nodos siguientes representan los nietos de tercer
nivel, unos nodos r, r y l. Por último, los cuatro últimos nodos
representan el último nivel del árbol, concretamente unos nodos d,
d, t y t.
Los nodos dentro de la lista enlazada almacenan
más que únicamente la letra o unidad de sonido que corresponde a
cada nodo en el árbol. Cada nodo también incluye al menos un
indicador de avance al siguiente nodo que se recorrería si estuviese
recorriéndose el árbol. Por tanto, el primer nodo k hijo incluye un
indicador hacia el nodo aa nieto para ilustrar cómo se recorrería el
árbol del nodo k al nodo aa al deletrear en última instancia las
unidades de sonido correspondientes a la palabra CARD (TARJETA). La
estructura de cada nodo también incluye una bandera, representada en
la figura 2 como una pequeña caja en la esquina inferior derecha.
Esta bandera se fija para identificar si ese nodo representa el
último hijo de su padre. Esta información se utiliza para describir
adicionalmente la topología del árbol, ya que se expresa en forma de
lista enlazada aplanada.
La representación real de la lista enlazada
adopta la forma de una estructura de datos mostrada en la figura 3.
La estructura de la figura 3 ilustra cómo pueden configurarse los
nodos de la lista enlazada aplanada para un reconocedor que usa
Modelos Ocultos de Markov. Los nodos pueden configurarse fácilmente
para almacenar además otros tipos de parámetros. Por tanto, la
ilustración de la figura 3 no debería entenderse como una limitación
al alcance de la invención. Las estructuras pueden utilizarse para
almacenar parámetros y/o información de patrón correspondientes a
reconocedores distintos a los reconocedores de Modelo Oculto de
Markov.
Con referencia a la figura 3, cada nodo almacena
la estructura topológica del tren del modo siguiente. Incluye un
elemento 50 de datos en el que se almacena el indicador desde ese
nodo hasta su siguiente nodo hijo. Estos indicadores corresponden a
los ilustrados en la figura 2, y se utilizan cuando se recorre el
árbol. La estructura de datos del nodo también incluye una bandera
52 booleana que se fija o no para indicar si ese nodo es el último
hijo de su padre. Esta información se ilustró esquemáticamente en la
figura 2 mediante las cajas pequeñas que están, o bien vacías
(FALSO), o bien llenas (VERDADERO).
Puesto que el ejemplo ilustrado está diseñado
para representar Modelos Ocultos de Markov, la estructura de datos
del nodo incluye unos elementos 54 de datos que contienen las
probabilidades de transición asociadas con el bucle propio y
probabilidades de bucle a hijo asociadas con ese nodo. En un
reconocedor típico, éstas serían valores de punto flotante
correspondientes a las probabilidades ilustradas en la figura 1 en
22 y 24. La estructura de datos del nodo también incluye un elemento
56 de datos en el que se almacena un índice o indicador para
identificar las correspondientes densidades de mezcla gaussiana de
ese nodo. El indicador de índice de mezcla se mostró en 28 en la
figura 1. A su vez, apunta a una colección de datos que representa
la densidad 26 de mezcla gaussiana y otros valores de probabilidad
usados por el reconocedor para representar la probabilidad de que un
cierto nodo emita una cierta unidad de sonido.
Los restantes elementos de datos en la estructura
de datos del nodo son utilizados por el algoritmo que determina qué
recorrido de nodos representa el mejor trayecto o la mejor
correspondencia. Un elemento 58 de datos almacena la puntuación
probabilística acumulativa asociada con ese nodo al realizar el
algoritmo su proceso de análisis. Un elemento 60 de datos almacena
un indicador a otro nodo dentro del árbol, conocido como el
siguiente nodo activo. El algoritmo usa el siguiente nodo activo
para determinar cómo avanzará por el árbol. A continuación, se
describirán los detalles del algoritmo y cómo entrarán en juego
estos elementos de datos.
El algoritmo preferido recorre la estructura de
datos descrita más arriba de una manera sincronizada en el tiempo.
Es decir, el algoritmo recorre los nodos en sincronismo con los
datos de observación desarrollados al proceder el proceso de
extracción de características (la etapa 10 en la figura 1). En un
reconocedor típico, el habla de entrada se segmenta o subdivide
temporalmente en marcos. Por tanto, el algoritmo preferido actúa en
sincronismo con estos marcos.
Un recorrido de nodos de nodo a nodo viene
dictado por la estructura topológica del árbol y también por una
segunda estructura llamada la envolvente de nodos activos. Los nodos
activos son aquellos nodos que representan actualmente las hipótesis
de correspondencia más probables. La envolvente de nodos activos es
una lista enlazada de estos nodos activos actualmente. La envolvente
de nodos activos representa una estructura dinámica. A medida que el
algoritmo proceda, se unirán nodos a la lista de nodos activos o la
abandonarán. Se añaden nodos a la lista activa si su puntuación
probabilística está por encima de un umbral de búsqueda en haz, y
los nodos anteriormente activos se cortan de la lista activa si su
puntuación cae por debajo de ese umbral. Para calcular la puntuación
probabilística de un nodo activo, el algoritmo aplica la siguiente
ecuación de programación dinámica a cada nodo activo:
p_{k}(t) =
max\{p_{\varphi}(t - 1) + a_{\varphi, \ k}\} +
d_{k}(t)
donde p_{k}(t) es la
puntuación en el instante t y \varphi es el padre del
nodo.
Para comprender la manera en la que el algoritmo
recorre el árbol léxico, deberían realizarse algunas definiciones.
Con referencia al árbol léxico, se define la profundidad del nodo
como el número de estados a la izquierda de ese nodo. Véase la
figura 4a. Cuanto mayor sea el número, más profundo será el nodo. Se
define una columna del árbol léxico como el conjunto de nodos de la
misma profundidad. Para cada columna, se define una relación
arbitraria de orden en los nodos. La envolvente activa o lista de
nodos activos es la lista de nodos que están activos, ordenados
según una relación de manera que, si el nodo n es un nodo con un
padre n* y el nodo k es un nodo con un padre k*, k* < n* implica
que k < n. Puesto que todos los nodos de una profundidad dada en
el árbol léxico pueden procesarse en casi cualquier orden
arbitrario, se elige la secuencia de recorrido que maximiza el
rendimiento de la memoria caché. En otras palabras, cuando el
procesador carga una cierta dirección desde la memoria, su mecanismo
empotrado de caché también cargará un bloque de direcciones
contiguas que van inmediatamente detrás de la dirección que está
cargándose desde la memoria. De ahí en adelante, si es necesario
acceder a cualquiera de esas direcciones posteriores, el proceso
obtendrá acceso a ellas desde su caché en vez de desde su memoria,
eliminando así el tiempo de acceso a memoria asociado. La presente
invención recorre el árbol léxico para explotar esta característica
del caché. El árbol léxico está codificado para que el algoritmo
recorra el árbol en una dirección que utilice la información
almacenada en el caché.
Para una ilustración adicional, supóngase que los
nodos de la figura 2 están ordenados en una serie contigua en la
memoria. Por tanto, la realización preferida recorrerá los nodos en
orden creciente de la pila de memoria. El trayecto preferido de
recorrido de nodos se ilustra en la figura 4b. El recorrido de nodos
empieza en el nodo activo de mayor profundidad y luego avanza en
orden creciente dentro una columna dada. Una vez que se han
recorrido todos los nodos activos dentro de una columna, el trayecto
avanza a la columna anterior.
El algoritmo preferido actualmente procede a
través de las siguientes etapas:
1. Comenzar por la lista activa más profunda en
el árbol léxico.
2. Suponer que B es el nodo de menor rango en la
lista activa de la columna hija.
3. Recorrer la lista activa en orden
creciente.
4. Para cada hijo c del nodo k actual,
5. Si B < c, entonces incrementar B hasta que
esa condición sea falsa.
6. Si B = c, entonces aplicar la ecuación de
programación dinámica.
7. Si B > c, entonces simplemente enlazar c
antes de n.
8. Reducir la profundidad y procesar la columna
padre.
El algoritmo anterior compara la salida
secuencial del modelo de análisis del habla con las entradas en su
árbol léxico, determinando en cada nodo qué entrada tiene la
probabilidad más alta de corresponder con la enunciación de habla de
entrada). Aunque es posible analizar exhaustivamente cada nodo del
árbol, este enfoque de fuerza bruta lleva mucho tiempo y es poco
eficiente. El algoritmo preferido reduce dinámicamente su espacio de
búsqueda en cada iteración sucesiva identificando los nodos que
actualmente presentan la probabilidad más elevada de corresponder
con la enunciación de entrada. El algoritmo identifica estos nodos
como los siguientes nodos activos. Utiliza estos nodos, y sólo estos
nodos, en su iteración subsiguiente.
A medida que el algoritmo visita cada nodo,
calcula la puntuación probabilística de ese nodo. Si se definen las
probabilidades entrante y de bucle como e_{k} = a_{k*,k} y
b_{k} = a_{k,k}, la puntuación p_{k}() en el instante t+1
puede calcularse como:
p_{k}(t+1) =
max \{p_{k}(t) + b_{k},p_{k*}(t) + e_{k}\} +
d_{k}(t).
Obsérvese que el algoritmo usa t y t+1 en vez de
t y t-1 para indicar una recursión hacia delante en
vez de una recursión hacia atrás. El objeto último es calcular una
puntuación basándose únicamente en un conocimiento de nodos hijo (es
decir, desde k* y no desde k) para evitar usar indicadores de
retroceso (es decir, conocimiento acerca del nodo padre).
El algoritmo define la puntuación topológica
r_{k}(t) = p_{k}(t) - d_{k}(t) y la
puntuación topológica parcial r^(t) = p_{k}(t) + l.
Obsérvese que la puntuación topológica parcial es igual a la
puntuación topológica cuando k* no pertenece a una lista activa. El
algoritmo recorre una celda en la envolvente activa realizando las
siguientes operaciones:
1. Calcular la puntuación p_{k} \leftarrow
r_{k} + d_{k} (correspondencia acústica);
2. Legado: para cada hijo c, r_{c} \leftarrow
max{p_{k} + e_{c},r_{c}}. Se supone que el campo de puntuación
del hijo contiene la puntuación parcial r^.
3. Autoactivación: r_{k} \leftarrow r^_{k}
= r_{k} + b_{k}. El campo de puntuación contiene ahora la
puntuación topológica parcial. Si no tiene lugar ninguna herencia,
entonces esto es también la puntuación topológica para t+1.
Tal como se indica mediante las etapas
anteriores, cada celda k calcula su propia puntuación topológica y
sus propias puntuaciones acústicas en cada marco. Esta propiedad se
denomina autoactivación. Cada celda se activa a sí misma y luego
activa a todas sus hijas. Si las hijas ya se han activado a sí
mismas, la puntuación de la celda padre se lega a sus hijas. La
legación y la autoactivación pueden invertirse si el algoritmo
mantiene p_{k} y el siguiente nodo activo en variables. En tal
caso, los datos de un nodo pueden desecharse de la memoria caché
inmediatamente tras la autoactivación. Obsérvese que durante el
proceso de legación, un nodo tiene acceso directo a sus hijos. Esto
se garantiza mediante la manera en la que está construida la
envolvente activa, tal como se ha descrito más arriba.
Tal como se ha indicado más arriba, la envolvente
de nodos activos es una estructura dinámica. Los nodos activos
cambian a medida que el algoritmo procede. Cuando la envolvente de
nodos activos se superpone al árbol léxico, la envolvente de nodos
activos parecerá propagarse a medida que el algoritmo actúa con el
tiempo. Este concepto se muestra esquemáticamente en la figura
4a.
La figura 4a muestra un ejemplo en el que en cada
nodo se representan palabras en vez de letras. En los ejemplos
precedentes, se ilustró un reconocedor de palabras individuales.
Cada nodo del árbol representaba una letra o unidad de sonido que
comprende una palabra en el diccionario. Sin embargo, se recordará
que las técnicas de la invención pueden utilizarse en reconocedores
tanto de habla continua como de palabras individuales. Por tanto, la
figura 4a muestra qué aspecto tendría el árbol léxico en un
reconocedor de habla continua, en el que se representan palabras
individuales en cada nodo y la salida sería de frases u oraciones.
Mediante el examen del árbol 70 en la figura 4a, puede observarse
por ejemplo cómo se construiría la frase "el rápido zorro
marrón" mediante un recorrido de nodos apropiado del árbol.
La figura 4a muestra cómo parecerá propagarse con
el tiempo la envolvente de nodos activos. La línea 72 temporal
muestra qué aspecto puede tener la envolvente de nodos activos para
el árbol ejemplar en un primer instante a y en un instante b
posterior. El instante a corresponde al punto en la enunciación
"el rápido zorro marrón" inmediatamente después de que la
palabra "el" se haya analizado mediante la etapa 10 de análisis
del habla (figura 1). El tiempo b corresponde al punto en el que se
ha procesado la palabra "marrón". En 74 se ilustra la
envolvente activa en el instante a, correspondiente a aquellos con
mayor probabilidad de corresponder a la enunciación que se ha
analizado parcialmente hasta este momento. En el instante b
posterior, la envolvente de nodos activos se ha propagado hacia
fuera, tal como se ilustra en 76. Las envolventes de nodos activos
en 74 y en 76 representan los nodos activos en dos puntos diferentes
en el tiempo (el instante a y el instante b). El algoritmo actúa
sobre estos nodos activos, utilizando los nodos actualmente activos
para definir el punto de entrada en el árbol léxico para la
siguiente iteración sucesiva.
Tal como se ilustra mediante este ejemplo, los
siguientes nodos activos evolucionan o se propagan de manera muy
parecida a como se propagaría un frente de onda si se dejase caer
una piedra en un charco de agua en el nodo raíz, provocando que una
onda se propague hacia fuera con el paso del tiempo. De hecho, en un
reconocedor de palabras individuales, el siguiente frente de onda de
nodos activos se propagaría de tal manera parecida a una onda hacia
fuera. Esto es así porque sólo es necesario usar cada nodo
individual una vez. Sin embargo, en el caso más general, tal como en
un reconocedor de habla continua, los nodos pueden visitarse de
nuevo, y por tanto, el siguiente frente de onda de nodos activos no
siempre se propagaría necesariamente alejándose del nodo raíz. Para
comprender porqué esto es así, apréciese que en un reconocedor de
habla continua, el hablante puede pronunciar una palabra más de una
vez. Por tanto, la enunciación "el rápido rápido zorro marrón
marrón" provocaría que el siguiente frente de onda de nodos
activos se propagase momentáneamente hacia el nodo raíz.
La figura 5 muestra el comportamiento dinámico
del algoritmo de búsqueda preferido actualmente. Específicamente, la
figura 5 muestra un subconjunto del árbol léxico en distintos
instantes: instante = 0, instante = 1 ... instante = 4.
En un reconocedor basado en marcos, estos distintos instantes corresponderían a marcos sucesivos. El algoritmo comienza en el nodo raíz en el instante = 0, tal como indica la flecha 100 del punto activo de entrada. En el instante = 0,
el nodo raíz es el único nodo activo. El algoritmo procede entonces a identificar los nodos hijo del nodo raíz, y en el instante = 1, éstos también se vuelven nodos activos. El algoritmo usa el trayecto de recorrido de nodos de la envolvente activa para visitar de un nodo activo al siguiente. El trayecto siempre empieza en los nodos más profundos, es decir, los que están más lejos del nodo raíz.
En un reconocedor basado en marcos, estos distintos instantes corresponderían a marcos sucesivos. El algoritmo comienza en el nodo raíz en el instante = 0, tal como indica la flecha 100 del punto activo de entrada. En el instante = 0,
el nodo raíz es el único nodo activo. El algoritmo procede entonces a identificar los nodos hijo del nodo raíz, y en el instante = 1, éstos también se vuelven nodos activos. El algoritmo usa el trayecto de recorrido de nodos de la envolvente activa para visitar de un nodo activo al siguiente. El trayecto siempre empieza en los nodos más profundos, es decir, los que están más lejos del nodo raíz.
En el instante = 1, el punto de entrada por nodo
activo se designa mediante la flecha etiquetada 100. El trayecto de
recorrido de nodos activos procede entonces tal como indican unas
flechas 102 y 104. A efectos ilustrativos, se utilizarán
puntuaciones probabilísticas de ejemplo que muestran cómo se activan
los nodos individuales y se eliminan luego mediante el proceso de
búsqueda en haz. Supóngase en el instante = 1 que el nodo raíz tiene
una puntuación probabilística de 100 (en la figura 5 se muestran
todas las puntuaciones entre corchetes). Supóngase además que los
otros dos nodos activos tienen unas puntuaciones probabilísticas de
60 y 80, respectivamente. El algoritmo emplea una técnica de
búsqueda en haz utilizando un tamaño de haz definido como la
desviación máxima con respecto a la mejor puntuación en un cierto
marco temporal. A efectos de este ejemplo, supóngase que el tamaño
de haz es 30. El algoritmo de búsqueda en haz especifica que un nodo
se suprime de un procesamiento adicional si la puntuación
probabilística de ese nodo es menor que la puntuación probabilística
del nodo de mayor probabilidad en más del tamaño de haz. En otras
palabras, si la puntuación probabilística de un nodo es inferior a
la probabilidad máxima menos 30, ese nodo se pasará por alto en un
procesamiento posterior.
En el instante = 0, la puntuación probabilística
máxima es la puntuación asociada con el nodo raíz, concretamente una
probabilidad 100. El haz es 100 - 30, o 70. Obsérvese que el nodo
con una puntuación de 600 cae por debajo del haz y por tanto está
sujeto a ser cortado por el algoritmo de búsqueda en haz. Por
consiguiente, en el instante = 2, sólo están presentes dos nodos
activos, el nodo raíz y el nodo indicado por la flecha 100 de
entrada por nodo activo. Puesto que las puntuaciones probabilísticas
se recalculan en cada intervalo de tiempo, se calculan valores
nuevos para cada nodo activo. Supóngase que el nodo raíz tiene una
puntuación probabilística de 160, y el otro nodo activo, una
puntuación de 120. Obsérvese también que en el instante = 2, el
trayecto de recorrido de nodos activos entra por la flecha 100 y
procede tal como indica la flecha 102.
Mediante el cálculo del haz en el instante = 2,
el algoritmo determina que el haz es 160 - 30 = 160. Puesto que el
nodo que tiene una puntuación probabilística de 120 cae por debajo
del valor del haz, se corta de un procesamiento adicional. Por
tanto, sólo el nodo raíz sobrevive al corte del haz.
En el instante = 3, el nodo raíz permanece
activo, y por tanto también se activan sus nodos hijo. Obsérvese que
en este caso, el nodo hijo más arriba que fue cortado por la
búsqueda en haz en el instante = 2, se reactivó en el instrumento t
= 3 porque es un hijo del nodo raíz activo. Obsérvese también que el
punto 100 de entrada por nodo activo identifica el nodo más profundo
y que las flechas 102 y 104 de los nodos activos restantes muestran
cómo se conecta o define el trayecto de nodos activos. En el
presente ejemplo, supóngase que el nodo raíz tiene una puntuación
probabilística de 200, el nodo de punto de entrada, una puntuación
probabilística de 220, y el nodo restante, una puntuación
probabilística de 240, tal como se ilustra en el instante = 3. El
cálculo de haz 240 - 30 = 210 tiene ahora como resultado que el nodo
raíz se corta de un procesamiento adicional porque cae por debajo
del valor del haz. Por tanto, en el instante = 4, el nodo raíz ya no
se encuentra activo. Sin embargo, los nodos hijo asociados con el
nodo más bajo están ahora activados. El punto 100 de entrada se
mueve hasta el nodo más profundo, que resulta ser uno de los nodos
hijo del nodo previamente más profundo. Las flechas 102, 104 y 106
muestran cómo se recorrería el trayecto de nodos activos. Tal como
en los casos precedentes, el punto de entrada siempre está en el
nodo más profundo y el recorrido de nodos procede de manera que
primero se recorran los nodos más profundos y que el trayecto de
recorrido de nodos termine con el nodo padre del nodo más
profundo.
Teniendo en mente el ejemplo anterior, se
explicará ahora el algoritmo actualmente preferido con referencia al
diagrama de flujo de la figura 6 y al listado detallado en
pseudocódigo que aparece en el apéndice I. Con referencia a la
figura 6, el algoritmo preferido comienza en una etapa 200
realizando una comprobación para determinar si el nodo padre de la
lista actual de nodos activos debe excluirse de una consideración
adicional, o "suprimirse por haz", en virtud de tener una
puntuación por debajo de la puntuación del haz. A continuación, se
recorre la lista de nodos activos, tal como se indica en 202. La
correspondencia acústica se calcula en una etapa 204, y el haz se
actualiza. A continuación, en una etapa 206, el algoritmo realiza
una correspondencia de programa dinámico de padre a hijo, y en una
etapa 208, se actualizan las conexiones para que la lista de los
siguientes nodos activos pueda recorrerse durante el instante t+1. A
continuación, el proceso se itera volviendo a la etapa 200.
Las etapas correspondientes del diagrama de flujo
de la figura 6 se han insertado como encabezando listados en el
pseudocódigo mostrado en el apéndice I posterior. El apéndice II
proporciona un listado en pseudocódigo para el algoritmo usado para
generar los árboles léxicos.
En el reconocimiento del habla continua, el
procesador debe pasar tiempo calculando la correspondencia acústica,
el propio algoritmo de búsqueda y la modelización del lenguaje.
Debido a la aplicación tardía de penalizaciones de modelo de
lenguaje, el espacio de búsqueda debe dividirse. Por tanto, puede ya
no resultar posible almacenar las hipótesis empotradas en el árbol
léxico. Sin embargo, si se utilizan modelos dependientes del
contexto con palabras internas, sólo es necesario un caso del árbol
léxico estático. Además, los modelos unigrama de lenguaje (LM -
language model) pueden factorizarse previamente. Resultan útiles
para la anticipación en modelos unigrama o bigrama de lenguaje.
Además, un amplio número de nodos en el árbol léxico compartirán la
misma puntuación de anticipación de LM.
\vskip1.000000\baselineskip
\vskip1.000000\baselineskip
\vskip1.000000\baselineskip
(Esquema pasa a página
siguiente)
A partir de lo anterior se observará que la
presente invención proporciona un algoritmo y una estructura de
datos muy compactos y eficientes para realizar la correspondencia
por programación dinámica en sistemas de reconocimiento del habla.
El algoritmo y la estructura de datos pueden utilizarse para el
algoritmo de Viterbi clásico en una variedad de aplicaciones de
programación dinámica y de reconocimiento. La estructura de árbol
léxico y la técnica de recorrido de nodos activos tienen como
resultado un proceso memorísticamente muy eficiente que puede
emplearse con gran provecho en sistemas de reconocimiento que tienen
una memoria y/o una velocidad de procesamiento limitadas. Por tanto,
la invención resulta útil en sistemas empotrados, productos de
consumo y otras aplicaciones de reconocimiento en los que pueden no
ser factibles una gran memoria y procesadores rápidos.
Claims (21)
1. Sistema de procesamiento dinámico, que
comprende una estructura (30) de datos en árbol implementada en una
memoria legible por ordenador, accesible por un procesador, teniendo
dicha estructura de datos en árbol una pluralidad de nodos que
define topológicamente un nodo raíz y una pluralidad de generaciones
padre-hijos, incluyendo una generación de hijos más
profunda que se encuentra topológicamente más alejada de la raíz;
caracterizado por un algoritmo de recorrido de nodos
implementado por dicho procesador, recorriendo dicho algoritmo
dichos nodos basándose en un conjunto de reglas de recorrido de
nodos, según las cuales los nodos de una generación dada se procesan
antes de que se procesen los nodos padre de dicha generación dada,
la generación hija más profunda se procesa primero, y el recorrido
de nodos entre los nodos de cada generación avanza en la misma
dirección topológica.
2. Sistema según la reivindicación 1, en el que
dicha estructura (30) de datos en árbol está codificada en dicha
memoria como una representación plana en la que los nodos de una
generación ocupan ubicaciones contiguas en memoria.
3. Sistema según la reivindicación 1, en el que
dicha estructura (30) de datos en árbol está codificada en dicha
memoria con las generaciones padre-hijos
representadas mediante una lista enlazada.
4. Sistema según la reivindicación 1, en el que
dicha estructura (30) de datos en árbol está codificada en dicha
memoria como una representación plana en el que los nodos de cada
generación ocupan ubicaciones en memoria contiguas y presentan
indicios que designan la frontera topológica entre los hijos del
mismo padre.
5. Sistema según la reivindicación 1, que
comprende además un mecanismo para designar a unos seleccionados de
dichos nodos como nodos activos.
6. Sistema según la reivindicación 5, en el que
dicho mecanismo para designar a unos seleccionados de dichos nodos
como nodos activos comprende una estructura de datos de envolvente
activa asociada con dicha estructura de datos en árbol.
7. Sistema según la reivindicación 1, que
comprende además un mecanismo para designar a unos seleccionados de
dichos nodos como nodos activos y en el que dicho algoritmo de
recorrido de nodos incluye una regla de recorrido de nodos según la
cual, sólo se procesan nodos activos.
8. Sistema según la reivindicación 1, en el que
dicha estructura (30) de datos en árbol es un árbol léxico que
representa un léxico.
9. Sistema según la reivindicación 1, en el que
dicha estructura (30) de datos en árbol es un árbol léxico que
representa el léxico de un reconocedor de habla.
10. Sistema según la reivindicación 1, en el que
dicho procesador emplea un caché y en el que dicha estructura (30)
de datos en árbol está codificada en dicha memoria de manera que el
recorrido de nodos de dicho árbol procede al interior de dicho
caché.
11. Sistema según la reivindicación 1, que
comprende además un mecanismo para designar a unos seleccionados de
dicho nodos como nodos activos, en el que dichos nodos activos
tienen una puntuación (58) probabilística por encima de un umbral de
búsqueda predeterminado, determinándose dicha puntuación (58)
probabilística a partir de información obtenida únicamente de los
nodos de generaciones hijas, en el que dicho algoritmo de recorrido
de nodos sólo recorre dichos nodos activos.
12. Sistema según la reivindicación 11, en el que
dicho algoritmo de recorrido de nodos calcula una puntuación (58)
probabilística para un nodo según:
p_{k}(t+1) =
max \{p_{k}(t) + b_{k},p_{k*}(t) + e_{k} \} +
d_{k}(t)
donde las probabilidades entrante y
de bucle se definen como b_{k} = a_{k*,k} y b_{k} =
a_{k,k}.
13. Sistema según la reivindicación 1, que
comprende además un mecanismo para designar a unos seleccionados de
dichos nodos como nodos activos definiendo una envolvente activa
como una lista enlazada de nodos actualmente activos, y que utiliza
un conjunto de reglas para propagar la envolvente activa
identificando nodos que tienen actualmente una puntuación (58)
probabilística más alta de corresponder a una enunciación de entrada
como siguientes nodos (60) activos, empleando el mecanismo
únicamente los siguientes nodos (60) activos en una iteración
posterior, en el que dicho algoritmo de recorrido de nodos incluye
un proceso de programación dinámica que asigna puntuaciones (58)
probabilísticas a nodos que se recorren utilizando una recursión
hacia delante, calculando así las puntuaciones (58) basándose sólo
en conocimiento de los nodos hijo.
14. Sistema según la reivindicación 13, en el que
dicho algoritmo de recorrido de nodos calcula la puntuación (58)
probabilística para un nodo según:
p_{k}(t+1) =
max\{p_{k}(t) + b_{k},p_{k*}(t) + e_{k}\} +
d_{k}(t)
donde las probabilidades entrante y
de bucle se definen como b_{k} = a_{k*,k} y b_{k} =
a_{k,k}.
15. Sistema de programación dinámica, que
comprende una estructura (30) de datos en árbol implementada en una
memoria legible por ordenador, accesible por un procesador, teniendo
dicha estructura de datos en árbol una pluralidad de nodos;
caracterizado por
un mecanismo para designar a unos seleccionados
de dicho nodos como nodos activos definiendo una envolvente activa
como una lista enlazada de nodos actualmente activos, y que utiliza
un conjunto de reglas para propagar la envolvente activa
identificando nodos que tienen actualmente una puntuación (58)
probabilística más alta de corresponder a una enunciación de entrada
como unos siguientes nodos (60) activos, empleando el mecanismo
únicamente los siguientes nodos (60) activos en una iteración
posterior, y
un algoritmo de recorrido de nodos implementado
por dicho procesador, recorriendo dicho algoritmo dichos nodos
basándose en un conjunto de reglas de recorrido de nodos según las
cuales, sólo se recorren dichos nodos activos, en el que dicho
algoritmo de recorrido de nodos incluye un proceso de programación
dinámica que asigna puntuaciones (58) probabilísticas a nodos que se
recorren utilizando una recursión hacia delante, calculando así las
puntuaciones (58) basándose únicamente en conocimiento de los nodos
hijo.
16. Sistema según la reivindicación 15, en el que
un umbral predeterminado que gobierna una identificación de un nodo
como un nodo activo se calcula basándose en una puntuación (58)
probabilística más alta.
17. Sistema según la reivindicación 15, en el que
dicho mecanismo para designar a unos seleccionados de dicho nodos
como nodos activos define una envolvente activa y utiliza un
conjunto de reglas para propagar la envolvente activa eliminando
nodos que tienen una puntuación (58) probabilística por debajo de un
umbral predeterminado.
18. Sistema según la reivindicación 15, en el que
dicho mecanismo para designar a unos seleccionados de dicho nodos
como nodos activos define una envolvente activa y utiliza un
conjunto de reglas para propagar la envolvente activa insertando
nodos que tienen una puntuación (58) probabilística por encima de un
umbral predeterminado.
19. Sistema según la reivindicación 18, en el que
dicho conjunto de reglas para insertar nodos garantiza que los nodos
en dicha envolvente activa se clasifican por su índice
topológico.
20. Sistema según la reivindicación 15, en el que
dicho procesador emplea un caché y en el que dicha estructura (30)
de datos en árbol está codificada en dicha memoria de manera que el
recorrido de nodos de dicho árbol procede al interior de dicho
caché.
21. Sistema según la reivindicación 15, en el que
dicho algoritmo de recorrido de nodos calcula una puntuación (58)
probabilística para un nodo según:
p_{k}(t+1) =
max\{p_{k}(t) + b_{k},p_{k*}(t) + e_{k}\} +
d_{k}(t)
donde las probabilidades entrante y
de bucle se definen como b_{k} = a_{k*,k} y b_{k} =
a_{k,k}.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US628828 | 2000-07-31 | ||
US09/628,828 US7035802B1 (en) | 2000-07-31 | 2000-07-31 | Recognition system using lexical trees |
Publications (1)
Publication Number | Publication Date |
---|---|
ES2238394T3 true ES2238394T3 (es) | 2005-09-01 |
Family
ID=24520472
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
ES01306565T Expired - Lifetime ES2238394T3 (es) | 2000-07-31 | 2001-07-31 | Sistema de reconocimiento que utiliza arboles lexicos. |
Country Status (8)
Country | Link |
---|---|
US (1) | US7035802B1 (es) |
EP (1) | EP1178466B1 (es) |
JP (1) | JP2002082689A (es) |
CN (1) | CN1156820C (es) |
AT (1) | ATE293275T1 (es) |
DE (1) | DE60109999T2 (es) |
ES (1) | ES2238394T3 (es) |
TW (1) | TW533403B (es) |
Families Citing this family (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7007035B2 (en) * | 2001-06-08 | 2006-02-28 | The Regents Of The University Of California | Parallel object-oriented decision tree system |
GB2384901B (en) | 2002-02-04 | 2004-04-21 | Zentian Ltd | Speech recognition circuit using parallel processors |
JP2004191705A (ja) * | 2002-12-12 | 2004-07-08 | Renesas Technology Corp | 音声認識装置 |
FR2857528B1 (fr) * | 2003-07-08 | 2006-01-06 | Telisma | Reconnaissance vocale pour les larges vocabulaires dynamiques |
US7593845B2 (en) * | 2003-10-06 | 2009-09-22 | Microsoflt Corporation | Method and apparatus for identifying semantic structures from text |
KR20050054706A (ko) * | 2003-12-05 | 2005-06-10 | 엘지전자 주식회사 | 음성인식을 위한 어휘 트리 구축 방법 |
GB0420464D0 (en) * | 2004-09-14 | 2004-10-20 | Zentian Ltd | A speech recognition circuit and method |
DE602005012596D1 (de) * | 2004-10-19 | 2009-03-19 | France Telecom | Spracherkennungsverfahren mit temporaler markereinfügung und entsprechendes system |
US7552106B2 (en) * | 2004-11-17 | 2009-06-23 | International Business Machines Corporation | Variable length file entry navigation |
KR100703697B1 (ko) * | 2005-02-02 | 2007-04-05 | 삼성전자주식회사 | 어휘 그룹 트리를 이용한 어휘 인식 방법 및 장치 |
KR100748720B1 (ko) * | 2006-02-09 | 2007-08-13 | 삼성전자주식회사 | 다중 계층 중심 어휘 목록에 기초하여 대규모 단어 음성인식 방법 및 그 장치 |
KR100717385B1 (ko) * | 2006-02-09 | 2007-05-11 | 삼성전자주식회사 | 인식 후보의 사전적 거리를 이용한 인식 신뢰도 측정 방법및 인식 신뢰도 측정 시스템 |
US9131117B2 (en) * | 2006-09-18 | 2015-09-08 | Telcordia Technologies, Inc. | Optimal content distribution in video-on-demand tree networks |
JP4427530B2 (ja) * | 2006-09-21 | 2010-03-10 | 株式会社東芝 | 音声認識装置、プログラムおよび音声認識方法 |
US10564944B2 (en) * | 2010-01-07 | 2020-02-18 | Microsoft Technology Licensing, Llc | Efficient immutable syntax representation with incremental change |
US9230548B2 (en) * | 2012-06-06 | 2016-01-05 | Cypress Semiconductor Corporation | Hybrid hashing scheme for active HMMS |
US9507877B2 (en) | 2014-12-01 | 2016-11-29 | Yandex Europe Ag | Method of and system for storing spatial objects |
RU2602970C2 (ru) * | 2014-12-01 | 2016-11-20 | Общество С Ограниченной Ответственностью "Яндекс" | Способ организации множества объектов, содержащихся в дереве квадрантов, в односвязный список и компьютер, используемый в нем |
US10540957B2 (en) | 2014-12-15 | 2020-01-21 | Baidu Usa Llc | Systems and methods for speech transcription |
US10332509B2 (en) | 2015-11-25 | 2019-06-25 | Baidu USA, LLC | End-to-end speech recognition |
US10481863B2 (en) * | 2016-07-06 | 2019-11-19 | Baidu Usa Llc | Systems and methods for improved user interface |
US11556775B2 (en) | 2017-10-24 | 2023-01-17 | Baidu Usa Llc | Systems and methods for trace norm regularization and faster inference for embedded models |
US10623557B2 (en) * | 2018-05-30 | 2020-04-14 | International Business Machines Corporation | Cognitive telephone fraud detection |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5884259A (en) * | 1997-02-12 | 1999-03-16 | International Business Machines Corporation | Method and apparatus for a time-synchronous tree-based search strategy |
US5983180A (en) | 1997-10-23 | 1999-11-09 | Softsound Limited | Recognition of sequential data using finite state sequence models organized in a tree structure |
GB9802836D0 (en) * | 1998-02-10 | 1998-04-08 | Canon Kk | Pattern matching method and apparatus |
US6374222B1 (en) * | 1998-08-12 | 2002-04-16 | Texas Instruments Incorporated | Method of memory management in speech recognition |
US6389416B1 (en) * | 1999-02-19 | 2002-05-14 | International Business Machines Corporation | Depth first method for generating itemsets |
US6574595B1 (en) * | 2000-07-11 | 2003-06-03 | Lucent Technologies Inc. | Method and apparatus for recognition-based barge-in detection in the context of subword-based automatic speech recognition |
-
2000
- 2000-07-31 US US09/628,828 patent/US7035802B1/en not_active Expired - Fee Related
-
2001
- 2001-07-31 TW TW090118668A patent/TW533403B/zh not_active IP Right Cessation
- 2001-07-31 AT AT01306565T patent/ATE293275T1/de not_active IP Right Cessation
- 2001-07-31 EP EP01306565A patent/EP1178466B1/en not_active Expired - Lifetime
- 2001-07-31 DE DE60109999T patent/DE60109999T2/de not_active Expired - Fee Related
- 2001-07-31 ES ES01306565T patent/ES2238394T3/es not_active Expired - Lifetime
- 2001-07-31 JP JP2001232574A patent/JP2002082689A/ja active Pending
- 2001-07-31 CN CNB011372982A patent/CN1156820C/zh not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
DE60109999D1 (de) | 2005-05-19 |
US7035802B1 (en) | 2006-04-25 |
ATE293275T1 (de) | 2005-04-15 |
CN1156820C (zh) | 2004-07-07 |
EP1178466B1 (en) | 2005-04-13 |
JP2002082689A (ja) | 2002-03-22 |
CN1349211A (zh) | 2002-05-15 |
DE60109999T2 (de) | 2005-09-01 |
TW533403B (en) | 2003-05-21 |
EP1178466A2 (en) | 2002-02-06 |
EP1178466A3 (en) | 2003-04-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
ES2238394T3 (es) | Sistema de reconocimiento que utiliza arboles lexicos. | |
Kočiský et al. | Semantic parsing with semi-supervised sequential autoencoders | |
CN105336322B (zh) | 多音字模型训练方法、语音合成方法及装置 | |
US9058811B2 (en) | Speech synthesis with fuzzy heteronym prediction using decision trees | |
Liu et al. | Gram-CTC: Automatic unit selection and target decomposition for sequence labelling | |
US5987404A (en) | Statistical natural language understanding using hidden clumpings | |
Yu et al. | Sequential labeling using deep-structured conditional random fields | |
Gandrabur et al. | Confidence estimation for translation prediction | |
Reichl et al. | Robust decision tree state tying for continuous speech recognition | |
CN107195295A (zh) | 基于中英文混合词典的语音识别方法及装置 | |
JPH0362000A (ja) | 陰マルコフモデル音声認識の効率的簡潔化アルゴリズム | |
ten Bosch et al. | A computational model of language acquisition: the emergence of words | |
Nocera et al. | Phoneme lattice based A* search algorithm for speech recognition | |
Bolanos | The bavieca open-source speech recognition toolkit | |
Sak et al. | Discriminative reranking of ASR hypotheses with morpholexical and n-best-list features | |
Heigold et al. | Discriminative HMMs, log-linear models, and CRFs: what is the difference? | |
ES2254118T3 (es) | Dispositivo para reconocimiento de voz que lleva a cabo una regla de permutacion sintactica. | |
Wang et al. | RNN-based prosodic modeling for mandarin speech and its application to speech-to-text conversion | |
JP4595415B2 (ja) | 音声検索システムおよび方法ならびにプログラム | |
JP2015118354A (ja) | 音声認識装置および音声認識方法 | |
KR101005786B1 (ko) | 차량용 네비게이션 단말기의 음성인식 방법 | |
CN117272992B (zh) | 一种融合物性知识提示的数学应用题机器解答***及方法 | |
Hammerton | Learning to segment speech with self-organising maps | |
JP4226942B2 (ja) | アクセント位置推定方法、装置およびプログラム | |
Rybach | Investigations on search methods for speech recognition using weighted finite-state transducers |