[开源硬件] esp8266-07低成本在线语音对话(占个坑,持续更新)

[复制链接]
3864|39
 楼主 | 2018-8-30 17:20 | 显示全部楼层 |阅读模式
本帖最后由 cepoly 于 2018-9-13 20:10 编辑

现在小朋友的玩具相当是高大上了,以前在手机上一款“会说话的猫”,都能让小朋友不要妈妈了,现在又来了AI玩具机器人,小朋友也是不亦乐乎,天天抱着睡觉了,价格也是相当的诱人,但对于DIY的老司机来说,还是贵啊。有没有DIY房地产的工程师,把房价降下来!

硬件:
一片ESP8266-07
一片8978语音芯片,可录音及播放
电源电路

软件:
实现智能语音对话功能

先上电路原理图


WM8978音频编译码器

WM8978是一个低功耗、高质量的立体声多媒体数字信号编译码器。它主要应用于便携式应用。它结合了立体声差分麦克风的前置放大与扬声器、耳机和差分、立体声线输出的驱动,减少了应用时必需的外部组件,比如不需要单独的麦克风或者耳机的放大器。

WM8978可以被应用为一个主机或者一个从机。基于共同的参考时钟频率,比如 12MHz和13MHz,内部的PLL可以为编译码器提供所有需要的音频时钟。与控制器连接使用,ESP8266作为主机,WM8978作为从机。

WM8978
通信接口

WM8978有两个通信接口,一个是数字音频通信接口,另外一个是控制接口。音频接口是采用I2S接口,支持左对齐、右对齐和I2S标准模式,以及DSP模式A和模拟B。控制接口用于控制器发送控制命令配置WM8978运行状态,它提供2线或3线控制接口,对于STM32控制器,我们选择2线接口方式,它实际就是I2C总线方式,其芯片地址固定为0011010。通过控制接口可以访问WM8978内部寄存器,实现芯片工作环境配置,总共有58个寄存器,标示为R0至R57,每个寄存器意义参考《WM8978_v4.5》了解。

WM8978寄存器是16bit长度,高7位([15:9]bit)用于标示寄存器地址,低9为有实际意义。所以在控制器向芯片发送控制命令时,必须传输长度为16bit的指令,芯片会根据接收命令高7位值寻址。

WAVE文件

WAVE文件是非常简单的一种RIFF文件,包括编码方式、声道数目、采样频率、每个采样需要的bit数等等信息。绝大部分WAVE文件是PCM编码。PCM编码声音数据可以说是在"数字音频技术"介绍的源数据,主要参数是采样频率和量化位数。

录音与识别播放

对话后语音通过I2S接口将音频数据发送到WM8978芯片,这样在WM8978芯片的扬声器接口即可输出声音,整个系统构成一个简单的音频播放器。反过来,我们可以实现录音功能,控制启动WM8978芯片的麦克风输入功能,音频数据从WM8978芯片的I2S接口传输到ESP8266,经过编码后,利用云端识别接口,把语音数据推送至云端对话识别。

WM8978寄存器配置

static uint16_t wm8978_RegInit[] = {

0x000, 0x000, 0x000, 0x000, 0x050, 0x000, 0x140, 0x000,

0x000, 0x000, 0x000, 0x0FF, 0x0FF, 0x000, 0x100, 0x0FF,

0x0FF, 0x000, 0x12C, 0x02C, 0x02C, 0x02C, 0x02C, 0x000,

0x032, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000,

0x038, 0x00B, 0x032, 0x000, 0x008, 0x00C, 0x093, 0x0E9,

0x000, 0x000, 0x000, 0x000, 0x003, 0x010, 0x010, 0x100,

0x100, 0x002, 0x001, 0x001, 0x039, 0x039, 0x039, 0x039,

0x001, 0x001

};





本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
| 2018-10-16 14:39 | 显示全部楼层
占个坑
| 2018-10-8 11:37 | 显示全部楼层
楼主什么时候更新啊?
| 2018-9-29 13:46 | 显示全部楼层
高度关注中!希望老司机带路
| 2018-9-23 13:27 | 显示全部楼层
我也在做这样的东西,请问你是怎么解析,从百度接收到的数据呢?
 楼主 | 2018-9-17 09:22 | 显示全部楼层
 楼主 | 2018-9-17 09:22 | 显示全部楼层
 楼主 | 2018-9-17 09:22 | 显示全部楼层
 楼主 | 2018-9-17 09:22 | 显示全部楼层
 楼主 | 2018-9-17 09:21 | 显示全部楼层

谢谢关注
 楼主 | 2018-9-17 09:21 | 显示全部楼层
ZZJ2017 发表于 2018-9-14 16:59
不错,关注一下

谢谢关注
 楼主 | 2018-9-17 09:21 | 显示全部楼层
diy1997 发表于 2018-9-16 19:30
云端识别接口?

我以为这类接口只为自家产品服务呢。

云端语音识别接口有好几家的
| 2018-9-16 19:30 | 显示全部楼层
云端识别接口?

我以为这类接口只为自家产品服务呢。
| 2018-9-14 16:59 | 显示全部楼层
不错,关注一下
 楼主 | 2018-9-14 00:12 | 显示全部楼层
LianBinbing 发表于 2018-9-6 17:55
SEP8266用的是那个固件?还是自己开发的?

需要自主开发的
| 2018-9-13 15:18 | 显示全部楼层
关注ing
| 2018-9-11 16:28 | 显示全部楼层
mark
| 2018-9-11 09:15 | 显示全部楼层
mark
| 2018-9-8 18:07 | 显示全部楼层
关注,MARK
| 2018-9-6 18:49 | 显示全部楼层
加油
| 2018-9-6 17:55 | 显示全部楼层
SEP8266用的是那个固件?还是自己开发的?
扫描二维码,随时随地手机跟帖
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复

您需要登录后才可以回帖
登录 | 注册
高级模式
我要创建版块 申请成为版主

论坛热帖

关闭

热门推荐上一条 /5 下一条

快速回复 返回顶部 返回列表