如何使用 Python 將語音轉換為文本 [分步過程]

已發表: 2020-08-07

目錄

語音轉文本簡介

我們生活在一個與機器交互的方式變得多樣化和復雜的時代。 我們已經從厚實的機械按鈕發展到觸摸屏界面。 但這種演變不僅限於硬件。 計算機輸入的現狀從概念開始就是文本。 儘管如此,隨著 NLP(自然語言處理)和 ML(機器學習)、數據科學的進步,我們擁有將語音作為與我們的小工具交互的媒介的工具。

這些工具已經圍繞著我們,並且最常作為虛擬助手為我們服務。 Google、Siri、Alexa 等都是里程碑式的成就,增加了與數字世界交互的另一個更加個性化和便捷的維度。

與大多數技術創新不同,語音轉文本技術可供所有人探索,既可用於消費,也可用於構建您的項目。

Python 是世界上最常見的編程語言之一,擁有創建語音到文本應用程序的工具。

語音轉文本的歷史

在我們探索 Python 中的文本語句之前,有必要了解一下我們在該領域取得的進展。 以下是簡化的時間表:

  • Audrey ,1952:由 3 Bells 實驗室的研究人員開發的第一個語音識別系統。 它只能識別數字。
  • IBM Showbox (1962):IBM 的第一個語音識別系統,除了數字外,線圈還可以識別 16 個單詞。 可以解決簡單的算術命令並打印結果。
  • 國防高級研究計劃局(DARPA) (1970):DARPA 資助了語音理解研究,這導致 Harpy 發展到識別 1011 個單詞。
  • 隱馬爾可夫模型(HMM),1980 年代:HMM 是一種統計模型,用於對需要序列信息的問題進行建模。 該模型被應用於語音識別的進一步發展。
  • 谷歌語音搜索,2001:谷歌推出了語音搜索功能,使用戶能夠使用語音進行搜索。 這是第一個非常流行的支持語音的應用程序。
  • Siri ,2011:Apple 推出了 Siri,它能夠以一種實時且便捷的方式與其設備進行交互。
  • Alexa ,2014 & google home ,2016:隨著 google home 和 Alexa 的總銷量超過 1.5 億台,基於語音命令的虛擬助手成為主流。

另請閱讀:前 7 個 Python NLP 庫

語音轉文本的挑戰

語音到文本仍然是一個複雜的問題,遠未成為真正的成品。 一些技術上的困難使這充其量是一個不完美的工具。 以下是語音識別技術的常見挑戰:

1.我不精確的解釋

語音識別並不總是能正確解釋口語。 VUI(語音用戶界面)在理解改變單詞和句子之間關係的上下文方面不如人類熟練。 因此,機器可能難以理解句子的語義。

2.時間

有時,語音識別系統處理時間過長。 這可能是由於人類擁有的語音模式的多樣性。 語音識別的這種困難可以通過減慢語音或發音更精確來避免,這會影響工具的便利性。

3.口音

VUI 可能會發現很難理解與平均水平不同的方言。 在同一種語言中,說話者可以用完全不同的方式說同一個詞。

4. 背景噪音和響度

在理想的世界中,這些都不是問題,但事實並非如此,因此 VUI 可能會發現在嘈雜的環境(公共場所、大型辦公室等)中工作具有挑戰性。

必讀:如何用 Python 製作聊天機器人

Python中的語音到文本

如果不想經歷從頭開始構建聲明到文本的艱鉅過程,請使用以下內容作為指南。 本指南只是對創建您自己的語音轉文本應用程序的基本介紹。 除了相對較新的 Python 版本外,請確保您確實有一個正常工作的麥克風。

第 1 步

下載以下 python 包:

  • Speech_recogntion (pip install SpeechRecogntion):這是運行將語音轉換為文本的最關鍵步驟的主包。 其他替代方案各有利弊,例如上訴、組裝、google-cloud-search、pocketsphinx、Watson-developer-cloud、wit 等。
  • 我的音頻(點安裝 Pyaudio)
  • Portaudio (點安裝 Portaudio)

第 2 步

創建一個項目(隨意命名),然後將 Speech_recogntion 導入為 sr。

創建識別器類的盡可能多的實例。

第 3 步

創建這些實例後,我們現在必須定義輸入源。

現在,讓我們將源定義為麥克風本身(您可以使用現有的音頻文件)

第 4 步

我們現在將定義一個變量來存儲輸入。 我們使用“聆聽”方法從源頭獲取信息。 因此,在我們的例子中,我們將使用麥克風作為我們在前一行代碼中建立的源。

第 5 步

現在我們已經定義了輸入(麥克風作為源)並將其存儲在變量('audio')中,我們只需使用識別谷歌方法將其轉換為文本。 我們可以將結果存儲在變量中,也可以簡單地打印結果。 我們不必僅僅依賴於recognize_google,我們還有其他使用不同API 的方法也能正常工作。 此類方法的示例如下:

識別_bing()

recongize_google_cloud()

recongize_houndify()

recongize_ibm()

recongize_Sphinx() (也可以離線工作)

