语音控制 python_用Python编程实现语音控制电脑
電腦面前的你,是否也希望能讓電腦聽命于你? 當你累的時候,只需說一聲“我累了”,電腦就會放著優(yōu)雅的輕音樂來讓你放松。 或許你希望你在百忙之中,能讓電腦郎讀最新的NBA比分賽況….一切都是那么愜意。
在此告訴你,不要灰心,我們真的可以做一個。
做一個語音識別? 我相信很多人到這里會有兩個心態(tài),一是好奇,二是避之千里。
其實不然,你可以不用懂太多的編程技能,你甚至也可以不用懂自然語言處理技術(shù),這篇文章雖然實現(xiàn)了語音操控但是絕沒有你們想象的那么復(fù)雜。 如果僅僅把語音識別作為一個實現(xiàn)了的接口的話,剩下的邏輯就僅僅是IF-ELSE這些簡單的元素了。
實現(xiàn)語音操控的原理
語音操控分為 語音識別和語音朗讀兩部分。
這兩部分本來是需要自然語言處理技能相關(guān)知識以及一系列極其復(fù)雜的算法才能搞定,可是這篇文章將會跳過此處,如果你只是對算法和自然語言學感興趣的話,就只有請您移步了,下面沒有一個字會講述到這些內(nèi)容。
早在上世紀90年代的時候,IBM就推出了一款極為強大的語音識別系統(tǒng)-vio voice , 而其后相關(guān)產(chǎn)品層出不窮,不斷的進化和演變著。 我們這里將會使用SAPI實現(xiàn)語音模塊。
什么是SAPI?
SAPI是微軟Speech API , 是微軟公司推出的語音接口,而細心的人會發(fā)現(xiàn)從WINXP開始,系統(tǒng)上就已經(jīng)有語音識別的功能了,可是用武之地相當之少,他并沒有給出一些人性化的自定義方案,僅有的語音操控命令顯得相當雞脅。 那么這篇文章的任務(wù)就是利用SAPI進行個性化的語音識別。
準備階段,你至少需要安裝以下的工具:
Python2.7 http://www.python.org/
強烈建詭使用2.7,至今Python2.7擁有Python系列為數(shù)最多的工具和應(yīng)用支持,同時也相對比較穩(wěn)定。
Win32Com http://starship.python.net/~skippy/win32/Downloads.html
Python Win32增強工具,可以使Python調(diào)用WIN32COM接口,這個工具的出現(xiàn)使得Python變得無比強大
Speech.py http://pypi.python.org/pypi/speech/
這個是極為精簡的封裝模塊,此處為可選項,當然我不建議重復(fù)造輪子,還是下吧,目前只支持Python2.6,但不用灰心,Python2.6和Python2.7的代碼是兼容,不會有異常。
安裝過程請依至上而下的順序。
開發(fā)階段
當你安裝了上述的相關(guān)工具后,你就可以進行開發(fā)了:
先進行一個簡單的環(huán)境調(diào)試:
復(fù)制代碼 代碼如下:
whileTrue:
phrase =speech.input()
speech.say("You said %s"%phrase)
ifphrase =="turn off":
break
上述代碼是啟動語音識別器,同時系統(tǒng)將會重復(fù)你所錄入的語音,當遇到“turn off”時,就會自動關(guān)閉識別系統(tǒng)。
如果你通過測試無誤的話,我們就可以開始進行擴展開發(fā)了。
1. 定義中文語義庫
復(fù)制代碼 代碼如下:
closeMainSystem ="關(guān)閉人機交互"
openEclipse ="我要寫程序"
listenMusic ="我好累啊"
blog ="看博客"
php ="php"
java ="JAVA"
2. 定義相關(guān)語義操作邏輯
復(fù)制代碼 代碼如下:
defcallback(phrase, listener):
print(": %s"%phrase)
ifphrase ==closeMainSystem:
speech.say("Goodbye. 人機交互即將關(guān)閉,謝謝使用")
listener.stoplistening()
sys.exit()
elifphrase ==openEclipse:
speech.say("請問您要寫PYTHON還是JAVA程序?")
speech.listenforanything(callback)
elifphrase ==listenMusic:
speech.say("即將為你啟動豆瓣電臺")
webbrowser.open_new("http://douban.fm/")
elifphrase ==blog:
speech.say("即將進入Dreamforce.me")
webbrowser.open_new("http://dreamforce.me/")
elifphrase ==php:
speech.say("啟動PHP編寫器")
os.popen("E:\IDE\php_eclipse\eclipse\eclipse.exe")
elifphrase ==php:
speech.say("啟動JAVA編寫器")
os.popen("E:\IDE\php_eclipse\eclipse\eclipse.exe")
其中,os.popen是異步開啟程序,此操作不會單獨開啟一個SHELL窗口,也不會阻塞當前進程。
speech.say() 是調(diào)用SAPI進行參數(shù)朗讀。
webbrowser.open_new()是打開網(wǎng)頁。
3.程序運行主體搭建
復(fù)制代碼 代碼如下:
listener =speech.listenforanything(callback)
whilelistener.islistening():
text =input()
iftext =="不要語音了":
listener.stoplistening()
sys.exit()
else:
speech.say(text)
此段為運行主體,大意是開啟語音監(jiān)聽,同時支持終端輸入模式。如果你嗓子啞了的話,也可以打字來實現(xiàn),哈哈~~
本文原創(chuàng)發(fā)布php中文網(wǎng),轉(zhuǎn)載請注明出處,感謝您的尊重!
相關(guān)文章
相關(guān)視頻
網(wǎng)友評論
文明上網(wǎng)理性發(fā)言,請遵守 新聞評論服務(wù)協(xié)議我要評論
立即提交
專題推薦獨孤九賤-php全棧開發(fā)教程
全棧 100W+
主講:Peter-Zhu 輕松幽默、簡短易學,非常適合PHP學習入門
玉女心經(jīng)-web前端開發(fā)教程
入門 50W+
主講:滅絕師太 由淺入深、明快簡潔,非常適合前端學習入門
天龍八部-實戰(zhàn)開發(fā)教程
實戰(zhàn) 80W+
主講:西門大官人 思路清晰、嚴謹規(guī)范,適合有一定web編程基礎(chǔ)學習
php中文網(wǎng):公益在線php培訓(xùn),幫助PHP學習者快速成長!
Copyright 2014-2020 https://www.php.cn/ All Rights Reserved | 蘇ICP備2020058653號-1
??
《新程序員》:云原生和全面數(shù)字化實踐50位技術(shù)專家共同創(chuàng)作,文字、視頻、音頻交互閱讀總結(jié)
以上是生活随笔為你收集整理的语音控制 python_用Python编程实现语音控制电脑的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: jq 比较两个时间是否在同一天_.NET
- 下一篇: python框架django面试问别人什