LD3320语音模块—RPI使用教程

RPI使用教程

提供BCM2835、WiringPi、文件IO、RPI(Python)库例程

硬件连接

连接树莓派的时候,选择用2*6PIN排线连接,请参考下方的引脚对应表格

树莓派连接引脚对应关系
LD3320Raspberry Pi
BCM2835编码Board物理引脚序号
3.3V3.3V3.3V
GNDGNDGND
MISO9MISO
MOSI10MOSI
SCK11SCLK
NSS12GPIO.26
RST25GPIO.6
WR27GPIO.2
IRQ22GPIO.3

开启SPI接口

  • 打开树莓派终端,输入以下指令进入配置界面
  1. sudo raspi-config
  2. 选择Interfacing Options -> SPI -> Yes 开启SPI接口



然后重启树莓派:

  1. sudo reboot

请确保SPI没有被其他的设备占用,你可以在/boot/config.txt中间检查

安装库

  • 安装BCM2835, 打开树莓派终端,并运行以下指令
  1. wget http://www.airspayce.com/mikem/bcm2835/bcm2835-1.60.tar.gz
  2. tar zxvf bcm2835-1.60.tar.gz
  3. cd bcm2835-1.60/
  4. sudo ./configure && sudo make && sudo make check && sudo make install
  5. # 更多的可以参考官网:http://www.airspayce.com/mikem/bcm2835/
  • 安装wiringPi
  1. sudo apt-get install wiringpi
  2. #对于树莓派2019年5月之后的系统(早于之前的可不用执行),可能需要进行升级:
  3. wget https://project-downloads.drogon.net/wiringpi-latest.deb
  4. sudo dpkg -i wiringpi-latest.deb
  5. gpio -v
  6. # 运行gpio -v会出现2.52版本,如果没有出现说明安装出错
  • 安装Python函数库
  1. #python2
  2. sudo apt-get update
  3. sudo apt-get install python-pip
  4. sudo apt-get install python-pil
  5. sudo apt-get install python-numpy
  6. sudo pip install RPi.GPIO
  7. sudo pip install spidev
  8. #python3
  9. sudo apt-get update
  10. sudo apt-get install python3-pip
  11. sudo apt-get install python3-pil
  12. sudo apt-get install python3-numpy
  13. sudo pip3 install RPi.GPIO
  14. sudo pip3 install spidev

下载测试程序

打开树莓派终端,执行:

  1. sudo apt-get install p7zip-full
  2. sudo wget http://www.waveshare.net/w/upload/c/cd/LD3320_RPi_code.7z
  3. 7z x LD3320_RPi_code.7z -O./LD3320_RPi_code
  4. cd LD3320_RPi_code/

运行测试程序

以下命令请在LD3320_RPi_code目录下执行,否则索引不到目录;

C语言

  • 重新编译,编译过程可能需要几秒
  1. cd c
  2. sudo make clean
  3. sudo make -j 8

编译完成后生成了main文件,输入以下指令:

  1. sudo ./main

本例程内置了四个关键词:闪烁,流水灯,按键,播放
模块上电工作会打印如下信息:

模块识别到正确的关键词串口会打印如下信息:

模块识别失败会打印如下信息:

解锁更多姿势请下拉查看开发攻略或查阅用户手册以及数据手册

Python

  • 进入python程序目录,并运行指令ls -l
  1. cd python/
  2. ls -l

可以查看到所有的Python源文件:


  • 运行main.py,程序支持python2/3
  1. # python2
  2. sudo python main.py
  3. # python3
  4. sudo python3 main.py

本例程内置了四个关键词:闪烁,流水灯,按键,播放
模块上电工作会打印如下信息:

模块识别到正确的关键词串口会打印如下信息:

模块识别失败会打印如下信息:

解锁更多姿势请下拉查看开发攻略或查阅用户手册以及数据手册

开发攻略

C语言

如果需要添加识别关键词,只需要进行如下几个步骤:

  • LD3320_Driver.h文件中添加标识码


  • LD3320_Demo.c文件中的LD3320_test函数增加相应标识码的语句提示分支。


  • LD3320_Demo.c文件中的Board_text函数添加相应的动作处理分支。


  • LD3320_Demo.c文件中添加新的处理函数,去执行你想要做的事,例如流水灯:


  • 在LD3320_Driver.c文件的LD_AsrAddKey函数中的两个数组添加关键词和标识码,sRecog是关键词使用的汉语拼音,pCode是第1步中添加的标识码。DATE_A是关键词数量,最多可以为50,DATE_B为关键词的长度,可以根据需求更改。


  • 至此,语音识别功能已经开发完成,接下来是播放功能。注意:本模块的识别和播放功能不能同时进行。
  • 播放功能可以由语音识别触发,首先是添加关键词,不太清楚可以再看一遍上面的内容,本例程中使用了关键词“播放”进入了播放处理函数中。


  • Raspberry Pi例程提供了直接打开mp3文件的方法,把想要播放的音频文件放在程序目录下,在LD3320_Demo.c文件的Board_text函数中添加好处理函数,并把路径参数传递给函数。


  • 在播放处理函数中依次进行打开文件,计算文件长度,播放模式初始化,调节播放音量,开始播放。用户只需要修改LD_Adjust_Volume函数调节音量即可(音量范围为15-0)。
  • 修改完毕后保存退出,重新编译运行即可开始语音识别/播报之旅。
  • 本例程所有全局变量/宏定义/函数都有说明,请打开LD3320_Driver.c和各文件查看。
  • 本例程提供三种库(BCM2835/WiringPi/文件IO)的实现方法,需要切换库只需要在Makefile中修改USELIB变量即可。

Python

Python使用方法和C语言一样,但修改时需要注意缩进和语法。

  • 在LD3320.py中添加标识码。


  • 在main.py中的主函数里增加相应标识码的语句提示分支。


  • 在main.py中的Board_text函数添加相应的动作处理分支,把print()替换成你想要执行的函数。


  • 在main.py文件中添加新的处理函数(放在主函数前),去执行你想要做的事,例如播放音乐:


  • 在LD3320.py文件的LD_AsrAddKey函数中的两个数组添加关键词和标识码,sRecog是关键词使用的汉语拼音,pCode是第1步中添加的标识码。DATE_A是关键词数量,最多可以为50,可以根据需求更改。


  • 至此,语音识别功能已经开发完成,接下来是播放功能。注意:本模块的识别和播放功能不能同时进行。
  • 播放功能可以由语音识别触发,首先是添加关键词,不太清楚可以再看一遍上面的内容,本例程中使用了关键词“播放”进入了播放处理函数中。


  • Raspberry Pi例程提供了直接打开mp3文件的方法,把想要播放的音频文件放在程序目录下,在main.py文件的Board_text函数中添加好处理函数,并把路径参数传递给函数。


  • 在播放处理函数中依次进行打开文件,计算文件长度,播放模式初始化,调节播放音量,开始播放。用户只需要修改LD_Adjust_Volume函数调节音量即可(音量范围为15-0)。
  • 修改完毕后保存退出,运行即可开始语音识别/播报之旅。
  • 本例程所有全局变量/函数都有说明,请打开LD3320.py和各文件查看。