Desplegando un Asistente de Voz Inteligente Offline de Extremo a Extremo
Descripción General
Este proyecto demuestra un asistente de voz inteligente completamente local diseñado para oficinas inteligentes y espacios inteligentes. Utiliza el array de micrófonos ReSpeaker XVF3800 para captura de voz de alta calidad, combinado con speech-to-text (STT) en el dispositivo para transcripción precisa. Un modelo de lenguaje grande (LLM) local procesa las consultas del usuario de manera inteligente sin depender de la nube, asegurando privacidad y baja latencia. Text-to-speech (TTS) genera respuestas de voz naturales, permitiendo interacción en tiempo real. El sistema es ideal para entornos como oficinas, centros comerciales, quioscos y salas de reuniones donde el control de voz seguro y offline es esencial.
Hardware Requerido
| ReSpeaker XVF3800 | Jetson AGX Orin 32GB H01 Kit |
|---|---|
![]() | ![]() |
Preparar los Dispositivos
ReSpeaker XVF3800 – Instalación de Firmware USB
Asegúrate de que el Array de Micrófonos USB ReSpeaker XVF3800 esté actualizado con el firmware más reciente antes de usarlo.
-
Sigue la guía oficial de actualización de firmware:
- Actualización de Firmware ReSpeaker XVF3800 Seeed Studio Wiki
Este paso asegura entrada de audio USB estable y compatibilidad con pipelines de procesamiento de voz posteriores.
NVIDIA Jetson AGX Orin – Configuración Inicial
Si tu Jetson AGX Orin aún no está configurado, flashéalo con la versión apropiada de JetPack.
-
Guía de configuración oficial:
- Jetson AGX Orin 32GB H01 Flash JetPack Seeed Studio Wiki
Después de flashear y arrancar en Ubuntu, actualiza el sistema e instala los componentes de JetPack:
sudo apt update
sudo apt install nvidia-jetpack
Configuración del Entorno CUDA
Verificar la Versión de CUDA Instalada
Verifica qué directorios de CUDA están disponibles:
ls /usr/local
Deberías ver una carpeta como cuda, cuda-12.x, o similar.
Agregar Rutas de CUDA Permanentemente
Edita tu archivo de configuración de shell:
nano ~/.bashrc
Agrega las siguientes líneas al final (reemplaza con tu versión real de CUDA):
# CUDA paths
export PATH=/usr/local/cuda-(your_version)/bin${PATH:+:${PATH}}
export LD_LIBRARY_PATH=/usr/local/cuda-(your_version)/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
Aplica los cambios:
source ~/.bashrc
Verificar la Instalación de CUDA
Confirma que CUDA esté correctamente instalado y accesible:
nvcc --version
Si se muestra la versión de CUDA, el soporte de GPU está listo.
Instalar Whisper con Soporte de GPU
Clonar el Repositorio de Whisper
Whisper se construye desde el código fuente para habilitar la aceleración CUDA.
-
Repositorio:
Instala las dependencias requeridas:
sudo apt-get install libsdl2-dev
Construir Whisper con CUDA Habilitado
Desde el directorio whisper.cpp, ejecuta:
cmake -B build -DGGML_CUDA=1 -DWHISPER_SDL2=ON
cmake --build build -j --config Release
Esto compila Whisper con aceleración de GPU y soporte SDL.
Descargar el Modelo de Whisper
Descarga el modelo de Whisper desde Hugging Face:
-
Modelo:
- ggml-base-q8_0.bin
Coloca el modelo descargado dentro del directorio models/:
whisper.cpp/models/
Ejecutar el Servidor de Whisper
Inicia el servidor de Whisper con soporte de GPU:
cd whisper.cpp
./build/bin/whisper-server \
-m models/ggml-base.en.bin \
--host 0.0.0.0 \
--port 8080 \
--gpu
Esto lanza un servidor de speech-to-text en tiempo real accesible a través de la red.
Instalar Ollama para Inferencia de LLM Local
Ollama oficialmente soporta dispositivos NVIDIA Jetson y proporciona ejecución de LLM local acelerada por CUDA.
Instala Ollama usando el instalador oficial:
curl -fsSL https://ollama.com/install.sh | sh
Ejecuta el modelo Gemma 3:
ollama run gemma3:4b
Asistente de IA de Voz Inteligente – Guía de Inicio Rápido
Resumen de Arquitectura
- Detección de Palabra de Activación – Escucha continuamente una frase de activación predefinida.
- Speech-to-Text (STT) – Convierte el habla del usuario en texto usando un motor de reconocimiento de voz local.
- LLM potenciado por RAG – Recupera contexto relevante de una base de datos vectorial y genera respuestas inteligentes usando un LLM local.
- Text-to-Speech (TTS) – Convierte la respuesta generada en habla de sonido natural.
Todo el procesamiento se realiza localmente para asegurar baja latencia, privacidad de datos y capacidad offline.
Repositorio del proyecto:
Clona el repositorio
git clone https://github.com/KasunThushara/LocalVoiceAssistant.git
Inicio Rápido
Instalar Dependencias
Asegúrate de que Python y las dependencias del sistema requeridas estén instaladas, luego ejecuta:
pip install -r requirements.txt
Descargar un Modelo de Text-to-Speech (TTS)
Este proyecto usa modelos Piper TTS. A continuación se muestra un ejemplo usando una voz masculina en inglés (Amy):
# Example: female voice (amy)
wget -O models/en_US-amy-low.onnx \
https://huggingface.co/rhasspy/piper-voices/resolve/main/en/en_US/amy/low/en_US-amy-low.onnx
wget -O models/en_US-amy-low.onnx.json \
https://huggingface.co/rhasspy/piper-voices/resolve/main/en/en_US/amy/low/en_US-amy-low.onnx.json
Puedes reemplazar esto con cualquier modelo de voz Piper compatible según sea necesario.
Descargar Modelo de Embedding (Configuración Única)
El modelo de embedding es requerido para construir la base de datos vectorial usada por el pipeline RAG.
python download_sentence_tf.py
Este paso solo necesita ejecutarse una vez.
Construir la Base de Datos Vectorial
Crea o reconstruye la base de datos vectorial usada para recuperación contextual:
python test_scripts/rebuild_vector.py
Este proceso indexa tus documentos y los prepara para búsqueda semántica rápida.
Ejecutar la Aplicación
Inicia el Asistente de IA de Voz Inteligente:
python app.py
Una vez en funcionamiento, el sistema escuchará la palabra de activación y responderá a consultas de voz en tiempo real.
Referencias
- Ejemplo de Servidor Whisper:
- Repositorio de Whisper:
- Biblioteca de Modelos Ollama:
- Guía de Ollama en Jetson:
Soporte Técnico y Discusión del Producto
¡Gracias por elegir nuestros productos! Estamos aquí para brindarle diferentes tipos de soporte para asegurar que su experiencia con nuestros productos sea lo más fluida posible. Ofrecemos varios canales de comunicación para atender diferentes preferencias y necesidades.

