韩国电影《教室爱欲》,国产精品99久久久久久久女警,69国产成人精品午夜福中文,国产熟妇乱xxxxx大屁股网

您的位置:首頁   >  關于我們  >  新聞動態

大彩串口屏M型語音識別應用

發布人:大彩科技發布日期:2021-05-17

演示視頻


一、開發準備


1.1 適用范圍

文檔僅適用于M型語音識別系列的串口屏產品。






1.2 硬件平臺準備

開發前用戶需準備好硬件平臺:

1. 支持語音識別功能的M型系列7.0寸語音串口屏樣品,本文以型號為DC80480M070_1111_0C_AI為例進行講解。

2. 語音詞條下載器(需單獨購買)。




二、工作原理


M系列語音識別串口屏是通過串口與語音芯片進行通訊和交互。主要工作流程為以下兩種:

1) 語音芯片識別詞條命令-->下發指令到屏幕串口-->串口接收指令解析-->邏輯判斷-->屏幕響應;

2) 屏幕操作-->屏幕發送指令到語音芯片串口-->語音芯片接收解析指令-->語音提示。




三、開發流程


圖 3-1 開發流程圖






3.1 語音詞條和提示音開發

首先用戶先自定義修改好語音詞條和提示,重新生成下載文件通過詞條下載器下載到語音芯片,此處主要介紹語音的功能介紹,不展開進行詳細敘述,具體可參考《【M】型語音識別串口屏開發使用說明》文檔。






3.2 串口屏工程配置

串口屏工程的配置主要有以下 2 點:

(1) 畫面配置

(2) LUA 腳本編輯


3.2.1 畫面配置

1. 在畫面 ID0 中,配置和語音芯片交互實現模擬燈光的控制開關,此處將不針對這些基本控件的使用一一贅述,如圖3-2所示。

圖3-2 畫面配置


  • ID1控件實現燈光的開關。



3.2.2 LUA腳本編輯

本例程中共分為四部分程序:


  • 屏幕初始化:初始化串口配置,波特率設置為57600。
  • 屏幕串口接收解析語音芯片指令。
  • 屏幕串口發送指令到語音芯片。
  • 屏幕邏輯判斷并響應。



1. 初始化

調用系統函數 on_init()執行初始化串口,代碼如程序清單5所示:

程序清單5初始化

--[[*********************************************************************
** Function name: on_init
** Descriptions : 系統初始化時,執行此回調函數。
*************************************************************--]]
function on_init()
    uart_set_baudrate3(57600)   --初始化屏幕串口3波特率57600 
    Send_command_list()          --初始化語音模塊指令集
End
--[[***************************************************************************
** Function name: Send_command_list
** Descriptions : 屏幕下發至語音芯片指令列表
*************************************************************--]]
function Send_command_list()
    cmd_list["喚醒"]   = 0
    cmd_list["打開燈光"] = 1
    cmd_list["關閉燈光"] = 2
end

核心API函數:

1) uart_set_baudre3(speed)

設置串口的波特率。


  • speed-通訊的波特率


2) Send_command_list()

自定義函數,用戶定義好屏幕下發語音芯片的指令表。


2. 屏幕串口接收解析指令

屏幕串口接收并解析語音芯片指令并作出響應,具體程序如程序清單 6:


程序清單 6 串口接收解析指令


--[[************************************************************************
** Function name: on_uart_recv_data3
** Descriptions : 語音芯片-屏幕串口
** @packet : 屏幕接收語音芯片的發送數據
** @value : 提取語音芯片下發的指令數據
************************************************************************--]]
local cmd_head = 0
local recv_buffer2_count = 0
function on_uart_recv_data3(packet)
    local str =""
    for i = 0,(#(packet)) do
        cmd_head = packet[i]  
        str =str..string.format("%02X",packet[i])
        if cmd_head==0XAA then
            recv_buff = {}
            recv_buffer2_count = 1
            recv_buff[1] = 0xAA
        else
            recv_buffer2_count = recv_buffer2_count+1
            recv_buff[recv_buffer2_count] = packet[i]
        end
        if recv_buffer2_count >= 4 then
            if recv_buff[4] == 0xBB then
                Instruction_operation() 
            end
            recv_buff = {}
        end
    end
end--[[************************************************************************
** Function name: Instruction_operation
** Descriptions : 解析語音芯片下發的數據指令
** @value : 提取指令,屏幕響應
************************************************************************--]]function Instruction_operation()
    recv_buff[3] = string.format("%d",recv_buff[3])

    if recv_buff[3] == "1" then                 --打開燈光
        set_value(VoiceScreen_id,1,1)
        set_value(VoiceScreen_id,14,1)
    elseif recv_buff[3] == "2" then            --關閉燈光
        set_value(VoiceScreen_id,1,0)
        set_value(VoiceScreen_id,14,0)
    end
end


核心API函數

1) on_uart_recv_data3(packet)

