<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 智能計算 > 設計應用 > 基于 MTK Genio 130 結合 ChatGPT 功能的解決方案

基于 MTK Genio 130 結合 ChatGPT 功能的解決方案

作者: 時(shí)間:2024-09-24 來(lái)源:大大通 收藏

隨著(zhù)人工智慧(AI)在2022-2023的爆炸性成長(cháng),我們迎來(lái)了AI世代,無(wú)論是交通、工業(yè)、金融、制造、醫療等各領(lǐng)域,AI已被廣泛的應用來(lái)解決各類(lèi)問(wèn)題與加速發(fā)展。伴隨著(zhù)AI走入我們的生活,我們也在所擁有的各類(lèi)智慧裝置上,看到各式各樣的AI工具與產(chǎn)品的身影。

本文引用地址:http://dyxdggzs.com/article/202409/463150.htm

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

 

,我們熟知且廣泛使用的自然語(yǔ)言生成式模型; 由 OpenAI 所開(kāi)發(fā)并在2022推出。透過(guò) ,我們除了能以人類(lèi)自然語(yǔ)言與其互動(dòng)外。還可傳遞文字、音訊、圖像、多媒體等資訊,為使用者提出的詢(xún)問(wèn)給予近乎真人且基于深度學(xué)習后相應的回應內容。

 

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

圖二:MediaTek block diagram

 

本篇方案將進(jìn)一步介紹 Genio 130 結合 ChatGPT 功能的解決方案 :

 

  • Genio 130 環(huán)境 & SDK 架設

  • OpenAI API 導入 & 行為設計

  • 實(shí)際操作展示

 

Genio 130 環(huán)境 & SDK 架設

 MediaTek Genio 130 EVK

圖三:MediaTek Genio 130 EVK (資料內容取自 AcSip

 

透過(guò)搭建 Linux 開(kāi)發(fā)環(huán)境(ex. VM + Ubuntu 20.04 LTS)后,導入 Genio 130 SDK,便可開(kāi)始進(jìn)行 OpenAI 功能實(shí)作。

 

關(guān)于如何架設 Genio 130 開(kāi)發(fā)環(huán)境,并進(jìn)一步建置專(zhuān)案、燒錄專(zhuān)案 binary file 到 Genio 130 EVK,詳細可以參考大大通博文:MediaTek Genio 130/130A 快速上手(一)

 

在導入 OpenAI API 之前,我們需要將以下功能實(shí)作,以配合 OpenAI API 所需,Genio 130 SDK 已具備部分功能。

 

  • Audio data capture from microphone:擷取麥克風(fēng)音訊。

  • Audio playback:用以播放 OpenAI 回應內容。

  • HTTP Client:收發(fā) Genio 130 OpenAI Server 網(wǎng)路封包。

 

OpenAI API 導入 & 行為設計

 

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

 

curl https://api.openai.com/v1/chat/completions
  -H "Content-Type: application/json"
  -H "Authorization: Bearer $OPENAI_API_KEY"
  -d '{
    "model": "gpt-4o-mini",
    "messages": [
      {
        "role": "system",
        "content": "You are a helpful assistant."                                                                             
      },
      {
        "role": "user",
        "content": "What is a LLM?"
      }
    ]
  }'

 

值得一提的是,開(kāi)發(fā) OpenAI API 需要在 OpenAI 注冊帳號并取得 OpenAI API Key(須付費)。

 

詳細可參考 : OpenAI Platform

 

Genio 130 我們設計使用 EVK 上的按鈕(SW2)來(lái)觸發(fā)麥克風(fēng)收音,再透過(guò) HTTP Requet 封包發(fā)送到 OpenAI Server,接著(zhù)取得經(jīng)過(guò) OpenAI Server 處理后返回的音訊回應,最后利用 Audio playback 功能于 Speaker 播放結果。

 

MediaTek Genio 130 EVK 

 

圖四:MediaTek Genio 130 EVK 

 

實(shí)際操作展示

 

接下來(lái)是 Genio 130 實(shí)際操作 ChatGPT 功能展示,我們可以簡(jiǎn)單的將 Speaker Genio 130 EVK 連接,完成后將 Gneio 130 EVK 連接電源,Gneio 130 EVK 將會(huì )快速的完成初始化并等待使用者執行下一步動(dòng)作。

 

MediaTek Genio 130 EVK

 

圖五:MediaTek Genio 130 EVK

 

接著(zhù),我們需要將 Gneio 130 EVK 連接上已知的 WIFI AP;透過(guò)一連串的 WIFI CLI command 來(lái)建立 Gneio 130 EVK 的網(wǎng)路連線(xiàn),這個(gè) WIFI AP profile 也可儲存在 Gneio 130 EVK NVDM 中,之后的開(kāi)機都將會(huì )自動(dòng)套用 profile 進(jìn)行 WIFI 連線(xiàn)。

 

$ wifi init

$ wifi config set ssid 0 SSID

