.. note:: 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 [|link_sf_facebook|] y únete hoy mismo. .. _py_voice_doubao: 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. .. note:: 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** .. raw:: html .. code-block:: 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** .. note:: 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. .. raw:: html .. code-block:: python 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 ``VoiceActiveCrawler`` introducido en :ref:`py_voice_active_gpt`. Los únicos cambios son el proveedor LLM (Doubao en lugar de GPT) y la configuración de idioma. Consulte la tabla comparativa en :ref:`py_voice_active_gpt` para una visión general lado a lado de los tres backends. #. Conectando a Doubao .. code-block:: python 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", ) ``Doubao`` es el LLM de ByteDance, accedido a través de la API de Volcano Engine Ark. El módulo ``picrawler.llm`` proporciona 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-250615`` es un modelo multimodal insignia que admite tanto entrada de texto como de imagen. #. Configuración de voz en chino .. code-block:: python 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 "旺财" .. code-block:: python 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 ``INSTRUCTIONS`` está 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: .. code-block:: 不管如何你都要使用中文回复 (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 .. code-block:: python WITH_IMAGE = True A diferencia de la mayoría de los modelos Ollama, Doubao admite entrada multimodal de forma nativa. Cuando ``WITH_IMAGE`` está 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.