资源简介 (共22张PPT)项目5自动语音识别:让端侧机器人能比项目背景在互联网信息爆炸的时代,用户每时每刻都会检索各种各样的问题,问题也涉及各个领域,如生活、娱乐、科技等。为了满足用户的需求,出现了多种应用,如搜索引擎、文本分类、文献查重、自动问答等,而这些应用的关键技术之一就是文本相似度技术。本项目将使用目前主流的AI开放平台,实现在语音识别后进行文本相似度匹配并对客户问题进行智能回答的功能。教学目标(1)了解文本相似度的概念。(2)了解文本相似度的计算方法。(3)了解文本相似度的应用。(4)能够编写程序,调用文本相似度接口,实现智能客服智能回答。项目分析(1)从文本相似度的概念、计算方法、应用等角度,认识文本相似度。(2)学习文本相似度的评估指标。(3)在百度AI开放平台上,创建自动语音识别和短文本相似度的应用。(4)编写程序,定义相关函数,并进行调用。(5)运用文本相似度评估指标,测试编写的程序的效果。知识准备知识点1:文本相似度的基本概念1.相似度相似度用来衡量两个或多个对象之间的相似程度或相似性。在计算机科学中,相似度经常用于比较两个数据集、文本、图像或其他类型的数据。2.文本相似度文本相似度指两个或多个文本之间的相似程度。文本之间的公共区域越多、共性越大,相似程度越高;反之,区别越大,没有关联关系,相似程度低知识点2:文本相似度的计算方法1.文本相似度算法常分为三大类。(1)基于字符串的文本相似度计算方法。(2)基于语料库的文本相似度计算方法。(3)基于世界知识的文本相似度计算方法。2.3种计算方法的优缺点对比计 算 方 法 优 点 缺 点基于字符串的文本相似度计算方法 原理简单、易实现 未考虑词语含义与关系,不适用于长文本基于语料库的文本相似度计算方法 准确性高、可扩展性好、效率高 数据质量不易把控、语言和领域限制、计算复杂度高基于世界知识的文本相似度计算方法 能够获取丰富的知识、具有较高的准确性、可扩展性好 需要大量资源、知识库不全面、算法复杂度高知识点3:文本相似度的应用1.搜索引擎知识点3:文本相似度的应用2.机器翻译知识点3:文本相似度的应用3.智能客服项目实施:语音相似度应用——智能客服答案搜索匹配任务1 创建应用创建百度短文本相似度应用,获取应用的API Key和Secret Key任务2 编写语音识别程序步骤1:导入库函数from record import my_recordfrom aip import AipSpeech, AipNlpframerate = 16000NUM_SAMPLES = 2000channels = 1sampwidth = 2TIME = 5步骤2:创建客户端# 使用百度语音识别的API信息APP_ID0 = ' 'API_KEY0 = ' 'SECRET_KEY0 = ' '# 使用百度短文本相似度的API信息APP_ID = ' 'API_KEY = ' 'SECRET_KEY = ' ‘# 创建语音识别的客户端client0 = AipSpeech(APP_ID0, API_KEY0, SECRET_KEY0)# 创建短文本相似度的客户端client = AipNlp(APP_ID, API_KEY, SECRET_KEY)步骤3:定义音频读取函数#定义读取音频文件的函数def get_file_content(filePath):with open(filePath, 'rb') as fp: #打开音频文件return fp.read() #一次性读取音频文件的全部内容步骤4:定义语音识别函数#定义语音识别的函数def speech_recognition(audio_name):get = client0.asr(get_file_content(audio_name), 'wav', 16000, {'dev_pid': 1537, }) #用于语音识别res = get['result'][0]return res #一次性读取语音识别的结果步骤5:提问识别audio_name='data.wav'# 录制音频my_record(audio_name,3)# 语音识别res0 = speech_recognition(audio_name)print("提问:", res0)任务3 智能客服答案搜索步骤1:创建数据库data = {"什么时候发货?":"48小时内发货","发的什么快递?":"一般发顺丰","收到的货有问题怎么办?":"您可以联系人工客服申请退货或换购","我买错了,怎么取消订单 ":"好的,我这边已经帮您取消","店铺最近有没有什么优惠活动 ":"有的,现在店铺商品满200减50"}步骤2:智能答案搜索options = {}options["model"] = "CNN" #选择CNN作为输出模型v = list(data.keys()) #获取数据库中所有的keyscores = []for res1 in v:dialogue_rec=client.simnet(res0, res1, options) #计算文本相似度scores.append(dialogue_rec['score']) #提取所有的相似度的得分max_index = scores.index(max(scores)) #获取得分最高的问题对应的索引print("回答:",data[v[max_index]]) #输出最相似的问题的答案任务4 智能客服系统性能测试准确率是常见的评价指标,对于本项目,准确率的计算公式如下:问 题 智能客服系统的答案 正 确 答 案 是 否 一 致 轮 数 正确回答的次数 回答的总次数 准 确 率1 2 3 4 5 展开更多...... 收起↑ 资源预览