欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

用Python編程實(shí)現(xiàn)語音控制電腦

 更新時間:2014年04月01日 14:15:25   作者:  
是否經(jīng)常好萊塢電影里看強(qiáng)大的語音識別系統(tǒng)? 是否每每看到都會羨慕嫉妒恨? 可是我們真心買不起啊。

電腦面前的你,是否也希望能讓電腦聽命于你?   當(dāng)你累的時候,只需說一聲“我累了”,電腦就會放著優(yōu)雅的輕音樂來讓你放松。 或許你希望你在百忙之中,能讓電腦郎讀最新的NBA比分賽況….一切都是那么愜意。

在此告訴你,不要灰心,我們真的可以做一個。
做一個語音識別? 我相信很多人到這里會有兩個心態(tài),一是好奇,二是避之千里。

其實(shí)不然,你可以不用懂太多的編程技能,你甚至也可以不用懂自然語言處理技術(shù),這篇文章雖然實(shí)現(xiàn)了語音操控但是絕沒有你們想象的那么復(fù)雜。 如果僅僅把語音識別作為一個實(shí)現(xiàn)了的接口的話,剩下的邏輯就僅僅是IF-ELSE這些簡單的元素了。


實(shí)現(xiàn)語音操控的原理

語音操控分為 語音識別和語音朗讀兩部分。

這兩部分本來是需要自然語言處理技能相關(guān)知識以及一系列極其復(fù)雜的算法才能搞定,可是這篇文章將會跳過此處,如果你只是對算法和自然語言學(xué)感興趣的話,就只有請您移步了,下面沒有一個字會講述到這些內(nèi)容。

早在上世紀(jì)90年代的時候,IBM就推出了一款極為強(qiáng)大的語音識別系統(tǒng)-vio voice , 而其后相關(guān)產(chǎn)品層出不窮,不斷的進(jìn)化和演變著。 我們這里將會使用SAPI實(shí)現(xiàn)語音模塊。

什么是SAPI?

SAPI是微軟Speech API , 是微軟公司推出的語音接口,而細(xì)心的人會發(fā)現(xiàn)從WINXP開始,系統(tǒng)上就已經(jīng)有語音識別的功能了,可是用武之地相當(dāng)之少,他并沒有給出一些人性化的自定義方案,僅有的語音操控命令顯得相當(dāng)雞脅。 那么這篇文章的任務(wù)就是利用SAPI進(jìn)行個性化的語音識別。

準(zhǔn)備階段,你至少需要安裝以下的工具:

Python2.7    http://www.python.org/

強(qiáng)烈建詭使用2.7,至今Python2.7擁有Python系列為數(shù)最多的工具和應(yīng)用支持,同時也相對比較穩(wěn)定。

Win32Com  http://starship.python.net/~skippy/win32/Downloads.html


Python Win32增強(qiáng)工具,可以使Python調(diào)用WIN32COM接口,這個工具的出現(xiàn)使得Python變得無比強(qiáng)大

Speech.py    http://pypi.python.org/pypi/speech/

這個是極為精簡的封裝模塊,此處為可選項,當(dāng)然我不建議重復(fù)造輪子,還是下吧,目前只支持Python2.6,但不用灰心,Python2.6和Python2.7的代碼是兼容,不會有異常。

安裝過程請依至上而下的順序。

開發(fā)階段

當(dāng)你安裝了上述的相關(guān)工具后,你就可以進(jìn)行開發(fā)了:

先進(jìn)行一個簡單的環(huán)境調(diào)試:

復(fù)制代碼 代碼如下:

whileTrue:
    phrase =speech.input()
    speech.say("You said %s"%phrase)
    ifphrase =="turn off":
        break


上述代碼是啟動語音識別器,同時系統(tǒng)將會重復(fù)你所錄入的語音,當(dāng)遇到“turn off”時,就會自動關(guān)閉識別系統(tǒng)。
如果你通過測試無誤的話,我們就可以開始進(jìn)行擴(kuò)展開發(fā)了。

1. 定義中文語義庫

復(fù)制代碼 代碼如下:
closeMainSystem ="關(guān)閉人機(jī)交互"
openEclipse ="我要寫程序"
listenMusic ="我好累啊"
blog ="看博客"
php ="php"
java ="JAVA"


2. 定義相關(guān)語義操作邏輯

