your source raspberry own open jasper jarvis create linux speech-recognition speech raspberry-pi human-computer-interface

linux - source - raspberry pi jasper



Reconocimiento de disparador vocal sin internet (1)

Mono es un framework que puede instalar en el pi para permitirle compilar y ejecutar aplicaciones C #, y creo que tiene soporte para System.Speech y System.Speech.Recognition. Puede usarlos para escribir fácilmente una aplicación y simplemente especificar qué palabras quiere que escuche. Escríbalo en tu computadora y simplemente mueve el exe al pi y ejecútalo con un micrófono colgando del pi. Hice una aplicación similar, pero utilicé un servidor de socket y envié comandos de esa manera. La forma de configurar los comandos es bastante simple.

SpeechRecognitionEngine rec = new SpeechRecognitionEngine(new System.Globalization.CultureInfo("en-US")); rec.SetInputToDefaultAudioDevice(); rec.SpeechRecognized += speech_recognized; var c = new Choices(); c.Add("Trigger"); var gb = new GrammarBuilder(c); var g = new Grammar(gb); rec.LoadGrammar(g); rec.RecognizeAsync(RecognizeMode.Multiple); rec.MaxAlternates = 0; private void speech_recognized(object speechsender, SpeechRecognizedEventArgs e) { if(e.Result.Text == "Trigger"){ //run your script } }

El reconocimiento de voz en dispositivos portátiles generalmente se desencadena presionando un botón. ¿Cómo hago para activar el reconocimiento de voz sin eso? Mi dispositivo basado en Raspberry PI intencionalmente no tiene nada con lo que los usuarios puedan interactuar de forma manual: solo hay un micrófono colgando de la pared.

Estoy tratando de implementar una forma de que comprenda un simple comando de activación que iniciaría una secuencia de acciones. En resumen, quiero ejecutar un solo script .sh cada vez que "oye" un disparador de audio. No quiero que comprenda nada más que un disparador, no tiene sentido que tenga que decodificarse desde el propio disparador, como el nombre del guión o los parámetros. Una función muy simple: "escuchar el desencadenador -> ejecutar el guión .sh"

He explorado diferentes opciones:

  1. Obtener una transmisión de audio continuamente enviada al servicio de reconocimiento de voz de Google. No es una buena idea. Se desperdicia mucho tráfico y recursos.

  2. Obtener una aplicación de reconocimiento de voz sin internet para escuchar continuamente la secuencia de audio y "seleccionar" las palabras desencadenantes - eso es un poco mejor pero una pérdida de recursos y estos sistemas tienen que enseñar muestras de audio - esto elimina la capacidad de rápidamente establecer nombres personalizados para dispositivos

  3. Use algún tipo de procesamiento de tono para que reaccione ante una secuencia de sonidos fuertes, con las manos aplaudidas dos veces o algo similar, no está mal, pero supongo que mis manos se caerán después de que lo prueben adecuadamente o me mataré miembro de la familia ya que normalmente experimento mis juguetes por la noche cuando están en camas.

  4. Reconocimiento de silbidos: no muy diferente de la opción anterior, pero tus palmas no duelen y es probable que sobreviva a las pruebas si aprendo a silbar en silencio. Pude encontrar un artículo de IBM sobre el comando de una computadora a través de comandos de silbido; el enfoque es más o menos el mismo para las aplicaciones locales de reconocimiento de voz, pero usted le enseña a entender las diferentes secuencias de silbidos. Sin embargo, a partir de eso no entendí cómo podría enseñarlo a entender cualquier silbido, independientemente de su tono.

En cierto modo me gusta la idea del silbato, parece que debería ser la que menos recursos tiene entre otras opciones, ¿cómo puedo hacer esto?

¿Hay otros desencadenadores vocales que podrían implementarse fácilmente dado que el hardware Raspberry PI me limita?