B站视频

StarCraft(星际争霸)一作为1998年的游戏存活到现在,这是全世界99%的游戏公司都不敢想象的事。它不仅陪伴我度过了青春年少,也成为我直到现在还仅存的几个娱乐活动之一。从练习分农民,建筑学,部位微操;再到高难的甩飞龙,甩影飞,学习Boxer的瞬间用幽灵兵锁住半队航母;最后到运营,资源配置,大局观的磨砺。让我发现,游戏真的不仅仅是游戏,它到后来对我学习,工作的帮助都非常大。以至于后来我会建议别人,不论你喜欢游戏也好,唱歌跳舞运动什么都好,把它练到一种亚职业的状态,你会发现,对你未来的职业会产生巨大的促进意义。用星际争霸图片融合重温经典和童年。

PaddleNLP-wechaty

本例子展示一个基于 PaddleNLP + Wechaty 的微信闲聊机器人。通过Wechaty获取微信接收的消息,然后使用PaddleNLP的plato-mini模型根据对话的上下文生成新的对话文本,最终以微信消息的形式发送,实现闲聊的交互,可发语音、可发文字聊天,发一张图片,机器人会把图片转换成星际争霸风格的图片。

风险提示

本项目采用的api为第三方——Wechaty提供,非微信官方api,用户需承担来自微信方的使用风险。
在运行项目的过程中,建议尽量选用新注册的小号进行测试,不要用自己的常用微信号。

Wechaty

关于Wechaty和python-wechaty,请查阅以下官方repo:

  • Wechaty
  • python-wechaty
  • python-wechaty-getting-started

环境准备

  • 系统环境:Windows
  • python3.7+
  • 安装必要的包,在requirements.txt
    pip install -r requirements.txt

安装和使用

  1. Set token for your bot

    在当前系统的环境变量中,配置以下与WECHATY_PUPPET相关的两个变量。
    关于其作用详情和TOKEN的获取方式,请查看Wechaty Puppet Services。

  2. 部署服务器

    首先去阿里云申请服务器部署申请好的token,参照链接部署

  3. 申请百度语音api接口.参照链接百度api

  4. Run the bot

    python main_chat_bot.py
    

    运行后,可以通过微信移动端扫码登陆,登陆成功后则可正常使用。

运行效果

main_chat_bot.py中,通过以下几行代码即可实例化一个plato-mini的模型

# Initialize a PaddleHub plato-mini model
from interaction_chat import PlatoNlp
model = PlatoNlp(max_turn=10)  # Dialogue round configuration # 对话轮次配置

on_message方法是接收到消息时的回调函数,可以通过自定义的条件(譬如消息类型、消息来源、消息文字是否包含关键字、是否群聊消息等等)来判断是否回复信息,消息的更多属性和条件可以参考Class Message。

本示例中的on_message方法的代码如下,脚本中回复的条件是:

  1. 消息类型是文字
async def on_message(msg: Message):"""Message Handler for the Bot"""if not msg.is_self() and isinstance(msg.text(), str) and len(msg.text()) > 0 and \msg._payload.type == MessageType.MESSAGE_TYPE_TEXT:text_new = re.sub(r'<.*>', '', msg.text())if len(text_new) < 400:if '@' in text_new:if '@小裕' in text_new:bot_response = model.predict(data=text_new.replace('@小裕', ''))await msg.say(bot_response)else:bot_response = model.predict(data=text_new)await msg.say(bot_response)else:await msg.say('说的太多了,长话短说啊')elif not msg.is_self() and msg._payload.type == MessageType.MESSAGE_TYPE_IMAGE:file_box_2 = await msg.to_file_box()  # 将Message转换为FileBoxawait file_box_2.to_file(file_path=img_in_path, overwrite=True)  # 将图片保存为本地文件img_new_path = img_transform(img_in_path)  # 调用图片风格转换的函数file_box_3 = FileBox.from_file(img_new_path)  # 从新的路径获取图片await msg.say(file_box_3)elif not msg.is_self() and msg._payload.type == MessageType.MESSAGE_TYPE_AUDIO:file_box_audio = await msg.to_file_box()await file_box_audio.to_file(file_path=mp3_path, overwrite=True)audio_path_new = resample_rate(mp3_path, wav_path, new_sample_rate=16000)  # 转换能识别格式text = aip_asr(audio_path_new)  # 语音识别成文字bot_response = model.predict(data=text)  # 生产文字回复bot_response_path = aip_synthesis(bot_response, wav_path_res)  # 语音生成file_box_audio_new = FileBox.from_file(bot_response_path)await msg.say(file_box_audio_new)

脚本成功运行后,所登陆的账号即可作为一个Chatbot,

