當前位置:
首頁 > 最新 > 教你怎樣用python進行語音識別

教你怎樣用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,以下是我在VPS中執行的一段代碼,可以看出,它將我的錄音精準地翻譯成了文字。

但是如果錄音文件較大的話,會運行時間很長,並且會返回一個超時的錯誤,這很是讓我苦惱。

不過幸運的是,speech_recognition支持將語音文件進行截取處理。例如,我可以只處理語音文件中的前15秒鐘的內容。

從上面的結果看,簡直比sphnix處理的效果好太多了。

通過看幫助文檔發現speech_recognition不僅可以截取前面的錄音,還可以截取中間的。

例如我想處理5秒至20秒之間的內容。


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 淘氣麵包 的精彩文章:

TAG:淘氣麵包 |