以下方法使用了現有的軟件包,這些軟件包有助於減少從頭開始開發語音到文本識別軟件的麻煩。 這些包有更多的工具可以幫助您構建解決更具體問題的項目。 一個有用的功能示例是您可以將默認語言從英語更改為說印地語。 這將改變打印成印地語的結果(儘管就目前而言,語音轉文本最適合理解英語)。

但是,對於嚴格的開發人員來說,了解此類軟件的運行方式是一個很好的思考練習。

讓我們分解一下。

從根本上說,語音只是一種聲波。 這樣的聲波或音頻信號具有一些特徵屬性(這對於聲學物理學來說似乎很熟悉),例如振幅、波峰和波谷、波長、週期和頻率。

這種音頻信號是連續的,因此具有無限的數據點。 要將這樣的音頻信號轉換為數字信號,以便計算機可以處理它,網絡必須採用與音頻信號連續性非常相似的離散樣本分佈。

一旦我們有了合適的採樣頻率(8000 Hz 是一個很好的標準,因為大多數語音頻率都在這個範圍內),我們現在可以使用 Python 庫(例如 LibROSA 和 SciPy)來處理音頻信號。 然後,我們可以通過將數據集分成 2 個、訓練模型和另一個來驗證模型的發現來構建這些輸入。

在這個階段,可以使用 Conv1d 的模型架構,這是一種僅沿一維執行的捲積神經網絡。 然後我們可以建立一個模型,定義它的損失函數,並使用神經網絡來保存將語音轉換為文本的最佳模型。 使用深度學習和 NLP(自然語言處理),我們可以將語句細化為文本,以實現更廣泛的應用和採用。

語音識別的應用

正如我們所了解的,運行這項技術創新的工具更容易獲得,因為這主要是一項軟件創新,沒有一家公司擁有它。 這種可訪問性為資源有限的開發人員打開了應用該技術的大門。

語音識別正在發展的一些領域如下:

  • 搜索引擎的演變:語音識別將通過填補口頭和書面交流之間的差距來幫助提高搜索準確性。
  • 對醫療保健行業的影響:語音識別通過幫助完成醫療報告正在成為醫療行業的普遍特徵。 隨著 VUI 對醫學術語的理解越來越好,採用這項技術將把時間從醫生的行政工作中解放出來。
  • 服務行業:在自動化日益增長的趨勢中,客戶可能無法讓人工響應查詢,因此語音識別系統可以填補這一空白。 我們將看到此功能在機場、公共交通等領域的快速增長。
  • 服務供應商:電信供應商可能更多地依賴基於語音到文本的系統,該系統可以通過幫助確定呼叫者的需求並將他們引導到適當的幫助來減少等待時間。

另請閱讀:語音搜索技術——有趣的事實

結論

語音轉文本是一項強大的技術,很快就會無處不在。 它與 Python(世界上最流行的編程語言之一)相結合的相當簡單的可用性使得創建它的應用程序更容易。 隨著我們在這一領域取得長足進步,我們正在為通往數字世界的世界鋪平道路,在這個世界中,訪問數字世界不僅是指尖,而且是口語。

如果您有興趣了解有關自然語言處理的更多信息,請查看我們的機器學習和人工智能執行 PG 計劃,該計劃專為在職專業人士設計,並經過 450 多個小時的嚴格培訓。

如果您想了解數據科學,請查看 IIIT-B 和 upGrad 的數據科學執行 PG 計劃,該計劃是為在職專業人士創建的,提供 10 多個案例研究和項目、實用的實踐研討會、行業專家的指導、1與行業導師一對一,400 多個小時的學習和頂級公司的工作協助。

什麼是語音到文本的轉換?

在語音識別的早期,轉錄員戴著耳機坐著錄製語音。 這個過程花費了很長時間,並且產生了低質量的成績單。 今天,語音識別系統使用計算機將語音轉換為文本。 這稱為語音到文本的轉換。 語音識別(也稱為語音到文本的轉換)是將口語單詞轉換為機器可讀數據的過程。 目的是讓人們通過語音與機器交流,讓機器通過產生語音與人交流。 語音到文本的軟件用於執行此轉換。

語音到文本轉換的挑戰是什麼?

語音到文本的轉換存在許多挑戰。 主要挑戰是: 準確性,即係統必須正確地使用口語才能提取用戶意圖。 速度,系統需要能夠以足夠快的速度執行上述操作以被用戶接受。 自然,系統應該聽起來盡可能自然,所以用戶不會覺得他們必須以不自然的方式說話。 魯棒性,系統應該能夠處理大量的背景噪聲、其他語音和任何其他可能干擾轉換過程的影響。

語音在文本處理中有哪些應用?

您需要將語音轉換為文本的原因是因為它是一種非常快捷方便的交流方式。 語音轉文本處理可以用於許多不同的應用,例如,它可以用於移動通信設備,用戶可以使用語音發送消息和撥打電話,而不是在鍵盤上打字。 語音對文本處理的另一個應用是機器控制。 這是一種通過與發動機或其他工業機器對話來控制它的方法。