LD3320 Board

来自Waveshare Wiki
Waveshare-admin讨论 | 贡献2017年9月19日 (二) 15:34的版本 (替换文字 - 「www.waveshare.net」替换为「www.waveshare.net」)
跳转至: 导航搜索
LD3320-Board
LD3320-Board-B
{{{name2}}}
{{{name3}}}
功能简介
特性 LD3320 语音识别
' 无特性,不解释
' 无特性,不解释
' 无特性,不解释
' 无特性,不解释
接口 SPI

快速入门

LD3320识别芯片介绍

LD3320 是一颗基于非特定人语音识别 (SI-ASR:Speaker-Independent Automatic Speech Recognition)技术的语音识别/声控芯片。提供了真正的单芯片语音识别解决方案。

LD3320 芯片上集成了高精度的 A/D 和 D/A 接口,不再需要外接辅助的Flash 和 RAM,即可以实现语音识别/声控/人机对话功能。并且,识别的关键词语列表是可以动态编辑的。

基于 LD3320,可以在任何的电子产品中,甚至包括简单的 51 作为主控芯片的系统中,轻松实现语音识别/声控/人机对话功能。为所有的电子产品增加 VUI(Voice User Interface)语音用户操作界面。

主要特色功能:

非特定人语音识别技术:不需要用户进行录音训练

可动态编辑的识别关键词语列表:只需要把识别的关键词语以字符串的形式传送进芯片,即可以在下次识别中立即生效。比如,用户在 51 等 MCU 的编程中,简单地通过设置芯片的寄存器,把诸如“你好”这样的识别关键词的内容动态地传入芯片中,芯片就可以识别这样设定的关键词语了。

真正单芯片解决方案:不需要任何外接的辅助 Flash 和 RAM,真正降低系统成本。

内置高精度 A/D和D/A通道:不需要外接 AD 芯片,只需要把麦克风接在芯片的AD 引脚上;可以播放声音文件,并提供 550mW 的内置放大器。

高准确度和实用的语音识别效果

支持用户自由编辑 50 条关键词语条:在同一时刻,最多在 50 条关键词语中进行识别,终端用户可以根据场景需要,随时编辑和更新这 50 条关键词语的内容。

主要技术参数

  1. 内置单声道mono 16-bit A/D 模数转换
  2. 内置双声道stereo 16-bit D/A 数模转换
  3. 内置 20mW 双声道耳机放大器输出
  4. 内置 550mW 单声道扬声器放大器输出
  5. 支持并行接口或者 SPI 接口
  6. 内置锁相电路 PLL,输入主控时钟频率为 2MHz - 34MHz
  7. 工作电压:(VDD: for internal core) 3.3V
  8. 48pin 的 QFN 7*7 标准封装
  9. 省电模式耗电:1uA
  1. 内置单声道mono 16-bit A/D 模数转换
  2. 内置双声道stereo 16-bit D/A 数模转换
  3. 内置 20mW 双声道耳机放大器输出
  4. 内置 550mW 单声道扬声器放大器输出
  5. 支持并行接口或者 SPI 接口
  6. 内置锁相电路 PLL,输入主控时钟频率为 2MHz - 34MHz
  7. 工作电压:(VDD: for internal core) 3.3V
  8. 48pin 的 QFN 7*7 标准封装
  9. 省电模式耗电:1uA

示例程序演示

STM32 示例程序

在拿到模块后,可将模块直接接入Open103Z开发板(主控芯片是STM32F103ZET6,当然也很容易可以将测试程序移植到其它开发板)的SPI接口,同时接入串口模块用于与PC通信。下载“LD3320 测试程序 Open103Z”进行测试。 打开串口,将显示以下内容:

LD3320-Board-1.png

对着LD3320 Board模块上的板载麦克风说出相关的指令,在模块正确识别后,将执行相应的命令。 例如:对着模块说流水灯。模块成功识别后,将在串口打印相应的数据,且开发板上的LED以流水灯的方式运行。

LD3320-Board-2.png

用户只需修改几处代码,便可以增加新的指令。 1.LD2230_config.h 文件中,增加相应的识别码。(必须)

LD3320-Board-3.png

2.LD2230.c文件中,在LD3320_main函数中增加相印分支。(必须)

LD3320-Board-4.png

3.LD2230.c文件中,在LD_AsrAddFixed函数中修改相应代码。(必须) DATA_A 为指令的个数,DATA_B为指令的最大长度,sRecog二维数组为相应指令的拼音集合(注意空格)。 pCode为指令识别码的集合。

LD3320-Board-5.png

4.LD2230.c文件中,在LD3320_main函数中修改相应代码。(建议)

LD3320-Board-6.png

5.LD2230.c文件中,在Board_text函数中修改相应代码。(建议)

LD3320-Board-7.png

由于在测试程序中没有加入相应的“垃圾关键词语”用以吸收错误识别。所以测试程序比较容易发生误识别。更多的LD3320使用方法,可以参考语音识别芯片LD3320高阶秘籍

Arduino 示例程序

注意事项

由于该模块使用3.3V电压,所以将其和Arduino连接时,请务必注意供电电压为3.3V。

硬件准备

  • Arduino UNO R3
  • LD3320 Board

硬件连接 1. 将IO Expansion Shield接入UNO。 2. 连接 LD3320 语音模块。

3.3V -- VCC
GND -- GND
MISO -- D12
MOSI -- D11
SCK -- D13
NSS -- D4
RST -- D9
IRQ -- D2
WR -- GND

Arduino的D8脚为电平输出引脚,需要连接一个1K电阻和一个发光二极管,以便观察现象。当识别到“开灯”时,D8输出高电平,反之输出低电平。同时串口会打印输出的信息。

LD3320-Board-8.JPG

LD3320-Board-9.png

如果下载后编译出错,将ld3320目录复制到Arduino sketchbook location地址的libraries文件夹内(在File->Preferenees里查看)


LD3320-------MCU

MISO<------> SPI的MISO

MOSI<------> SPI的MOSI

SCK <------> SPI的SCK

NSS <------> SPI的片选

RST <------> 接普通IO口

WR <------> 接普通IO口

IRQ <------> 接外部中断口

NC <------> 悬空

如果和测试程序使用相同型号的MCU(STM32F103ZET6),则可直接连接为:

MISO<------> PA6

MOSI<------> PA7

SCK <------> PA5

NSS <------> PA4

RST <------> PB15

WR <------> PB13

IRQ <------> PB12

NC <------> 悬空


  • WR共用SPI的的使能信号,可以直接接地







  • 在一个场景中,一次最多只能识别50条语句。在进入下一个场景后,可以装入新的50条语句。
  • 如果需求同时识别超过50条语句,那LD3320是无法实现的。