Python Speech 模块
简介
Python Speech 模块是一个用于语音识别和语音合成的 Python 库。它基于 Google Chrome 的 [Web Speech API]( 和 [Web Speech Synthesis API](
Speech 模块提供了一种简单而强大的方式来实现语音识别和语音合成功能。它可以用于构建语音助手、自动语音识别系统、语音控制应用等。
安装
要使用 Speech 模块,首先需要安装它。可以通过 pip 命令来安装 Speech 模块:
pip install SpeechRecognition
安装完成后,即可在 Python 中导入 Speech 模块:
import speech_recognition as sr
语音识别
Speech 模块提供了一个简单而强大的语音识别接口。它可以从麦克风、音频文件或网络流中获取语音输入,并将其转换为文本。
以下是一个使用 Speech 模块进行语音识别的示例代码:
import speech_recognition as sr
# 创建一个语音识别器对象
r = sr.Recognizer()
# 使用麦克风获取语音输入
with sr.Microphone() as source:
print("请说话...")
audio = r.listen(source)
try:
# 使用 Google 的语音识别 API 将语音转换为文本
text = r.recognize_google(audio, language="zh-CN")
print("识别结果:" + text)
except sr.UnknownValueError:
print("无法识别语音")
except sr.RequestError as e:
print("请求失败:" + str(e))
在上面的代码中,首先创建了一个 Recognizer
对象 r
,然后使用 Microphone
类打开麦克风并获取语音输入。接下来,调用 recognize_google
方法将语音转换为文本,并打印出识别结果。
如果无法识别语音或请求失败,会抛出相应的异常并进行处理。
语音合成
Speech 模块不仅能够进行语音识别,还可以进行语音合成。它可以将文本转换为语音,并播放出来。
以下是一个使用 Speech 模块进行语音合成的示例代码:
import speech_recognition as sr
import pyttsx3
# 创建一个语音合成器对象
engine = pyttsx3.init()
# 设置语速和音量
engine.setProperty("rate", 150)
engine.setProperty("volume", 0.8)
# 获取要合成的文本
text = input("请输入要合成的文本:")
# 使用语音合成器将文本转换为语音
engine.say(text)
engine.runAndWait()
在上面的代码中,首先创建了一个语音合成器对象 engine
,然后设置了语速和音量。接下来,通过 input
函数获取要合成的文本,并使用 say
方法将文本转换为语音。最后,调用 runAndWait
方法播放语音。
使用 Speech 模块构建语音助手
Speech 模块非常适合用于构建语音助手。我们可以结合其他功能来实现一个简单的语音助手。
以下是一个使用 Speech 模块构建语音助手的示例代码:
import speech_recognition as sr
import pyttsx3
# 创建一个语音识别器对象
r = sr.Recognizer()
# 创建一个语音合成器对象
engine = pyttsx3.init()
# 使用麦克风获取语音输入
with sr.Microphone() as source:
print("请说话...")
audio = r.listen(source)
try:
# 使用 Google 的语音识别 API 将语音转换为文本
text = r.recognize_google(audio, language="zh-CN")
print("识别结果:" + text)
# 如果识别结果为"你好",则回复"你好!我是语音助手。"
if text == "你好":
engine.say("你好!我是语音助手。")
engine.runAndWait()
except sr.UnknownValueError:
print("无法识别