狗狗的智能,从语言沟通开始(十三)

   屏幕和语音识别模块弄出来以后,其实基于ESP32的胖胖狗也就到头了。性能摆在那里,动力加上算力。和市面上那种小小的滚轮机器人没有太多区别。总感觉又太可惜了,除了能听几句指令,做几个动作,还没那小的电力持久。需要重新思考了设计思路,狗狗一定要具备智能才有研究下去的意义。

    因为ESP32它本身无法承载AI运算力,那我就想着,把它的胖脑子换个地方跑行不行?家里普遍都有一台电脑,利用电脑的计算力,和ESP32擅长的WIFI,结合起来基本上就完美了。如果方案可行,以后可以配置个mini主机,一个家庭中只要一个远控大脑,就可以给这些小机器精力提供智慧算力。这个想法,灯哥也提出来过,大家不谋而合。 想到了就去做吧,倒腾了两周也算有点小进展了,赶紧写下来。

 言归正传,要想和狗狗能互通,首先就要有沟通渠道。网页遥控、语音命令都是单向的,受制于设备本身,比如语音都是特定的指令,错一个字,或者音不准都会有反应。看看现在家庭里常见的智能音响,起码人家还能陪你聊个天,扯个淡什么的。这狗子都没任何反应。那么打通交流的第一步就是语音交互。

   找了好多平台的,都是要上网,延迟先不说,还要付费。不适合家庭内部使用。于是乎找到了百度飞桨的开源引擎,提供了强大的语音识别(把语音翻译成文字)和TTS合成(把文字转换成语音)模块。而且是离线使用,用起来没有后顾之忧,就是它了!

官方有详细的安装方法,因为只要语音部分,这里提取了一下安装步骤,其他就可以跳过不用搞:

首先一定要安装的是python3.9版本,至于3.9.xxx不重要,从3.9.9到3.9.21都可以。硬性规定。

然后安装引擎:

pip install paddlespeech

 

只要装这个 ,期间可能要升级一下pip。然后在用git拉取Paddlespeech的脚本,没有git软件的或者不会弄的,从网站源码直接下载压缩包解压出来都行:

git clone https://github.com/PaddlePaddle/PaddleSpeech.git

然后进入目录,执行pip安装脚本
cd PaddleSpeech
pip install .

记得要前面的paddlespeech安装成功以后,再来安装脚本。

接下来就是启动服务了。先复制两个文件出来:

 

这两个文件,一个是asr语音识别服务,一个是tts流式语音合成服务。为什么选这俩,我后面再说。先编辑第一个文件:

只留下第一个,其他的服务暂时不需要。记得端口上面是8090,第二个文件不用修改,默认就好。

然后开始启动第一个语音识别服务程序:

paddlespeech_server start --config_file application.yaml

  第一次运行,会从官网下载离线模型,要点时间,耐心等待。这就是非流式语音识别服务程序,选择非流式的原因是能更好的把一句话完整的分析出来,便于指令和消息状态的理解和处理。而流式则容易导致混乱,而且经过测试发现非流式经常最后的语义识别不出来。果断放弃。

再来启动第二个TTS语音合成,第一次也会要下载离线模型,等待一会:

​addlespeech_server start --config_file tts_online_application.yaml

端口是8092,别弄错了。

两个服务器就启动完成了。来测试一下语音识别,因为对声音格式还是有要求的,比如16bit,采样16000的单通道音频才能识别,从官网下载一个语音文件,windows没有wget指令,直接复制后面的链接从浏览器下载就好了。

wget -c https://paddlespeech.bj.bcebos.com/PaddleAudio/zh.wav

用命令测试一下:

paddlespeech_client asr --server_ip 127.0.0.1 --port 8090 --input zh.wav

应该就会返回中文识别结果了。

再来试试TTS语音合成:

paddlespeech_client tts_online --server_ip 127.0.0.1 --port 8092 --protocol http --input "您好,我是可爱的胖胖狗" --output output.wav

 合成完毕,播放一下声音看看正不正常就可以了。

至此,语音识别和合成服务器都已经有了。但是胖胖狗要怎么用这个服务呢?别担心,我已经调试好了两个模块:

tts_module_m.py,asr_module_m.py

在我的胖胖狗源码里面引入这两个模块,就可以和服务器通讯,自动识别静音,噪声截断,自动线程异步播放TTS,基于I2S全傻瓜调用。当然还要硬件支持,我使用的是INMP441全向麦克风和MAX98357音频放大模块。这个部分我下一篇文章在来讲详。这里主要讲语音合成和识别服务器的搭建过程。

通过这两个模块,现在就可以和狗狗说话,后面再接入AI模块或者网上的API接口,就能听懂你的话,并且狗狗想给你说的话,也可以通过TTS讲给你听了,至此狗狗的人机交互就算打通了。里面还有很多细节AI模块,我还在研究中,比如识别语言中的语义来做行动,而不是单纯的靠说"前进"两个字,能识别“别动”就是停下来的指令。这些初步已经实现了一部分。路还很远,继续努力。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值