?
1 概述?
隨著人們生活水平的提高,對產品的功能要求也越來越高,追求舒適的體驗感,特別是對操控性的要求越來越高。目前風扇產品的控制方式有以下幾類:
- 按鍵控制:傳統控制方式,每次要走到風扇邊才行,操作麻煩;
- 遙控控制:采用紅外遙控或者藍牙遙控,方便遠距離控制,但遙控器容易丟,放置也麻煩。且遙控器上按鍵較少,當風扇功能多的時候無法用單次按鍵控制全部的功能,組合按鍵不符合人們使用習慣;
- 手機APP控制:每次控制需要打開手機APP,需要聯網,同時風扇需配網,操作繁瑣;
- 智能音箱控制:通過如天貓精靈等智能音箱直接控制,相對方便,但音箱需聯網狀態下才可使用,識別時有隱私安全問題,網絡延時大時控制的實時性不好。
?
為了解決以上痛點,可以采用純離線語音識別進行控制,在成本增加不大的情況下,為產品帶來更多的亮點和競爭力。啟英泰倫針對該產品領域,已開發了整套離線語音風扇方案,下面對該方案進行介紹。
2 方案優勢?
啟英泰倫離線語音風扇相對傳統風扇方案,可讓用戶通過語音控制風扇設備,替換傳統遙控器或按鈕控制的方式,該方案有以下優勢:
- 可以直接使用語音控制風扇,且無需聯網,自然方便,識別率可達95%以上;
- 語音控制響應快,一般在0.2~0.8s內完成;
- 可遠場識別,安靜情況下可達10米;
- 方案功耗低,工作功耗僅為0.2W左右;
- 可靠性好,芯片方案已通過雙85測試,滿足格力、美的等家電巨頭要求;
- 整套產品技術已成熟,具有完整的軟件、硬件、結構設計方案,節省開發周期,降低開發難度;
- 配合我司語音AI平臺開發,可靈活定制喚醒詞和命令詞,不需要再專門收集語料訓練。
?
3 應用描述?
風扇產品按照使用電源類型可分為交流電風扇、直流電風扇和交直流電風扇三類,其類型可以分為臺扇、吊扇、落地扇、無葉風扇等。啟英泰倫離線語音風扇方案適用于各類風扇,其中尤其在落地扇上面的應用較多。
語音風扇產品的使用場景為普通家居環境,在安靜和中低噪音下可以達到良好的識別率。其中安靜環境的環境底噪在35dB ~ 45dB之間,屬于中低噪音環境;開啟風扇后環境噪音可達45dB ~ 65dB之間。該噪音環境下可以直接選用我司單麥克風語音模塊,如CI-B0XGS01S或CI-B0XGS01S-H模塊,以達到比較好的性價比。
特別注意,不同的風扇運行過程中,因為扇葉大小和葉片數量,風量大小差異,運行產生的風噪大小也有不小的差異,為了達到最好的語音識別效果,在設計風扇整機結構時,因注意控制噪音小于65dB。
4 產品設計流程?
一個基于我司芯片的標準語音產品設計流程如下圖所示:
?
該流程主要針對我司新用戶開發產品使用,包含了前期購買樣品Demo進行驗證,硬件選型,語音對話邏輯、軟硬件方案和結構設計,設計完成后的測試,以及生產測試準備和后續批量采購等步驟。如果是已經熟悉我司方案的老用戶,可以直接從中間步驟開始,不用再重復進行Demo測試等工作。
下面針對新用戶的開發,對上述流程中的各個步驟逐一描述。
4.1 DEMO測試?
針對新用戶,可以先從我司授權的經銷商或直接從我司官網 ?樣品購買處購買對應的模塊或開發板套件,進行識別效果測試,相關的軟硬件技術文檔可以從本文檔中心處獲取。用戶測試滿意后,可以進行硬件選型。
4.2 選型指南?
用戶硬件選型可以直接參考 ?硬件選型,如果用戶想快速產品化,推薦直接使用我司已設計好的標準模塊;如果現有標準模塊無法滿足產品的結構需求,也可以選用合適的芯片進行硬件板的設計。
4.3 方案設計?
選擇好合適的芯片或模塊后,可根據產品的功能進行下述設計:
- 語音UI(喚醒詞和命令詞)設計:設計方法可參考 ?語音UI設計參考;
- 硬件設計:設計方法可參考 ?硬件設計參考;
- 結構設計:設計方法可參考 ?產品結構設計;
- 軟件開發:設計方法可參考 ?軟件開發。
如用戶為首次進行語音方案開發,建議到 ?啟英泰倫語音AI平臺上獲取基于相關芯片的語音產品方案設計Checklist文檔,進行逐一檢查以確保設計效果。如有技術支持需求請聯系我司技術支持人員。
4.4 測試驗收?
產品方案設計完成形成樣品后,建議對該樣品進行相關的識別測試,相關測試方法和標準可參考 ?識別效果測試。同時,還建議根據產品質量的要求進行各類硬件測試,如雙85測試、靜電測試等。為了保證最終的識別效果,還建議進行硬件底噪的測試及產品裝機后的整機功能測試。
4.5 生產測試?
樣機測試完成后,會轉入后續產線批量生產階段。我司為產品的批量生產做了完善的解決方案,用戶可以參考 ?生產測試獲取更多信息。用戶如需要生產測試的相關技術支持,請聯系我司技術人員。
4.6 下單采購?
用戶如果要采購我司產品樣品,請點擊 ?樣品購買,也可以點擊 ?樣品和批量采購獲取更多信息。
5 風扇設計方案介紹?
5.1 主控方案?
5.1.1 方案特點?
我司的CI110X芯片內置多個IO,可直接取代傳統電控風扇中的單片機控制方案,實現單芯片完成語音控制和主控控制,整體成本較低,但需要做語音和主控的開發,前期開發周期長。
為了方便用戶使用,我司已提前做了相應的開發,可以提供完整的語音風扇主控方案。
5.1.2 方案框圖?
?
整個方案如上圖所示,CI110X芯片作為主控,可以通過麥克風采集外部語音進行識別,通過功放驅動喇叭播音。如為省成本,還可以將功放和喇叭換為蜂鳴器。CI110X芯片還可以接受外部按鍵及紅外信號,兼容傳統控制方式。
CI110X芯片可支持數碼管顯示,以及控制外部的驅動電路,實現電機的控制,可以很好的用一個單芯片實現風扇的全部控制功能。
5.1.3 硬件設計參考?
?風扇電控板的一個硬件參考線路圖及IO使用情況見下圖,用戶可以使用CI110X芯片按照相同的IO使用方式設計硬件電路,可以方便的搭建整套風扇方案。
?
5.1.4 主控方案SDK包說明?
我司為用戶基于上述硬件設計,提供了完整的SDK包,用戶可以到 ?啟英泰倫語音AI平臺上獲取相關SDK開發包。
本SDK包有以下功能點:
- 控制方式:支持藍牙、紅外、按鍵、語音;
- 風扇模式:支持正常風、自然風、睡眠風、智能風;
- 搖頭方式:支持左右搖頭、上下搖頭、3D搖頭;
- 定時功能:支持定時關機功能,可按整數定時1 ~ 15小時。
本SDK包中使用到了硬件timer,使用方式如下:
- 硬件TIMER0:轉速電機控制(不歸零碼NRZ編碼,使用一個IO腳);
- 硬件TIMER1:紅外接收控制;
- 硬件TIMER2:藍牙接收控制(注意,藍牙接收的數據和紅外接收模塊基本相同);
- 硬件TIMER3:蜂鳴器控制和搖頭電機控制。
為了方便代碼的移植,每個外設驅動和風扇應用代碼都是單獨的文件夾,目錄說明如下:
目錄地址 | 目錄說明 | 功能描述 |
---|---|---|
..\components\ir..\components\ir_remote_driver\ | 紅外驅動目錄(有些藍牙也是單線通訊方式,與紅外的驅動基本一致) | 紅外接收功能,接收后的數據會隊列通知到deal_userdef_msg,紅外的長度可以根據宏定義配置。 #宏定義 #define IR_MAX_DATA_COUNT 120最大紅外個數 |
..\components\motor_driver\ | 電機驅動目錄 | 當前支持5104的不歸零碼協議,后續如有其它驅動,CI可以支持 |
..\components\ci_key\ | 使用了2個Touch IC芯片(如品騰PT8041),控制7個按鍵 | 觸摸不同的按鍵,對應不同的adc數值,故使用兩個ADIO 做按鍵驅動,根據客戶的實際產品,請自行調整 |
..\components\digital_tube\ | 數碼管驅動目錄 | IO 與LED 進行復用。目前支持的是兩個數碼管+8個LED |
..\components\temperature_sensor\ | 溫度傳感器驅動目錄 | 使用AD+熱敏電阻實現,產品可以根據溫度進行智能調節風量 |
..\components\buzzer\ | 蜂鳴器驅動目錄 | 采用定時器默認4Khz進行聲音提示,可以更改 #define BUZZER_HZ 進行配置,單位HZ |
..\sample\internal\sample_1102\src\user_msg_deal.c | 風扇應用層代碼 | 根據紅外,按鍵,語音識別的消息進行電機的應用控制 |
針對SDK中一些重要的變量和函數進行說明:
風扇狀態變量:
typedef struct
{
unsigned short user_code : 4 ;//用戶碼固定位 b'1010*
unsigned short positive : 2 ;//正轉b'00 反轉b'11*
unsigned short sync_motor: 2 ;//同步電機1 停止b'00 同步電機停止b'10*
unsigned short speed_bit: 8 ;//電機工作范圍25~255 0表示電機停止*
unsigned char mode; //0:正常風 1:自然風 2:睡眠風 3:智能風*
short time; //0~15H*
unsigned char led; //1開,0關*
unsigned char head; //0關閉 1:左右 2:上下 3:3D*
unsigned char gear; //0關閉 1~24*
}motor_status_struct_data;
風扇初始化函數
路徑: ..\sample\internal\sample_1102\src\user_msg_deal.c
/*\* @breif 風扇初始化函數**/
void fan_init(void)
{
//風扇狀態初始化
motor_status.user_code = 0xa;
motor_status.sync_motor = 0x0;
motor_status.speed_bit = 0x0;
motor_status.positive = 0x00;
motor_status.mode = 0;
motor_status.head = 0;
motor_status.led = 1;
motor_status.gear = 0;
motor_status.time = 0;
/*風扇軟件初始化*/
extern void user_fan_soft_init(void);
user_fan_soft_init();
//電機初始化
agreement_5104_app_init();
//紅外初始化
extern void ir_test_recive(void);
ir_test_recive();
//藍牙初始化
extern void bt_test_recive(void);
bt_test_recive();
//按鍵初始化
extern void ci_key_init(void);
ci_key_init();
//數碼管初始化
extern int digital_tube_init(void);
digital_tube_init();
//蜂鳴器初始化
buzzer_init();
//同步電機2初始化
sync_motor2_hw_init();
//溫度傳感器初始化
temp_sensor_init();
}
風扇應用任務處理
語音入口和標準SDK一致無改動,藍牙、語音、按鍵、紅外通過隊列sys_msg_queue發送消息到UserTaskManageProcess任務。相關控制處理入口入下圖所示例:
uint32_t deal_userdef_msg(sys_msg_t *msg)
{
uint32_t ret = 1;
switch(msg->msg_type)
{
/* 按鍵消息 */
case SYS_MSG_TYPE_KEY:
{
sys_msg_key_data_t *key_rev_data;
key_rev_data = &msg->msg_data.key_data;
userapp_deal_key_msg(key_rev_data);
break;
}
/* 紅外消息 */
case SYS_MSG_TYPE_IR:
{
sys_msg_ir_data_t *ir_rev_data;
ir_rev_data = &msg->msg_data.ir_data;
userapp_deal_ir_msg(ir_rev_data);
break;
}
/* 藍牙消息*/
case SYS_MSG_TYPE_BT:
{
sys_msg_bt_data_t *bt_rev_data;
bt_rev_data = &msg->msg_data.bt_data;
userapp_deal_bt_msg(bt_rev_data);
break;
}
#if MSG_COM_USE_UART_EN
/* CI串口協議消息 */
case SYS_MSG_TYPE_COM:
{
sys_msg_com_data_t *com_rev_data;
com_rev_data = &msg->msg_data.com_data;
userapp_deal_com_msg(com_rev_data);
break;
}
#endif
/* CI IIC 協議消息 */
#if MSG_USE_I2C_EN
case SYS_MSG_TYPE_I2C:
{
sys_msg_i2c_data_t *i2c_rev_data;
i2c_rev_data = &msg->msg_data.i2c_data;
userapp_deal_i2c_msg(i2c_rev_data);
break;
}
#endif
default:
break;
}
return ret;
}
5.2 配合主控板的串口通訊方案?
5.2.1 方案特點?
如用戶不愿意替換原先使用的電控板,也可以用我司的芯片設計語音控制板,和原電控板通過串口進行通訊,也可以實現語音風扇的產品設計。該方式開發相對簡單,可以快速對接完成產品,但成本略高,適用于需快速出產品的的方案或者第一次接觸語音識別的方案。
該方案的設計框圖如下,語音模塊與電控模塊需要4根線的串口連接,語音模塊進行語音識別及根據風扇的狀態進行信息播放,控制由電控模塊完成。
?
5.2.2 硬件設計參考?
用戶可以使用我司芯片設計需要要求的語音模塊,但為快速開發,推薦直接使用我司的以下標準模塊:
- CI-B02GS03T:適合空間比較高,縱深長的結構,串口接口電平為3.3V;
- CI-B02GS01S:適合空間比較矮的結構,串口接口電平為3.3V;
- CI-B02GS01J:適合有空間放置固定語音模塊的結構,原來的風扇硬件改動較小,串口接口電平為5V。
?
用戶直接使用我司標準語音模塊時,有以下注意事項:
- 將語音模塊板的串口跟電控串口對接,注意電控的供電需要大于1A;
- 注意串口的電平要匹配,CI-B02GS01J支持5V電平,其他的模塊支持3.3V,如果電控板使用5V電平,CI-B02GS01J可以對接直接串口,其它模塊需要增加電平轉換電路,如下圖所示:
?
5.2.3 串口通訊方式?
語音模塊與電控模塊通過串口進行信息交互,主要有兩種方式,一種為語音模塊主動播放,同時將信息發電控模塊;另一種為語音模塊被動播放,其分別描述如下:
語音模塊主動播放模式
?
主動播放方式主要執行以下動作:
- 識別到詞條,主動播放反饋聲音;
- 將此條信息串口告知電控模塊;
- 電控模塊執行動作。
該方式的優點在于控制方式簡單,由語音模塊單線輸出信息給電控模塊。但缺點在于無法根據風扇的情況及按鍵情況進行語音反饋。
語音模塊被動播放模式
?
被動播放方式主要執行以下動作:
- 語音模塊識別到詞條;
- 將詞條信息串口告知電控模塊;
- 電控模塊執行相關動作;
- 告知語音模塊需要播放的內容;
- 語音模塊根據電控模塊反饋進行播放。
該方式的優點在于語音模塊根據電控模塊的狀態進行播放對應內容,可以進行最合適的反饋,體驗感好;同時如果電控模塊通過按鍵或者遙控進行控制,語音模塊也可以進行狀態播放。缺點在于會多一次串口通信的過程。
5.2.4 SDK包說明和模塊串口通訊協議?
我司為用戶提供了串口通訊方案完整的SDK包,用戶可以到 ?啟英泰倫語音AI平臺上獲取相關SDK開發包。
模塊的串口通訊建議使用我司標準協議,具體格式請參考 ?串口協議。
以下是語音模塊發給電控模塊的一個命令詞及協議參考:
命令詞 | 幀頭 | 長度 | 類型 | 命令 | 序號 | 語音ID | 保留 | 分數 | 累加和 | 幀尾 |
---|---|---|---|---|---|---|---|---|---|---|
小艾小艾 | A5 FC | 07 00 | A0 | 91 | XX | 00 00 00 00 | 00 00 | XX | XXXX | FB |
開風扇 | A5 FC | 07 00 | A0 | 91 | XX | 42 19 74 02 | 00 00 | XX | XXXX | FB |
打開風扇 | A5 FC | 07 00 | A0 | 91 | XX | 41 19 74 02 | 00 00 | XX | XXXX | FB |
關風扇 | A5 FC | 07 00 | A0 | 91 | XX | 82 19 74 02 | 00 00 | XX | XXXX | FB |
關閉風扇 | A5 FC | 07 00 | A0 | 91 | XX | 81 19 74 02 | 00 00 | XX | XXXX | FB |
開搖頭 | A5 FC | 07 00 | A0 | 91 | XX | 86 22 74 02 | 00 00 | XX | XXXX | FB |
打開搖頭 | A5 FC | 07 00 | A0 | 91 | XX | 85 22 74 02 | 00 00 | XX | XXXX | FB |
風扇搖頭 | A5 FC | 07 00 | A0 | 91 | XX | 81 22 74 02 | 00 00 | XX | XXXX | FB |
關搖頭 | A5 FC | 07 00 | A0 | 91 | XX | C5 22 74 02 | 00 00 | XX | XXXX | FB |
關閉搖頭 | A5 FC | 07 00 | A0 | 91 | XX | C4 22 74 02 | 00 00 | XX | XXXX | FB |
停止搖頭 | A5 FC | 07 00 | A0 | 91 | XX | C1 22 74 02 | 00 00 | XX | XXXX | FB |
風大點 | A5 FC | 07 00 | A0 | 91 | XX | E1 38 BC 02 | 00 00 | XX | XXXX | FB |
風大一點 | A5 FC | 07 00 | A0 | 91 | XX | 72 1A 98 01 | 00 00 | XX | XXXX | FB |
風大一些 | A5 FC | 07 00 | A0 | 91 | XX | 73 1A 98 01 | 00 00 | XX | XXXX | FB |
風再大點 | A5 FC | 07 00 | A0 | 91 | XX | 74 1A 98 01 | 00 00 | XX | XXXX | FB |
風小一點 | A5 FC | 07 00 | A0 | 91 | XX | 75 1A 98 01 | 00 00 | XX | XXXX | FB |
風小一些 | A5 FC | 07 00 | A0 | 91 | XX | 76 1A 98 01 | 00 00 | XX | XXXX | FB |
風小點 | A5 FC | 07 00 | A0 | 91 | XX | 5F 39 BC 02 | 00 00 | XX | XXXX | FB |
風再小點 | A5 FC | 07 00 | A0 | 91 | XX | 77 1A 98 01 | 00 00 | XX | XXXX | FB |
最大風 | A5 FC | 07 00 | A0 | 91 | XX | C7 39 BC 02 | 00 00 | XX | XXXX | FB |
最小風 | A5 FC | 07 00 | A0 | 91 | XX | 48 3A BC 02 | 00 00 | XX | XXXX | FB |
定時關機 | A5 FC | 07 00 | A0 | 91 | XX | 01 0F 95 01 | 00 00 | XX | XXXX | FB |
關閉定時 | A5 FC | 07 00 | A0 | 91 | XX | 44 0E 95 01 | 00 00 | XX | XXXX | FB |
睡眠風 | A5 FC | 07 00 | A0 | 91 | XX | 82 27 74 02 | 00 00 | XX | XXXX | FB |
自然風 | A5 FC | 07 00 | A0 | 91 | XX | 03 28 74 02 | 00 00 | XX | XXXX | FB |
正常風 | A5 FC | 07 00 | A0 | 91 | XX | C1 CB 94 01 | 00 00 | XX | XXXX | FB |
聲音大點 | A5 FC | 07 00 | A0 | 91 | XX | 47 19 94 01 | 00 00 | XX | XXXX | FB |
聲音小點 | A5 FC | 07 00 | A0 | 91 | XX | 87 19 94 01 | 00 00 | XX | XXXX | FB |
定時一小時 | A5 FC | 07 00 | A0 | 91 | XX | 02 37 95 01 | 00 00 | XX | XXXX | FB |
定時兩小時 | A5 FC | 07 00 | A0 | 91 | XX | 82 37 95 01 | 00 00 | XX | XXXX | FB |
定時二小時 | A5 FC | 07 00 | A0 | 91 | XX | 83 37 95 01 | 00 00 | XX | XXXX | FB |
定時三小時 | A5 FC | 07 00 | A0 | 91 | XX | 01 38 95 01 | 00 00 | XX | XXXX | FB |
定時四小時 | A5 FC | 07 00 | A0 | 91 | XX | 81 38 95 01 | 00 00 | XX | XXXX | FB |
定時五小時 | A5 FC | 07 00 | A0 | 91 | XX | 01 39 95 01 | 00 00 | XX | XXXX | FB |
定時六小時 | A5 FC | 07 00 | A0 | 91 | XX | 81 39 95 01 | 00 00 | XX | XXXX | FB |
開一檔 | A5 FC | 07 00 | A0 | 91 | XX | 41 3F 94 01 | 00 00 | XX | XXXX | FB |
開二檔 | A5 FC | 07 00 | A0 | 91 | XX | C1 3E 94 01 | 00 00 | XX | XXXX | FB |
開三檔 | A5 FC | 07 00 | A0 | 91 | XX | 01 3F 94 01 | 00 00 | XX | XXXX | FB |
開四檔 | A5 FC | 07 00 | A0 | 91 | XX | 41 3F 94 01 | 00 00 | XX | XXXX | FB |
開五檔 | A5 FC | 07 00 | A0 | 91 | XX | 81 3F 94 01 | 00 00 | XX | XXXX | FB |
開六檔 | A5 FC | 07 00 | A0 | 91 | XX | C1 3F 94 01 | 00 00 | XX | XXXX | FB |
開七檔 | A5 FC | 07 00 | A0 | 91 | XX | 01 40 94 01 | 00 00 | XX | XXXX | FB |
開八檔 | A5 FC | 07 00 | A0 | 91 | XX | 41 40 94 01 | 00 00 | XX | XXXX | FB |
開九檔 | A5 FC | 07 00 | A0 | 91 | XX | 81 40 94 01 | 00 00 | XX | XXXX FB | |
退出喚醒 | A5 FC | 02 00 | A3 | 9A | XX | 00 B2 | XXXX | FB |
以下是一個電控模塊發給語音模塊的通訊協議參考:
對應播報音 | 幀頭 | 長度 | 類型 | 命令 | 序號 | 控制 | 播放類型 | 播放序號 | 保留 | 累加和 | 幀尾 |
---|---|---|---|---|---|---|---|---|---|---|---|
小艾小艾 | A5 FC | 07 00 | A1 | 92 | XX | 80 | 92 | 01 00 00 00 | 0 | XXXX | FB |
開風扇 | A5 FC | 07 00 | A1 | 92 | XX | 80 | 92 | 02 00 00 00 | 0 | XXXX | FB |
打開風扇 | A5 FC | 07 00 | A1 | 92 | XX | 80 | 92 | 03 00 00 00 | 0 | XXXX | FB |
關風扇 | A5 FC | 07 00 | A1 | 92 | XX | 80 | 92 | 04 00 00 00 | 0 | XXXX | FB |
關閉風扇 | A5 FC | 07 00 | A1 | 92 | XX | 80 | 92 | 05 00 00 00 | 0 | XXXX | FB |
開搖頭 | A5 FC | 07 00 | A1 | 92 | XX | 80 | 92 | 06 00 00 00 | 0 | XXXX | FB |
打開搖頭 | A5 FC | 07 00 | A1 | 92 | XX | 80 | 92 | 07 00 00 00 | 0 | XXXX | FB |
風扇搖頭 | A5 FC | 07 00 | A1 | 92 | XX | 80 | 92 | 08 00 00 00 | 0 | XXXX | FB |
關搖頭 | A5 FC | 07 00 | A1 | 92 | XX | 80 | 92 | 09 00 00 00 | 0 | XXXX | FB |
關閉搖頭 | A5 FC | 07 00 | A1 | 92 | XX | 80 | 92 | 0A 00 00 00 | 0 | XXXX | FB |
停止搖頭 | A5 FC | 07 00 | A1 | 92 | XX | 80 | 92 | 0B 00 00 00 | 0 | XXXX | FB |
風大點 | A5 FC | 07 00 | A1 | 92 | XX | 80 | 92 | 0C 00 00 00 | 0 | XXXX | FB |
風大一點 | A5 FC | 07 00 | A1 | 92 | XX | 80 | 92 | 0D 00 00 00 | 0 | XXXX | FB |
風大一些 | A5 FC | 07 00 | A1 | 92 | XX | 80 | 92 | 0E 00 00 00 | 0 | XXXX | FB |
風再大點 | A5 FC | 07 00 | A1 | 92 | XX | 80 | 92 | 0F 00 00 00 | 0 | XXXX | FB |
風小一點 | A5 FC | 07 00 | A1 | 92 | XX | 80 | 92 | 10 00 00 00 | 0 | XXXX | FB |
風小一些 | A5 FC | 07 00 | A1 | 92 | XX | 80 | 92 | 11 00 00 00 | 0 | XXXX | FB |
風小點 | A5 FC | 07 00 | A1 | 92 | XX | 80 | 92 | 12 00 00 00 | 0 | XXXX | FB |
風再小點 | A5 FC | 07 00 | A1 | 92 | XX | 80 | 92 | 13 00 00 00 | 0 | XXXX | FB |
最大風 | A5 FC | 07 00 | A1 | 92 | XX | 80 | 92 | 14 00 00 00 | 0 | XXXX | FB |
最小風 | A5 FC | 07 00 | A1 | 92 | XX | 80 | 92 | 15 00 00 00 | 0 | XXXX | FB |
定時關機 | A5 FC | 07 00 | A1 | 92 | XX | 80 | 92 | 16 00 00 00 | 0 | XXXX | FB |
關閉定時 | A5 FC | 07 00 | A1 | 92 | XX | 80 | 92 | 17 00 00 00 | 0 | XXXX | FB |
睡眠風 | A5 FC | 07 00 | A1 | 92 | XX | 80 | 92 | 18 00 00 00 | 0 | XXXX | FB |
自然風 | A5 FC | 07 00 | A1 | 92 | XX | 80 | 92 | 19 00 00 00 | 0 | XXXX | FB |
正常風 | A5 FC | 07 00 | A1 | 92 | XX | 80 | 92 | 1A 00 00 00 | 0 | XXXX | FB |
聲音大點 | A5 FC | 07 00 | A1 | 92 | XX | 80 | 92 | 1B 00 00 00 | 0 | XXXX | FB |
聲音小點 | A5 FC | 07 00 | A1 | 92 | XX | 80 | 92 | 1C 00 00 00 | 0 | XXXX | FB |
定時一小時 | A5 FC | 07 00 | A1 | 92 | XX | 80 | 92 | 1D 00 00 00 | 0 | XXXX | FB |
定時兩小時 | A5 FC | 07 00 | A1 | 92 | XX | 80 | 92 | 1E 00 00 00 | 0 | XXXX | FB |
定時二小時 | A5 FC | 07 00 | A1 | 92 | XX | 80 | 92 | 1F 00 00 00 | 0 | XXXX | FB |
定時三小時 | A5 FC | 07 00 | A1 | 92 | XX | 80 | 92 | 20 00 00 00 | 0 | XXXX | FB |
定時四小時 | A5 FC | 07 00 | A1 | 92 | XX | 80 | 92 | 21 00 00 00 | 0 | XXXX | FB |
定時五小時 | A5 FC | 07 00 | A1 | 92 | XX | 80 | 92 | 22 00 00 00 | 0 | XXXX | FB |
定時六小時 | A5 FC | 07 00 | A1 | 92 | XX | 80 | 92 | 23 00 00 00 | 0 | XXXX | FB |
開一檔 | A5 FC | 07 00 | A1 | 92 | XX | 80 | 92 | 24 00 00 00 | 0 | XXXX | FB |
開二檔 | A5 FC | 07 00 | A1 | 92 | XX | 80 | 92 | 25 00 00 00 | 0 | XXXX | FB |
開三檔 | A5 FC | 07 00 | A1 | 92 | XX | 80 | 92 | 26 00 00 00 | 0 | XXXX | FB |
開四檔 | A5 FC | 07 00 | A1 | 92 | XX | 80 | 92 | 27 00 00 00 | 0 | XXXX | FB |
開五檔 | A5 FC | 07 00 | A1 | 92 | XX | 80 | 92 | 28 00 00 00 | 0 | XXXX | FB |
開六檔 | A5 FC | 07 00 | A1 | 92 | XX | 80 | 92 | 29 00 00 00 | 0 | XXXX | FB |
開七檔 | A5 FC | 07 00 | A1 | 92 | XX | 80 | 92 | 2A 00 00 00 | 0 | XXXX | FB |
開八檔 | A5 FC | 07 00 | A1 | 92 | XX | 80 | 92 | 2B 00 00 00 | 0 | XXXX | FB |
開九檔 | A5 FC | 07 00 | A1 | 92 | XX | 80 | 92 | 2C 00 00 00 | 0 | XXXX | FB |
注意:
- ASR語言模型中文建議選擇SE146,其他語種請使用對應語種的模型。風扇產品自帶運行噪音,如果風扇本身噪音大于60db,建議打開降噪功能。
- 串口設置:
- 波特率:9600
- 停止位:1
- 數據位:8
- 奇偶校驗:無
- 代碼中通過判斷 “命令+語音ID”獲取是什么指令和功能。
- 發送的串口信息建議要檢查完整性,可以用以下的checksum參考代碼來實現。
#define VMUP_MSG_DATA_MAX_SIZE (20)//可根據實際數據大小調整
#pragma pack(1)
typedef struct
{
uint16_t header;
uint16_t data_length;
uint8_t msg_type;
uint8_t msg_cmd;
uint8_t msg_seq;
uint8_t msg_data[VMUP_MSG_DATA_MAX_SIZE];
/*uint16_t chksum; send add auto*/
/*uint8_t tail; send add auto*/
}sys_msg_com_data_t;
#pragma pack()
unsigned short Uart_Checksum(sys_msg_com_data_t * msg)
{
unsigned char i;
unsigned short t16_lenth;
unsigned short t16_check = 0;
uint8_t* rxbuf = uint8_t*&msg->msg_type
t16_lenth = msg->data_length + 3;//cmd_type,cmd,sequence 加上data數據的長度
if(t16_lenth > VMUP_MSG_DATA_MAX_SIZE + 3)//data length error
{
return 0xffff;
}
for(i=4;i
6 產品結構相關注意事項?
6.1 麥克風結構設計?
風扇產品在設計結構時,針對麥克風應當注意以下事項:
- 麥克風布局盡量遠離風扇的風面及電機;
- 麥克風放在風扇的正面/頂部/底部/的位置避免遮擋,保證拾音最大范圍;
- 分貝儀測試最大風速下,麥克風處的穩態噪聲需小于60dB;
- 麥克風連線較長可選擇帶屏蔽的線;
- 麥克風線扎捆遠離電機或電控線。
下圖以落地風扇為例,講述麥克風結構開孔及位置的建議方式,固定麥克風的結構件也需要考慮麥克風線方便引出導線和避免干擾。
?
6.2 喇叭結構設計?
風扇產品在設計結構時,針對喇叭應當注意以下事項:
- 考慮到音質,喇叭功率不能太小,建議選用1W以上喇叭,帶音腔的喇叭效果會更好一點,同時注意硬件板上的功放驅動能力要匹配喇叭型號;
- 喇叭放置位置以美觀及結構布局方便為主,但注意盡量避免和麥克風放在同一位置;
- 不帶音腔喇叭可以在結構上做一個音腔密封后能增大音量輸出。
下圖是一個喇叭規格及開孔的建議。
?
6.3 其它注意事項?
- 建議選擇-32dB±3dB,信噪比大于70dB以上,性價比高的全向模擬麥克風;
- 若風扇旋轉震動比較大,選擇較厚的麥克風膠套減緩震動,可減小對識別效果的影響;
- 某些顯控板在底盤上的落地風扇,或類似易接觸水或積累灰塵的風扇,需要選擇防水防塵的麥克風;
- 特別注意禁止直接點熱溶膠用于固定麥克風頭;
- 將麥克風完全插入固定孔內部,避免歪斜,拾音孔中心孔對準麥克風的中心;
- 風扇內部接線多容易扯松,插頭配插座帶卡扣會更牢固;
- 選擇符合環保RoHS要求的RTV硅膠,推薦常用的硅膠有703/704/737等,或其它有機材料、單組分室溫固化硅膠等;
- 多數硅橡膠灌膠厚度小于3mm以內實溫完全固化時間為8 ~ 12小時,灌膠厚度 > 3mm以上完全固化時間更長,可分層多次澆灌,確保完全固化穩定密封;
- 生產工藝可把固定麥克風工序提前,另外特別注意麥克風接線在重力拉扯下,未完全固化前容易導致麥克風扯歪,也需注意將麥克風插線固定好。
?
7 相關參考資料列表?
編號 | 參考資料描述 | 獲取方式 |
---|---|---|
1 | 標準離線SDK CI110X_SDK_ASR_Offline | 請到 ?啟英泰倫語音AI平臺上獲取 |
2 | 風扇SDK Demo: 主控方案SDK 串口通訊方案SDK | 請到 ?啟英泰倫語音AI平臺上獲取 |
3 | 測試固件 | 到 ?啟英泰倫語音AI平臺上獲取 |
4 | 我司芯片和模塊的選型指南 | 請點擊 ?硬件選型指南查看 |
5 | 我司芯片硬件設計方法參考 | 請點擊 ?硬件設計參考查看 |
6 | 麥克風和喇叭器件選型 | 請點擊 ?外圍器件兼容列表查看 |
7 | 產品結構設計 | 請點擊 ?產品結構設計查看 |
8 | 軟件開發方法和標準SDK說明 | 請點擊 ?軟件開發查看各部分內容 |
9 | 產品識別性能測試方法 | 請點擊 ?識別效果測試查看 |
10 | 生產測試的方法 | 請點擊 ?生產測試查看 |
用戶如遇到使用問題,請到啟英泰倫語音AI平臺上提交技術工單,或直接聯系我司技術人員獲取協助。
?
-
風扇
+關注
關注
4文章
414瀏覽量
37448 -
AI芯片
+關注
關注
17文章
1889瀏覽量
35088
發布評論請先 登錄
相關推薦
評論