stm32 交换机芯片_基于STM32的全链路语音交互 - stm32/stm8 - 电子工程世界
硬件平臺:STM32F746G-DISC開發板
編譯軟件:KEIL 5.31
操作系統:RTX5
TCP/IP協議棧:Cyclone-TCP
語音交互平臺:思必馳DUI開放平臺
這里說一下使用的TCP/IP協議棧-- Cyclone-TCP,該協議棧開源,純 C語言編寫,高度可維護,代碼層次清晰(這個太重要了,lwip看的我頭都大,支持的應用層協議又少的可憐),支持多種應用層協議和RTOS。CycloneTCP既可以作為開源(GPLv2)獲得,也可以根據商業許可獲得。
主要特點:
- 雙棧(IPv4和/或IPv6)
- 內置對多個網絡接口的支持
- 靈活的內存占用空間(內置時間配置,僅嵌入必要的功能)
- 可配置的內存模型(靜態內存池或堆內存分配)
- 便攜式架構(無處理器依賴性)
- 直接連接任何RTOS的端口
- 高度可維護的源代碼
- 調試和跟蹤功能可簡化開發和集成
- BSD樣式套接字API
- 阻塞/非阻塞套接字操作和事件驅動的功能(選擇和輪詢)
- 通過零拷貝進行有效的數據傳輸
- 精心設計的TCP模塊,具有選擇性確認(SACK)和擁塞控制
- 原始套接字接口
- IP分段和重組支持
- 支持虛擬接口(每個物理接口多個MAC地址)
- 支持多宿主主機(每個接口多個IPv4地址)
- 使用VLAN標記(SMSC交換機)或尾部標記(Micrel交換機)的以太網端口乘法
- VLAN支持(和)
- USB設備RNDIS類驅動程序(用于STM32微控制器)
支持的協議:
- DNS客戶端
- NetBIOS客戶端和響應器
- LLMNR客戶和響應者
- mDNS客戶端和響應者
- DNS-SD響應器(基于DNS的服務發現)
- DHCP客戶端和服務器
- 自動IP(IPv4鏈接本地地址的動態配置)
- DHCPv6客戶端和中繼代理
- SLAAC(IPv6無狀態地址自動配置)
- 組播支持(IGMPv2和MLDv1)
- FTP / FTPS客戶端和服務器(支持隱式TLS和顯式TLS模式)
- HTTP / HTTPS客戶端
- 具有SSI,CGI腳本和WebSocket支持的HTTP / HTTPS服務器
- HTTP / 2客戶端(包括HPACK壓縮,服務器推送和https方案)
- MQTT v3.1.1客戶端(支持TCP,TLS,WebSocket和安全WebSocket傳輸層)
- MQTT-SN客戶端(支持UDP和DTLS傳輸層)
- CoAP客戶端和服務器(支持DTLS的CoAP,支持觀察和明智的傳輸)
- SMTP客戶端
- SNTP客戶端(網絡時間同步)
- SNMP代理(支持SNMPv1,SNMPv2c和SNMPv3)
- SNMP用戶和訪問權限的遠程管理(SNMP-USM-MIB和SNMP-VACM-MIB)
- 標準MIB:MIB-II,IF-MIB,IP-MIB,TCP-MIB,UDP-MIB,SNMPv2-MIB
- TFTP客戶端和服務器
- Modbus / TCP客戶端和服務器(支持Modbus / TCP安全性)
- WebSocket客戶端和服務器(支持通過SSL / TLS隧道傳輸的WebSocket連接)
- PPP(點對點協議)
在我的提供的工程文件夾下有個DOC的文件夾,里面有一份Cyclone-TCP移植文檔和一些我在使用應用層協議時遇到問題的解決辦法。更多信息參考這里:
接下說一下語音交互平臺,我選擇的是思必馳DUI開放平臺。那什么是DUI平臺呢,DUI即(Dialog User Interface)是為設備賦能語音交互場景的開發配置平臺,通過這個定制平臺您可以給您的硬件、設備、手機APP等產品增加語音交互場景!在這個過程中為開發者提供高可用定制的人機對話技術服務,為智能終端開發者提供核心交互能力,協助傳統設備實現智能升級。
通過DUI開放平臺的能力,為您的賦能后,您的用戶就能:
DUI系統工作流程圖:
在我的工程中,省略了語音喚醒,這個功能,其余的都有實現。嵌入式平臺的接入方式有兩種:
1.基于websocket協議的產品接入
適用場景:
1)輕量級嵌入式設備,基于協議開發
2)采用云對云的方式,使用DUI全鏈路產品,基于協議開發
3)其他特殊場景,需要基于協議開發
4)支持語音、文本、意圖三種輸入
2.基于Http協議的產品接入
適用場景:
1)輕量級嵌入式設備,基于協議開發
2)采用云對云的方式,使用DUI全鏈路產品,基于協議開發
3)其他特殊場景,需要基于協議開發
4)使用文本請求對話
5)設置系統級或技能級配置
我的工程中使用的是第一種接入方式。第二種接入方式使用的是文本對話方式,就是輸入文字信息與平臺進行對話,中間省略了語音識別這個流程。也可以在外部加一個語音識別的處理芯片,來實現語音交互,這種方式也適用于第一種接入方式。
使用DUI系統,需要注冊賬號和實名認證。這里不得不說下它的技術支持,真的很糟糕,對外沒有提供聯系方式,只能在控制臺內提交工單的方式來提交問題,而且要等好幾天才會有回復,回答質量也很糟糕。我好多問題都是通過查看其他平臺的參考代碼,來找問題的解決方法。幾乎沒有找到嵌入式平臺的參考代碼和問題解決方法,基本都是安卓端和蘋果端的例程和問題解決方法。更多的信息可以去官網查看:
目前我在通過DUI創建的AI模型,擁有以下幾個技能:
1.天氣? ? ? ? ? ? 2.日歷 ???????????????????3.單位換算??????? 4.計算器
5.匯率? ? ? ? ? ? 6.親戚關系計算? ? ? ?7.成語? ? ? ? ? ? ? ?8.詩詞
9.翻譯大全? ? ?10.兒歌? ? ? ? ? ? ? ? ? 11.故事? ? ? ? ? ? ?12.國學
13.曲藝? ? ? ? ? 14.戲曲? ? ? ? ? ? ? ? ? 15.笑話? ? ? ? ? ? ?16.音樂
17.有聲書? ? ? ?18.歷史上的今天?????19.猜數字(游戲)?? 20. 一禪小和尚
21.百科? ? ? ? ? 22.閑聊
在提供工程中,有一個文件燒錄文件夾,可以通過軟件直接燒錄進開發板,也可以通過KEIL編譯,直接下載。可以打開串口調試助手,查看log調試信息。串口波特率:115200,數據位:8,停止位:1,校驗位:無。由于我在KEIL的文本編輯器設置成UTF8編碼,因此串口調試助手的文本顯示必須設置成UTF8編碼。正常啟動log如下所示:
系統啟動完成后,按住開發板上的藍色按鍵1秒鐘左右,開始說話,說完話后放開按鍵,接著等待對話結果。
文章末尾有提供工程文件,全部下載完,解壓縮即可使用。
演示視頻:
是不是發現我的STM32F746G-DISC開發板,跟你們不一樣,哈哈,我手動升級了。FLASH容量升級成32MB,屏幕更換成800X480分辨率,唯一的遺憾就是SDRAM不好焊接,沒有升級。如果想升級開發板的,可以留言,我可以把文件共享出來。
總結
以上是生活随笔為你收集整理的stm32 交换机芯片_基于STM32的全链路语音交互 - stm32/stm8 - 电子工程世界的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 话筒增益_话筒啸叫怎么办?教你四个解决话
- 下一篇: 全能电子地图_全能电子地图下载文件结构说