基于天问block编译环境下ASRPRO语音芯片程序编写教程(二)语音识别,GPIO输入输出,PWM输出篇

本篇教程将基于天问block内的官方范例代码讲解如何编写ASRPRO语音芯片程序以实现语音识别,GPIO输入输出和PWM输出功能。

1.智能语音对话

基于天问block编译环境下ASRPRO语音芯片程序编写教程(二)语音识别,GPIO输入输出,PWM输出篇_第1张图片

 该程序中添加识别词功能添加命令词选项(黑色部分)为语音识别功能的核心,通过设定命令词和回复语音实现基础语音对话,通过对于语音识别ID的运用实现根据语音信息控制单片机实现不同功能。

语音识别程序正常情况下会在一定时间内未接受语音识别信息后进入休眠状态,此时会播报预设的退出语音,可使用预设的唤醒词进行唤醒,在左边程序块选择区域语音识别选项中可选择设置唤醒退出时间,在标准模式选项可选择唤醒词唤醒程序块将唤醒词唤醒选项改为永远唤醒模式,此状态下语音识别程序将不会自动休眠。

同时可以使用语音识别选项中的程序块在后续程序中在一定时间内唤醒语音识别程序或使语音识别程序强行休眠,还能强行播报预设的命令词回复语音改变语音音量标准模式选项中的程序块在程序中直接播报预设语音播报数字或号码

基于天问block编译环境下ASRPRO语音芯片程序编写教程(二)语音识别,GPIO输入输出,PWM输出篇_第2张图片

 

注意:每次修改和新建语音识别信息之后需使用界面上方的生成模型功能生成语音识别模型之后才能进行程序烧录。

2.语音控制GPIO输出

基于天问block编译环境下ASRPRO语音芯片程序编写教程(二)语音识别,GPIO输入输出,PWM输出篇_第3张图片

 上方为使用语音识别开关板载LED灯的代码

基于天问block编译环境下ASRPRO语音芯片程序编写教程(二)语音识别,GPIO输入输出,PWM输出篇_第4张图片

上方为使用语音识别控制不同引脚输出高,低电平脉冲信号的程序。

需要特别注意的是在官方代码中引脚的复用功能未显示不同引脚的功能是那些,而在我们编写程序时选择引脚后可根据后面括号内的循序选择复用功能为第几功能,其中引脚的GPIO输入输出默认为第一功能,因此括号内的排序从第二功能开始,如下图中UART1_TX为第四功能故选择FORTH_FUNCTION选项使PA_2引脚复用为串口1输出引脚。

 

PA0、PA1 默认为晶振引脚,输入 模式,PC1、PC2、PC3、PC4 默认为 ADC 引脚,输入模式,这些引脚若要在GPIO输入输出中使用需先设置为数字引脚,就需要设置为数字引脚模式

 

 同时也可以在GPIO选项中选择程序块将所选引脚设置为上,下拉信号触发模式,也可以将引脚设置为开漏或开漏无效模式,从而实现各种更复杂的功能。

基于天问block编译环境下ASRPRO语音芯片程序编写教程(二)语音识别,GPIO输入输出,PWM输出篇_第5张图片

 3.语音控制PWM输出

基于天问block编译环境下ASRPRO语音芯片程序编写教程(二)语音识别,GPIO输入输出,PWM输出篇_第6张图片

 PWM程序语句中的占空比最大占空比之间的比值决定PWM输出后所驱动的外设的运行能力,

最大占空比不变的情况下占空比越大,PWM输出连接的外设功率越大。

4.GPIO输入检测

基于天问block编译环境下ASRPRO语音芯片程序编写教程(二)语音识别,GPIO输入输出,PWM输出篇_第7张图片

将设置为输入模式的引脚所接收到的电平信号通过读取引脚程序块放入等式与预设的数值进行比较,1为高电平,0为低电平,若等式成立则执行后续程序,从而达到检测引脚连接的电平信号的效果。

由于ASRPRO语音识别芯片支持程序多线程运行导致中断不常用,因而不再在教程里进行讲述,在后续的教程中我将介绍多线程模块,串口通信和ADC数值读入等功能的实现方法。

你可能感兴趣的:(单片机,嵌入式硬件,语音识别,智能硬件)