python3语音识别模块_『开源项目』基于STM32的智能垃圾桶之语音识别
大家好,我是『芯知識(shí)學(xué)堂』的SingleYork,前面給大家簡(jiǎn)單介紹了『開(kāi)源項(xiàng)目』基于STM32的智能垃圾桶之成員簡(jiǎn)介,相信有很多小伙伴都已經(jīng)忍不住躍躍欲試了,別著急,從這一篇開(kāi)始,筆者將會(huì)帶領(lǐng)大家一步一步來(lái)完成這個(gè)DIY項(xiàng)目。
這款套件的主控板采用的是我們『芯知識(shí)學(xué)堂』自主設(shè)計(jì)的OWL Micro F1開(kāi)發(fā)板,如果有一直關(guān)注我們的小伙伴,相信大家對(duì)這款開(kāi)發(fā)板不會(huì)再感到陌生了:
當(dāng)然咯,我們今天的主角不是這款『OWL Micro F1開(kāi)發(fā)板』,今天筆者要給大家介紹的是這個(gè)項(xiàng)目中比較重要的一個(gè)模塊—語(yǔ)音識(shí)別模塊:ASR-08B。
這個(gè)模塊的語(yǔ)音識(shí)別部分采用的是LD3320這個(gè)芯片,然后集成了一顆STC11L16XE的單片機(jī)做了一些指令、數(shù)據(jù)處理,相比于網(wǎng)上其他的LD3320的模塊,操作更加簡(jiǎn)單,用戶不用折騰代碼,直接串口發(fā)送指令設(shè)置關(guān)鍵詞即可識(shí)別,而且,廠家還提供了專門(mén)的設(shè)置工具,操作非常簡(jiǎn)單(enmm,媽媽再也不用擔(dān)心我不會(huì)寫(xiě)代碼了……):
接下來(lái),筆者將結(jié)合我們的這款智能垃圾桶的DIY項(xiàng)目,來(lái)給大家介紹一下這個(gè)ASR-08B語(yǔ)音模塊的使用,首先,我們將ASR-08B模塊與USB轉(zhuǎn)TTL模塊連接來(lái),并將USB轉(zhuǎn)TTL模塊插到電腦上:
USB轉(zhuǎn)串口模塊與語(yǔ)音識(shí)別模塊接線說(shuō)明:
語(yǔ)音模塊TXD --> USB模塊RXD
語(yǔ)音模塊RXD --> USB模塊TXD
語(yǔ)音模塊GND --> USB模塊GND
語(yǔ)音模塊VCC --> USB模塊5V
這里需要注意的是,如果是使用廠家配套的USB轉(zhuǎn)TTL模塊的話,就不要使用USB轉(zhuǎn)TTL模塊的3V3電壓給語(yǔ)音模塊供電了,因?yàn)閺S家提供的這個(gè)USB轉(zhuǎn)TTL模塊本身沒(méi)有3.3V輸出,語(yǔ)音模塊的3.3V引腳直接懸空即可。
硬件連接好后,如果是之前有用過(guò)CH340設(shè)備的電腦,在設(shè)備管理器中直接會(huì)顯示一個(gè)“USB-SERILA CH340”開(kāi)頭的COM端口,如果是未使用過(guò)CH340設(shè)備的電腦,則可能需要自己手動(dòng)安裝一下這個(gè)驅(qū)動(dòng),關(guān)于這個(gè)驅(qū)動(dòng)的安裝比較簡(jiǎn)單,筆者就不在這啰嗦了。
ASR-08B模塊是支持三種識(shí)別檢測(cè)模式的,即:循環(huán)檢測(cè)模塊、口令檢測(cè)模式和按鈕檢測(cè)模式,在我們這個(gè)智能垃圾桶項(xiàng)目中,筆者使用的是“口令檢測(cè)模式”,所謂的“口令檢測(cè)模式”,就意味著,我們先要對(duì)上口令,才能夠進(jìn)行下一步操作。說(shuō)到這里,是不是有小伙伴馬上就想起了電影《智取威虎山》里面的經(jīng)典臺(tái)詞:
土匪:天王蓋地虎!(你好大的膽!敢來(lái)氣你的祖宗?)
楊子榮:寶塔鎮(zhèn)河妖!(要是那樣,叫我從山上摔死,掉河里淹死。)
土匪:野雞悶頭鉆,哪能上天王山!(你不是正牌的。)
楊子榮:地上有的是米,喂呀,有根底!(老子是正牌的,老牌的。)
土匪:拜見(jiàn)過(guò)阿媽啦?(你從小拜誰(shuí)為師?)
楊子榮:他房上沒(méi)瓦,非否非,否非否!(不到正堂不能說(shuō)。)
土匪:嘛哈嘛哈?(以前獨(dú)干嗎?)
楊子榮:正晌午說(shuō)話,誰(shuí)還沒(méi)有家?(許大馬棒山上。)
土匪:好叭噠!(內(nèi)行,是把老手)
楊子榮:天下大耷拉!(不吹牛,闖過(guò)大隊(duì)頭。)
當(dāng)然咯,筆者今天要給大家介紹的所謂的口令,沒(méi)有這么復(fù)雜,我們只需要給語(yǔ)音識(shí)別模塊設(shè)置一個(gè)名為“貓頭鷹”的喚醒口令即可。
接下來(lái),我們需要根據(jù)垃圾分類(lèi)的標(biāo)準(zhǔn),將常見(jiàn)的一些垃圾,分為:可回收垃圾、廚余垃圾、有害垃圾和其他垃圾這四大類(lèi):
(1)可回收垃圾:舊報(bào)紙、塑料瓶、廢鐵、圖書(shū)、壞手機(jī)、玻璃瓶、舊水管、洗衣機(jī)、電視機(jī)、電飯煲
(2)廚余垃圾:剩菜、剩飯、菜葉、果皮、隔夜飯、骨頭、雞蛋殼、茶葉渣、菜根、蘋(píng)果核
(3)有害垃圾:燈泡、電池、藥品、燈管、油漆桶、化妝品、老鼠藥、指甲油、殺蟲(chóng)劑、農(nóng)藥
(4)其他垃圾:果殼、泥土、瓜子殼、廢水、陶瓷、一次性筷子、衛(wèi)生紙、煙頭、餐巾紙、牙簽
為了防止語(yǔ)音識(shí)別模塊出廠可能自帶的一些指令跟我們需要增加的指令有沖突,我們先將語(yǔ)音識(shí)別模塊里面的所有指令一次性全部擦除(即:擦除所有關(guān)鍵詞),操作步驟如下:
簡(jiǎn)單來(lái)說(shuō),我們只需要在串口正確打開(kāi)后,點(diǎn)一下“擦除所有關(guān)鍵詞”按鈕,然后再點(diǎn)一下“發(fā)送”按鈕即可完成操作。
接下里,我們來(lái)開(kāi)始添加關(guān)鍵詞,我們先點(diǎn)擊一下“添加關(guān)鍵詞”按鈕,這個(gè)時(shí)候,在“數(shù)據(jù)發(fā)送區(qū)”就會(huì)出現(xiàn)一條示例指令“00,kai deng,001,$”,然后如果我們勾選了“是否顯示命令解析”選項(xiàng)的話,在“數(shù)據(jù)接收區(qū)”會(huì)出現(xiàn)有關(guān)這條指令的詳細(xì)解析,如下:
這里需要注意幾個(gè)地方:
1、“關(guān)鍵詞所在的行”如果只有一位數(shù)時(shí)(0-9),前面十位一定要0補(bǔ)齊;
2、“需要識(shí)別的詞語(yǔ)或句子”兩個(gè)拼音之間需要用空格隔開(kāi),并且,有且僅有一個(gè)空格,其他部分也不允許有多余的空格;
3、“逗號(hào)”分隔符一定要是英文狀態(tài)下的“逗號(hào)”,不能使用中文狀態(tài)下的“逗號(hào)”;
4、“254”被規(guī)定為口令模式中的口令,比如本例中的口令“貓頭鷹”,不能用作普通關(guān)鍵詞的返回值;
5、“255”被規(guī)定為屏蔽詞,如本例中的“可回收垃圾”、“廚余垃圾”、“有害垃圾”、“其他垃圾”,這樣就可以避免語(yǔ)音播報(bào)模塊在播報(bào)這幾條語(yǔ)音的時(shí)候,被語(yǔ)音識(shí)別模塊識(shí)別到。
我們?cè)谔砑雨P(guān)鍵詞的時(shí)候,一定要嚴(yán)格按照上述要求進(jìn)行操作,否則,可能會(huì)出現(xiàn)異常情況。
弄清楚了“添加關(guān)鍵詞”的指令格式后,我們就可以來(lái)開(kāi)始添加本例所需要的關(guān)鍵詞了。我們以“貓頭鷹”這個(gè)口令為例,我們只需要在“數(shù)據(jù)發(fā)送區(qū)”輸入“00,mao tou ying,254,$”,然后點(diǎn)擊“發(fā)送”按鈕,當(dāng)“數(shù)據(jù)接收區(qū)”出現(xiàn)“寫(xiě)入成功!”后,我們的關(guān)鍵詞就設(shè)置成功了:
接下來(lái),我們來(lái)測(cè)試一下這個(gè)“貓頭鷹”的關(guān)鍵詞,這里,我們需要選擇“十六進(jìn)制顯示”,然后,我們直接對(duì)著語(yǔ)音識(shí)別模塊說(shuō)一聲“貓頭鷹”,就可以在ASR M08-B設(shè)置軟件的“數(shù)據(jù)接收區(qū)”里看到有顯示“FE”,即:254,說(shuō)明我們的這個(gè)“貓頭鷹”關(guān)鍵詞設(shè)置成功了。
至于其他的關(guān)鍵詞,我們只需要按照同樣的方式設(shè)置即可。當(dāng)然咯,一個(gè)一個(gè)設(shè)置關(guān)鍵詞,還是會(huì)比較麻煩的,語(yǔ)音識(shí)別模塊的廠家也為大家考慮到了這一點(diǎn),所以在“ASR M08-B設(shè)置軟件”里面做了一個(gè)批處理的按鈕,即:一鍵設(shè)置。這個(gè)時(shí)候我們只需要新建一個(gè)記事本,命名為“垃圾名字關(guān)鍵詞”,然后直接在這個(gè)文件里面輸入以下內(nèi)容:
@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(行號(hào)01-10)屬于“可回收垃圾”;
返回值002(行號(hào)11-20)屬于“廚余垃圾”;
返回值003(行號(hào)21-30)屬于“有害垃圾”;
返回值004(行號(hào)31-40)屬于“其他垃圾”;
行號(hào)41-44屬于屏蔽詞(可回收垃圾、廚余垃圾、有害垃圾、其他垃圾);
行號(hào)49屬于喚醒口令。
接下來(lái),我們就可以來(lái)一鍵設(shè)置關(guān)鍵詞了,我們先將數(shù)據(jù)接收區(qū)的顯示模式改成“文本格式顯示”,然后點(diǎn)擊“一鍵設(shè)置”,選擇文件“垃圾名字關(guān)鍵詞.txt”,然后點(diǎn)擊“打開(kāi)”按鈕:
因?yàn)槲覀冊(cè)O(shè)置的速度是1000ms,也就是說(shuō),每1000ms下發(fā)一條設(shè)置指令,所以,我們?cè)凇癆SR M08-B設(shè)置軟件”的“數(shù)據(jù)接收區(qū)”會(huì)每隔1000ms收到一條“寫(xiě)入成功!”的信息,直到出現(xiàn)“發(fā)送完成”的提示,意味著所有的關(guān)鍵詞設(shè)置成功。
接下來(lái),我們就可以來(lái)測(cè)試一下這些關(guān)鍵詞了,測(cè)試關(guān)鍵詞是否寫(xiě)入成功有兩個(gè)方法,一個(gè)是點(diǎn)擊軟件上的“查詢關(guān)鍵詞”按鈕,然后再點(diǎn)擊“發(fā)送按鈕”即可查詢我們剛才寫(xiě)入的所有的關(guān)鍵詞;另外一個(gè)就是可以直接通過(guò)判斷語(yǔ)音識(shí)別模塊的返回值來(lái)最終檢驗(yàn)我們寫(xiě)入的關(guān)鍵詞是否成功,具體操作請(qǐng)看視頻:
智能垃圾桶語(yǔ)音識(shí)別演示
視頻中有提到如何將模塊設(shè)置成“口令模式”,其實(shí),這條指令也同樣可以在“一鍵設(shè)置”的時(shí)候,跟隨其他關(guān)鍵詞一起寫(xiě)入到語(yǔ)音識(shí)別模塊中,相信看到這里,大家都應(yīng)該知道要怎么操作了,筆者就不再贅述了。
ASR-08B模塊這款語(yǔ)音模塊,相比與之前筆者使用過(guò)的慶科的VBS7100語(yǔ)音套件有優(yōu)點(diǎn)也有缺點(diǎn),ASR-08B模塊有幾個(gè)比較突出的優(yōu)點(diǎn):
當(dāng)然咯,其缺點(diǎn)也是比較明顯的:
有關(guān)ASR-08B模塊和VBS7100語(yǔ)音套件的更多差異以及詳細(xì)的使用教程,請(qǐng)大家自行翻閱相關(guān)資料,在實(shí)際應(yīng)用中,我們可以根據(jù)自己的應(yīng)用場(chǎng)景,選擇離線式語(yǔ)音識(shí)別方案還是在線式語(yǔ)音識(shí)別方案。
關(guān)于我們這個(gè)DIY智能垃圾桶項(xiàng)目的語(yǔ)音識(shí)別部分,就給大家介紹到這里了,如還有疑問(wèn)可以咨詢我們,下一篇,筆者將要跟大家繼續(xù)分享我們這個(gè)DIY項(xiàng)目中語(yǔ)音播報(bào)部分的實(shí)現(xiàn),敬請(qǐng)關(guān)注!
如果你喜歡我們的這個(gè)DIY項(xiàng)目,歡迎分享、轉(zhuǎn)載,在項(xiàng)目?jī)?nèi)容全部介紹完成后,筆者將會(huì)給大家免費(fèi)分享所有設(shè)計(jì)資料,感謝大家的支持!
總結(jié)
以上是生活随笔為你收集整理的python3语音识别模块_『开源项目』基于STM32的智能垃圾桶之语音识别的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 与kylin_Kylin 迁移到 HBa
- 下一篇: Python数据清洗 - 洗什么?怎么洗