《人工智能技术应用(第三版)》课件 5.2 闻声起舞_第1页
《人工智能技术应用(第三版)》课件 5.2 闻声起舞_第2页
《人工智能技术应用(第三版)》课件 5.2 闻声起舞_第3页
《人工智能技术应用(第三版)》课件 5.2 闻声起舞_第4页
《人工智能技术应用(第三版)》课件 5.2 闻声起舞_第5页
已阅读5页,还剩37页未读, 继续免费阅读

下载本文档

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

文档简介

第5章

让机器听你指挥——02闻声起舞1场景导入2知识小百科3AI实验室4分享评价1场景导入随着语音识别技术和自然语言理解技术的不断突破,电影当中人与计算机设备通过自然语言进行交互的方式已经成为现实。越来越多的电子设备开始支持通过自然语言/语音与人类进行交互。智能语音助手(如Microsoft的Copilot等)越来越多地被应用于日常沟通与任务执行中。例如,当你说“我饿了”,计算机能够明白你肚子饿了,并且提出帮你点外卖;当一个女孩子说“我想要小米”的时候,计算机能够结合当时的情境,明白女孩子说的小米,到底是食物还是“小米”手机。计算机语言与人类日常使用的语言存在很大的差异,计算机不能直接理解1场景导入人类语言的含义,更不能直接同人类语言沟通。如何让计算机听懂人话,同人交谈,甚至理解语言背后的文化、意图与情感,这就是自然语言处理要做的事情。2知识小百科活动目标:了解自然语言处理的相关概念了解自然语言基础处理服务了解常见自然语言处理应用场景通过云平台接口应用,实现语音控制机械臂的功能语音助手背后的技术由三大块组成:语音识别、语义理解、语音合成。其中,语义理解逐渐成了关键点,因为它要解决计算机“听得懂”的问题。语义理解包括对自然语言知识和常识的学习,属于自然语言处理的范畴。在语音助手背后的三大技术中,语义理解逐渐成了关键点,因为它要解决计算机“听的懂”的问题。语义理解包括对自然语言知识和常识的学习,属于自然语言处理的范畴。自然语言处理(NaturalLanguageProcessing,NLP)是一门融语言学、计算机科学、数学于一体的科学,主要用于研究能实现人与计算机之间用自然语言进行有效通信的各种理论和方法。自然语言处理是计算机科学领域与人工智能领域中的一个重要方向。自然语言处理NLP由自然语言理解(NLU)和自然语言生成(NLG)构成:1.自然语言理解主要目标是帮助机器更好理解人的语言,包括基础的词法、句法等语义理解,以及需求、篇章、情感层面的高层理解。例如,我们在用百度搜索一个生僻字时,不知道拼音的情况下会搜索:“4个(一)自然语言处理的相关概念又念什么?”,我们发现,搜索结果一定是告诉你这个“叕”字念什么,而不是“4个又念什么”的这几个词表面的匹配结果,如图所示。这其中已经用到自然语言理解的能力了,它帮助搜索引擎理解用户需要搜的是“由4个又组成的字”,而不是“4个又是什么”这几个孤零零的词。由此可见,自然语言处理技术让机器真正能够理解你所说的话的深层语义。(一)自然语言处理的相关概念(一)自然语言处理的相关概念百度搜索界面2.自然语言生成主要目标是帮助机器生成人能够理解的语言,比如文本生成、自动文摘等。自然语言生成可被分为文本规划、语句规划和实现三个阶段,前面我们学习的语音合成就隶属于自然语言生成。(一)自然语言处理的相关概念自然语言处理技术基于大数据、知识图谱、机器学习、语言学等技术和资源,并可以形成机器翻译、深度问答、对话系统的具体应用系统,进而服务于各类实际业务和产品。下面介绍几个较为典型的应用场景。如图所示为人工智能领域常见的自然语言处理应用。(二)自然语言处理应用场景自然语言常见应用近年来,大型语言模型(LLM)如GPT(生成式预训练转换器)和BERT(双向编码器表示器)等在自然语言处理领域引起了巨大轰动,重新定义了语言理解和生成的范式。这些模型代表了自然语言处理技术的重大进步,带来了一场颠覆性的变革。从最初的循环神经网络(RNN)到如今的Transformer架构,技术演进的故事展示了如何克服了长距离依赖和梯度消失等问题,使模型在处理长文本序列时表现更出色。通过Transformer架构的引入,大型语言模型利用了自注意力机制来处理输入序列,有效捕捉了长距离依赖关系,并实现了高效并行计算,加速了训练过程。GPT(三)大语言模型和BERT等标志性LLM的诞生则进一步推动了技术的发展。GPT以自回归预训练为目标,在生成式任务上表现出色;而BERT采用双向编码器预训练目标,在各种下游任务上取得了显著提升,彰显了大型语言模型的强大能力。大语言模型在自然语言处理领域如文本生成、机器翻译、问答系统及意图理解等展现出强大能力,在实际场景的应用中也显现出巨大潜力。1.文本生成大语言模型在文本生成任务中表现出色,能够生成高质量、连贯的文本。通过预训练和微调,模型可以根据输入的开头或主题生成相应的文本。这种技术可以(三)大语言模型用于自动作文、小说写作、广告文案生成等场景。同时,大语言模型在生成文本时还具有一定的创造性,能够输出新颖、有趣的文本内容。2.机器翻译大语言模型在机器翻译领域的应用使得翻译系统取得了显著的进步。通过深度学习和序列-序列模型,大语言模型可以更准确地捕捉输入文本和目标语言之间的语义关系,从而实现更准确、流畅的翻译效果。这种技术已经在谷歌、百度等翻译系统中得到广泛应用,极大地提升了跨语言沟通的效率和质量。(三)大语言模型3.问答系统大语言模型在问答系统中的应用为智能问答提供了强大的支持。通过深度学习技术和大规模训练数据,大语言模型可以理解问题的意图、分析关键信息,并给出准确的回答。这种技术可以应用在智能助手、在线客服、教育辅助等场景,帮助用户解决问题和获取信息。例如,通过问答系统基于大语言模型的技术,用户可以与智能机器人进行自然对话,得到即时、准确的回答。(三)大语言模型4.意图理解大语言模型在意图理解方面具有许多优点。首先,由于大语言模型在预训练过程中接触到了大规模的文本数据,它具有强大的上下文理解能力,能够更准确地捕捉句子中的语义信息,从而更好地理解用户的意图。其次,大语言模型能够处理长句子和多轮对话,保持对话的连贯性,理解用户的发言,并据此推断用户的意图。此外,大型语言模型具有较强的泛化能力,可以适应不同领域、风格的文本,并在各种语境下识别和理解用户的意图。另外,大语言模型在意图理解中能够适应各种不同的用户表达形式,提高对用户意图(三)大语言模型的准确度和覆盖范围。DeepSeek(深度求索)作为我国自主创新的新一代人工智能大模型,凭借其独特的技术路径和开源生态策略,在人工智能领域实现了多项突破性进展,重构了全球AI技术竞争格局。DeepSeek的核心技术本质是构建了一个高性能大语言模型,其底层基于混合专家架构(MoE)的Transformer变体,通过海量文本与代码数据的预训练,结合监督微调(SFT)与人类反馈强化学习(RLHF),实现了对自然语言的深度语义解析、复杂逻辑推理及代码生成能力。在多模态场景中,DeepSeek通过联合视觉模型等外部模块,进一步扩(三)大语言模型展了跨模态任务处理能力。当前,DeepSeek已经走进现实生活,其应用场景包括智能助手、代码生成、教育、提供API和定制化企业解决方案等。未来,随着技术的不断发展和创新,期待有更多优化与创新技术的出现,如模型压缩与优化、多模态模型整合、小样本学习等。这些技术将进一步推动大语言模型向更广泛的应用领域拓展,为人们的生活和工作带来更多便利与创新。当然,大语言模型在实际应用中也面临着诸多挑战,如隐私保护、法律合规、跨语言适应等,需要持续努力解决。(三)大语言模型3AI实验室(一)任务发布目标完成语音控制机器人智能系统设计要求(1)阅读智谱AI平台文档,自定义函数调用,完成智能机器人移动控制的调用功能实现。(2)结合智谱AI大语言模型返回结果,调用机器人API接口函数,完成语音对智能机器人的控制。1.软件环境任务的软件环境需要配置好python3.x的语言环境,并安装有相应的编程集成开发环境,本书使用VScode集成开发环境。实现任务还需安装如下所示的第三方Python库:(二)任务环境第三方Python库安

