2008-08-18 25 views
9

Estoy realmente interesado en los algoritmos de conversión de voz a texto, pero no estoy seguro de dónde empezar a estudiar sobre ellos. Un montón de búsquedas me llevaron al this, pero es de 1996 y estoy bastante seguro de que ha habido mejoras desde entonces.¿Cómo empezar a hablar de voz a texto?

¿Alguien que tenga alguna experiencia con este tipo de cosas tiene alguna recomendación para leer/código fuente para examinar? O simplemente consejos generales sobre lo que debería tratar de aprender si quiero entrar en el mundo de la escritura de programas de reconocimiento de voz (a veces es difícil saber qué buscar si no tienes mucho conocimiento sobre el dominio).

Editar: Me gustaría hacer algo multiplataforma, pero por el momento estaría apuntando a Linux.

Edit 2: Gracias csmba por la respuesta bien pensada. En este momento, estoy interesado principalmente en poder crear aplicaciones que permitan la automatización o la ejecución de diferentes comandos a través de la voz. Entonces, una cantidad limitada de comandos reconocibles que pueden encadenarse. Un ejemplo sería un reproductor de música que tomaba comandos como "Reproducir el álbum Hello Everything de Squarepusher" o un iniciador de aplicaciones que permitía al usuario crear atajos de voz para iniciar aplicaciones específicas.

Me doy cuenta de que es un problema bastante gigante, y que no tengo ni el nivel de conocimiento requerido ahora para abordar la implementación de un motor de reconocimiento completo, aunque las técnicas involucradas me fascinan, y es algo que ' Me gusta trabajar para hacer. Con toda probabilidad, probablemente terminaré recogiendo un libro o dos sobre el tema y estudiando/jugando con implementaciones "simples" en mi tiempo libre.

Respuesta

8

Ésta es una pregunta enormes, no sabría cómo empezar ... Así que permítanme trato que le da los "términos" derecha para que pueda refinar su búsqueda:

En primer lugar, entender que el Reconocimiento de voz es un tema diverso y complicado, y tiene muchas aplicaciones diferentes.Las personas tienden a mapear este dominio a la primera cosa que se les viene a la cabeza (generalmente, eso sería que las computadoras entiendan lo que estás diciendo en los sistemas de IVR). Así que primero vamos a distinguise el concepto en las principales categorías:

humano-a-Máquina: aplicaciones que tienen que ver con la comprensión de lo que un ser humano está diciendo, pero el ser humano sabe que está hablando con una máquina y la gramática es muy limitado. Ejemplos de ello son

  • automatización ordenador
  • especializada: Pilotos de la automatización de algunos controles, por ejemplo, (ruido es un gran problema)
  • sistemas
  • IVR (Interactive Voice Response) como Google-411 o cuando se llama al banco y el ordenador en el otro lado dice "decir 'servicio' para obtener el servicio al cliente"

de humano a humano (habla espontánea): se trata de un problema más complejo más grande. Aquí también podemos dividirlo en diferentes applciations:

  • Call Center: conversación entre agente y cliente, la calidad de teléfono, comprimido
  • Inteligencia: de radio/teléfono conversaciones/en vivo entre 2 o más individuos

Ahora, Speech-To-Text no es lo que debería decir que le importa. Lo que te importa es resolver un problema. Se usan diferentes tecnologías para resolver diferentes problemas. Vea una descripción general here de algunos de ellos. para resumir, otros enfoques son la transcripción fonética, LVCSR y de base directa.

Además, ¿le interesa ser el PHd detrás de la tecnología? necesitaría un equivalente de Masters que implique Procesamiento de señal y probablemente un PHd a la vanguardia. En ese caso, trabajará para una empresa que desarrolle el motor de voz . Empresas como Nuance e IBM son las más importantes, pero también existen Phillips y otras startups.

Por otro lado, si quiere ser el que implementa las aplicaciones, no estará trabajando en el motor, sino trabajando en la construcción de la aplicación que USE el motor. Una buena analogía que creo que es de la industria del juego: ¿Está desarrollando el motor gráfico (como el motor Cry) o trabajando en uno de varios cientos de juegos, todos usan el mismo motor gráfico?

No me malinterprete, hay mucho para trabajar en la calidad de la búsqueda también fuera de IBM/Nuance del mundo. El motor suele ser muy abierto, y hay que realizar una gran cantidad de ajustes algorítmicos que pueden afectar drásticamente el rendimiento. Cada aplicación comercial tiene diferentes restricciones y funciones de costo/beneficio, por lo que puede realizar experimentos durante muchos años para crear mejores aplicaciones basadas en el reconocimiento de voz.

una cosa más: en general, también querrás tener buenas estadísticas de fondo, la más baja en la pila que quieres que sea.

En este punto en el tiempo, estoy principalmente interesado en ser capaz de crear aplicaciones que permitan la automatización

Bueno, estamos convergiendo aquí ... Entonces usted no tiene interés en "del Habla a texto".Las palabras de moda lo llevan al mundo de la transcripción completa, un lugar al que no necesita ir. Usted debe centrarse en algunas de las tecnologías más humano a máquina como XML de voz y las que se utilizan en los sistemas de IVR (Nuance es el jugador más grande allí)

0

¿A qué plataforma estás apuntando? Hay Microsoft Speech APIs que puede usar si es para windows.

+0

¡Es una API! ¿Por qué "para Windows" ??????? –

3

Definitivamente recomendaría recoger a book o dos si es nuevo en el campo. No tengo experiencia en el campo, así que no puedo hacer una recomendación. Si todavía estás en la universidad (o aún tienes vínculos estrechos), deberías averiguar si alguno de tus profesores puede hacer una recomendación.

La encuesta que vinculó es probablemente también un recurso excelente. Estoy seguro de que ha habido avances desde 1996, pero es poco probable que los fundamentos hayan cambiado fundamentalmente. Si la encuesta está bien escrita, entonces valdría la pena leerla.

2

He trabajado con IBMs ViaVoice product. Tiene un buen motor ASR (reconocimiento automático de voz) y un buen motor de conversión de texto a voz.

Los sitios web no es muy bueno, pero esto es un enlace de la versión Embedded http://www-01.ibm.com/software/voice/support/

Es independiente de la plataforma, sin embargo, y todo funciona a través de una arquitectura MVC usando vxml una variante de XML para los propósitos de voz.