从radzc获得语音识别模块,通过查阅资料得知这是一种非特定的语音识别芯片。 50个关键词栏可以定制,非常cool,摆脱了使用skainet只能“嗨,乐鑫”的烦恼。
一.获得资料
要想得到这种模块的资料,我现在知道的最简单的方法就是逛淘宝。 在淘宝上找到对应的商品链接后,商品的详细资料中有其详细资料。 运气好的话,还可以获得示例代码的拨号链接。
总之,以下是我从淘宝上得到的资料。
绿深-LD3320模块SPI接口版资料: https://pan.Baidu.com/s/1 kyo iyo 8g h1 zjq5EP7Cui ca
抽屉代码: 1764
解冻一看,内容真不少,原理图、布局图、例行公事一应俱全。
二、代码编写熟悉stm32的开发,接下来要根据stm32f1的例程进行修改。
其中有通过io模拟spi通信控制ld3320的例行程序,修改应用也很简单,将其引脚、延迟、log全部改为自己的即可。
首先,修改管脚的宏定义,并根据自己的连接进行修改。
例程使用了带参数的宏位操作的形式。 直接将位操作更改为自己的api接口就可以了。
延迟的定义也换成自己的东西,因为是在操作系统上,所以ms级的延迟直接使用操作系统延迟就可以了。
虽然不讨论串行通信,但是大家都有自己的库,引入宏定义就可以了。
三、测试,然后擦腚、开机、午睡,把牛开大灯,测试!
可喜的是获得了ASR_ERROR。
刚通电时可能不稳定,请在case error中键入一行语句,进入error后重新启动初始化过程。
高兴地获得了ASR_ERROR的组合。
不要慌张,在这种时候,我们首先要确认主机和ld3320是否连接,直接体现的是寄存器能否正常读写。
根据官方调试文档,在这三个寄存器中写入数据,然后读取。
而且,不管写什么,读的都是0xff。 这是什么原因?
直接祭祀逻辑分析仪dslogic,将协议配置在spi上,配置通道后再分析数据。
通过逻辑检测器的显示界面,看到了用miso(masterinslaveout )写入寄存器的信息,但MOSI仍为高电平……
是的,线反过来了。
转动sdo和sdi,接通电源,一次成功。
四.定制关键词出于某种原因,想让Vike ward成为有活力的grand Master,但ld3320只支持标准普通话的识别。 我该怎么办?
ICRoute官方热情地为我们提供了《葵花宝典》《语音识别芯片LD3320高阶秘籍》。 其中有解决方案。
是的,这是我们在小学记住英语单词时使用的技巧,用拼音表示英语。
把唤醒字力的大人物配置在“lu ke si”上,就可以用英语唤醒。
五、优化成功实现了语音识别,但在使用模块时发现了一些问题。
如果将第一或唤醒字设定为“lu ke”,在唤醒时清晰地发出“s”的尾音,则会导致识别失败。
我该怎么办? 很简单。 《高阶秘籍》为我们提供了输入所有发音即可的解决方案。 如果几个可能的发音都对应同一个id,关键词输入充分的话,就能得到更好的识别体验。
第二该代码只是实现了识别功能,响应速度还有很大的提高空间。