.. note:: こんにちは、SunFounder Raspberry Pi & Arduino & ESP32 愛好者コミュニティへようこそ! Raspberry Pi、Arduino、ESP32 について、他の愛好者と一緒に深く掘り下げて学びましょう。 **参加する理由は?** - **専門的なサポート**: 購入後の問題や技術的な課題を、コミュニティやチームの助けを借りて解決できます。 - **学びと共有**: スキルを高めるためのヒントやチュートリアルを交換しましょう。 - **限定プレビュー**: 新しい製品発表や先行プレビューに早期アクセスできます。 - **特別割引**: 最新製品に対する独占的な割引を楽しめます。 - **祝典プロモーションとプレゼント**: プレゼントキャンペーンや季節ごとのプロモーションに参加できます。 👉 私たちと一緒に探求し、創造する準備はできましたか? [|link_sf_facebook|] をクリックして、今すぐ参加しましょう! .. _py_voice_doubao: 19. Doubao との音声チャット ================================ この例では、ByteDance の大規模言語モデル **Doubao (豆包)** を PiCrawler の AI 頭脳として使用します。ロボットは中国語を話し、ウェイクワード「旺财」に 応答し、マルチモーダルビジョンをサポートします — 目の前にあるものを 見て説明することができます。 .. note:: `Volcano Engine Ark Console `_ から Doubao API キーが必要です。``secret.py`` に ``DOUBAO_API_KEY`` として 保存してください。 **コードの実行** .. raw:: html .. code-block:: cd ~/picrawler/examples sudo python3 19_voice_active_crawler_doubao.py 実行後、ロボットは STT エンジン、TTS エンジン (中国語音声)、Doubao LLM クライアント、ウェイクワード検出器を初期化します。中国語であなたを迎えます — **「旺财」** と言って起こし、会話を始めてください。 **コード** .. note:: 以下のコードを **変更/リセット/コピー/実行/停止** できます。ただし、その前に ``picrawler\examples`` のようなソースコードのパスに移動する必要があります。 コードを変更した後、直接実行して効果を確認できます。 .. 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]}と呼んで起こしてください" # 指示を設定 INSTRUCTIONS = """ あなたはSunFounderが開発した Raspberry Pi ベースのクモ型ロボット、Picrawler です。Iron Man の JARVIS のような強力な AI 能力を持っています。人と会話し、文脈に基づいてアクションを実行できます。 ## ハードウェア特性 物理的な身体を持ち、以下の特徴があります: - 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() **仕組み** #. 同じパイプライン、異なるバックエンド このレッスンでは、:ref:`py_voice_active_gpt` で紹介したものと同じ ``VoiceActiveCrawler`` フレームワークを使用します。変更点は LLM プロバイダー (GPT の代わりに Doubao) と言語設定のみです。 3 つのバックエンドの比較表は :ref:`py_voice_active_gpt` を参照してください。 #. 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`` は ByteDance の LLM で、Volcano Engine Ark API を通じて アクセスします。``picrawler.llm`` モジュールは OpenAI 互換のラッパーを 提供しているため、インターフェースは GPT のレッスンと同じです — インポートとモデル名だけが異なります。 モデル ``doubao-seed-1-6-250615`` はテキストと画像入力の両方を サポートするフラッグシップのマルチモーダルモデルです。 #. 中国語音声の設定 .. code-block:: python TTS_MODEL = "zh_CN-huayan-x_low" STT_LANGUAGE = "cn" 中国語を話す Doubao モデルに合わせて、TTS エンジンは中国語の女性音声 (``huayan``) を使用し、STT は中国語の音声認識 (``"cn"``) に設定されています。 ``"en-us"`` と ``"en_US-ryan-low"`` を使用する英語のレッスンと比較して ください。 #. ウェイクワード「旺财」 .. code-block:: python WAKE_WORD = ["旺财"] ANSWER_ON_WAKE = "汪汪" 「旺财」(ワンツァイ) は「繁栄」を意味する伝統的な中国のペットの名前です。 ロボットはこの名前を聞くと「汪汪」(ワンワン) と応答します — 忠実なロボットペットの役割を演じています。 #. 中国語のシステムプロンプト ``INSTRUCTIONS`` 文字列は完全に中国語で書かれています。英語版と同じ構造 — ハードウェアの説明、利用可能なアクション、応答形式、性格 — を定義して いますが、追加のルールもあります: .. code-block:: 常に中国語で返答すること これにより、ロボットは中国語を話す仲間としてのキャラクターを保ちます。 #. Doubao によるビジョン .. code-block:: python WITH_IMAGE = True ほとんどの Ollama モデルとは異なり、Doubao はネイティブにマルチモーダル入力を サポートしています。``WITH_IMAGE`` を有効にすると、ロボットは写真を撮影し、 音声質問と共に Doubao API に送信します。モデルはシーンを説明し、物体を識別し、 視覚的な質問に答えることができます — すべて中国語で。