def respond(text):
print(“助手:”, text)
engine.say(text)
engine.runAndWait()
respond(“你好!我是语音助手。”)
engine.setProperty(‘rate’, rate) # 恢复默认语速
engine.setProperty(‘volume’, volume) # 恢复默认音量
engine.setProperty(‘pitch’, pitch) # 恢复默认音调
respond(“你好!我是语音助手。”)
在这个示例中,我们首先创建了一个 `pyttsx3` 的语音合成引擎对象。然后,通过 `getProperty` 方法获取当前的语音属性,包括语速、音量和音调。接下来,使用 `setProperty` 方法设置新的语音属性,例如将语速设置为150,音量设置为0.8,音调设置为1.2。然后,定义了一个回应函数 `respond`,该函数会打印回应文本并使用语音合成引擎进行语音输出。
在示例中,我们先测试了使用自定义语音属性的回应,然后恢复了默认的语音属性,并再次进行了回应测试。
你可以根据需要调整语音属性的值,以使语音更加自然和适合用户的喜好。请注意,具体的语音属性值可能因系统和语音引擎而异。你可以尝试不同的值来找到最适合的设置。
### 六、多语言支持示例代码

`pyttsx3` 支持多种语言和语音引擎,你可以通过设置 `setProperty` 方法来切换语言,从而实现多语言支持的语音助手。以下是一个示例代码:
import pyttsx3
engine = pyttsx3.init()
voices = engine.getProperty(‘voices’)
print(“可用的语音列表:”)
for voice in voices:
print(“名称:”, voice.name)
print(“ID:”, voice.id)
print(“语言:”, voice.languages)
print(“性别:”, voice.gender)
print(“”)
engine.setProperty(‘voice’, voices[1].id) # 设置语音为第二个可用语音
def respond(text):
print(“助手:”, text)
engine.say(text)
engine.runAndWait()
respond(“Hello! I am a multilingual voice assistant.”)
respond(“你好!我是一个多语言语音助手。”)
engine.setProperty(‘voice’, voices[0].id) # 设置语音为第一个可用语音
respond(“Hello! I am a multilingual voice assistant.”)
respond(“你好!我是一个多语言语音助手。”)
在这个示例中,我们首先创建了一个 `pyttsx3` 的语音合成引擎对象,并使用 `getProperty` 方法获取当前可用的语音列表。然后,我们打印了每个语音的名称、ID、语言和性别等信息。
接下来,使用 `setProperty` 方法将语音属性设置为第二个可用语音,以切换语言。你可以根据需要选择其他可用的语音。
然后,定义了一个回应函数 `respond`,该函数会打印回应文本并使用语音合成引擎进行语音输出。
在示例中,我们先测试了使用第二个可用语音的回应,然后恢复了默认的语音属性,再次进行了回应测试。
你可以根据需要选择合适的语音,以实现多语言支持的语音助手。请注意,可用的语音和语言取决于你的系统和安装的语音引擎。
### 七、语音控制应用程序示例代码

