如何在Python中將語音轉換為文字

zhongpeijiaoyu發表於2020-07-29

  語音識別是計算機軟體識別口語中的單詞和短語,並將其轉換為可讀文字的能力。那麼如何在Python中將語音轉換為文字?如何使用SpeechRecognition 庫在Python中將語音轉換為文字?我們不需要從頭開始構建任何機器學習模型,該庫為我們提供了各種著名的公共語音識別API的便捷包裝。

  使用pip安裝庫:

  pip3 install SpeechRecognition

  Okey,開啟一個新的Python檔案並匯入它:

  import speech_recognition as sr

  從檔案讀取

  確保當前目錄中有一個包含英語語音的音訊檔案(如果您想跟我一起學習,請在此處獲取音訊檔案 ):

  filename = “speech.wav”

  該檔案是從 LibriSpeech 資料集中獲取的,但是您可以帶上任何想要的東西,只需更改檔名,就可以初始化語音識別器:

  # initialize the recognizer

  r = sr.Recognizer()

  以下程式碼負責載入音訊檔案,並使用Google Speech Recognition將語音轉換為文字:

  # open the filewith sr.AudioFile(filename) as source:www.zpedu.com/

  # 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,以下是取決於您的作業系統的安裝過程:

  視窗

  您可以點安裝它:

  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引數在偏移幾秒鐘後開始記錄。

  另外,您可以通過將語言引數傳遞給accept_google()函式來識別不同的語言。例如,如果您想識別西班牙語語音,則可以使用:

  text = r.recognize_google(audio_data, language=”es-ES”)

  在此stackoverflow答案中檢視支援的語言。

本作品採用《CC 協議》,轉載必須註明作者和本文連結

相關文章