¿Cómo se crea eficientemente un archivo de gramática para el reconocimiento de voz dada una gran lista de palabras?

StackOverflow https://stackoverflow.com/questions/653262

  •  19-08-2019
  •  | 
  •  

Pregunta

Es fácil escribir un archivo de gramática para el reconocimiento de voz de solo 50 palabras, ya que puede hacerlo manualmente. ¿Cuál es la forma más fácil y eficiente de hacerlo si tiene 10,000 o 100,000 palabras?

Ejemplo:
Digamos que tenemos " RC cola " y "Pepsi cola". Tendríamos un archivo de gramática que consta de 2 reglas:
BEBIDA: (COLANAME? [Refresco de cola de coca cola])
COLANAME: [rc pepsi]
Reconocerá `` RC '', `` RC Coke '', `` RC Cola '', `` RC Soda '', `` Pepsi '', `` Pepsi Coke '', `` Pepsi Cola ''. y "Pepsi Soda".

Editar: Estoy hablando de gramática para el reconocimiento de voz. Los sistemas de reconocimiento de voz necesitan un archivo de gramática adjunto para que sepan qué reconocer (gsl, grxml). Y en realidad también estaba pensando no solo en palabras, sino en algo como nombres donde no se puede clasificar en categorías.

¿Fue útil?

Solución 4

No tengo una respuesta que resuelva mis problemas, pero la respuesta de Yuval sugiere claramente que este es un tema que aún está en desarrollo y no es un tema suficientemente maduro. Entiendo que probablemente no exista una solución gramatical fácil en este momento (al menos fuera de los laboratorios de investigación). La única solución para hacer una buena gramática en este momento es probablemente el aprendizaje constante de las entradas del usuario y la refactorización ágil de los archivos de gramática.

Otros consejos

Ahora veo. Te refieres a las gramáticas. Los formatos de gramática que especifique son primos de gramáticas libres de contexto. Existe un campo de investigación en torno al aprendizaje automático de gramáticas libres de contexto. Las gramáticas probabilísticas sin contexto son fundamentales en este campo. Consulte Notas de Roni rosenfeld (PostScript) en aprendiendo PCFG, la versión bayesiana (postscript comprimido) y < a href = "http://www.demarcken.org/carl/papers/sigdat.pdf" rel = "noreferrer"> aprendizaje PCFG no supervisado (PDF) . Este es un campo de investigación activo, y ha cambiado desde que se escribieron estos documentos. Eugene Charniak es un investigador prolífico en este campo.

Para un léxico de 50-100 mil palabras, es casi seguro que sea mejor construir una gramática de dictado, en lugar de tratar de construir una gramática libre de contexto. Microsoft tiene su Kit de recursos de dictado disponible de forma gratuita; No lo he usado, así que no puedo comentar qué tan útil es.

Supongo que te refieres al etiquetado de parte del discurso; El enfoque más rápido es utilizar un etiquetador automático y verificar manualmente (y corregir) los resultados. Incluso si el etiquetador tiene una tasa de aciertos tan baja como 60-70%, seguirá reduciendo significativamente la cantidad de trabajo.

Ideas totalmente aleatorias / vauge fuera de mi cabeza:

-Podrías tratar de clasificar las palabras en categorías (sustantivo, verbo, etc.) y luego formar formas potencialmente correctas para declaraciones / oraciones completas basadas en las clases de palabras. A continuación, puede intentar ajustar los nuevos datos de prueba a un modelo previamente definido en función de las palabras y el orden en que se utilizan.

-También sería curioso sobre el uso de algún tipo de algoritmo de aprendizaje automático para aprender el uso adecuado de las palabras basadas en algún tipo de datos de capacitación o literatura. Una vez que haya entrenado su algoritmo, podría intentar clasificar los nuevos datos entrantes en función de los resultados anteriores.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top