教你怎樣用python進行語音識別
網上找到一些例子,有一些成熟的模型,可以將語音轉成文字。例如Cloud Speech API,但是需要你使用google雲平台的前提。
speech recognition
對於python這一非常成熟的膠水語言,在網上找一些現成的工具包真的不是一個太難的問題。在GitHub上就發現了這樣一個神奇的包:speech recognition
它可以支持實時翻譯,當然前提是需要在機器上安裝有關麥克風的依賴包;還可以支持將語音文件中的文字直接提取出來。通過speech recognition可以調用多種平台上的模型,比如google API,CMU sphinx,Microsoft Bing Speech,IBM Speech to Text,Wit.ai 等
離線轉換
對於國內的網路環境,無法用google API來將語音數據轉換成文本文件,因為在調用這個包的時候,需要連接到google。當然,你可以租用一個國外的VPS來做這件事情。
這裡講一下如何在不聯網的情況下,依然可以通過python來將語音文件轉換成文字。這裡用到的包為sphinx,sphinx是由美國卡內基梅隆大學開發的大辭彙量、非特定人、連續英語語音識別系統。
安裝 sphinx
我本人所用的環境為ubuntu。
在安裝sphinx之前需要安裝一些軟體包
之後可以在相關網站上下載sphinxbase安裝包,當然也可以直接clone github上的包
下載完之後進行解壓
修改文件名
現在我們應該運行來生成和其他一些腳本以備後續的編譯和安裝。
下面開始源碼安裝
執行完以上命令之後,如果沒有出現什麼報錯信息,就說明已經安裝成功了,但是此時你的命令並不可以生效,在運行命令時會出現這樣的錯誤。
還需要讓系統載入目錄,為了讓系統每次啟動時都可以自動載入,可以修改系統配置文件
這時候,就可以通過命令將模型DMP文件轉成bin文件
上面這行代碼是將中文的模型DMP文件轉成了bin文件。在安裝完sphinx後默認只支持英文,在存放模型的路徑下只有一個文件名為,所以這裡需要添加一個處理中文的模型,相關文件可以在這個網址中下載。
在python中使用sphinx
想要在python中使用sphinx的話,需要安裝一些依賴包。
這時候,就可以啟動ipython來試試效果了。
可以看出,這個語音識別器已經生效了。但是我說的是「今天天氣好熱啊」。
看來sphinx中的模型並非很准吶,而且這只是一個短句子。我們接下來看看長句子的效果,我錄了村上春樹的《當我談跑步時我談些什麼》中的一段內容。
呃,看到結果,我覺得可以用一個來形容:差勁。兩個字來形容:太差勁!
當然,這個模型只是我直接從網上下載下來的。訓練它時所用到的語料不會那麼齊全,所以在測試時難免會出現不準確的情況。要想讓模型更加準確,需要自己在利用sphnix繼續訓練模型。
相關辦法在其官網上可以找到,也有相應的教程。感興趣的朋友可以自行研究。
文中提到的教程網址是https://cmusphinx.github.io/wiki/tutorialtuning/
Google API
利用google API來處理語音識別則相當準確,不過需要連接google,以下是我在VPS中執行的一段代碼,可以看出,它將我的錄音精準地翻譯成了文字。
但是如果錄音文件較大的話,會運行時間很長,並且會返回一個超時的錯誤,這很是讓我苦惱。
不過幸運的是,speech_recognition支持將語音文件進行截取處理。例如,我可以只處理語音文件中的前15秒鐘的內容。
從上面的結果看,簡直比sphnix處理的效果好太多了。
通過看幫助文檔發現speech_recognition不僅可以截取前面的錄音,還可以截取中間的。
例如我想處理5秒至20秒之間的內容。


TAG:淘氣麵包 |