<var id="fnfpo"><source id="fnfpo"></source></var>
<rp id="fnfpo"></rp>

<em id="fnfpo"><object id="fnfpo"><input id="fnfpo"></input></object></em>
<em id="fnfpo"><acronym id="fnfpo"></acronym></em>
  • <th id="fnfpo"><track id="fnfpo"></track></th>
  • <progress id="fnfpo"><track id="fnfpo"></track></progress>
  • <tbody id="fnfpo"><pre id="fnfpo"></pre></tbody>

  • 萬物皆AI:聯發科技 Genio 130 與 ChatGPT 的火花 - 基于 MTK Genio 130 結合 ChatGPT 功能的解決方案

    發布時間:2024-11-1 16:00    發布者:方案知識庫
    關鍵詞: 大大通 , AI , MTK , AIoT , 開發工具
    隨著人工智慧(AI)在2022-2023的爆炸性成長,我們迎來了AI世代,無論是交通、工業、金融、制造、醫療等各領域,AI已被廣泛的應用來解決各類問題與加速發展。伴隨著AI走入我們的生活,我們也在所擁有的各類智慧裝置上,看到各式各樣的AI工具與產品的身影。

    圖一:MediaTek Genio 130 chip (資料內容取自 MediaTek)

    ChatGPT,我們熟知且廣泛使用的自然語言生成式模型;ChatGPT 由 OpenAI 所開發并在2022推出。透過 ChatGPT,我們除了能以人類自然語言與其互動外。還可傳遞文字、音訊、圖像、多媒體等資訊,為使用者提出的詢問給予近乎真人且基于深度學習后相應的回應內容。

    這樣的先進的AI技術,被廣泛的應用在各類領域、場景。在 IoT 領域,聯發科技將自家解決方案:Genio 130,為一款單芯片整合了 Arm Cortex-M33 MCU、Wi-Fi 6 和藍牙 5.2 連接子系統、電源管理單元(PMU)和可選音頻 DSP 為基礎,結合 OpenAI API,打造新一代智慧聯網 AI 裝置,可應用在各類 IoT 場景及情境。

    圖二:MediaTek Genio 130 block diagram

    本篇方案將進一步介紹 Genio 130 結合 ChatGPT 功能的解決方案 :
    • Genio 130 環境 & SDK 架設
    • OpenAI API 導入 & 行為設計
    • 實際操作展示


    Genio 130 環境 & SDK 架設
    圖三:MediaTek Genio 130 EVK (資料內容取自 AcSip)

    透過搭建 Linux 開發環境(ex. VM + Ubuntu 20.04 LTS)后,導入 Genio 130 SDK,便可開始進行 OpenAI 功能實作。
    關于如何架設 Genio 130 開發環境,并進一步建置專案、燒錄專案 binary file 到 Genio 130 EVK,詳細可以參考大大通博文:MediaTek Genio 130/130A 快速上手(一)
    在導入 OpenAI API 之前,我們需要將以下功能實作,以配合 OpenAI API 所需,Genio 130 SDK 已具備部分功能。
    • Audio data capture from microphone:擷取麥克風音訊。
    • Audio playback:用以播放 OpenAI 回應內容。
    • HTTP Client:收發 Genio 130 OpenAI Server 網路封包。

    OpenAI API 導入 & 行為設計

    參考 OpenAI 開發文件,我們可以從中查找各類 OpenAI API 并整合在 Genio 130 上,利用 HTTP Request 來完成,以下是一個使用 Chat Completions API 的 HTTP Request 范例:

    1. curl https://api.openai.com/v1/chat/completions \
    2.   -H "Content-Type: application/json" \
    3.   -H "Authorization: Bearer $OPENAI_API_KEY" \
    4.   -d '{
    5.     "model": "gpt-4o-mini",
    6.     "messages": [
    7.       {
    8.         "role": "system",
    9.         "content": "You are a helpful assistant."                                                                             
    10.       },
    11.       {
    12.         "role": "user",
    13.         "content": "What is a LLM?"
    14.       }
    15.     ]
    16.   }'
    復制代碼

    值得一提的是,開發 OpenAI API 需要在 OpenAI 注冊帳號并取得 OpenAI API Key(須付費)。
    詳細可參考 : OpenAI Platform
    在 Genio 130 上我們設計使用 EVK 上的按鈕(SW2)來觸發麥克風收音,再透過 HTTP Requet 封包發送到 OpenAI Server,接著取得經過 OpenAI Server 處理后返回的音訊回應,最后利用 Audio playback 功能于 Speaker 播放結果。


    圖四:MediaTek Genio 130 EVK

    實際操作展示

    接下來是 Genio 130 實際操作 ChatGPT 功能展示,我們可以簡單的將 Speaker 與 Genio 130 EVK 連接,完成后將 Gneio 130 EVK 連接電源,Gneio 130 EVK 將會快速的完成初始化并等待使用者執行下一步動作。


    圖五:MediaTek Genio 130 EVK

    接著,我們需要將 Gneio 130 EVK 連接上已知的 WIFI AP;透過一連串的 WIFI CLI command 來建立 Gneio 130 EVK 的網路連線,這個 WIFI AP profile 也可儲存在 Gneio 130 EVK 的 NVDM 中,之后的開機都將會自動套用 profile 進行 WIFI 連線。
    1. $ wifi init

    2. $ wifi config set ssid 0 SSID

    3. $ wifi config set sec 0 7 6

    4. $ wifi config set psk 0 PASSWORD

    5. $ wifi config set reload
    復制代碼
    再來,我們透過已實作好的 ChatGPT CLI command 啟動 ChatGPT 服務
    1. $ chatgpt_start
    復制代碼

    完成后,我們便可透過按下 SW2 按鈕,并使用自然語言做提問:你好,請自我介紹。
    通過 OpenAI API 一連串的處理:audio/transcriptions --> chat/completions --> audio/speech。完成了一次的"對話",以下以封包形式展示:
    1. [249093]<633>[common][I][openAI_chatGPT_task][1289]send audio data complete!



    2. recv data_size:38,

    3. {

    4.   "text": "你好,請自我介紹"

    5. }

    6. [249637]<634>[common][I][openAI_chatGPT_task][1294]httpclient_post https://api.openai.com/v1/audio/transcriptions success !

    7. req: 你好,請自我介紹

    8. [249639]<635>[common][I][openAI_chatGPT_task][1335]send chat request !

    9. [249645]<636>[common][I][openAI_chatGPT_task][1351]send chat request complete!



    10. recv data_size:757,

    11. {

    12.   "id": "chatcmpl-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",

    13.   "object": "chat.completion",

    14.   "created": 1724683334,

    15.   "model": "gpt-4o-mini-2024-07-18",

    16.   "choices": [

    17.     {

    18.       "index": 0,

    19.       "message": {

    20.         "role": "assistant",

    21.         "content": "你好!我是聊天機器人助手,旨在回答問題、提供資訊和幫助解決各種需求。不論是學習新知識、尋找建議、撰寫文本,還是其他各種話題,我都可以提供幫助。如果你有任何問題或需求,隨時告訴我!",

    22.         "refusal": null

    23.       },

    24.       "logprobs": null,

    25.       "finish_reason": "stop"

    26.     }

    27.   ],

    28.   "usage": {

    29.     "prompt_tokens": 13,

    30.     "completion_tokens": 74,

    31.     "total_tokens": 87

    32.   },

    33.   "system_fingerprint": "fp_507c9469a1"

    34. }



    35. [251591]<637>[common][I][openAI_chatGPT_task][1355]httpclient_post https://api.openai.com/v1/chat/completions success !

    36. req txt: 你好!我是聊天機器人助手,旨在回答問題、提供資訊和幫助解決各種需求。不論是學習新知識、尋找建議、撰寫文本,還是其他各種話題,我都可以提供幫助。如果你有任何問題或需求,隨時告訴我!



    37. [251594]<638>[common][I][openAI_chatGPT_task][1397]send text!

    38. [251601]<639>[common][I][openAI_chatGPT_task][1413]send text complete!

    39. mp3_codec_start_play,829

    40. [MP3 Codec]Open codec

    41. [MP3 Codec]: mp3_decode_buffer 0x1067c0c8 (len 41000), mp3_codec_internal_handle 0x1057a1f0 (size 220), handle 0x1057a1f0

    42. [MP3 Codec]mp3_codec_task_main create

    43. [MP3 Codec Demo] first write data 4095.mp3_codec_start_play,848

    44. [MP3 Codec Demo] play +

    45. [MP3 Codec] mp3_codec_play_internal ++

    46. [MP3 Codec] mp3_codec_play_internal --

    47. [MP3 Codec Demo] play -

    48. recv data done:total size:340800, this block:14400

    49. [260847]<649>[common][I][openAI_chatGPT_task][1434]httpclient_post https://api.openai.com/v1/audio/speech success !
    復制代碼

    另一個操作展示:計算952加33再除以2 有小數點嗎?小數點是多少?

    1. [9323894]<699>[common][I][openAI_chatGPT_task][1289]send audio data complete!



    2. recv data_size:76,

    3. {

    4.   "text": "計算952加33再除以2 有小數點嗎?小數點是多少?"

    5. }

    6. [9324831]<700>[common][I][openAI_chatGPT_task][1294]httpclient_post https://api.openai.com/v1/audio/transcriptions success !

    7. req: 計算952加33再除以2 有小數點嗎?小數點是多少?

    8. [9324833]<701>[common][I][openAI_chatGPT_task][1335]send chat request !



    9. [9324840]<702>[common][I][openAI_chatGPT_task][1351]send chat request complete!



    10. recv data_size:707,

    11. {

    12.   "id": "chatcmpl-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",

    13.   "object": "chat.completion",

    14.   "created": 1724692409,

    15.   "model": "gpt-4o-mini-2024-07-18",

    16.   "choices": [

    17.     {

    18.       "index": 0,

    19.       "message": {

    20.         "role": "assistant",

    21.         "content": "首先,我們先計算 \\( 952 + 33 \\)。\n\n\\[\n952 + 33 = 985\n\\]\n\n接下來,將這個結果除以 2:\n\n\\[\n\\frac{985}{2} = 492.5\n\\]\n\n因此,計算結果有小數點,且小數點是 **0.5**。",

    22.         "refusal": null

    23.       },

    24.       "logprobs": null,

    25.       "finish_reason": "stop"

    26.     }

    27.   ],

    28.   "usage": {

    29.     "prompt_tokens": 27,

    30.     "completion_tokens": 77,

    31.     "total_tokens": 104

    32.   },

    33.   "system_fingerprint": "fp_f3db212e1c"

    34. }



    35. [9326680]<703>[common][I][openAI_chatGPT_task][1355]httpclient_post https://api.openai.com/v1/chat/completions success !

    36. req txt: 首先,我們先計算 \\( 952 + 33 \\)。\n\n\\[\n952 + 33 = 985\n\\]\n\n接下來,將這個結果除以 2:\n\n\\[\n\\frac{985}{2} = 492.5\n\\]\n\n因此,計算結果有小數點,且小數點是 **0.5**。

    37. [9326683]<704>[common][I][openAI_chatGPT_task][1397]send text!

    38. [9326690]<705>[common][I][openAI_chatGPT_task][1413]send text complete!

    39. mp3_codec_start_play,829

    40. [MP3 Codec]Open codec

    41. [MP3 Codec]: mp3_decode_buffer 0x1067c0c8 (len 41000), mp3_codec_internal_handle 0x1057a1f0 (size 220), handle 0x1057a1f0

    42. [MP3 Codec]mp3_codec_task_main create

    43. [MP3 Codec Demo] first write data 4095.mp3_codec_start_play,848

    44. [MP3 Codec Demo] play +

    45. [MP3 Codec] mp3_codec_play_internal ++

    46. [MP3 Codec] mp3_codec_play_internal --

    47. [MP3 Codec Demo] play -

    48. recv data done:total size:296640, this block:2880

    49. [9330700]<715>[common][I][openAI_chatGPT_task][1434]httpclient_post https://api.openai.com/v1/audio/speech success !
    復制代碼

    參考資料:

    MediaTek Genio 130(MT7931/MT7933)
    OpenAI
    ►場景應用圖



    ►展示板照片

    ►方案方塊圖



    ►核心技術優勢
    品佳集團代理的 MediaTek Genio 130(MT7931/MT7933)微處理器產品,為基于Arm Cortex-M33架構處理器,時脈可達300MHz,內建最高8MB UHS PSRAM,提供高效運算能力。并提供 WiFi 6、BT 5.2 等無線連接技術,并具備雙頻(2.4GHz 和 5GHz)連接;此外,Genio 130 (MT7933 版本)內建 HiFi4 DSP、3 個 ADC、2 個 DAC 通道,提供語音活動檢測和觸發詞功能,適合開發支援語音助理云服務的 IoT 設備。

    ►方案規格

    聯發科技(MediaTek)Genio 130 系列(MT7931/MT7933),具備:
    • Arm Cortex-M33 處理器,時脈 300MHz
    • Embedded 1MB SRAM and 8MB UHS(Ultra High Speed) PSRAM
    • WiFi 6與雙頻 IEEE 802.11 a/b/g/n/ac/ax 2.4G/5G 連接子系統
    • 藍牙 5.2 連接子系統
    • Audio Cadence® Tensilica® HiFi4 DSP@600MHz(注一)
    • 硬體加密引擎(AES/DES/3DES/SHA/ECC/TRNG)
    • 電源管理單元
    • 支援 USB 2.0 OTG(注一)
    • 豐富的周邊界面如: USB、SDIO、SPI master/slave、I2C、I2S、UART、AUXADC、PWM 以及 最多46組 GIPO
    • 提供 FreeRTOS 及 Arduino 開發 SDK 及多個范例專案,縮短開發時程注一: HiFi4 DSP, USB 2.0 為 MT7933 支援之功能。




    本文地址:http://www.portaltwn.com/thread-875901-1-1.html     【打印本頁】

    本站部分文章為轉載或網友發布,目的在于傳遞和分享信息,并不代表本網贊同其觀點和對其真實性負責;文章版權歸原作者及原出處所有,如涉及作品內容、版權和其它問題,我們將根據著作權人的要求,第一時間更正或刪除。
    您需要登錄后才可以發表評論 登錄 | 立即注冊

    廠商推薦

    • Microchip視頻專區
    • Dev Tool Bits——使用MPLAB® Discover瀏覽資源
    • Dev Tool Bits——使用條件軟件斷點宏來節省時間和空間
    • Dev Tool Bits——使用DVRT協議查看項目中的數據
    • Dev Tool Bits——使用MPLAB® Data Visualizer進行功率監視
    • 貿澤電子(Mouser)專區

    相關視頻

    關于我們  -  服務條款  -  使用指南  -  站點地圖  -  友情鏈接  -  聯系我們
    電子工程網 © 版權所有   京ICP備16069177號 | 京公網安備11010502021702
    快速回復 返回頂部 返回列表
    精品一区二区三区自拍图片区_国产成人亚洲精品_亚洲Va欧美va国产综合888_久久亚洲国产精品五月天婷