2011-03-03 22 views
6

¿Alguien conoce un Sistema de localización de palabras clave que está disponible de manera gratuita y que posiblemente proporciona API?Detección de palabras clave en Speech

CMU Sphinx 4 y MS Speech API son motores de reconocimiento de voz y no se pueden usar con KWS.

SRI tiene una palabra clave sistema de detección, pero no enlaces de descarga, ni siquiera para la evaluación. (Incluso no pude encontrar en ningún lado un enlace para contactarlos por su software)

Encontré una here pero es una demostración y limitada.

Respuesta

3

CMU Sphinx implementa manchado palabra clave en el motor pocketsphinx, ver los detalles del FAQ entry.

Para reconocer una sola frase clave puede ejecutar decodificador en el modo “búsqueda frase clave”.

Del comando de línea de try:

pocketsphinx_continuous -infile file.wav -keyphrase “oh mighty computer” -kws_threshold 1e-20 

A partir del código:

ps_set_keyphrase(ps, "keyphrase_search", "oh mighty computer"); 
ps_set_search(ps, "keyphrase_search); 
ps_start_utt(); 
/* process data */ 

También puede encontrar ejemplos de Python y Android/Java en nuestras fuentes. Python código es el siguiente, llena ejemplo here:

# Process audio chunk by chunk. On keyphrase detected perform action and restart search 
decoder = Decoder(config) 
decoder.start_utt() 
while True: 
    buf = stream.read(1024) 
    if buf: 
     decoder.process_raw(buf, False, False) 
    else: 
     break 
    if decoder.hyp() != None: 
     print ([(seg.word, seg.prob, seg.start_frame, seg.end_frame) for seg in decoder.seg()]) 
     print ("Detected keyphrase, restarting search") 
     decoder.end_utt() 
     decoder.start_utt() 

Umbral debe ser afinado para cada frase clave en un conjunto de datos de prueba para conseguir el equilibrio adecuado perdió detecciones y falsas alarmas. Puede probar valores como 1e-5 a 1e-50.

Para una mejor precisión, es mejor tener frases clave con 3-4 sílabas. Las frases demasiado cortas se confunden fácilmente.

También puede buscar frase clave múltiple, crear un archivo de keyphrase.list así:

oh mighty computer /1e-40/ 
    hello world /1e-30/ 
    other_phrase /other_phrase_threshold/ 

y utilizarlo en el decodificador con -kws opción de configuración.

pocketsphinx_continuous -inmic yes -kws keyphrase_list 

Esta característica aún no está implementada en el decodificador sphinx4.

+0

¿Hay alguna explicación de algoritmo o biblioteca para hacer detección de palabras clave en una secuencia de audio sin usar CMUSphinx? –

+0

Claro, puede buscar en google "detección de palabras clave" –

+0

Sí, hay un montón de trabajos de investigación, pero ninguna implementación muerta simple –