python智能问答机器人编程代码 python 问答机器人

   日期:2024-12-08    作者:8l1rr 移动:http://ljhr2012.riyuangf.com/mobile/quote/6808.html
python智能问答机器人编程代码 python 问答机器人 机器人

 

图灵机器人 是以语义技术为核心驱动力的人工智能公司,致力于“让机器理解世界”,产品服务包括机器人开放平台、机器人OS和场景方案。

首先得注册一个账号,或者使用第3方登录,都可以。

登录之后,点击创建机器人

机器人名称,可以是自己定义的名字

选择网站->教育学习->其他 输入简介

 

 

创建成功之后,点击终端设置,拉到最后。

可以看到api接入,下面有一个apikey,待会会用到

右侧有一个窗口,可以和机器人聊天

 

 

可以设置它的个人信息

 

测试聊天

星座下面的功能都要花钱的

 

技能扩展,可以全开

 

 

编码方式

UTF-8(调用图灵API的各个环节的编码方式均为UTF-8)

请求方式

HTTP POST

请求参数

请求参数格式为 json请求示例:

View Code

 

举例:

新建文件 tuling.py,询问天气

View Code

执行输出:

 

那么输出的文本,可以调用百度api,转换为音频文件,并自动播放!

修改 baidu_ai.py,封装函数text2audio

View Code

 

修改tuling.py,调用函数text2audio

View Code

执行tuling.py,它会自动打开音频播放器,说: 北京:周二 09月11日,多云 南风微风,最低气温19度,最高气温26度

 

关于图灵机器人的参数说明,这里有一份别人整理好的

View Code

 

接下来,还是使用前面的 whatyouname.m4a。

当问到 你的名字叫什么时?说出:我叫小青龙

当问到 其他问题时,由 图灵机器人回答

 

修改 baidu_ai.py

View Code

 

修改 baidu_nlp.py

View Code

 

修改tuling.py

View Code

 

创建main.py

View Code

执行main.py,执行之后,会打开音频,说: 我叫小青龙

 

修改 baidu_ai.py,注释掉问题:你的名字叫什么

View Code

 

再次执行main.py,执行之后,会打开音频,说:叫我图灵机器人就可以了!

这样很麻烦,每次问问题,都要录制一段音频才可以!

接下来介绍使用web录音,实现自动化交互问答

 

首先,先向大家介绍一下什么是 werkzeug,Werkzeug是一个WSGI工具包,他可以作为一个Web框架的底层库。这里稍微说一下, werkzeug 不是一个web服务器,也不是一个web框架,而是一个工具包,官方的介绍说是一个 WSGI 工具包,它可以作为一个 Web 框架的底层库,因为它封装好了很多 Web 框架的东西,例如 Request,Response 等等。

例如我最常用的 Flask 框架就是一 Werkzeug 为基础开发的,它只能处理HTTP请求

WebSocket 是一种网络通信协议。RFC6455 定义了它的通信标准。

WebSocket 是 HTML5 开始提供的一种在单个 TCP 连接上进行全双工通讯的协议。

HTTP 协议是一种无状态的、无连接的、单向的应用层协议。HTTP 协议无法实现服务器主动向客户端发起消息!

WebSockets 是长连接(连接长期存在),Web浏览器和服务器都必须实现 WebSockets 协议来建立和维护连接

这里使用flask作为后端程序,使用websocket来接收前端发送的音频。因为不知道用户啥时候发起录音!

 

新建一个文件夹web_ai

创建文件ai.py,使用websocket监听!

View Code

 

创建目录templates,在此目录下,新建文件index.html,创建 WebSocket 对象

View Code

 

启动flask,访问首页:

注意:此时页面是空白的,不要惊讶!

查看Pycharm控制台输出:

那么网页如何发送音频给后端呢?使用Recorder.js

 

Recorder.js是HTML5录音插件,它可以实现在线录音。

它不支持ie,不支持Safari 其他ok,但是部分版本有点小要求Chrome47以上以及QQ浏览器需要HTTPS的支持。注意:公网访问时,网页必须是HTTPS方式,否则无法录音!

github下载地址为:

https://github.com/mattdiamond/Recorderjs

 

关于html5 Audio常用属性和函数事件,请参考链接:

 

下载之后,解压文件。进入dict目录,将recorder.js复制到桌面上!

打开flask项目web_ai,进入目录static,将recorder.js移动到此目录

项目结构如下:

 

修改index.html,导入recorder.js

View Code

 

重启flask,访问网页,效果如下:

点击允许麦克风

点击开始废话,说一段话,再点击停止!

查看Pycharm控制台输出:

它返回一个bytearray数据,这些都是流数据,它可以保存为音频文件

 

修改ai.py,判断类型为bytearray,写入文件

View Code

重启flask,重新录制一段声音。就会发现项目目录,多了一个文件123.wav

打开这文件,播放一下,就是刚刚录制的声音!

 

将上一篇写的baidu_ai.py和tuling.py复制过来。

修改 baidu_ai.py,修改text2audio函数,返回文件名

View Code

 

修改 tuling.py

View Code

 

修改ai.py,导入模块baidu_ai

View Code

 

修改index.html,定义ws.onmessage,打印文件名

View Code

重启flask,访问网页,重新录制一段声音

查看Pycharm控制台输出:

它正在将文字转换为音频文件,并返回音频的文件名

 

上面执行完成之后,网页的console,就会返回文件名

这个文件名,就是text2audio函数返回的。

那么页面如何自动播放这个audio.mp3文件呢?

只要修改网页id为player的src属性就可以了,路径必须是可以访问的!

 

修改index.html

View Code

 

重启flask,刷新网页。重新录制一段声音,说:你叫什么名字?

效果如下:

网页说:在下江湖人称,图灵机器人

 

声音很萌,附上图片

 

这只是针对于网页的,那么手机端如何实现呢?


特别提示:本信息由相关用户自行提供,真实性未证实,仅供参考。请谨慎采用,风险自负。


举报收藏 0评论 0
0相关评论
相关最新动态
推荐最新动态
点击排行
{
网站首页  |  关于我们  |  联系方式  |  使用协议  |  隐私政策  |  版权隐私  |  网站地图  |  排名推广  |  广告服务  |  积分换礼  |  网站留言  |  RSS订阅  |  违规举报  |  鄂ICP备2020018471号