ESP32对接腾讯云叮当语音识别ASR出现偶发性签名错误问题

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/fengfeng0328/article/details/86773569

腾讯云叮当语音识别ASR平台链接:https://dingdang.qq.com/doc.html?dir=/doc/tvs/cloud/api.html

对接腾讯云叮当语音识别ASR平台过程中,出现偶发性的签名错误问题,以下是问题分析过程:

1.针对该问题进行详细分析,发现导致签名错误的位置是HMAC-SHA256处理后的数据出现异常

2.怀疑是HMAC-SHA256函数存在BUG,移植HMAC-SHA256和调用ESP-IDF自带HMAC-SHA256函数,仍然存在BUG

3.抓取多组数据,与签名错误数据进行对比,寻找偶发性签名错误差异

4.发现PRINTF出来的HMAC-SHA256数据后半部折半丢失,寻找差异规律,发现根本原因是数据中含有结束符 '\0'

5.签名ce6dd07b6c8ae92c08ca863a536f562766007c960a22a7a2ac7b5c2edece20c7中存在 '00',8bit作为一个结束符 '\0'

6.其实签名并没有错误,只是签名数据中存在结束符导致后面处理错误,例如调用printf输出,strlen计算长度等等错误

以上就是对接腾讯叮当云语音识别ASR平台过程中,出现偶发性签名错误的原因,HMAC-SHA256处理后的数据以16进制的形式依次填进以8bit计算的char数据类型的内存单元中,'00' 以8bit作为一个结束符,导致签名数据字符串折半。

猜你喜欢

转载自blog.csdn.net/fengfeng0328/article/details/86773569