ESP-ADF asr例子只能识别唤醒词而不能识别其他命令

在尝试ESP-ADF离线语音识别时,仅能识别唤醒词“HI乐鑫”,无法识别如“打开空调”等预设命令。经过研究发现,唤醒词和命令词使用不同模型,wakenet用于唤醒,multinet处理其他命令。通过添加相应代码,成功实现了“上一曲”,“下一曲”,“音量加”,“音量减”的语音控制功能。
摘要由CSDN通过智能技术生成

一直在留意关于离线式语音识别的新方案,一次偶然的机会发现esp出了ASR的架构就忍不住想要测试它的效果到底如何。在某宝上买了块安信可的ESP32-A1S AudioKit,然后ESP-ADF开发环境搭建,最终成功烧录到了开发板。开始测试了。。。可是死活只能识别“HI乐鑫”的唤醒词,默认添加的如“打开空调”等命令词怎么都不能识别。
一开始一直认为是配置问题,make menuconfig各种操作,因为我想官方给的例子怎么会不行呢?Read me写的很清楚呀,唤醒后就可以识别“打开空调”,”打开电灯“的命令呀。然后各种搜索,最终决定静下心来看乐鑫官网的资料。终于功夫不负有心人,唤醒词和命令词不是用的同一个模型。ASR的例子只是实现了wakenet唤醒词模型,multinet才是实现其他命令的模型。
找到问题就加上这些个代码。最终实现了一个语音识别控制的蓝牙播放器的程序。连上手机后播放音乐,然后可以实现“上一曲”,“下一曲”,“音量加”,“音量减”语音控制。核心代码如下:

raw_stream_read(raw_read, (char *)buff_for_asr, audio_chunksize * sizeof(short));
	if(wakeUpFlag){
   //other commands
		wakeUpTimeCount++;
		if(wakeUpTimeCount >= chunk_num){
   
			wakeUpTimeCount = 0;
			wakeUpFlag = false;
			ESP_LOGI(TAG, "Sleep again!");
		}

		command_id = multinet->detect(model_data_mn, buff_for_asr)
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值