python3语音识别模块_『开源项目』基于STM32的智能垃圾桶之语音识别
大家好,我是『芯知識學堂』的SingleYork,前面給大家簡單介紹了『開源項目』基于STM32的智能垃圾桶之成員簡介,相信有很多小伙伴都已經忍不住躍躍欲試了,別著急,從這一篇開始,筆者將會帶領大家一步一步來完成這個DIY項目。
這款套件的主控板采用的是我們『芯知識學堂』自主設計的OWL Micro F1開發板,如果有一直關注我們的小伙伴,相信大家對這款開發板不會再感到陌生了:
當然咯,我們今天的主角不是這款『OWL Micro F1開發板』,今天筆者要給大家介紹的是這個項目中比較重要的一個模塊—語音識別模塊:ASR-08B。
這個模塊的語音識別部分采用的是LD3320這個芯片,然后集成了一顆STC11L16XE的單片機做了一些指令、數據處理,相比于網上其他的LD3320的模塊,操作更加簡單,用戶不用折騰代碼,直接串口發送指令設置關鍵詞即可識別,而且,廠家還提供了專門的設置工具,操作非常簡單(enmm,媽媽再也不用擔心我不會寫代碼了……):
接下來,筆者將結合我們的這款智能垃圾桶的DIY項目,來給大家介紹一下這個ASR-08B語音模塊的使用,首先,我們將ASR-08B模塊與USB轉TTL模塊連接來,并將USB轉TTL模塊插到電腦上:
USB轉串口模塊與語音識別模塊接線說明:
語音模塊TXD --> USB模塊RXD
語音模塊RXD --> USB模塊TXD
語音模塊GND --> USB模塊GND
語音模塊VCC --> USB模塊5V
這里需要注意的是,如果是使用廠家配套的USB轉TTL模塊的話,就不要使用USB轉TTL模塊的3V3電壓給語音模塊供電了,因為廠家提供的這個USB轉TTL模塊本身沒有3.3V輸出,語音模塊的3.3V引腳直接懸空即可。
硬件連接好后,如果是之前有用過CH340設備的電腦,在設備管理器中直接會顯示一個“USB-SERILA CH340”開頭的COM端口,如果是未使用過CH340設備的電腦,則可能需要自己手動安裝一下這個驅動,關于這個驅動的安裝比較簡單,筆者就不在這啰嗦了。
ASR-08B模塊是支持三種識別檢測模式的,即:循環檢測模塊、口令檢測模式和按鈕檢測模式,在我們這個智能垃圾桶項目中,筆者使用的是“口令檢測模式”,所謂的“口令檢測模式”,就意味著,我們先要對上口令,才能夠進行下一步操作。說到這里,是不是有小伙伴馬上就想起了電影《智取威虎山》里面的經典臺詞:
土匪:天王蓋地虎!(你好大的膽!敢來氣你的祖宗?)
楊子榮:寶塔鎮河妖!(要是那樣,叫我從山上摔死,掉河里淹死。)
土匪:野雞悶頭鉆,哪能上天王山!(你不是正牌的。)
楊子榮:地上有的是米,喂呀,有根底!(老子是正牌的,老牌的。)
土匪:拜見過阿媽啦?(你從小拜誰為師?)
楊子榮:他房上沒瓦,非否非,否非否!(不到正堂不能說。)
土匪:嘛哈嘛哈?(以前獨干嗎?)
楊子榮:正晌午說話,誰還沒有家?(許大馬棒山上。)
土匪:好叭噠!(內行,是把老手)
楊子榮:天下大耷拉!(不吹牛,闖過大隊頭。)
當然咯,筆者今天要給大家介紹的所謂的口令,沒有這么復雜,我們只需要給語音識別模塊設置一個名為“貓頭鷹”的喚醒口令即可。
接下來,我們需要根據垃圾分類的標準,將常見的一些垃圾,分為:可回收垃圾、廚余垃圾、有害垃圾和其他垃圾這四大類:
(1)可回收垃圾:舊報紙、塑料瓶、廢鐵、圖書、壞手機、玻璃瓶、舊水管、洗衣機、電視機、電飯煲
(2)廚余垃圾:剩菜、剩飯、菜葉、果皮、隔夜飯、骨頭、雞蛋殼、茶葉渣、菜根、蘋果核
(3)有害垃圾:燈泡、電池、藥品、燈管、油漆桶、化妝品、老鼠藥、指甲油、殺蟲劑、農藥
(4)其他垃圾:果殼、泥土、瓜子殼、廢水、陶瓷、一次性筷子、衛生紙、煙頭、餐巾紙、牙簽
為了防止語音識別模塊出廠可能自帶的一些指令跟我們需要增加的指令有沖突,我們先將語音識別模塊里面的所有指令一次性全部擦除(即:擦除所有關鍵詞),操作步驟如下:
簡單來說,我們只需要在串口正確打開后,點一下“擦除所有關鍵詞”按鈕,然后再點一下“發送”按鈕即可完成操作。
接下里,我們來開始添加關鍵詞,我們先點擊一下“添加關鍵詞”按鈕,這個時候,在“數據發送區”就會出現一條示例指令“00,kai deng,001,$”,然后如果我們勾選了“是否顯示命令解析”選項的話,在“數據接收區”會出現有關這條指令的詳細解析,如下:
這里需要注意幾個地方:
1、“關鍵詞所在的行”如果只有一位數時(0-9),前面十位一定要0補齊;
2、“需要識別的詞語或句子”兩個拼音之間需要用空格隔開,并且,有且僅有一個空格,其他部分也不允許有多余的空格;
3、“逗號”分隔符一定要是英文狀態下的“逗號”,不能使用中文狀態下的“逗號”;
4、“254”被規定為口令模式中的口令,比如本例中的口令“貓頭鷹”,不能用作普通關鍵詞的返回值;
5、“255”被規定為屏蔽詞,如本例中的“可回收垃圾”、“廚余垃圾”、“有害垃圾”、“其他垃圾”,這樣就可以避免語音播報模塊在播報這幾條語音的時候,被語音識別模塊識別到。
我們在添加關鍵詞的時候,一定要嚴格按照上述要求進行操作,否則,可能會出現異常情況。
弄清楚了“添加關鍵詞”的指令格式后,我們就可以來開始添加本例所需要的關鍵詞了。我們以“貓頭鷹”這個口令為例,我們只需要在“數據發送區”輸入“00,mao tou ying,254,$”,然后點擊“發送”按鈕,當“數據接收區”出現“寫入成功!”后,我們的關鍵詞就設置成功了:
接下來,我們來測試一下這個“貓頭鷹”的關鍵詞,這里,我們需要選擇“十六進制顯示”,然后,我們直接對著語音識別模塊說一聲“貓頭鷹”,就可以在ASR M08-B設置軟件的“數據接收區”里看到有顯示“FE”,即:254,說明我們的這個“貓頭鷹”關鍵詞設置成功了。
至于其他的關鍵詞,我們只需要按照同樣的方式設置即可。當然咯,一個一個設置關鍵詞,還是會比較麻煩的,語音識別模塊的廠家也為大家考慮到了這一點,所以在“ASR M08-B設置軟件”里面做了一個批處理的按鈕,即:一鍵設置。這個時候我們只需要新建一個記事本,命名為“垃圾名字關鍵詞”,然后直接在這個文件里面輸入以下內容:
@01,jiu bao zhi,001,$
@02,su liao ping,001,$
@03,fei tie,001,$
@04,tu shu,001,$
@05,huai shou ji,001,$
@06,bo li ping,001,$
@07,jiu shui guan,001,$
@08,xi yi ji,001,$
@09,dian shi ji,001,$
@10,dian fan bao,001,$
@11,sheng cai,002,$
@12,sheng fan,002,$
@13,cai ye,002,$
@14,guo pi,002,$
@15,ge ye fan,002,$
@16,gu tou,002,$
@17,ji dan ke,002,$
@18,cha ye zha,002,$
@19,cai gen,002,$
@20,ping guo he,002,$
@21,deng pao,003,$
@22,dian chi,003,$
@23,yao ping,003,$
@24,deng guan,003,$
@25,you qi tong,003,$
@26,hua zhuang pin,003,$
@27,lao shu yao,003,$
@28,zhi jia you,003,$
@29,sha chong ji,003,$
@30,nong yao,003,$
@31,guo ke,004,$
@32,ni tu,004,$
@33,gua zi ke,004,$
@34,fei shui,004,$
@35,tao ci,004,$
@36,yi ci xing kuai zi,004,$
@37,wei sheng zhi,004,$
@38,yan tou,004,$
@39,can jing zhi,004,$
@40,ya qian,004,$
@41,ke hui shou la ji,255,$
@42,chu yu la ji,255,$
@43,you hai la ji,255,$
@44,qi ta la ji,255,$
@49,mao tou ying,254,$
其中:
返回值001(行號01-10)屬于“可回收垃圾”;
返回值002(行號11-20)屬于“廚余垃圾”;
返回值003(行號21-30)屬于“有害垃圾”;
返回值004(行號31-40)屬于“其他垃圾”;
行號41-44屬于屏蔽詞(可回收垃圾、廚余垃圾、有害垃圾、其他垃圾);
行號49屬于喚醒口令。
接下來,我們就可以來一鍵設置關鍵詞了,我們先將數據接收區的顯示模式改成“文本格式顯示”,然后點擊“一鍵設置”,選擇文件“垃圾名字關鍵詞.txt”,然后點擊“打開”按鈕:
因為我們設置的速度是1000ms,也就是說,每1000ms下發一條設置指令,所以,我們在“ASR M08-B設置軟件”的“數據接收區”會每隔1000ms收到一條“寫入成功!”的信息,直到出現“發送完成”的提示,意味著所有的關鍵詞設置成功。
接下來,我們就可以來測試一下這些關鍵詞了,測試關鍵詞是否寫入成功有兩個方法,一個是點擊軟件上的“查詢關鍵詞”按鈕,然后再點擊“發送按鈕”即可查詢我們剛才寫入的所有的關鍵詞;另外一個就是可以直接通過判斷語音識別模塊的返回值來最終檢驗我們寫入的關鍵詞是否成功,具體操作請看視頻:
智能垃圾桶語音識別演示
視頻中有提到如何將模塊設置成“口令模式”,其實,這條指令也同樣可以在“一鍵設置”的時候,跟隨其他關鍵詞一起寫入到語音識別模塊中,相信看到這里,大家都應該知道要怎么操作了,筆者就不再贅述了。
ASR-08B模塊這款語音模塊,相比與之前筆者使用過的慶科的VBS7100語音套件有優點也有缺點,ASR-08B模塊有幾個比較突出的優點:
當然咯,其缺點也是比較明顯的:
有關ASR-08B模塊和VBS7100語音套件的更多差異以及詳細的使用教程,請大家自行翻閱相關資料,在實際應用中,我們可以根據自己的應用場景,選擇離線式語音識別方案還是在線式語音識別方案。
關于我們這個DIY智能垃圾桶項目的語音識別部分,就給大家介紹到這里了,如還有疑問可以咨詢我們,下一篇,筆者將要跟大家繼續分享我們這個DIY項目中語音播報部分的實現,敬請關注!
如果你喜歡我們的這個DIY項目,歡迎分享、轉載,在項目內容全部介紹完成后,筆者將會給大家免費分享所有設計資料,感謝大家的支持!
總結
以上是生活随笔為你收集整理的python3语音识别模块_『开源项目』基于STM32的智能垃圾桶之语音识别的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 与kylin_Kylin 迁移到 HBa
- 下一篇: Python数据清洗 - 洗什么?怎么洗