|
|
我目前有一个需求,就是通过其他芯片来将令ASRPRO进入自学习模式,并且学习我指定的命令词/唤醒词。
以下是我的做的尝试,但是并没有啥作用。下面是我研究的过程。
我一开始是想要直接按照最简单的逻辑,直接调用自学习的函数cwsl_app_process_asr_msg,无论是否处于唤醒模式都没有作用。
然后就顺着代码里面的识别逻辑,(由于源码并没有完全开源,其实关于语音识别到底是如何调用自学习的暂时不清楚,我直接从程序的链接文件中查阅到从decoder_manage_task->app_deal_asr_reuslt_callback->send_result_to_usertask这一系列的代码是不开源,我姑且将其作为具体的识别处理,然后将识别结果通过asr_result_callback来处理),
于是乎,我开始查找asr_result_callback当中的参数到底是从哪里获取的,抑或是说跟谁比较的。
我直接在函数中添加打印,来寻找命令信息,无果。
于是直接从根源,也就是读命令的数据找,反正做了很多。
最终我将所有命令的string提取出来,通过string来查找cmdHandle然后将asr_result_callback的代码复制过来,在执行这个函数之前尝试过先唤醒再执行,但是还是一样的结果串口输出调试用的stack trace(我可以保证string是对的)打印对比过。
所以问题来了,怎么样才能通过串口来自学习。当然你们也可以进一步开源把app_deal_asr_reuslt_callback->send_result_to_usertask这两个函数的源码给我读一下。
|
|