项目3:声纹识别:让虚拟机器人能识人 课件(共31张PPT)-《智能语音应用开发》同步教学(电子工业版)

资源下载
  1. 二一教育资源

项目3:声纹识别:让虚拟机器人能识人 课件(共31张PPT)-《智能语音应用开发》同步教学(电子工业版)

资源简介

(共31张PPT)
项目3
声纹识别:让虚拟机器人能识人
项目背景
声纹识别是一种新型的技术手段,与其他生物识别相比,其优势主要体现在以下几点:与指纹识别相比,声纹识别为非接触式识别,更加便捷且安全;与人脸识别相比,声纹识别能有效降低隐私被侵犯的风险;声纹识别只需要麦克风就可以进行声音的采集,能有效降低识别成本。基于声纹识别的多种优势,本项目将使用讯飞开放平台,通过调用声纹识别接口,实现智能门禁系统。
教学目标
(1)了解声纹识别的概念。
(2)了解声纹识别的类型。
(3)了解声纹识别的工作原理。
(4)理解声纹识别的评估指标。
(5)能够编写程序,调用声纹识别接口,实现声纹识别。
项目分析
(1)从声纹识别的定义、分类、工作原理和评估指标等方面,认识声纹识别。
(2)在讯飞开放平台上创建声纹识别应用,并获取APPID、APIKey、APISecret信息。
(3)配置智能门禁系统中用到的基本请求参数,包括APPId、APISecret、APIKey、声纹识别请求URL等。
(4)创建声纹特征库,用于存储声纹特征信息。
(5)录制声纹特征音频,并将声纹特征信息添加到声纹特征库中。
(6)查询声纹特征列表,查看是否成功将声纹信息添加到声纹特征库中。
(7)进行声纹特征比对,判断来访人员是否能通过门禁系统。
知识准备
知识点1:什么是声纹识别
声纹识别是生物特征识别的一种,每个人的声纹图谱都有其特定的特征,通过使用专用的电声转换设备将声波特征绘制成波谱图形,与已经注册的声纹模型对比,从而区分不同的个体,实现身份校验功能。
知识点2:声纹识别的类型
1.按应用场景分类
2.按音频内容分类
文本提示(Text-Prompted)
文本相关(Text-Dependent)
文本无关(Text-Independent)
知识点3:声纹识别的工作原理
声纹识别系统一般由预处理、特征提取、模型训练和对比分类识别几部分组成
知识点4:声纹识别的评估指标
1.性能指标
错误接受率(False Acceptance Rate,FAR)
错误拒绝率(False Rejection Rate,FRR)
知识点4:声纹识别的评估指标
2.效果指标
效果指标只体现在系统响应时间上,系统响应时间应满足以下要求:
声纹注册时间:响应时间≤3000毫秒
声纹验证时间:响应时间≤2000毫秒
当然,声纹识别的性能指标不只受基本性能指标和系统响应时间的影响,还受采样指标、有效语音长度、语音信息质量判断、抗噪声能力、抗时变能力等的影响。
项目实施:声纹识别应用——智能门禁系统
任务1 创建应用
步骤1注册讯飞账号
步骤2:登录讯飞开放平台
步骤3:完成个人实名认证
步骤3:完成个人实名认证
步骤3:完成个人实名认证
步骤4:创建声纹识别应用程序
任务2智能门禁系统
步骤1:导入库函数
import json
import base64
import requests
from utils import Gen_req_url
from utils import gen_req_body
from record import my_record
步骤2:定义用于发送请求的函数与参数
(1)首先设置声纹识别中使用的一些基本请求参数
APPId = "用户的APPID"
APISecret = "用户的APISecret"
APIKey = "用户的APIKey"
requset_url = 'https://api.xf-yun.com/v1/private/s782b4996'
path = "/v1/private/s782b4996"
host = "api.xf-yun.com"
method = "POST"
步骤2:定义用于发送请求的函数与参数
(2)定义创建声纹特征库、添加声纹特征、查询声纹特征列表、声纹特征对比这4个步骤通用的用于发送请求的函数req_url()
def req_url(api_name, APPId, APIKey, APISecret, file_path=None, featureId=None):
gen_req_url = Gen_req_url()
body = gen_req_body(apiname=api_name, APPId=APPId, file_path=file_path, featureId=featureId)
request_url = gen_req_url.assemble_ws_auth_url(requset_url='https://api.xf-yun.com/v1/private/s782b4996',
method="POST",
api_key=APIKey,
api_secret=APISecret)
步骤2:定义用于发送请求的函数与参数
(2)定义创建声纹特征库、添加声纹特征、查询声纹特征列表、声纹特征对比这4个步骤通用的用于发送请求的函数req_url()
headers = {'content-type': "application/json",
'host': 'api.xf-yun.com',
'appid': '$APPID'}
response = requests.post(request_url, data=json.dumps(body), headers=headers)
tempResult = json.loads(response.content.decode('utf-8'))
return tempResult
步骤3:创建声纹特征库
创建声纹特征库
createGroup = req_url(api_name='createGroup',
APPId = APPId,
APIKey = APIKey,
APISecret = APISecret)
createGroup
步骤4:添加声纹特征
while True:
name = input('请输入你的姓名,如果要退出请输入q:')
if name == 'q':
break
audio_name = name+'.mp3'
my_record(audio_name, 5)
createFeature = req_url(api_name='createFeature',
APPId = APPId,
APIKey = APIKey,
APISecret = APISecret,
file_path=audio_name,
featureId=name)
print(createFeature)
步骤5:查询声纹特征列表
tempResult = req_url(api_name='queryFeatureList',
APPId=APPId,
APIKey=APIKey,
APISecret=APISecret)
tempResult
解析声纹特征查询结果
text_value = tempResult['payload']['queryFeatureListRes']['text']
text = base64.b64decode(text_value)
text
步骤6:声纹特征对比
input_audio = 'new.mp3'
my_record(input_audio, 5)
tempResult = req_url(api_name='searchFea',
APPId=APPId,
APIKey=APIKey,
APISecret=APISecret,
file_path=input_audio)
tempResult
步骤6:声纹特征对比
解析声纹识别结果
text_value = tempResult['payload']['searchFeaRes']['text']
text = base64.b64decode(text_value)
Text
步骤6:声纹特征对比
将字符串转换为字典类型
result_dict = json.loads(text.decode('utf-8'))
# 获取score的值
score = result_dict['scoreList'][0]['score']
try:
# 判断score是否大于0.7
if score > 0.7:
print('验证成功,请通过')
else:
print('验证失败,禁止通行!')
except KeyError:
print('无法获取score值,请检查是否存在音频!')
任务3 智能门禁验证
步骤1:填写智能门禁验证结果表
验 证 次 数 添加声纹特征人名 声纹特征对比人名 智能门禁结果
1
2
3
4
5
步骤2:计算智能门禁系统性能指标
试 验 次 数 错误接受率 错误拒绝率
1
2
3
4
平均值

展开更多......

收起↑

资源预览