日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程语言 > python >内容正文

python

python3语音识别模块_『开源项目』基于STM32的智能垃圾桶之语音识别

發(fā)布時(shí)間:2024/7/5 python 56 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python3语音识别模块_『开源项目』基于STM32的智能垃圾桶之语音识别 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

大家好,我是『芯知識(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):

  • 離線識(shí)別:采用了LD3320離線式語(yǔ)音識(shí)別芯片,無(wú)需聯(lián)網(wǎng)能夠?qū)崿F(xiàn)離線識(shí)別;
  • 設(shè)置簡(jiǎn)單:廠家提供了專用的設(shè)置軟件,使得用戶無(wú)需編程基礎(chǔ),全程傻瓜式操作,就能快速設(shè)置所有指令;
  • 當(dāng)然咯,其缺點(diǎn)也是比較明顯的:

  • 識(shí)別率不高:由于LD3320芯片的局限性,導(dǎo)致了識(shí)別率只能在90%左右(雖然在離線式語(yǔ)音識(shí)別芯片中算高了,但是跟在線式語(yǔ)音識(shí)別芯片還是有一定差距);
  • 關(guān)鍵詞數(shù)量有限:ASR-08B模塊能夠設(shè)定的關(guān)鍵詞數(shù)量有限(最多50條),導(dǎo)致了我們能夠?qū)懭氲年P(guān)鍵詞數(shù)量不能太多,有一定的局限性;
  • 有關(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)題。

    如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。