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.
¿Hay alguna explicación de algoritmo o biblioteca para hacer detección de palabras clave en una secuencia de audio sin usar CMUSphinx? –
Claro, puede buscar en google "detección de palabras clave" –
Sí, hay un montón de trabajos de investigación, pero ninguna implementación muerta simple –