使用 Google 语音 API 的 Python 语音识别


语音识别是许多应用(如家庭自动化、人工智能等)中最有用的功能之一。在本节中,我们将了解如何使用 Python 和 Google 的语音 API 来实现语音识别。

在本例中,我们将使用麦克风输入音频进行语音识别。要配置麦克风,需要一些参数。

要使用此模块,我们必须安装 SpeechRecognition 模块。还有一个名为 pyaudio 的可选模块。使用它我们可以设置不同的音频模式。

sudo pip3 install SpeechRecognition
sudo apt-get install python3-pyaudio

对于外置麦克风或 USB 麦克风,我们需要提供精确的麦克风以避免任何困难。在 Linux 上,如果我们键入“lsusb”则会显示 USB 设备的相关信息。

第二个参数是块大小。使用它我们可以指定一次读取多少数据。它将是一个 2 的幂的数字,例如 1024 或 2048 等。

我们还需要指定采样率,以确定多久记录一次数据以进行处理。

由于周围环境中可能存在一些不可避免的噪音,因此我们必须调整环境噪音以获取精确的语音。

语音识别步骤

  • 获取不同的麦克风相关信息。

  • 使用块大小、采样率、环境噪声调整等配置麦克风。

  • 等待一段时间以获取语音

    • 当识别到语音时,尝试将其转换为文本,否则引发一些错误。

  • 停止进程。

示例代码

import speech_recognition as spreg
#Setup the sampling rate and the data size
sample_rate = 48000
data_size = 8192
recog = spreg.Recognizer()
with spreg.Microphone(sample_rate = sample_rate, chunk_size = data_size) as source:
recog.adjust_for_ambient_noise(source)
print('Tell Something: ')
   speech = recog.listen(source)
try:
   text = recog.recognize_google(speech)
   print('You have said: ' + text)
except spreg.UnknownValueError:
   print('Unable to recognize the audio')
except spreg.RequestError as e: 
   print("Request error from Google Speech Recognition service; {}".format(e))

输出

$ python3 318.speech_recognition.py
Tell Something: 
You have said: here we are considering the asymptotic notation Pico to calculate the upper bound 
of the time complexity so then the definition of the big O notation is like this one
$

在不使用麦克风的情况下,我们还可以将某些音频文件作为输入以将其转换为语音。

示例代码

import speech_recognition as spreg
sound_file = 'sample_audio.wav'
recog = spreg.Recognizer()
with spreg.AudioFile(sound_file) as source:
   speech = recog.record(source) #use record instead of listning
   try:
      text = recog.recognize_google(speech)
      print('The file contains: ' + text)
   except spreg.UnknownValueError:
      print('Unable to recognize the audio')
   except spreg.RequestError as e: 
      print("Request error from Google Speech Recognition service; {}".format(e))

输出

$ python3 318a.speech_recognition_file.py 
The file contains: staying ahead of the curve demand planning new technology it also helps you progress in your career
$ 

更新于: 2019-07-30

1K+ 次查看

开启您的 职业生涯

通过完成课程获得认证

开始学习
广告