Nota
Hola, bienvenido a la Comunidad de Entusiastas de Raspberry Pi, Arduino y ESP32 de SunFounder en Facebook. Profundice en Raspberry Pi, Arduino y ESP32 junto a otros entusiastas.
¿Por qué unirte?
Soporte de Expertos: Resuelve problemas post-venta y desafíos técnicos con la ayuda de nuestra comunidad y equipo.
Aprende y Comparte: Intercambia consejos y tutoriales para mejorar tus habilidades.
Vistas Previas Exclusivas: Obtén acceso anticipado a nuevos anuncios de productos y vistas previas.
Descuentos Especiales: Disfruta de descuentos exclusivos en nuestros productos más nuevos.
Promociones y Sorteos Festivos: Participa en sorteos y promociones de temporada.
👉 ¿Listo para explorar y crear con nosotros? Haz clic en [here] y únete hoy.
7. Asistente de Voz con IA
Esta lección convierte su Pironman 5 Pro MAX en un asistente de IA basado en voz. Con el código proporcionado, el robot: esperará una palabra de activación, transcribirá su voz con Vosk, la enviará a un LLM de OpenAI y responderá hablando usando Piper TTS.
Antes de Empezar
Asegúrese de tener:
1. Probando Piper — La voz de Piper funciona (por ejemplo, puede reproducir “Hello”).
Probar Vosk — Vosk STT funciona para su idioma (por ejemplo,
en-us).5. Conectando a LLMs en Línea — Su clave API de OpenAI guardada en
secret.pycomoOPENAI_API_KEY.Un micrófono y altavoz funcionando en Pironman 5 Pro MAX.
Una conexión de red estable (el LLM está en línea).
Ejecutar el Ejemplo
cd ~/sunfounder-voice-assistant/examples/
sudo python3 voice_assistant.py
Configuración utilizada por el código:
LLM: OpenAI (
gpt-4o-mini)TTS: Piper (
en_US-ryan-low)STT: Vosk (
en-us)Palabra de activación:
"hey buddy"Entrada por teclado: habilitada (entrada manual opcional)
Modo imagen: habilitado (
WITH_IMAGE=True) — requiere un LLM multimodal si decide usar imágenes más adelante
Qué sucede:
El asistente muestra un mensaje de bienvenida con la frase de activación.
Escucha “hey buddy”.
Después de la activación, su voz se transcribe (Vosk → texto).
El texto se envía a OpenAI (gpt-4o-mini) para obtener una respuesta.
La respuesta se reproduce con Piper (
en_US-ryan-low).
Ejemplo de interacción
Usted: Hey Buddy
Robot: ¡Hola!
Usted: ¿Cuál es la capital de Italia?
Robot: La capital de Italia es Roma.
Código
from sunfounder_voice_assistant.voice_assistant import VoiceAssistant
from sunfounder_voice_assistant.llm import OpenAI as LLM
from secret import OPENAI_API_KEY as API_KEY
llm = LLM(
api_key=API_KEY,
model="gpt-4o-mini",
)
# Nombre del robot
NAME = "Buddy"
# Habilitar imagen, necesita configurar un modelo de lenguaje multimodal
WITH_IMAGE = True
# Configurar modelos e idiomas
LLM_MODEL = "gpt-4o-mini"
TTS_MODEL = "en_US-ryan-low"
STT_LANGUAGE = "en-us"
# Habilitar entrada por teclado
KEYBOARD_ENABLE = True
# Habilitar palabra de activación
WAKE_ENABLE = True
WAKE_WORD = [f"hey {NAME.lower()}"]
# Configurar respuesta a la activación, dejar vacío para deshabilitar
ANSWER_ON_WAKE = "Hi there"
# Mensaje de bienvenida
WELCOME = f"Hi, I'm {NAME}. Wake me up with: " + ", ".join(WAKE_WORD)
# Configurar instrucciones
INSTRUCTIONS = f"""
You are a helpful assistant, named {NAME}.
"""
va = VoiceAssistant(
llm,
name=NAME,
with_image=WITH_IMAGE,
tts_model=TTS_MODEL,
stt_language=STT_LANGUAGE,
keyboard_enable=KEYBOARD_ENABLE,
wake_enable=WAKE_ENABLE,
wake_word=WAKE_WORD,
answer_on_wake=ANSWER_ON_WAKE,
welcome=WELCOME,
instructions=INSTRUCTIONS,
)
if __name__ == "__main__":
va.run()
Explicación del código:
OpenAI(..., model="gpt-4o-mini")— Usa OpenAI como único LLM en esta lección.NAME/WAKE_WORD— Personaliza el asistente (“Buddy”, “hey buddy”).WITH_IMAGE=True— Habilita el modo imagen en el asistente (sin lógica de entrada/salida de imágenes aquí).TTS_MODEL="en_US-ryan-low"— Voz de Piper utilizada para las respuestas.STT_LANGUAGE="en-us"— Idioma de Vosk para el reconocimiento.KEYBOARD_ENABLE=True— Permite entrada manual de texto opcional durante la depuración.WELCOME/INSTRUCTIONS— Mensaje de inicio y personalidad del asistente/indicaciones del sistema.va.run()— Inicia el bucle: activación → escuchar → LLM → hablar.
Cambiar a Otros LLM o TTS
Puede cambiar fácilmente a otros LLM, TTS o idiomas de STT con solo unas pocas ediciones:
LLM compatibles:
OpenAI
Doubao
Deepseek
Gemini
Qwen
Grok
1. Probando Piper — Consulte los idiomas compatibles con Piper TTS.
Probar Vosk — Consulte los idiomas compatibles con Vosk STT.
Para cambiar, simplemente modifique la parte de inicialización en el código:
from sunfounder_voice_assistant.llm import Gemini as LLM
llm = LLM(api_key="YOUR_KEY", model="gemini-pro")
# Configurar modelos e idiomas
TTS_MODEL = "en_US-ryan-low"
STT_LANGUAGE = "en-us"
Solución de Problemas
El robot no responde a la palabra de activación
Verifique que el micrófono funcione.
Asegúrese de que
WAKE_ENABLE = True.Ajuste la palabra de activación para que coincida con su pronunciación.
Reduzca el ruido de fondo y hable claramente.
No sale sonido del altavoz
Verifique el nombre del modelo TTS (por ejemplo,
en_US-ryan-low).Pruebe Piper o Espeak manualmente.
Verifique la conexión del altavoz y el volumen.
Error de clave API o tiempo de espera
Verifique su clave en
secret.py.Asegúrese de que su conexión de red sea estable.
Confirme que el modelo LLM sea compatible (por ejemplo,
gpt-4o-mini).
La palabra de activación funciona pero no hay respuesta
Verifique que el idioma de STT coincida con su acento.
Asegúrese de que el modelo se haya descargado correctamente.
Intente imprimir registros de depuración para confirmar que STT está funcionando.
TTS funciona pero no hay respuesta del LLM
Verifique que la clave API sea válida.
Verifique el nombre del modelo y la configuración del LLM.
Asegure la conectividad a Internet.