Necesario para el funcionamiento del server

1. Crear entorno virtual

py -3.11 -m venv realtime-env311

2. Activar el entorno virtual

En Windows:

.\realtime-env311\Scripts\activate

3. Instalar dependencias

⚠️ Asegúrase de tener los drivers CUDA correctamente instalados en el sistema para la aceleración por GPU.

pip install openwakeword
pip install "ctranslate2[cuda]" faster-whisper openai websockets sounddevice numpy
pip install pyaudio
pip install soundfile
pip install pvporcupine
pip install webrtcvad-wheels
pip install --upgrade torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu121

4. Notas adicionales

  • openwakeword: Modelo de activación por palabra clave.
  • ctranslate2[cuda] + faster-whisper: Transcripción optimizada en tiempo real.
  • sounddevice, pyaudio, soundfile: Manejo de entrada/salida de audio.
  • pvporcupine: Wake word detection alternativo.
  • webrtcvad-wheels: Detección de voz activa (VAD).
  • torch, torchaudio: Backend de redes neuronales y audio.

Ejemplo para iniciar el server

Dentro de minimal_server

python -m server.stt_server --model large-v2 --rt-model tiny --initial_prompt=''

whisper.cpp (C++)

whisper.cpp es una implementación en C++ del modelo Whisper. Es ligera, rápida, no requiere Python y puede correr en tiempo real en CPU.

Instalación y compilación

Clonar el repositorio:

git clone https://github.com/ggerganov/whisper.cpp
cd whisper.cpp

Compilar el binario:

make

Esto genera el binario main en la carpeta /build/bin/.

Descargar modelos

# Modelo pequeño (rápido, menos preciso)
wget https://huggingface.co/ggerganov/whisper.cpp/resolve/main/ggml-tiny.bin

# Modelo más preciso 
wget https://huggingface.co/ggerganov/whisper.cpp/resolve/main/ggml-large-v2.bin

Ejemplo de uso desde consola

Este comando transcribe el archivo audio.wav usando el modelo tiny.bin.

./build/bin/whisper-cli -m models/ggml-tiny.bin -f ejemplo/audio.wav -l es
Description
No description provided
Readme 1.1 GiB
Languages
Elixir 64.2%
JavaScript 16.6%
Erlang 14.7%
HTML 1.3%
C++ 0.8%
Other 2.3%