$ wifi config set sec 0 7 6

$ wifi config set psk 0 PASSWORD

$ wifi config set reload

 

再來(lái),我們透過(guò)已實(shí)作好的 ChatGPT CLI command 啟動(dòng) ChatGPT 服務(wù)

 

$ chatgpt_start


完成后,我們便可透過(guò)按下
SW2 按鈕,并使用自然語(yǔ)言做提問(wèn):你好,請自我介紹。

 

通過(guò) OpenAI API 一連串的處理:audio/transcriptions --> chat/completions --> audio/speech。完成了一次的"對話(huà)",以下以封包形式展示:

 

[249093]<633>[common][I][openAI_chatGPT_task][1289]send audio data complete!

 

recv data_size:38,

{

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

}

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

req: 你好,請自我介紹

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

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

 

recv data_size:757,

{

  "id": "chatcmpl-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",

  "object": "chat.completion",

  "created": 1724683334,

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

  "choices": [

    {

      "index": 0,

      "message": {

        "role": "assistant",

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

        "refusal": null

      },

      "logprobs": null,

      "finish_reason": "stop"

    }

  ],

  "usage": {

    "prompt_tokens": 13,

    "completion_tokens": 74,

    "total_tokens": 87

  },

  "system_fingerprint": "fp_507c9469a1"

}

 

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

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

 

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

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

mp3_codec_start_play,829

[MP3 Codec]Open codec

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

[MP3 Codec]mp3_codec_task_main create

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

[MP3 Codec Demo] play +

[MP3 Codec] mp3_codec_play_internal ++

[MP3 Codec] mp3_codec_play_internal --

[MP3 Codec Demo] play -

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

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


另一個(gè)操作展示:計算95233再除以2 有小數點(diǎn)嗎?小數點(diǎn)是多少?

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

 

recv data_size:76,

{

  "text": "計算952加33再除以2 有小數點(diǎn)嗎?小數點(diǎn)是多少?"

}

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

req: 計算952加33再除以2 有小數點(diǎn)嗎?小數點(diǎn)是多少?

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

 

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

 

recv data_size:707,

{

  "id": "chatcmpl-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",

  "object": "chat.completion",

  "created": 1724692409,

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

  "choices": [

    {

      "index": 0,

      "message": {

        "role": "assistant",

        "content": "首先,我們先計算 ( 952 +  33 )。nn[n952 + 33 = 985n]nn接下來(lái),將這個(gè)結果除以  2:nn[nfrac{985}{2} = 492.5n]nn因此,計算結果有小數點(diǎn),且小數點(diǎn)是 **0.5**。",

        "refusal": null

      },

      "logprobs": null,

      "finish_reason": "stop"

    }

  ],

  "usage": {

    "prompt_tokens": 27,

    "completion_tokens": 77,

    "total_tokens": 104

  },

  "system_fingerprint": "fp_f3db212e1c"

}

 

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

req txt: 首先,我們先計算 ( 952 + 33 )。nn[n952 + 33 =  985n]nn接下來(lái),將這個(gè)結果除以 2:nn[nfrac{985}{2} =  492.5n]nn因此,計算結果有小數點(diǎn),且小數點(diǎn)是 **0.5**。

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

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

mp3_codec_start_play,829

[MP3 Codec]Open codec

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

[MP3 Codec]mp3_codec_task_main create

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

[MP3 Codec Demo] play +

[MP3 Codec] mp3_codec_play_internal ++

[MP3 Codec] mp3_codec_play_internal --

[MP3 Codec Demo] play -

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

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


?場(chǎng)景應用圖

?展示板照片

?方案方塊圖

?核心技術(shù)優(yōu)勢

品佳集團代理的 MediaTek Genio 130(MT7931/MT7933)微處理器產(chǎn)品,為基于A(yíng)rm Cortex-M33架構處理器,時(shí)脈可達300MHz,內建最高8MB UHS PSRAM,提供高效運算能力。并提供 WiFi 6、BT 5.2 等無(wú)線(xiàn)連接技術(shù),并具備雙頻(2.4GHz 和 5GHz)連接;此外,Genio 130 (MT7933 版本)內建 HiFi4 DSP、3 個(gè) ADC、2 個(gè) DAC 通道,提供語(yǔ)音活動(dòng)檢測和觸發(fā)詞功能,適合開(kāi)發(fā)支援語(yǔ)音助理云服務(wù)的 IoT 設備。

?方案規格

聯(lián)發(fā)科技(MediaTek)Genio 130 系列(MT7931/MT7933),具備:  ? Arm Cortex-M33 處理器,時(shí)脈 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 開(kāi)發(fā) SDK 及多個(gè)范例專(zhuān)案,縮短開(kāi)發(fā)時(shí)程 注一: HiFi4 DSP, USB 2.0 為 MT7933 支援之功能。




關(guān)鍵詞: MTK Genio 130 ChatGPT

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>