使用SpeechRecognition将Python语音转换为文本

时间:2020-02-23 14:43:20  来源:igfitidea点击:

在本文中,我们将介绍使用SpeechRecognition库在Python中将语音转换为文本的过程。

语音识别是识别语音并以文本方式表示语音的过程。
在当今瞬息万变的世界中,语音识别在许多方面都非常有用,例如自动驾驶汽车,房屋监视等。

Python语音到文本转换的前提条件

在深入探讨Python语音到文本转换的过程之前,必须安装必需的库。

步骤1:安装SpeechRecognition库

pip install speechrecognition

"语音识别库"用于语音到文本的转换。
此外,它支持各种离线/在线语音识别引擎和API。

步骤2:安装PyAudio模块

pip install pyaudio

安装PyAudio模块

PyAudio库用作跨平台的输入输出模块,并提供与PortAudio的绑定。
PyAudio使用户可以记录和播放音频文件,而与平台无关,即它完全独立于平台。

使用SpeechRecognition模块了解Python语音到文本的转换

步骤1:导入必要的库/模块

在使用"语音识别模块"将语音转换为文本的过程中,我们将必须在程序中导入相同的内容,以利用模块/库下定义的所有功能。

import speech_recognition

步骤2:初始化语音识别器

variable = speech_recognition.Recognizer()

为了获取音频格式的输入并识别声音,我们需要初始化识别器以识别音频/语音。

步骤3:设定输入音讯/声音的来源

语音识别模块的输入有两种类型:

  • 预先录制的音频文件
  • 通过默认麦克风输入语音
with SRG.Microphone() as source

在上述声明中,通过默认麦克风直接记录了我们功能的输入。
因此," Microphone()"对象被用于从麦克风获取音频。

注意:我们需要安装PyAudio模块才能接受来自默认麦克风的音频格式的输入。

如果要将预先录制的音频文件转换为文本,我们需要遵循以下声明:

with SRG.AudioFile(name of the audio file) as source

步骤4:定义录制麦克风音频的时间限制。

" record()方法"用于设置输入源以及麦克风需要接受和记录输入音频的时间。

record(source, duration)

  • source:定义输入源,例如音频文件,来自麦克风的输入等。

  • duration:麦克风处于活动状态并接受用户输入语音的时间段(以秒为单位)。

第5步:使用搜索引擎或者API将语音转换为文本

record()函数接受来自用户的语音,并将其上载到语音识别引擎(例如google语音识别引擎)以进行语音识别。
为了使用google识别引擎,系统必须保持与Internet的连接。

recognize_google()函数将传递给它的输入语音识别为参数,并以文本形式返回。
如果用户希望使用其他任何语言进行语音识别,例如西班牙语,日语等,则需要将"语言"作为参数传递给函数。

使用SpeechRecognition库实现Python语音到文本的转换

import speech_recognition as SRG 
import time

store = SRG.Recognizer()
with SRG.Microphone() as s:
  
  print("Speak...")
  
  audio_input = store.record(s, duration=7)
  print("Recording time:",time.strftime("%I:%M:%S"))
 
  try:
      text_output = store.recognize_google(audio_input)
      print("Text converted from audio:\n")
      print(text_output)
      print("Finished!!")

      print("Execution time:",time.strftime("%I:%M:%S"))
  except:
         print("Couldn't process the audio input.")

输出:

Speak...
Recording time: 01:13:27
Text converted from audio:

Python on theitroad!
Finished!!
Execution time: 01:13:34