首页 最新 热门 推荐

  • 首页
  • 最新
  • 热门
  • 推荐

叫你一声“孙悟空”,敢答应么?

  • 24-03-05 03:04
  • 4513
  • 6864
blog.csdn.net

640?wx_fmt=jpeg


整理 | 一一

出品 | AI科技大本营(ID:rgznai100)


随着自然语言理解等技术的发展,对话机器人如今盛行,而基于此的智能音箱产品的发展也异常火热。


很多开发者一般热衷于在一些对话机器人平台上开发相应的语音技能,但也有不少人希望自己尝试做一个对话机器人项目,不过他们往往苦于无从下手,或在开发过程中遇到困难中途就放弃了。


今天为大家介绍一款很有意思的对话机器人开源项目,它出现在了今天的 github trending 中,叫 wukong-robot(悟空机器人),或许会为你创建属于自己的对话机器人带来启发。


640?wx_fmt=png


wukong-robot 是一个简单、灵活的中文语音对话机器人/智能音箱项目,作者开源该项目的目的是让中国的 Maker 和 Haker 们也能快速打造个性化的智能音箱。


该项目创建者是有 5 年客户端开发经验的腾讯高级工程师潘伟洲,现为腾讯 ABCmouse 技术负责人。


目前,该项目在 GitHub 上总计收获超 1000 多个 Star,另据@潘伟洲HaHack 在其个人微博介绍,此前“dingdang-robot” 的调用次数已经超过了十二万,在超过一千台设备中运行。


wukong-robot 项目创建于 2017 年底,它的前身是“dingdang-robot”项目(与腾讯叮当助手及优必选悟空项目无任何关系),后来由于需要提供一个更快、更稳定、更容易搭建的机器人,同时兼容“dingdang-robot”的插件机制,今年 1 月,作者重写了项目版,并宣布不再维护“dingdang-robot”。


潘伟洲介绍,相比 dingdang-robot,这个版本抛弃了复杂的 PocketSphinx 离线唤醒机制,能够在更多平台上运行,无论是响应速度、稳定性和代码质量都有了质的提升。更重要的是还提供了可视化的后台管理端和开放 API,未来将提供 docer 镜像和基于的 flutter 客户端。


近日,wukong-robot 项目上线了官方文档,对该项目进行了详尽介绍。


640?wx_fmt=png


总体而言,wukong-robot 项目主要由以下主要特性:


  • 模块化。功能插件、语音识别、语音合成、对话机器人都做到了高度模块化,第三方插件单独维护,方便继承和开发自己的插件。

  • 中文支持。集成百度、科大讯飞、阿里、腾讯等多家中文语音识别和语音合成技术,且可以继续扩展。

  • 对话机器人支持。支持接入图灵机器人、Emotibot 等对话机器人。

  • 全局监听,离线唤醒。支持无接触地离线语音指令唤醒。

  • 灵活可配置。支持定制机器人名字,支持选择语音识别和合成的插件。

  • 智能家居。支持和 mqtt、HomeAssistant 等智能家居协议联动,支持语音控制智能家电。

  • 后台配套支持。提供配套后台,可实现远程操控、修改配置和日志查看等功能。

  • 开放 API。可利用后端开放的 API,实现更丰富的功能。

  • 安装简单,支持更多平台。相比 dingdang-robot ,舍弃了 PocketSphinx 的离线唤醒方案,安装变得更加简单,代码量更少,更易于维护并且能在 Mac 以及更多 Linux 系统中运行。


wukong-robot 的工作模式也非常易于了解:


640?wx_fmt=jpeg


wukong-robot 被唤醒后,用户的语音指令先经过 ASR 引擎进行 ASR 识别成文本,然后对识别到的文本进行 NLU 解析,再将解析结果进行技能匹配,交给适合处理该指令的技能插件去处理。插件处理完成后,得到的结果再交给 TTS 引擎合成成语音,播放给用户。


640?wx_fmt=png


虽然一次交互可能包含多次网络请求,不过带来的好处是:每一个环节都可以被修改和定制。


环境要求


需要注意的是,wukong-robot 只支持 Python 3.x,不支持 Python 2.x。wukong-robot 支持运行在以下的设备和系统中:


  • 64bit Mac OS X

  • 64bit Ubuntu(12.04 and 14.04)

  • 全系列的树莓派(Raspbian 系统)

  • Pine 64 with Debian Jessie 8.5(3.10.102)

  • Intel Edison with Ubilinux (Debian Wheezy 7.8)


如何安装?官方提供了选择 docker 安装或者手动安装两种方式。安装链接:https://wukong.hahack.com/#/install


升级


python3 wukong.py update


如果提示升级失败,可以尝试在 wukong-robot 的根目录手动执行以下命令,看看问题出在哪。


git pull

pip3 install -r requirements.txt


运行


建议在 tmux 或 supervisor 中执行。


python3 wukong.py


第一次启动时将提示你是否要到用户目录下创建一个配置文件,输入 y 即可。然后通过唤醒词 “孙悟空” 唤醒 wukong-robot 进行交互(该唤醒词可自定义)。要让 wukong-robot 暂时屏蔽离线监听,可以使用热词 “悟空别吵”;要让 wukong-robot 恢复离线监听,可以使用热词 “悟空醒醒”。


此外,wukong-robot 默认在运行期间还会启动一个后台管理端,提供了远程对话、查看修改配置、log 等能力。


  • 默认地址:http://localhost:5000

  • 默认账户名:wukong

  • 默认密码:wukong@2019


