分享好友 最新资讯首页 最新资讯分类 切换频道
基于百度理解与交互技术实现机器问答
2024-12-09 15:34
基于百度理解与交互技术实现机器问答 交互技术

总目录地址: 

基于百度理解与交互技术实现机器问答

 

需要最新源码,或技术提问,请加QQ群:538327407

 

我的各种github 开源项目和代码:https://github.com/linbin524

 

一、前言

我们都知道现在聊天对话机器是一个很有意思的东西,比如说苹果siri,比如说微软的小冰。

聊天对话机器的应用场景也很广泛,比如说:银行的自助办卡机器人、展会讲解解说等等。

 

我们对机器人说句话,机器人从听取,到语义识别,认知转换,到最后调出我们所想要的东西,这个过程看似简单,其实内藏许多黑科技,让我们来一一解析一下。

 

1、我们对机器人说句话:我想看一下今天的天气?

技术实现:不论是语音、文字,机器首先要采集到我们的问题,语音还需要语音转换的一个过程,且内容转换结果必须准确,否则就有点像不同语言体系的人在对话,有种鸡同鸭讲的感觉,结果肯定也是一个大坑了。

 

2、语义识别

技术实现:通常这个阶段,已经将内容转换为一段文字,程序会对文字进行分词,结合关键字截取拼接语义(这里需要AI的训练)

3、认知转换

技术实现:上述的那就话中,今天是个关键词,天气是个关键词,  在训练库中需要提炼词槽,将可能语句尽可能提供给机器人

 

4、调用结果

当认知转换完成后,需要对关键词进行规则判断,比如说, 想看 + 今天+ 天气,组成时候,自动调用查询天气接口

 

上述的结果,更多需要我们对机器人进行训练,让它学习,要不然结果肯定不是那么友好的。

 

 

二、技术需求

 

通过文字输入问题,动态理解转化,识别内容,进行机器解答和语音提示。

PS:上述的需求基本可以理解为你叫机器人做一件事,机器人领悟,按照你的要求执行。

进阶:可以采用语音输入,转换为文字,之后的序列一样。(需要阵列麦克风)

三、技术选型

1、采用C# winform 作为程序主题

2、采用win7 TTS 作为语音朗读功能

3、采用百度理解交互技术 UNIT 作为识别基础

 本篇的重点在于如何对机器UNIT 进行配置与训练(机器识别会理解错误,需要进行纠错),最后的winform 只是调用结果显示,不作为重点关注。

四、实现

1、新建winform 窗体

 

 

2、添加TTS,引用System.Speech

 

 

3、进行 语音朗读测试

 

SpeechSynthesizer voice = new SpeechSynthesizer(); //创建语音实例 voice.Rate = 2; //设置语速,[-10,10] voice.Volume = 100; //设置音量,[0,100] voice.SpeakAsync(“您好!”); //播放指定的字符串,这是异步朗读

 

PS:有些win7 系统TTS 有问题,需要自己百度查找,下载TTS 进行安装。目前上述支持中文,输入英文,只会念字母,因为需要朗读类别做转换,详细请百度speech 操作。

 

 

 4、结合百度理解与交互技术

 

百度提供的sdk 目前只支持android 和IOS,但有提供http API,所以笔者采用C#实现了。

先去官网注册成为百度开发者。

 

(1) 创建应用

 

 (2) 创建场景,场景编号是后面需要用到的

 

 

(3)新建单元,官方提供对话单元和问答单元,我们选择创建对话单元

 

 

 

(4)、对对话单元进行配置,新建词藻

 

 

 

新建词藻

 词藻词典有自定义的,也有系统的,本文中选择系统通用的。也可以下载自定义模板,写入自己的自定义词典

 

 

这个对话单元中,有文本回复和执行函数,我们这里选文本回复

触发的规则:会话规则中,上述的词藻已填充,那么文本内容才会出现

 

保存完成,后再次新建对话单元,主要说明介绍我们的公司

 

 

 

 

 跳转到数据中心,进行新建对话样本

 

 

 

 

 添加

 

 依法将公司介绍关键词添加

 

来的训练与验证板块

输入打开菜单,一开始输入,可能得到错误答案,你要 @UNIT 纠正意图与词槽,手动将关键词和意图、取词、词藻匹配上

 

 

 完成后的结果:

 

(1)、

配置基本参数

 

 

部分解析实体model

错误信息定义

 

 

封装的接口方法

 

 

首先用单元测试结果:

 

 

确定接口没有问题,结合到我们的Demo程序中,界面代码如下:

 

 

结果展示

 

 

评价

理解和交互需要做大量的对话样本和语言交互纠错,才可以实现相对比较精准的回答。

最新文章
【增长】机构:预计2024年Mini LED背光产品出货增长至1379万台;天钰:AMOLED驱动芯片将于2024年Q2量产;大尺寸LCD/OLED面板供需情况改善
1.机构:预计2024年Mini LED背光产品出货增长至1379万台2.天钰:AMOLED驱动芯片将于2024年Q2量产3.京东方终止云南OLED项目10亿元
2025年百度广告投放最新实战指南
在数字化营销日益重要的今天,百度广告投放已成为众多企业推广品牌、吸引潜在客户的重要手段。然而,随着市场竞争的加剧,如何高
SEO优化站长如何提高搜索排名
在当今竞争激烈的数字市场中,提升网站的搜索排名是每位站长的主要目标。通过有效的SEO策略,不仅可以提高网站的可见性,还能吸
企业在线竞争力提升——专业SEO推广服务助力突破
网站优化SEO推广服务,专注于帮助企业提升在线竞争力。通过专业技术和策略,优化网站排名,吸引潜在客户,助力企业拓展市场,实
全面解析宏碁暗影骑士软件:提升游戏性能的利器
在现代游戏环境中,电脑性能往往是决定玩家游戏体验的关键因素之一。对于游戏爱好者来说,拥有一款能够有效提升游戏性能的软件是
SEO优化推广软件,点击精灵(SEO流量软件)是否真有用?
各位亲爱的小伙伴们,今天小编要和大家一起聊聊关于SEO优化推广软件中的一员——点击精灵(SEO流量软件)。大家都知道,在如今激烈
SEO排名神器套装全面解析,轻松驾驭网站优化
全面解析SEO排名工具套装,涵盖关键词分析、网站结构优化、内容质量评估等功能,助您轻松提升网站排名,快速吸引更多流量。无论
百度网址收录提交入口(百度收录网站链接入口)
对于国内广大中文博客站长来说,百度搜索仍是绕不开的话题,不被搜索引擎抓取,网友很难找到你的文章,网站的访问量定然高不了。
【数据结构】顺序表(Sequential List) && 单链表(Singly Linked List )
01 预备知识1.0 什么是线性表?线性表(List)是零个或者多个数据元素的有限序列.1.1 线性表的基本操作(描述)关于线性表的基本操作