要创建一个可以通过语音控制的应用程序,你可以结合使用 `pyttsx3` 和其他库和框架来实现不同的功能。下面是一个示例代码,演示了如何使用 `pyttsx3` 和 `pyautogui` 库来实现语音控制鼠标和键盘:
import pyttsx3
import speech_recognition as sr
import pyautogui
engine = pyttsx3.init()
recognizer = sr.Recognizer()
def respond(text):
print(“助手:”, text)
engine.say(text)
engine.runAndWait()
def voice_control():
with sr.Microphone() as source:
print(“请说话…”)
audio = recognizer.listen(source)
try:
# 使用语音识别器将语音转换为文本
text = recognizer.recognize_google(audio, language='zh-CN')
print("你说:", text)
# 根据识别到的文本执行相应的操作
if "向上" in text:
pyautogui.move(0, -100, duration=0.5) # 向上移动鼠标
elif "向下" in text:
pyautogui.move(0, 100, duration=0.5) # 向下移动鼠标
elif "向左" in text:
pyautogui.move(-100, 0, duration=0.5) # 向左移动鼠标
elif "向右" in text:
pyautogui.move(100, 0, duration=0.5) # 向右移动鼠标
elif "点击" in text:
pyautogui.click() # 点击鼠标左键
elif "退出" in text:
respond("再见!")
return
else:
respond("抱歉,我无法理解你的指令。")
except sr.UnknownValueError:
respond("抱歉,无法识别你说的话。")
except sr.RequestError:
respond("抱歉,无法连接到语音识别服务。")
# 继续监听语音输入
voice_control()
respond(“你好!我是语音助手。请告诉我你想要做什么。”)
voice_control()
在这个示例中,我们首先创建了一个 `pyttsx3` 的语音合成引擎对象和一个 `speech_recognition` 的语音识别器对象。然后,定义了一个回应函数 `respond`,该函数会打印回应文本并使用语音合成引擎进行语音输出。
接下来,定义了一个语音控制函数 `voice_control`,该函数使用语音识别器监听麦克风输入,并将语音转换为文本。根据识别到的文本,执行相应的操作,例如移动鼠标、点击鼠标等。
在示例中,我们定义了一些简单的指令,如 “向上”、“向下”、“向左”、“向右”、“点击” 等。你可以根据需要扩展指令和相应的操作。
最后,启动语音控制,语音助手会打招呼并等待你的指令。你可以说出相应的指令,语音助手会执行对应的操作。
请注意,此示例仅演示了如何结合 `pyttsx3` 和 `pyautogui` 库实现语音控制鼠标和键盘的功能。根据你的需求,你可以结合其他库和框架来实现更复杂的语音控制应用程序。
### 八、文本转语音通知示例代码

