《人工智能导论》大实验(选题二:人脸与语音识别)_第1页
《人工智能导论》大实验(选题二:人脸与语音识别)_第2页
《人工智能导论》大实验(选题二:人脸与语音识别)_第3页
《人工智能导论》大实验(选题二:人脸与语音识别)_第4页
《人工智能导论》大实验(选题二:人脸与语音识别)_第5页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

大实验(选题二:人脸与语音识别)一、实验目的1.理解人脸识别的4个核心步骤:图像采集→人脸定位→特征提取→特征比对。2.掌握OpenCV+face_recognition库的基本用法,能在本地完成人脸验证。3.理解语音识别的4个核心步骤:语音输入→编码→解码→文字输出。4.能够使用2种Python方案(speech_recognition在线API/Whisper离线模型)进行语音识别。二、实验内容任务一:人脸识别1.实验环境安装(1)安装Python。(2)安装OpenCV和face_recognition。pipinstallopencv-pythonface_recognition2.配置开发环境(1)若使用PyCharm:创建新项目时选择已安装的Python解释器。(2)若使用命令行:无需额外配置,确保Python已添加到系统环境变量。3.人脸图像采集使用笔记本摄像头拍摄3张自己的正面照片,保存为known_face.jpg。4.人脸定位运行脚本,用face_recognition.face_locations()在图片中画出人脸矩形框,确认检测无误。5.特征提取调用face_recognition.face_encodings()生成128维特征向量,存入数组known_encoding。6.特征比对现场再拍1张test_face.jpg;提取特征后,用compare_faces()与已知向量比对,输出“匹配/不匹配”。7.可视化结果在比对成功的照片上标注姓名并保存,记录实验结果。参考代码如下:在运行此代码之前,确保已经安装了OpenCV库和深度学习库。#1.人脸图像采集#引入OpenCV库,提供图像/视频处理、摄像头读取等功能importcv2#引入face_recognition库,提供基于深度学习的人脸检测与识别接口importface_recognition#初始化摄像头cap=cv2.VideoCapture(0)#参数0表示使用默认摄像头#采集人脸图像print("请将脸部对准摄像头,按回车键采集图像...")input()#等待用户按下回车键ret,frame=cap.read()#读取一帧图像ifnotret:print("无法读取图像!")exit()#释放摄像头资源cap.release()#显示采集到的图像cv2.imshow('CollectedFace',frame)cv2.waitKey(0)cv2.destroyAllWindows()#保存采集到的图像cv2.imwrite('collected_face.jpg',frame)print("图像采集完成,已保存为'collected_face.jpg'")#2.人脸定位#加载采集到的图像image=face_recognition.load_image_file('collected_face.jpg')#使用face_recognition库进行人脸定位face_locations=face_recognition.face_locations(image)#检查是否检测到人脸iflen(face_locations)==0:print("未检测到人脸!")exit()#在图像上绘制人脸框fortop,right,bottom,leftinface_locations:cv2.rectangle(image,(left,top),(right,bottom),(0,255,0),2)#显示人脸定位结果cv2.imshow('FaceLocalization',image)cv2.waitKey(0)cv2.destroyAllWindows()#3.人脸特征提取#加载采集到的图像image=face_recognition.load_image_file('collected_face.jpg')#提取人脸特征face_encodings=face_recognition.face_encodings(image,face_locations)#检查是否提取到特征iflen(face_encodings)==0:print("未提取到人脸特征!")exit()#获取第一个检测到的人脸特征face_encoding=face_encodings[0]#打印特征向量(128维)print("人脸特征向量:",face_encoding)#4.人脸特征比对#加载已知人脸图像(用于比对)known_image=face_recognition.load_image_file('known_face.jpg')#替换为已知人脸图像路径known_face_encoding=face_recognition.face_encodings(known_image)[0]#比对人脸特征results=face_pare_faces([known_face_encoding],face_encoding)#判断是否匹配ifresults[0]:print("人脸匹配成功!")else:print("人脸匹配失败!")任务二:语音识别1.实验环境安装(1)安装Python。(2)安装库。pipinstallspeech_recognitionpyaudio2.配置开发环境(1)若使用PyCharm:创建新项目时选择已安装的Python解释器。(2)若使用命令行:无需额外配置,确保Python已添加到系统环境变量。3.使用speech_recognition库实现语音识别。参考代码:#导入speech_recognition库,这是一个用于语音识别的Python库importspeech_recognitionassr#初始化识别器recognizer=sr.Recognizer()#从麦克风获取语音输入withsr.Microphone()assource:print("请开始说话...")recognizer.adjust_for_ambient_noise(source)#降噪audio=recognizer.listen(source,timeout=5)#录制5秒try:#使用GoogleWebSpeechAPI识别(需联网)#使用speech_recognition库中的recognize_google函数来识别音频文件中的语音内容#'audio'是之前加载的音频数据,'language="zh-CN"'指定识别的语言为中文text=recognizer.recognize_google(audio,language="zh-CN")print("识别结果:",text)exceptsr.UnknownValueError:print("无法识别语音")exceptsr.RequestError:print("API请求失败")4.使用Whisper模型实现语音识别参考代码:#导入whisper库,这是一个用于语音识别的轻量级库importwhisper#导入torch库,这是一个流行的开源机器学习库,广泛用于深度学习研究和应用importtorch#加载预训练模型(可选:tiny,base,small,medium,large)model=whisper.load_model("small")#识别音频文件result=model.transcribe("audio.wav",language="zh")print("识别结果:",result["text"])#实时识别(需配合pyaudio)"""importpyaudioimportwave#录制音频p=pyaudio.PyAudio()stream=p.open(format=pyaudio.paInt16,channels=1,rate=16000,input=True,frames_per_buffer=1024)frames=[stream.read(1024)for_inrange(0,int(16000/1024*5))]#录5秒stream.stop_stream()#保存为临时文件withwave.open("temp.wav","wb")aswf:wf.setnchannels(1)wf.setsampwidth(p.get_sample_size(pyaudio.paInt16))

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论