装

命

令zmq库在线安装:pipinstallpyzmq(二)任务环境ZeroMQ(缩写为zmq)是一个高性能的消息传递库,用于构建分布式和并发的应用程序。它提供了简单而强大的消息传递模型,可用于在不同的进程或计算机之间进行快速、异步的数据交换。ZeroMQ是一个强大且灵活的消息传递库,适用于构建各种类型的分布式系统和通信应用。由于其简单易用的特点,所以我们选择ZeroMQ作为局域网与机器人构建消息传递系统的首选工具。2.硬件环境硬件环境如下表所示:(二)任务环境硬件图示名称数量智能小机器人1台语音模块1套语音模块1套电源适配器1套1.绘制程序流程图根据任务要求绘制闻鸡起舞程序流程图,如下图所示。(三)任务实施(三)任务实施闻声起舞参考程序流程图2、实现语音控制机器人功能1)具体实现流程例如,当用户对着麦克风询问“机器人向前移动3厘米”,计算机会录制一段音频信息,然后通过OpenAI的Whisper语言识别模型将这段音频信息转换为文字信息“I:机器人向前移动3厘米。”,接着我们将这段文字信息通过智谱AI开放平台SDK输入给大语言模型,然后解析大语言模型返回的指令,我们就能获取控制机器人移动所需要的应答指令(机器人需要移动的方向(三)任务实施direction和距离distance),最后把对应的指令发送给机器人,机器人接收到相应的指令后就会执行动作,这样我们就能完成一次通过语音控制机器人的功能。(三)任务实施