`pyttsx3` 库可以将文本转换为语音,实现通知功能。下面是一个示例代码,演示了如何使用 `pyttsx3` 将文本内容转换为语音并进行播放:
import pyttsx3
engine = pyttsx3.init()
def text_to_speech(text):
engine.say(text)
engine.runAndWait()
def notify(message):
print(“通知:”, message)
text_to_speech(message)
notify(“这是一条通知消息。”)
notify(“你的日程安排已更新。”)
notify(“以下是今天的新闻摘要:”)
notify(“这是一条很长的通知消息,可以包含多个句子和段落。”)
engine.stop()
在这个示例中,我们首先创建了一个 `pyttsx3` 的语音合成引擎对象。然后,定义了一个文本转语音函数 `text_to_speech`,该函数使用语音合成引擎将文本转换为语音并进行播放。
接下来,定义了一个通知函数 `notify`,该函数接受一个文本消息作为参数,并打印通知消息并通过语音播放。
在示例中,我们使用 `notify` 函数演示了几个通知消息的例子。你可以根据需要调用 `notify` 函数,将不同的文本内容转换为语音进行通知。
最后,我们通过调用 `engine.stop()` 来关闭语音合成引擎。
请注意,使用 `pyttsx3` 进行文本转语音时,可以根据需要设置语音的属性,如语速、音量等。你可以使用 `engine.setProperty` 方法来设置这些属性。例如,`engine.setProperty('rate', 150)` 可以设置语速为 150 字符每分钟。
### 九、语音交互界面示例代码
要创建一个交互式的语音界面,可以结合使用 `pyttsx3`、`pyaudio` 和 `speech_recognition` 等库来实现语音输入和输出的功能。下面是一个示例代码,演示了如何创建一个简单的语音交互界面:
import pyttsx3
import speech_recognition as sr
engine = pyttsx3.init()
recognizer = sr.Recognizer()
def respond(text):
print(“助手:”, text)
engine.say(text)
engine.runAndWait()
def voice_interaction():
with sr.Microphone() as source:
print(“请说话…”)
audio = recognizer.listen(source)
try:
# 使用语音识别器将语音转换为文本
text = recognizer.recognize_google(audio, language='zh-CN')
print("你说:", text)
# 根据用户输入的文本进行相应的回应
if "你好" in text:
respond("你好!有什么我可以帮助你的吗?")
elif "时间" in text:
# 这里可以调用其他库或函数获取当前时间并进行回应
respond("现在是晚上8点。")
elif "退出" in text:
respond("再见!")
return
else:
respond("抱歉,我无法理解你的指令。")
except sr.UnknownValueError:
respond("抱歉,无法识别你说的话。")
except sr.RequestError:
respond("抱歉,无法连接到语音识别服务。")
# 继续语音交互
voice_interaction()
respond(“你好!我是语音助手。有什么我可以帮助你的吗?”)
voice_interaction()
在这个示例中,我们首先创建了一个 `pyttsx3` 的语音合成引擎对象和一个 `speech_recognition` 的语音识别器对象。然后,定义了一个回应函数 `respond`,该函数会打印回应文本并使用语音合成引擎进行语音输出。
接下来,定义了一个语音交互函数 `voice_interaction`,该函数使用语音识别器监听麦克风输入,并将语音转换为文本。根据用户输入的文本,执行相应的回应。
在示例中,我们定义了一些简单的指令,如 “你好” 和 “时间”。根据用户的指令,语音助手会进行相应的回应。你可以根据需要扩展指令和相应的操作。
最后,启动语音交互,语音助手会打招呼并等待用户的指令。你可以通过语音与语音助手进行交互。
请注意,这个示例代码只是一个简单的交互式语音界面的演示。你可以根据自己的需求和应用场景,扩展和定制这个代码,结合其他库和框架实现更复杂的语音交互功能。
### 十、实现更复杂交互界面示例代码
当扩展和定制语音交互功能时,你可以根据自己的需求和应用场景,结合其他库和框架来实现更复杂的功能。以下是一个示例代码,展示了如何使用 `pyttsx3`、`speech_recognition` 和 `wikipedia` 库来创建一个语音交互的维基百科助手:
import pyttsx3
import speech_recognition as sr
import wikipedia
engine = pyttsx3.init()
recognizer = sr.Recognizer()
def respond(text):
print(“助手:”, text)
engine.say(text)
engine.runAndWait()
def voice_interaction():
with sr.Microphone() as source:
print(“请说话…”)
audio = recognizer.listen(source)
try:
# 使用语音识别器将语音转换为文本
text = recognizer.recognize_google(audio, language='zh-CN')
print("你说:", text)
# 根据用户输入的文本进行相应的回应
if "你好" in text:
respond("你好!有什么我可以帮助你的吗?")
elif "维基百科" in text:
query = text.replace("维基百科", "").strip()
try:
# 使用维基百科库获取相关信息
summary = wikipedia.summary(query, sentences=2)
respond(summary)
except wikipedia.exceptions.DisambiguationError as e:
respond("请提供更具体的查询内容。")
except wikipedia.exceptions.PageError as e:
respond("抱歉,找不到相关信息。")
elif "退出" in text:
respond("再见!")
return
else:
respond("抱歉,我无法理解你的指令。")
except sr.UnknownValueError:
respond("抱歉,无法识别你说的话。")
except sr.RequestError:
respond("抱歉,无法连接到语音识别服务。")
# 继续语音交互
voice_interaction()
respond(“你好!我是维基百科助手。有什么我可以帮助你的吗?”)
voice_interaction()
如果你也是看准了Python,想自学Python,在这里为大家准备了丰厚的免费**学习**大礼包,带大家一起学习,给大家剖析Python兼职、就业行情前景的这些事儿。
### 一、Python所有方向的学习路线
Python所有方向路线就是把Python常用的技术点做整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。

### 二、学习软件
工欲善其必先利其器。学习Python常用的开发软件都在这里了,给大家节省了很多时间。

### 三、全套PDF电子书
书籍的好处就在于权威和体系健全,刚开始学习的时候你可以只看视频或者听某个人讲课,但等你学完之后,你觉得你掌握了,这时候建议还是得去看一下书籍,看权威技术书籍也是每个程序员必经之路。

### 四、入门学习视频
我们在看视频学习的时候,不能光动眼动脑不动手,比较科学的学习方法是在理解之后运用它们,这时候练手项目就很适合了。


### 四、实战案例
光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。

### 五、面试资料
我们学习Python必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。

成为一个Python程序员专家或许需要花费数年时间,但是打下坚实的基础只要几周就可以,如果你按照我提供的学习路线以及资料有意识地去实践,你就有很大可能成功!
最后祝你好运!!!
**网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。**
**[需要这份系统化学习资料的朋友,可以戳这里无偿获取](https://bbs.csdn.net/topics/618317507)**
**一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**