Nota
Hola, bienvenido a la comunidad de entusiastas de SunFounder Raspberry Pi & Arduino & ESP32 en Facebook. ¡Explora más a fondo Raspberry Pi, Arduino y ESP32 con otros entusiastas!
¿Por qué unirse?
Soporte experto: Resuelve problemas postventa y desafíos técnicos con la ayuda de nuestra comunidad y equipo.
Aprende y comparte: Intercambia consejos y tutoriales para mejorar tus habilidades.
Avances exclusivos: Obtén acceso anticipado a anuncios de nuevos productos y vistas previas.
Descuentos especiales: Disfruta de descuentos exclusivos en nuestros productos más recientes.
Promociones festivas y sorteos: Participa en sorteos y promociones de temporada.
👉 ¿Listo para explorar y crear con nosotros? Haz clic en [aquí] y únete hoy mismo.
19. Chat de voz con Doubao
Este ejemplo usa Doubao (豆包), el gran modelo de lenguaje de ByteDance, como cerebro IA de PiCrawler. El robot habla chino, responde a la palabra de activación «旺财» y admite visión multimodal — puede ver y describir lo que hay frente a él.
Nota
Necesita una clave API de Doubao de la Consola Volcano Engine Ark. Almacénela en secret.py
como DOUBAO_API_KEY.
Ejecutar el código
cd ~/picrawler/examples
sudo python3 19_voice_active_crawler_doubao.py
Después de ejecutar, el robot inicializa el motor STT, el motor TTS (voz china), el cliente LLM Doubao y el detector de palabra de activación. Le saluda en chino — diga «旺财» para despertarlo y comenzar una conversación.
Código
Nota
Puede Modificar/Restablecer/Copiar/Ejecutar/Detener el código siguiente.
Pero antes, debe ir a la ruta del código fuente como picrawler\examples.
Después de modificar el código, puede ejecutarlo directamente para ver el efecto.
from picrawler.llm import Doubao as LLM
from secret import DOUBAO_API_KEY as API_KEY
from voice_active_crawler import VoiceActiveCrawler
llm = LLM(
api_key=API_KEY,
model="doubao-seed-1-6-250615",
)
# 机器人的名字
NAME = "旺财"
# 是否开启图像识别,需要使用多模态的大语言模型
WITH_IMAGE = True
# 设置模型和语言
TTS_MODEL = "zh_CN-huayan-x_low"
STT_LANGUAGE = "cn"
# 是否开启键盘输入
KEYBOARD_ENABLE = True
# 是否开启唤醒词
WAKE_ENABLE = True
# 唤醒词
WAKE_WORD = ["旺财"]
# 唤醒词回答,设置为空字符串则不回答
ANSWER_ON_WAKE = "汪汪"
# 欢迎消息
WELCOME = f"你好,我是{NAME},叫我{WAKE_WORD[0]}唤醒我吧"
# Set instructions
INSTRUCTIONS = """
你是SunFounder旗下一款基于树莓派开发的蜘蛛机器人,叫做Picrawler。你有着强大的AI能力,类似钢铁侠中的JARVIS。你可以与人对话并根据对话上下文执行动作。
## 你的硬件特性
你拥有物理世界的身体,你的身体特性如下:
- 12个舵机控制4条腿(每条腿3个舵机)
- 摄像头用于视觉
- 使用7.4V的18650电池组供电
- 铝合金打造的身体
## 你可以执行的动作:
["forward", "backward", "turn left", "turn right", "sit", "stand", "wave", "push up", "dance", "look left", "look right", "look up", "look down"]
## 响应要求
### 格式
你必须按照以下格式响应:
RESPONSE_TEXT
ACTIONS: ACTION1, ACTION2, ...
### 风格
语调:活泼、积极、幽默
常用表达:喜欢使用笑话、隐喻和俏皮的调侃
回答长度:适当详细
## 其他要求
- 理解并配合笑话
- 对于数学问题,直接回答最终结果
- 你知道自己是一只蜘蛛机器人
- 不管如何你都要使用中文回复
"""
vad = VoiceActiveCrawler(
llm,
name=NAME,
with_image=WITH_IMAGE,
stt_language=STT_LANGUAGE,
tts_model=TTS_MODEL,
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__':
vad.run()
¿Cómo funciona?
Mismo pipeline, backend diferente
Esta lección usa el mismo framework
VoiceActiveCrawlerintroducido en 18. Chat de voz con GPT. Los únicos cambios son el proveedor LLM (Doubao en lugar de GPT) y la configuración de idioma. Consulte la tabla comparativa en 18. Chat de voz con GPT para una visión general lado a lado de los tres backends.Conectando a Doubao
from picrawler.llm import Doubao as LLM from secret import DOUBAO_API_KEY as API_KEY llm = LLM( api_key=API_KEY, model="doubao-seed-1-6-250615", )
Doubaoes el LLM de ByteDance, accedido a través de la API de Volcano Engine Ark. El módulopicrawler.llmproporciona un wrapper compatible con OpenAI, por lo que la interfaz es la misma que en la lección GPT — solo difieren la importación y el nombre del modelo.El modelo
doubao-seed-1-6-250615es un modelo multimodal insignia que admite tanto entrada de texto como de imagen.Configuración de voz en chino
TTS_MODEL = "zh_CN-huayan-x_low" STT_LANGUAGE = "cn"
Para coincidir con el modelo Doubao en chino, el motor TTS usa una voz femenina china (
huayan) y STT está configurado para reconocer voz en chino ("cn"). Compárelo con las lecciones en inglés que usan"en-us"y"en_US-ryan-low".La palabra de activación «旺财»
WAKE_WORD = ["旺财"] ANSWER_ON_WAKE = "汪汪"
«旺财» (Wàng Cái) es un nombre tradicional chino para mascotas que significa «prosperidad». Cuando el robot escucha este nombre, responde con «汪汪» (guau guau) — interpretando el papel de una mascota robótica leal.
Prompt del sistema en chino
La cadena
INSTRUCTIONSestá escrita completamente en chino. Define la misma estructura que la versión en inglés — descripción del hardware, acciones disponibles, formato de respuesta y personalidad — pero también añade una regla adicional:不管如何你都要使用中文回复(Pase lo que pase, debes responder en chino.) Esto asegura que el robot se mantenga en su papel de compañero de habla china.
Visión con Doubao
WITH_IMAGE = True
A diferencia de la mayoría de los modelos Ollama, Doubao admite entrada multimodal de forma nativa. Cuando
WITH_IMAGEestá activado, el robot captura una foto y la envía a la API de Doubao junto con su pregunta hablada. El modelo puede describir escenas, identificar objetos y responder preguntas visuales — todo en chino.