1. 程式人生 > 實用技巧 >2020.9.8日新知識

2020.9.8日新知識

python中我們可以使用speech模組讓計算機進行語音輸出,我們需要使用如下程式碼安裝該模組。對於如何在終端中安裝python相應模組,
Pycharm編譯器可以使用Win + R進入執行介面,輸入cmd並點選確定進入終端
Anaconda編譯器可以開啟Anaconda Powershell Prompt (anaconda),使用conda activate (虛擬環境名)進入終端,接下來在終端中使用如下安裝命令即可:

pip install speech

然而因為speech模組最早是在python 2.x中開發的,因此在python 3.x中並不能夠直接使用,我們需要開啟它安裝後的原始檔案,並進行以下調整即可。

開啟原始檔案的簡潔方法:可以直接在編譯器中匯入模組,執行報錯後點擊錯誤資訊直接進入對應的位置。如下圖所示:

python speech模組的使用方法

當我安裝好以後第一次執行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,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 speech模組的使用方法的文章就介紹到這了,更多相關python speech模組使用內容請搜尋我們以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援我們!