復(fù)制代碼 代碼如下:
defcallback(phrase, listener):
    print(": %s"%phrase)
    ifphrase ==closeMainSystem:
        speech.say("Goodbye. 人機(jī)交互即將關(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("即將進(jìn)入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是異步開啟程序,此操作不會單獨(dú)開啟一個SHELL窗口,也不會阻塞當(dāng)前進(jìn)程。
speech.say() 是調(diào)用SAPI進(jìn)行參數(shù)朗讀。
webbrowser.open_new()是打開網(wǎng)頁。

3.程序運(yùn)行主體搭建

復(fù)制代碼 代碼如下:
listener =speech.listenforanything(callback)
whilelistener.islistening():
     text =input()
     iftext =="不要語音了":
         listener.stoplistening()
         sys.exit()
     else:
         speech.say(text)

此段為運(yùn)行主體,大意是開啟語音監(jiān)聽,同時支持終端輸入模式。如果你嗓子啞了的話,也可以打字來實(shí)現(xiàn),哈哈~~

相關(guān)文章

  • Python實(shí)現(xiàn)輕松識別數(shù)百個快遞單號

    Python實(shí)現(xiàn)輕松識別數(shù)百個快遞單號

    當(dāng)我們要寄出很多快遞時,為了及時反饋物流信息,需要盡快將快遞單號提取出來。這時用手動去識別真的太麻煩,所以本文將用Python實(shí)現(xiàn)輕松識別數(shù)百個快遞單號,需要的可以參考一下
    2022-06-06
  • Python學(xué)習(xí)思維導(dǎo)圖(必看篇)

    Python學(xué)習(xí)思維導(dǎo)圖(必看篇)

    下面小編就為大家?guī)硪黄狿ython學(xué)習(xí)思維導(dǎo)圖(必看篇)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-06-06
  • Python實(shí)現(xiàn)的數(shù)據(jù)結(jié)構(gòu)與算法之基本搜索詳解

    Python實(shí)現(xiàn)的數(shù)據(jù)結(jié)構(gòu)與算法之基本搜索詳解

    這篇文章主要介紹了Python實(shí)現(xiàn)的數(shù)據(jù)結(jié)構(gòu)與算法之基本搜索,詳細(xì)分析了Python順序搜索、二分搜索的使用技巧,非常具有實(shí)用價值,需要的朋友可以參考下
    2015-04-04
  • 一文詳解如何在Python中實(shí)現(xiàn)switch語句

    一文詳解如何在Python中實(shí)現(xiàn)switch語句

    這篇文章主要給大家介紹了關(guān)于如何在Python中實(shí)現(xiàn)switch語句的相關(guān)資料,今天在學(xué)習(xí)python的過程中,發(fā)現(xiàn)python沒有switch這個語法,所以這里給大家總結(jié)下,需要的朋友可以參考下
    2023-09-09
  • python添加模塊搜索路徑方法

    python添加模塊搜索路徑方法

    下面小編就為大家?guī)硪黄猵ython添加模塊搜索路徑方法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-09-09
  • Python通過Pygame繪制移動的矩形實(shí)例代碼

    Python通過Pygame繪制移動的矩形實(shí)例代碼

    這篇文章主要介紹了Python通過Pygame繪制移動的矩形實(shí)例代碼,具有一定借鑒價值,需要的朋友可以參考下
    2018-01-01
  • Python網(wǎng)絡(luò)爬蟲信息提取mooc代碼實(shí)例

    Python網(wǎng)絡(luò)爬蟲信息提取mooc代碼實(shí)例

    這篇文章主要介紹了python網(wǎng)絡(luò)爬蟲與信息提取mooc,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-03-03
  • python將圖片轉(zhuǎn)base64,實(shí)現(xiàn)前端顯示

    python將圖片轉(zhuǎn)base64,實(shí)現(xiàn)前端顯示

    今天小編就為大家分享一篇python將圖片轉(zhuǎn)base64,實(shí)現(xiàn)前端顯示,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-01-01
  • Python中使用asyncio 封裝文件讀寫

    Python中使用asyncio 封裝文件讀寫

    本文主要給大家簡單講解如何用 asyncio.Future 對象來封裝文件的異步讀寫。有需要的小伙伴可以參考下
    2016-09-09
  • Python寫腳本常用模塊OS基礎(chǔ)用法詳解

    Python寫腳本常用模塊OS基礎(chǔ)用法詳解

    這篇文章主要介紹了Python寫腳本常用模塊OS基礎(chǔ)用法詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-03-03

最新評論