使用SAPI实现语音识别:
开发运行环境: win10 64位
Python版本:3.8
使用模块: speech
基础知识:
什么是SAPI?
SAPI是微软Speech API , 是微软公司推出的语音接口,而从WINXP开始,系统上就已经有语音识别的功能了;
Speech模块:
该模块的主要功能有:语音识别、将指定文本合成语音以及语音信号输出等。
安装Speech模块
- 安装方式推荐有很多种,推荐使用pip;
pip 是 Python 的包安装程序。其实,pip 就是 Python 标准库(The Python Standard Library)中的一个包,只是这个包比较特殊,用它可以来管理 Python 标准库(The Python Standard Library)中其他的包。pip 是一个命令行程序。 安装 pip 后,会向系统添加一个 pip 命令,该命令可以从命令提示符运行。
安装完pip,添加到环境变量后,就可以使用pip命令安装第三方模块
- 安装speech模块命令:
pip install speech
目前speech的最新版本是0.5.2
- 修改speech源码
因为这个智能语音模块依赖的是Python2.7版本的,而机器上目前的版本是python3.8,所以直接使用会报错,需要修改源码;
修改三个地方:
- 59行 import thread 改成 import threading
- 157行 print prompt 改成 print(prompt)
- 最后一行 _eventthread = thread.start_new_thread(loop, ()) 修改为
mythread = threading.Thread(target=loop) mythread.setDaemon(True) mythread.start()
编码实现:
使用speech.input() 接收语音并返回文字
使用speech.say() 播放语音
以下代码实现了通过语音识别到的信息,执行不同的操作:
import speech
import os
while True:
say = speech.input() # 接收语音
print(say)
#speech.say("you said:"+say) #说话
if 'hello' in say:
speech.say("How are you?")
elif say == "你好":
speech.say("你也好!")
elif '恐龙' in say:
os.system('python xiaokonglong.py')
elif '小猪' in say or '小朱' in say:
os.system('python xiaozhupeiqi.py')
注意
此代码只支持windows系统,在第一次运行时,会先调起windows设置语音识别功能的配置;