.. note::
Hallo, willkommen in der SunFounder Raspberry Pi & Arduino & ESP32 Enthusiasten-Community auf Facebook! Tauche gemeinsam mit anderen Enthusiasten tiefer in Raspberry Pi, Arduino und ESP32 ein.
**Warum beitreten?**
- **Expertenunterstützung**: Lösen Sie nach dem Kauf auftretende Probleme und technische Herausforderungen mit Hilfe unserer Community und unseres Teams.
- **Lernen & Teilen**: Tauschen Sie Tipps und Tutorials aus, um Ihre Fähigkeiten zu verbessern.
- **Exklusive Vorschauen**: Erhalten Sie frühzeitigen Zugriff auf neue Produktankündigungen und exklusive Einblicke.
- **Spezielle Rabatte**: Profitieren Sie von exklusiven Rabatten auf unsere neuesten Produkte.
- **Festliche Aktionen und Gewinnspiele**: Nehmen Sie an Verlosungen und Feiertagsaktionen teil.
👉 Bereit, mit uns zu entdecken und zu kreieren? Klicken Sie auf [|link_sf_facebook|] und treten Sie noch heute bei!
.. _py_voice_doubao:
19. Sprach-Chat mit Doubao
============================
Dieses Beispiel verwendet **Doubao (豆包)**, das Large Language Model von
ByteDance, als KI-Gehirn des PiCrawler. Der Roboter spricht Chinesisch,
reagiert auf das Wachwort „旺财" und unterstützt multimodale Bildverarbeitung —
er kann sehen und beschreiben, was sich vor ihm befindet.
.. note::
Sie benötigen einen Doubao-API-Schlüssel von der `Volcano Engine Ark Console
`_. Speichern Sie ihn in ``secret.py``
als ``DOUBAO_API_KEY``.
**Code ausführen**
.. raw:: html
.. code-block::
cd ~/picrawler/examples
sudo python3 19_voice_active_crawler_doubao.py
Nach dem Start initialisiert der Roboter die STT-Engine, die TTS-Engine
(chinesische Stimme), den Doubao-LLM-Client und den Wachwort-Detektor. Er
begrüßt Sie auf Chinesisch — sagen Sie **„旺财"**, um ihn aufzuwecken und ein
Gespräch zu beginnen.
**Code**
.. note::
Sie können den folgenden Code **Ändern/Zurücksetzen/Kopieren/Ausführen/Stoppen**.
Navigieren Sie dazu zum Quellcode-Pfad wie ``picrawler\examples``. Nach dem
Ändern des Codes können Sie ihn direkt ausführen, um das Ergebnis zu sehen.
.. 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()
**Wie funktioniert es?**
#. Gleiche Pipeline, anderes Backend
Diese Lektion verwendet dasselbe ``VoiceActiveCrawler``-Framework, das in
:ref:`py_voice_active_gpt` eingeführt wurde. Die einzigen Änderungen sind
der LLM-Anbieter (Doubao statt GPT) und die Sprachkonfiguration. Siehe die
Vergleichstabelle in :ref:`py_voice_active_gpt` für eine
Gegenüberstellung aller drei Backends.
#. Verbindung zu 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`` ist ByteDances LLM, auf das über die Volcano Engine Ark API
zugegriffen wird. Das ``picrawler.llm``-Modul bietet einen OpenAI-kompatiblen
Wrapper, sodass die Schnittstelle dieselbe wie in der GPT-Lektion ist — nur
der Import und der Modellname unterscheiden sich.
Das Modell ``doubao-seed-1-6-250615`` ist ein multimodales Flaggschiff-Modell,
das sowohl Text- als auch Bildeingaben unterstützt.
#. Chinesische Sprachkonfiguration
.. code-block:: python
TTS_MODEL = "zh_CN-huayan-x_low"
STT_LANGUAGE = "cn"
Passend zum chinesischsprachigen Doubao-Modell verwendet die TTS-Engine eine
chinesische Frauenstimme (``huayan``), und STT ist auf die Erkennung
chinesischer Sprache (``"cn"``) eingestellt. Vergleichen Sie dies mit den
englischen Lektionen, die ``"en-us"`` und ``"en_US-ryan-low"`` verwenden.
#. Das Wachwort „旺财"
.. code-block:: python
WAKE_WORD = ["旺财"]
ANSWER_ON_WAKE = "汪汪"
„旺财" (Wàng Cái) ist ein traditioneller chinesischer Haustiername, der
„Wohlstand" bedeutet. Wenn der Roboter diesen Namen hört, antwortet er mit
„汪汪" (Wuff Wuff) — und spielt die Rolle eines treuen Roboter-Haustiers.
#. Chinesischer System-Prompt
Der ``INSTRUCTIONS``-String ist vollständig auf Chinesisch verfasst. Er
definiert dieselbe Struktur wie die englische Version — Hardware-Beschreibung,
verfügbare Aktionen, Antwortformat und Persönlichkeit — fügt aber eine
zusätzliche Regel hinzu:
.. code-block::
不管如何你都要使用中文回复
(Egal was passiert, du musst auf Chinesisch antworten.) Dies stellt sicher,
dass der Roboter als chinesischsprachiger Begleiter in seiner Rolle bleibt.
#. Bildverarbeitung mit Doubao
.. code-block:: python
WITH_IMAGE = True
Im Gegensatz zu den meisten Ollama-Modellen unterstützt Doubao nativ
multimodale Eingaben. Wenn ``WITH_IMAGE`` aktiviert ist, nimmt der Roboter
ein Foto auf und sendet es zusammen mit Ihrer gesprochenen Frage an die
Doubao-API. Das Modell kann Szenen beschreiben, Objekte identifizieren und
visuelle Fragen beantworten — alles auf Chinesisch.