Post

Progreso JdeRobot - Semana 4 (28/09 - 02/10)

Progreso JdeRobot - Semana 4 (28/09 - 02/10)

Esta semana nos encargamos de incorporar AudioContext y sustituir Whisper por Faster-Whisper, terminando un programa básico para envío continuo de audio.

1. AudioContext

AudioContext es una API de la Web Audio API que permite trabajar con el audio en tiempo real, pudiendo controlar cómo se captura, procesa y transforma el sonido. Así que lo he incorporado al programa para sustituir MediaRecorder en la captura del audio. La principal diferencia es que, en lugar de recibir el audio comprimido en formatos como webm/opus, AudioContext permite trabajar directamente con los datos de audio en formato PCM.

Para ello, capturamos el audio del micrófono con getUserMedia() y lo conectamos con un AudioContext. Mediante un AudioWorklet, se procesan las muestras de audio en tiempo real y se envían al programa principal y posteriormente al servidor a través del WebSocket.

De esta forma podemos enviar el audio de forma continua. Además, este formato de audio es compatible con Silero, que se utiliza antes de realizar la transcripción con Whisper para detectar voz y silencios.

El flujo del programa por ahora quedaría de esta forma : Micrófono → AudioContext y AudioWorklet → datos PCM → WebSocket → Silero → Faster-Whisper → Texto

2. Flujo de comunicación en Unobotics

También estuve mirando cómo funciona el flujo de comunicación internamente dentro de un ejercicio de Unobotics, en este caso del ejercicio Basic Computer Vision, para entender cómo se envían los mensajes a través de WebSocket entre la interfaz web y el servidor.


Planes para la Siguiente Semana

  • Preparar la ejecución del proyecto en Docker.
This post is licensed under CC BY 4.0 by the author.