打印
[开源硬件]

esp8266-07低成本在线语音对话(占个坑,持续更新)

[复制链接]
17034|43
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
cepoly|  楼主 | 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

};





相关帖子

41
tanhailong| | 2019-2-25 09:46 | 只看该作者
尤加利叶 发表于 2019-1-7 11:42
我有在做语音识别方案,识别距离5m以上,可以加我微信13129537525

加了你微信 没有通过呀

使用特权

评论回复
40
尤加利叶| | 2019-1-7 11:42 | 只看该作者
本帖最后由 尤加利叶 于 2019-11-11 17:33 编辑
lihui567 发表于 2018-9-1 09:18
用这个8266传输语音的话,对话咋样?

我有在做语音识别方案,识别距离5m以上

使用特权

评论回复
评论
lihui567 2019-1-7 12:38 回复TA
可以通过远程对话? 
39
zhangpf0| | 2018-12-28 12:38 | 只看该作者
收藏一下,储备

使用特权

评论回复
38
13772210580| | 2018-12-27 13:42 | 只看该作者
我也正在做 准备接入科大讯飞的AIUI  不知道这种方案的可行性  

使用特权

评论回复
37
dgdeke| | 2018-10-16 14:39 | 只看该作者
占个坑

使用特权

评论回复
36
zjf1986| | 2018-10-8 11:37 | 只看该作者
楼主什么时候更新啊?

使用特权

评论回复
35
zjf1986| | 2018-9-29 13:46 | 只看该作者
高度关注中!希望老司机带路

使用特权

评论回复
34
stacso| | 2018-9-23 13:27 | 只看该作者
我也在做这样的东西,请问你是怎么解析,从百度接收到的数据呢?

使用特权

评论回复
33
cepoly|  楼主 | 2018-9-17 09:22 | 只看该作者

使用特权

评论回复
32
cepoly|  楼主 | 2018-9-17 09:22 | 只看该作者

使用特权

评论回复
31
cepoly|  楼主 | 2018-9-17 09:22 | 只看该作者

使用特权

评论回复
30
cepoly|  楼主 | 2018-9-17 09:22 | 只看该作者

使用特权

评论回复
29
cepoly|  楼主 | 2018-9-17 09:21 | 只看该作者

谢谢关注

使用特权

评论回复
28
cepoly|  楼主 | 2018-9-17 09:21 | 只看该作者
ZZJ2017 发表于 2018-9-14 16:59
不错,关注一下

谢谢关注

使用特权

评论回复
27
cepoly|  楼主 | 2018-9-17 09:21 | 只看该作者
diy1997 发表于 2018-9-16 19:30
云端识别接口?

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

云端语音识别接口有好几家的

使用特权

评论回复
26
diy1997| | 2018-9-16 19:30 | 只看该作者
云端识别接口?

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

使用特权

评论回复
25
ZZJ2017| | 2018-9-14 16:59 | 只看该作者
不错,关注一下

使用特权

评论回复
24
cepoly|  楼主 | 2018-9-14 00:12 | 只看该作者
LianBinbing 发表于 2018-9-6 17:55
SEP8266用的是那个固件?还是自己开发的?

需要自主开发的

使用特权

评论回复
23
wcheng13| | 2018-9-13 15:18 | 只看该作者
关注ing

使用特权

评论回复
22
AMoftss| | 2018-9-11 16:28 | 只看该作者
mark

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

21

主题

271

帖子

8

粉丝