Note
Bonjour, bienvenue dans la communauté des passionnés de Raspberry Pi, Arduino et ESP32 sur Facebook ! Plongez dans l’univers du Raspberry Pi, Arduino et ESP32 avec d’autres passionnés.
Pourquoi rejoindre ?
Support d’experts : Résolvez les problèmes post-vente et les défis techniques avec l’aide de notre communauté et de notre équipe.
Apprendre et partager : Échangez des astuces et des tutoriels pour améliorer vos compétences.
Aperçus exclusifs : Accédez en avant-première aux annonces de nouveaux produits et aperçus exclusifs.
Réductions spéciales : Profitez de réductions exclusives sur nos produits les plus récents.
Promotions festives et concours : Participez à des concours et promotions spéciales.
👉 Prêt à explorer et à créer avec nous ? Cliquez sur [ici] et rejoignez-nous dès aujourd’hui !
19. Chat vocal avec Doubao
Cet exemple utilise Doubao (豆包), le grand modèle de langage de ByteDance, comme cerveau IA de PiCrawler. Le robot parle chinois, répond au mot de réveil « 旺财 » et prend en charge la vision multimodale — il peut voir et décrire ce qui se trouve devant lui.
Note
Vous avez besoin d’une clé API Doubao de la Console Volcano Engine Ark. Stockez-la dans secret.py
sous le nom DOUBAO_API_KEY.
Exécuter le code
cd ~/picrawler/examples
sudo python3 19_voice_active_crawler_doubao.py
Après l’exécution, le robot initialise le moteur STT, le moteur TTS (voix chinoise), le client LLM Doubao et le détecteur de mot de réveil. Il vous salue en chinois — dites « 旺财 » pour le réveiller et commencer une conversation.
Code
Note
Vous pouvez Modifier/Réinitialiser/Copier/Exécuter/Arrêter le code
ci-dessous. Mais avant cela, vous devez aller dans le chemin du code source
comme picrawler\examples. Après avoir modifié le code, vous pouvez
l’exécuter directement pour voir l’effet.
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()
Comment ça fonctionne ?
Même pipeline, backend différent
Cette leçon utilise le même framework
VoiceActiveCrawlerintroduit dans 18. Chat vocal avec GPT. Les seuls changements sont le fournisseur LLM (Doubao au lieu de GPT) et la configuration linguistique. Voir le tableau comparatif dans 18. Chat vocal avec GPT pour un aperçu côte à côte des trois backends.Connexion à 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", )
Doubaoest le LLM de ByteDance, accessible via l’API Volcano Engine Ark. Le modulepicrawler.llmfournit un wrapper compatible OpenAI, donc l’interface est la même que dans la leçon GPT — seuls l’importation et le nom du modèle diffèrent.Le modèle
doubao-seed-1-6-250615est un modèle multimodal phare prenant en charge à la fois le texte et les images.Configuration vocale en chinois
TTS_MODEL = "zh_CN-huayan-x_low" STT_LANGUAGE = "cn"
Pour correspondre au modèle Doubao en chinois, le moteur TTS utilise une voix féminine chinoise (
huayan) et le STT est configuré pour reconnaître la parole en chinois ("cn"). Comparez avec les leçons en anglais qui utilisent"en-us"et"en_US-ryan-low".Le mot de réveil « 旺财 »
WAKE_WORD = ["旺财"] ANSWER_ON_WAKE = "汪汪"
« 旺财 » (Wàng Cái) est un nom traditionnel chinois pour animal de compagnie signifiant « prospérité ». Lorsque le robot entend ce nom, il répond par « 汪汪 » (ouaf ouaf) — jouant le rôle d’un fidèle animal robotique.
Prompt système en chinois
La chaîne
INSTRUCTIONSest entièrement rédigée en chinois. Elle définit la même structure que la version anglaise — description du matériel, actions disponibles, format de réponse et personnalité — mais ajoute une règle supplémentaire :不管如何你都要使用中文回复(Quoi qu’il arrive, vous devez répondre en chinois.) Cela garantit que le robot reste dans son rôle de compagnon sinophone.
Vision avec Doubao
WITH_IMAGE = True
Contrairement à la plupart des modèles Ollama, Doubao prend en charge nativement l’entrée multimodale. Lorsque
WITH_IMAGEest activé, le robot capture une photo et l’envoie à l’API Doubao avec votre question parlée. Le modèle peut décrire des scènes, identifier des objets et répondre à des questions visuelles — le tout en chinois.