人脸识别、语音识别系统
前言
这是对上个版本的一次更新
上个版本
项目地址在下面
主要更新的有界面,使用qss美化界面,增添了语音识别,设置等功能,操作会更简单,增加了很多防护措施,改了很多的bug。
效果图
效果演示:
对图像的处理
- 摄像头的处理 https://blog.csdn.net/Nirvana_6174/article/details/81392308 (这是之前写过的)
-
主要是使用opencv中 videoCapture函数打开摄像头。笔记本电脑地址是0,ip摄像头的地址一般使用rtsp地址。
-
实现人脸识别 https://blog.csdn.net/Nirvana_6174/article/details/81411842
-
我使用的是python的一个人脸识别库face_recognition,实现实时的人脸识别.我博客还有关于其他的人脸识别技术。可以参考 https://blog.csdn.net/Nirvana_6174/article/details/89599441
-
拍照 是使用opencv中的imwrite函数 把当前的画面保存下来,实现拍照
对声音的处理
-
语音播报
语音播报使用的是语音合成的功能,只不过是和人脸识别中识别到的数据联合到了一块,将识别到的人名,进行播报。 -
语音合成
使用的是百度ai中的技术,调用api接口实现。这个可以免费注册,进入控制台创建语音类应用,获取到api_id api_key sercert_key这三个值 。
def baidu_voice(voice):
""" 你的 APPID AK SK """
try:
result = client.synthesis(voice, 'zh', 1, {
'vol': 8,'per':0
})
# 识别正确返回语音二进制 错误则返回dict 参照下面错误码
if not isinstance(result, dict):
with open('auido.mp3', 'wb') as f:
f.write(result)
os.system('auido.mp3')
except:
return "语音合成出现问题 请检查"
上面需要添加
from aip import AipSpeech
client = AipSpeech(APP_ID, API_KEY, SECRET_KEY)
- 语音识别
语音合成和语音识别一样都是调用的百度ai的api接口
def baidu_speech_reco():
try:
with open('recode.wav', 'rb') as fp:
results=fp.read()
result = client.asr(results, 'wav', 16000, {'dev_pid': 1536, })
#print(result)
if 'result' in result.keys():
return str(result['result'][0])
else:
return '语音识别出现问题,请检查'
except:
return '语音识别出现问题,请检查'
跟上面一样在上面需要加上那两行代码
其他功能
- 注册
这个功能主要是利用界面和对配置文件的处理实现。注册主要是放入人的名字,年龄等等的信息。从界面上获取到,然后验证一下没有什么问题,点击确定按钮,就能够写入到配置文件中。对配置文件的处理使用的是 configparser这个库对conf文件进行读写。很方便好用。 -
查看记录
在人脸识别的时候,识别到人脸会记录到一个excel表格中去,这个功能就是来查看这个excel表格的。使用的是os中的popen函数进行打开文件。使用这个函数会重新开启一个线程,打开的比较快。 -
设置
设置的功能跟注册类似,通过界面和对配置文件的处理实现,配置文件时config.conf 把一些可以设置的参数放到界面里面。如果需要设置在界面上填写,当点击确定的时候,判断填写的是否存在问题,如果没有问题就会更改配置文件,从而实现对参数的更改。
else
- 上一版本
上一个版本跟这个版本功能上改变不少很大,在一些功能实现方面 可以参考上一版本的文档。
- 界面
对于界面的美化。看这里。详细的介绍了部分的界面美化方法。
- 源码
其他人脸识别模块介绍 链接地址
本文写于 2019-03-09 09:52:54
原文链接