在python中我們可以使用speech模塊讓計算機進行語音輸出,我們需要使用如下代碼安裝該模塊,對于如何在終端中安裝python相應模塊,Pycharm編譯器可以使用Win + R進入運行界面,輸入cmd并點擊確定進入終端Anaconda編譯器可以打開Anaconda Powershell Prompt (anaconda),使用conda activate (虛擬環境名)進入終端,接下來在終端中使用如下安裝命令即可:
pip install speech
然而因為speech模塊最早是在python 2.x中開發的,因此在python 3.x中并不能夠直接使用,我們需要打開它安裝后的原始檔案,并進行以下調整即可,
打開原始檔案的簡潔方法:可以直接在編譯器中匯入模塊,運行報錯后點擊錯誤資訊直接進入對應的位置, 如下圖所示:
當我安裝好以后第一次運行speech模塊后,出現了上述錯誤提醒,接著直接點擊File所在的那一行就可以進入錯誤所對應的位置,即speech源檔案需要更改的位置,若不使用此方法,就需要進入C:\Softwares\anaconda\envs\nano\Lib\site-packages目錄下找到speech.py打開后進行定位錯誤位置并更改,Anaconda中每個人的檔案位置可能有差異,因為虛擬環境的創建一般不同,Pycharm中一般是相同的,可以自行查找,
接著我們按部就班地更改以下三個位置地源檔案,
- 原始檔案第
157行,print prompt應該改為print(prompt), - 原始檔案第
59行,thread應該改為threading, - 拖動檔案到最后,將最后的部分改為:
class T(threading.Thread):
def __init__(self):
threading.Thread.__init__(self)
def run(self):
pass
def _ensure_event_thread():
"""
Make sure the eventthread is running, which checks the handlerqueue
for new eventhandlers to create, and runs the message pump.
"""
global _eventthread
if not _eventthread:
def loop():
while _eventthread:
pythoncom.PumpWaitingMessages()
if _handlerqueue:
(context,listener,callback) = _handlerqueue.pop()
# Just creating a _ListenerCallback object makes events
# fire till listener loses reference to its grammar object
_ListenerCallback(context, listener, callback)
time.sleep(.5)
_eventthread = T()
_eventthread.start()
然后我們輸入以下測驗代碼:
import speech
class Debug:
def __init__(self):
speech.say("Hallo")
main = Debug()
當我們第一次運行這段除錯程式時,windows 10會彈出一個語音設定輸入視窗,我們只需要根據自己喜歡的設定方式設定即可(這里不做討論),接下來我們發現,speech模塊就可以正常使用了,但是有一個問題,當使用speech.say()進行語音輸出的時候,語言必須與windows 10的系統默認語言保持一致,否則無法識別,這里我的系統語言為德語,所以我使用了hallo輸出,但是當我想要使用漢語作為語音輸出時就會失敗, 那么如果想要使用其他語言怎么辦呢?將windows 10的系統默認語言更改即可,只需要下載一個語言包并安裝,可以自行百度,有很多,這里不做詳細說明,
最后再次運行除錯程式,成功獲取到了對應的語音輸出,
本文首發于python黑洞網,博客園同步更新
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/383.html
標籤:Python
