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
Application number
ES01306565T
Other languages
English (en)
Inventor
Luca Rigazio
Patrick Nguyen
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Panasonic Holdings Corp
Original Assignee
Matsushita Electric Industrial Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Matsushita Electric Industrial Co Ltd filed Critical Matsushita Electric Industrial Co Ltd
Application granted granted Critical
Publication of ES2238394T3 publication Critical patent/ES2238394T3/es
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/31Indexing; Data structures therefor; Storage structures
    • G06F16/316Indexing structures
    • G06F16/322Trees
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/08Speech classification or search

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 estructura de datos preferida
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
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.
Comportamiento dinámico del algoritmo y propagación de la envolvente de nodos activos
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 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)
1
3
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}.
ES01306565T 2000-07-31 2001-07-31 Sistema de reconocimiento que utiliza arboles lexicos. Expired - Lifetime ES2238394T3 (es)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

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