語音識別是計算機軟體識別口語中的單詞和短語並將其轉換為人類可讀文本的能力。在本教程中,你將知道如何使用SpeechRecognition 庫在Python中將語音轉換為文本 。
因此,我們不需要從頭開始構建任何機器學習模型,該庫為我們提供了各種著名的公共語音識別API(例如Google Cloud Speech API,IBM Speech To Text等)的便捷包裝。
讓我們開始吧,首先使用pip安裝庫:
pip3 install SpeechRecognition
打開一個新的Python文件並導入它:
import speech_recognition as sr
從文件讀取
確保當前目錄中有一個音頻文件:
filename = "speech.wav"
該文件是從 LibriSpeech 數據集中獲取的,但是你可以帶上你想要的轉換的東西,只需要更改一下文件名即可,現在讓我們初始化語音識別器:
# initialize the recognizer
r = sr.Recognizer()
以下代碼負責加載音頻文件,並使用Google Speech Recognition將語音轉換為文本:
# open the file
with sr.AudioFile(filename) as source: # listen for the data (load audio to memory) audio_data = r.record(source) # recognize (convert from speech to text) text = r.recognize_google(audio_data) print(text)
這將需要幾秒鐘才能完成,因為它將文件上傳到Google中獲取到輸出,這是我獲取到的結果:
I believe you're just talking nonsense
從麥克風讀取
這需要在你的機器上安裝PyAudio,以下是取決於你的作業系統的安裝過程:
Windows系統
安裝它:pip3 install pyaudio
Linux系統
需要安裝依賴項:
sudo apt-get install python-pyaudio python3-pyaudio
pip3 install pyaudio
蘋果系統
需要先安裝portaudio,然後才可以安裝它:
brew install portaudio
pip3 install pyaudio
現在,讓我們使用麥克風轉換語音:
with sr.Microphone() as source: # read the audio data from the default microphone audio_data = r.record(source, duration=5) print("Recognizing...") # convert speech to text text = r.recognize_google(audio_data) print(text)
它會從你的麥克風錄取到5秒鐘,然後嘗試將語音轉換為文本!
它與先前的代碼非常相似,但是我們在這裡使用Microphone()對象從默認麥克風讀取音頻,然後在record()函數中使用duration參數在5秒後停止讀取,然後上傳音頻數據向Google獲取輸出文本。
你還可以在record()函數中使用offset參數在偏移幾秒鐘後開始記錄。
另外,你也可以通過將language參數傳遞給accept_google()函數來識別不同的語言。例如,如果你想識別別的語言(如:西班牙語音),則可以使用:
text = r.recognize_google(audio_data, language="es-ES")
使用此庫將語音轉換為文本非常簡單。該庫在國外被廣泛使用,如果有需要可以去掌握它。