Google Code Prettify

2018年4月9日 星期一

[Arduino + SYN7318] Arduino語音應用

上篇語音晶片內部指令燒入

接下來配合Arduino 做智慧家庭應用,



Farmer 板子為 mega 2560,

接腳為

arduino -> SYN7318 (URAT)
-----------------------------------------------------
RX1   ->  TX

TX1   ->  RX

5V     ->  5V

GND ->  GND
-----------------------------------------------------

SYN7318 記得要接喇叭或耳機

SP+ -> 喇叭+

SP-  -> 喇叭-或GND

首先我們要了解SYN7318傳遞的指令

官方文件下載

7318接收送出皆由 0x00 ~ 0xFF(16)

傳輸胞率為 115200 (看各家設定板設置胞率有差異,但主要皆為115200)

傳遞指令 開頭接為 0xFD

7318回傳狀態 開頭為 0xFC

下面列出幾項最主要的指令

Arduino傳送指令


開啟喚醒(管家)
0xFD 0x00 0x02 0x51 !  (管家 !: 0x00 云宝、 0x02小播、 0x04百灵、 0x06叮当管家、 0x07百灵管家、 0x08小播管家、 0x09大管家、 0x1F:自定义)

關閉喚醒(管家)
0xFD 0x00 0x01 0x52 

開始識別
0xFD 0x00 0x02 0x10 (詞典 ?: 0x00 智能家具、 0x01 歌曲、 0x02 點播、 0x03 用戶1、 0x04 用戶2、0x05 用戶3)

停止識別
0xFD 0x00 0x01 0x11 

查詢狀態
0xFD 0x00 0x01 0x21 

三合一識別
0xFD 0x00 $ 0x15 ? ! 0x02 0x01 0x44 0x3A 0x5C 0x4D 0x70 0x33 0x5C 0x50 0x72 0x6F 0x6D 0x70 0x74 0x5F "0xD6 0xF7 0xC8 0xCB 0xC7 0xEB 0xB7 0xD4 0xB8 0xC0" 0x2E 0x6D 0x70 0x33 
(
指令長度 $: 去除 0xFD 0x00 的指令長度,如 0x21: 16*2+1 = 34個指令
辭典 ?: 0x00 智能家具、 0x01 歌曲、 0x02 點播、 0x03 用戶1、 0x04 用戶2、0x05 用戶3
管家 !: 0x00 云宝、 0x02小播、 0x04百灵、 0x06叮当管家、 0x07百灵管家、 0x08小播管家、 0x09大管家、 0x1F:自定义

提示音內容 " "
)

停止三合一

0xFD 0x00 0x01 0x16 

7318回複狀態/指令

接收成功                  
0xFC 0x0 0x1 0x41 

識別拒識
0xFC 0x0 0x1 0x7

用戶静音超時
0xFC 0x0 0x1 0x3 

模塊空閒  
0xFC 0x0 0x1 0x4F 

-------------------------------------------------------------------

利用Mega2560的多組RX、TX,即可監看狀態

並且利用上方這些主要指令來配合做動應用

這邊分享官方的 Arduino Simple Code (有小小更動)

在上篇有說到

詞典庫在 程式中有差異 
Start_ASR(0x00); 
0x00 為 詞典00
0x09 為 詞典09

至於編碼則是在 傳送指令上有所差異,可以請各位嘗試看看



1 則留言:

  1. 請問一下 SYN7318 有辦法辨識英文單字嗎?或者辨識英文句子?

    回覆刪除