配置


参考配置文件的注释进行配置即可。注意不建议直接修改 default.yml 里的内容,否则会给后续通过 git pull 更新带来麻烦。你应该拷贝一份放到 $HOME/.wukong/config.yml 中,或者在运行的时候按照提示让 wukong-robot 为你完成这件事。


tips:


  • 建议在运行 wukong-robot 的机器上重新训练一下唤醒词,不同设备录制出来的唤醒词模型使用效果会大打折扣。

  • 不论使用哪个厂商的API,都建议注册并填上自己注册的应用信息,而不要用默认的配置。这是因为这些API都有使用频率和并发数限制,过多人同时使用会影响服务质量。


此外,wukong-robot 上还有相应的技能插件,由官方和用户共同提供,官方技能插件目前包括检查邮件、写诗等功能,而用户则提供了大部分的技能插件,包括查询天气、头条新闻、电台等技能。


值得一提的是,项目作者给用户提供了福利,给出了技能开发的实战教程,一步步教你如何上手并学会开发 wukong-robot 的技能插件。教程目前有 1 个基础篇和 5 个实战篇,包括开发清除缓存技能、天气查询技能以及沉浸式播放技能,可在官方文档中点击查看。


对了,wukong-robot 的默认唤醒词是“孙悟空”,你可能不太喜欢,这当然也可以进行修改。“猴哥猴哥”似乎更可爱接地气,你可以在 snowboy官网(https://snowboy.kitt.ai/) 进行修改成你喜欢的任意唤醒词,然后将生成的 pmdl 文件放到 ~/.wukong,修改配置文件中的 hotword 配置即可。


猴哥猴哥,安装一个玩玩?


GitHub 传送门:

https://github.com/wzpan/wukong-robot


(本文为 AI科技大本营整理文章,转载请微信联系 1092722531)

精彩推荐

640?wx_fmt=jpeg

640?wx_fmt=jpeg

推荐阅读:

  • 31页PPT概述:图神经网络表达能力有多强?

  • NLP输出文本评估:使用BLEU需要承担哪些风险?

  • 如何用Python抠图?试试scikit-image

  • 《流浪地球》逆袭《新喜剧之王》的真正原因

  • 那些简历造假拿 Offer 的程序员,后来都怎么样了?

  • 郑州没有互联网 | 畅言

  • K8S安全军规101:对CNCF最佳实践的扩充

  • 为什么说稳定币才是诺奖得主哈耶克想要的非国家货币?

  • 月入5万,程序员夫人们过上"贵妇"生活了吗?

                         640?wx_fmt=png

点击“阅读原文”,查看历史精彩文章。

更多内容请见: python3案例和总结-专栏介绍和目录

文章目录

      • 一. chardet介绍
      • 二. 使用chardet
        • 2.1 检测编码是ascii
        • 2.2 检测GBK编码
        • 2.3 对UTF-8编码进行检测
        • 2.4 检测日文
        • 2.5 读取文件时使用 chardet
        • 2.6 批量检测文件编码

一. chardet介绍

chardet 是一个用于检测字符串编码的 Python 第三方库。它可以帮助我们识别文本文件的编码格式,从而正确地读取和处理文本数据。以下是如何安装和使用 chardet 的示例。

chardet这个第三方库的使用非常容易,chardet支持检测中文、日文、韩文等多种语言。

字符串编码一直是令人非常头疼的问题,尤其是我们在处理一些不规范的第三方网页的时候。虽然Python提供了Unicode表示的str和bytes两种数据类型,并且可以通过encode()和decode()方法转换,但是,在不知道编码的情况下,对bytes做decode()不好做。

对于未知编码的bytes,要把它转换成str,需要先“猜测”编码。猜测的方式是先收集各种编码的特征字符,根据特征字符判断,就能有很大概率“猜对”。

官方文档:

数据知道的成长之路
微信公众号
成长进阶、技术分享、资源获取
注:本文转载自blog.csdn.net的AI科技大本营的文章"https://blog.csdn.net/dQCFKyQDXYm3F8rB0/article/details/87871051"。版权归原作者所有,此博客不拥有其著作权,亦不承担相应法律责任。如有侵权,请联系我们删除。
复制链接
复制链接
相关推荐
发表评论
登录后才能发表评论和回复 注册

/ 登录

评论记录:

未查询到任何数据!
回复评论:

分类栏目

后端 (14832) 前端 (14280) 移动开发 (3760) 编程语言 (3851) Java (3904) Python (3298) 人工智能 (10119) AIGC (2810) 大数据 (3499) 数据库 (3945) 数据结构与算法 (3757) 音视频 (2669) 云原生 (3145) 云平台 (2965) 前沿技术 (2993) 开源 (2160) 小程序 (2860) 运维 (2533) 服务器 (2698) 操作系统 (2325) 硬件开发 (2492) 嵌入式 (2955) 微软技术 (2769) 软件工程 (2056) 测试 (2865) 网络空间安全 (2948) 网络与通信 (2797) 用户体验设计 (2592) 学习和成长 (2593) 搜索 (2744) 开发工具 (7108) 游戏 (2829) HarmonyOS (2935) 区块链 (2782) 数学 (3112) 3C硬件 (2759) 资讯 (2909) Android (4709) iOS (1850) 代码人生 (3043) 阅读 (2841)

热门文章

101
推荐
关于我们 隐私政策 免责声明 联系我们
Copyright © 2020-2025 蚁人论坛 (iYenn.com) All Rights Reserved.
Scroll to Top