esp8266-07低成本在线语音对话(占个坑,持续更新)
本帖最后由 cepoly 于 2018-9-13 20:10 编辑现在小朋友的玩具相当是高大上了,以前在手机上一款“会说话的猫”,都能让小朋友不要妈妈了{:titter:},现在又来了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位(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 };
尤加利叶 发表于 2019-1-7 11:42
我有在做语音识别方案,识别距离5m以上,可以加我微信13129537525
加了你微信 没有通过呀 本帖最后由 尤加利叶 于 2019-11-11 17:33 编辑
lihui567 发表于 2018-9-1 09:18
用这个8266传输语音的话,对话咋样?
我有在做语音识别方案,识别距离5m以上 收藏一下,储备{:lol:} 我也正在做 准备接入科大讯飞的AIUI不知道这种方案的可行性 占个坑 楼主什么时候更新啊? 高度关注中!希望老司机带路 我也在做这样的东西,请问你是怎么解析,从百度接收到的数据呢? 1009877836 发表于 2018-9-6 18:49
加油
{:handshake:} YDCMAN 发表于 2018-9-8 18:07
关注,MARK
{:handshake:} 宇宙星辰 发表于 2018-9-11 09:15
mark
{:handshake:} AMoftss 发表于 2018-9-11 16:28
mark
{:handshake:} wcheng13 发表于 2018-9-13 15:18
关注ing
谢谢关注 ZZJ2017 发表于 2018-9-14 16:59
不错,关注一下
谢谢关注 diy1997 发表于 2018-9-16 19:30
云端识别接口?
我以为这类接口只为自家产品服务呢。
云端语音识别接口有好几家的 云端识别接口?
我以为这类接口只为自家产品服务呢。 不错,关注一下 LianBinbing 发表于 2018-9-6 17:55
SEP8266用的是那个固件?还是自己开发的?
需要自主开发的 关注ing mark