屏幕串口接收語音芯片下發的數據回調函數。


  • packet:形參為表,字節數據。



3. 屏幕串口指令發送

屏幕串口發送對應指令幀格式的指令到語音芯片,如程序清單 7:

程序清單 7 屏幕串口指令發送

--[[*********************************************************************
** Function name: Usart_send_cmdarry
** Descriptions : 串口下發指令。
** @ cmd : 詞條列表
*************************************************************--]]
function Usart_send_cmdarry(cmd)
    local usart_cmd = {}
    usart_cmd[0] = 0xAA        //幀頭
    usart_cmd[1] = 0x02        //功能碼:01代表語音芯片下發指令,02代表語音芯片接收指令
    string.format("%X",cmd)
    usart_cmd[2] = cmd         //詞條列表:本例程中對應詞條列表00:大彩管家 01:打開燈光 02:關閉燈光
    usart_cmd[3] = 0xBB        //幀尾
    uart_send_data3(usart_cmd)
end


核心API函數

1) uart_send_data3(packet)

屏幕串口數據發送函數。


  • packet:形參為表,字節數據。



4. 屏幕邏輯判斷

屏幕觸摸操作邏輯判斷,下發對應指令到語音芯片,如程序清單 8:


程序清單 8 屏幕邏輯判斷

--[[*********************************************************************
** Function name: on_control_notify
** Descriptions : 用戶觸摸修改控件后,執行此回調函數。
** @ screen : 畫面ID
** @ control : 控件ID
** @ value : 控件值
*********************************************************************--]]
function on_control_notify(screen,control,value)
    if screen == VoiceScreen_id then
        if control == 1 then
            if value == 0 then
                Usart_send_cmdarry(cmd_list["關閉燈光"])
                set_value(VoiceScreen_id,14,0)
            elseif value == 1 then
                Usart_send_cmdarry(cmd_list["打開燈光"])
                set_value(VoiceScreen_id,14,1)
            end
        end
    end
end


核心API函數

1) on_control_notify(screen,control,value)

用戶觸摸修改控件后,執行此回調函數。


  • screen:畫面ID。
  • control:控件ID。
  • value:控件值。



3.2.3 下載工程 

工程編譯成功后在輸出窗口會提示編譯成功,如圖3-3所示。編譯成功后點擊菜單欄中【工具】→【量產向導】,如圖3-4所示;

3-3 編譯成功


3-4 量產向導


在菜單欄中,文件→打開工程目錄,在‘dciot_build’目錄的‘prive’拷貝到 SD 卡中,

如圖3-5所示;把 SD 卡接上串口屏后重新上電,等到提示燒錄工程成功后,拔掉 SD 卡重新上電即可。

3-5 拷貝到SD





主站蜘蛛池模板: 正蓝旗| 开鲁县| 牙克石市| 邵东县| 榕江县| 洛阳市| 桦南县| 合阳县| 西丰县| 弥渡县| 北辰区| 肇东市| 珲春市| 广安市| 科尔| 汪清县| 兰溪市| 修水县| 安陆市| 美姑县| 启东市| 响水县| 松阳县| 南澳县| 揭东县| 嘉禾县| 荆门市| 南汇区| 聂拉木县| 西宁市| 海南省| 信阳市| 宜章县| 吉安县| 新巴尔虎左旗| 汾阳市| 东丽区| 南江县| 普宁市| 准格尔旗| 周至县|