## Necesario para el funcionamiento del server ### 1. Crear entorno virtual ```bash py -3.11 -m venv realtime-env311 ``` ### 2. Activar el entorno virtual **En Windows:** ```bash .\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. ```bash 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 ```bash 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: ```bash git clone https://github.com/ggerganov/whisper.cpp cd whisper.cpp ``` Compilar el binario: ```bash make ``` Esto genera el binario main en la carpeta `/build/bin/`. ### Descargar modelos ```bash # 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. ```bash ./build/bin/whisper-cli -m models/ggml-tiny.bin -f ejemplo/audio.wav -l es ```