基于PaddleNLP+wechaty第一个实时微信语音聊天机器人诞生了相关推荐

  1. java实现仿微信app聊天功能_Android仿微信语音聊天功能

    本文实例讲述了Android仿微信语音聊天功能代码.分享给大家供大家参考.具体如下: 项目效果如下: 具体代码如下: AudioManager.java package com.xuliugen.we ...

  2. 微信语音聊天内容如何录制 如何录制通话内容

    微信的注册用户已破十亿,这一庞大的数字代表着其在人们生活和工作中的地位之重,使用微信一般都是用来交流聊天,但是现在随着电子商务的日益发展,微商也在日益壮大,最经常使用的功能还是聊天通话,那对于重要的通 ...

  3. android高仿微信聊天页面,Android 高仿微信语音聊天页面高斯模糊(毛玻璃效果)

    目前的应用市场上,使用毛玻璃效果的APP随处可见,比如用过微信语音聊天的人可以发现,语音聊天页面就使用了高斯模糊效果. 先看下效果图: 仔细观察上图,我们可以发现,背景图以用户头像为模板,对其进行了高 ...

  4. Android 实现微信语音聊天

    1.效果图 2.代码摘自 imooc 之hyman 视频 代码详情,请移至imooc.com 之 Android-仿微信语音聊天 此处只提供下载 3.源码说明 采用 Android Studio 1. ...

  5. android 仿微信语音聊天

    android 仿微信语音聊天 跟着imooc老师学习 代码地址: https://github.com/tingsky9985/Weixin_Recorder

  6. 微信语音聊天框样式+功能

    仿微信语音聊天播放效果(左右朝向的动态小喇叭) 效果图: 暂停/播放用动态的class控制,语音聊天框的长度通过动态的style控制(依据当前语音的秒数) <!-- 音频文件 -->< ...

  7. 基于 QT5 百度语音API 图灵机器人API 的智能语音聊天机器人

    基于 QT5 百度语音API 图灵机器人API 的智能语音聊天机器人 程序简介 代码一共分为以下几个模块 伪代码形式为 部分代码 源代码下载地址 程序简介 程序界面包含录音和发送两个按钮 点录音将开始 ...

  8. Android仿微信语音聊天界面设计

    这篇文章主要为大家详细介绍了Android仿微信语音聊天界面设计代码,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 有段时间没有看视频了,昨天晚上抽了点空时间,又看了下鸿洋大神的视频教程,又抽时间 ...

  9. 一款基于微客服的仿微信的聊天软件

    一款基于微客服的仿微信的聊天软件 服务分类: 其它开发,推送 使用服务: 微客服 , 小米推送 功能分类: 社交 支持平台: Android 运行环境: Android 开发语言: Java 开发工具 ...

最新文章

  1. 如何在Python中对字符串进行子字符串化
  2. 008_多配置文件的引入
  3. java stdout库_Java重写StdOut并将日语写入文件
  4. linux数据库实例开机启动,Oracle数据库之Linux下实现Oracle数据库单实例开机自启动设置...
  5. 循环取矩阵的某行_一文搞懂RNN(循环神经网络)基础篇
  6. 如何在 Mac 上自动启用隐藏式字幕?
  7. java 中高级面试题_Java中高级面试题
  8. 王者荣耀是用什么代码变成MOBA游戏的,该怎么学?有前途吗?
  9. 什么是反向跟单?反向跟单怎么运作?
  10. 为什么blender安装后无法打开_CAD软件打开图纸后钢筋符号无法读取的解决办法...
  11. mysql-跨库联合查询
  12. python阿拉伯数字转中文_阿拉伯数字转换成中文的python代码
  13. 在网页标题前添加一个小图标
  14. 为什么人人都爱油炸食物?
  15. 信息系统项目管理师必背核心考点(六十九)访问控制授权方案
  16. android 日历动画的实现
  17. 高稳定性、低延时、支持多路的实时流媒体播放器之EasyPlayer.js在直播时隐藏倍速播放按钮操作方法
  18. php开发微信手册,PHP技术开发微信公众平台
  19. 公务员备考(四十) 图推提升
  20. 一、基于wifi控制的智能家居系统之项目简介和设计方案(硬件基于arduino+esp8266,软件Android+Web端+scoket服务器,实现语音控制)

热门文章

  1. Matlab 关联文件
  2. 给mp3播放器增加音乐波形显示功能
  3. 手持终端属于什么行业
  4. flex布局垂直居中
  5. hub无法登录 unity_Unity助力可口可乐圣诞节品牌营销
  6. 同为(TOWE)携手某防化研究所共筑防雷安全体系
  7. RBA验厂辅导,RBA VAP认证最终的评分是要通过给予的权重进行计算的
  8. html元素设置四边框的顺序,互联网常识:html怎么设置边框
  9. 【数学】张宇线代九讲笔记
  10. 无效合同效力的认定方式,需要去法院申请确认吗?