2)代码分析(三)任务实施#加载必要的库文件importjsonfromzhipuaiimportZhipuAIfromkeysimportzhipuai_keyimportwhisperfromRecordimportlistenimportzmq(三)任务实施#大语言模型加载及其调用函数client=ZhipuAI(api_key=zhipuai_key)defchatZhipuai_tool(query): response=pletions.create( model="glm-4",#填写需要调用的模型名称 messages=[ {"role":"user","content":f"{query}"} ], tools=tools, tool_choice="auto"(三)任务实施 ) returnresponse.choices[0].message#语音识别函数model=whisper.load_model("small")defwhisper_ASR(): audio=whisper.load_audio("Audio_file/Record.wav") result=model.transcribe(audio) returnresult["text"]#初始化机器人移动调用函数tools=[ {(三)任务实施 "type":"function", "function":{ "name":"robot_move", "description":"控制机器人移动的函数", "parameters":{ "type":"object", "properties":{ "direction":{ "type":"string", "description":(三)任务实施"机器人移动的方向,eg:forward,backward,left,right"}, "distance":{ "type":"integer", "description":"机器人移动的距离" } }, "required":["direction","distance"] }(三)任务实施 } }]defrobot_move(direction:str,distance:int)->None: """ 控制机器人移动的函数 :paramdirection:机器人移动的方向 :paramdistance:机器人移动的距离 :return:None """ #组装消息(三)任务实施python_str={"direction":direction,"distance":distance}print(python_str) json_msg=json.dumps(python_str) #发送消息 context=zmq.Context() socket=context.socket(zmq.REQ) socket.connect("tcp://32:5555") socket.send_json(json_msg) time.sleep(2) socket.recv() socket.close()(三)任务实施#主程序代码if__name__=='__main__': listen() text=whisper_ASR() print(text) response_tool=chatZhipuai_tool(text) print(response_tool) completion_message=response_tool #解析函数名和参数 function_name=completion_message.tool_calls[0].(三)任务实施 arguments_str=completion_message.tool_calls[0].function.arguments arguments=json.loads(arguments_str) #执行函数 iffunction_name=="robot_move": robot_move(arguments["direction"],arguments["distance"])print("Done!")(三)任务实施#机器人端接收代码importsyssys.path.append('/home/pi/TonyPi/')importzmqimportjsonimporttimeimporthiwonder.ActionGroupControlasAGCcontext=zmq.Context()socket=context.socket(zmq.REP)socket.bind("tcp://32:5555")defmove(direc,dist):(三)任务实施 foriinrange(dist): ifdirec=="forward": AGC.runActionGroup('go_forward') elifdirec=="backward": AGC.runActionGroup('back') elifdirec=="left": AGC.runActionGroup('left_move_fast') elifdirec=="right": AGC.runActionGroup('right_move_fast') time.sleep(0.5) AGC.runActionGroup('stand_slow')

温馨提示

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

评论

0/150

提交评论