sonic icon indicating copy to clipboard operation
sonic copied to clipboard

Linux平台解码遇到问题,求助!

Open singcol opened this issue 9 years ago • 6 comments

您好!看了您开源的项目代码,并在Android平台测试了声波通信,可以互发声波并识别。但是我测试在Linux平台声波识别,不能解码。调试方式:先编码一段pcm音频文件,pcm文件内嵌入了1234567890这10个字符,再在Linux平台直接读取pcm文件进行解码,无结果。但是我把这个pcm文件播放,再用Android平台进行监听解码,能够正常识别出字符1234567890。 Linux平台调试详情是:解码部分的函数 helperResultWithTimeSlice 判断条件进不去 if (queue_item_at_index(q17, 0) > 0.0 && queue_item_at_index(q17, 1) > 0.0 && queue_item_at_index(q19, 1) > 0.0 && queue_item_at_index(q19, 2) > 0.0) { /* 条件语句没进来:跟踪调试是因为第四个判断queue_item_at_index(q19, 2) 的值为等于0; */ }

所以我尝试把if语句的判断条件放宽, 第四个判断加个等于,如下 if (queue_item_at_index(q17, 0) > 0.0 && queue_item_at_index(q17, 1) > 0.0 && queue_item_at_index(q19, 1) > 0.0 && queue_item_at_index(q19, 2) > =0.0) {

}

这样子就进入了if语句代码块,但是最终的解码结果错位 : 2345678904 。首位1没了,末尾的4是原码1234567890的校验码第一位。

================= start:(19[0]=0.544862), (17[2]=0.000000), (19[3]=0.000000), (17[0]*0.7=0.618718), (minValue=0.618718) ==================

19 01 02 03 04 05 06 07 08 09 00 04 15 08 27 01 26 17 00 00 17 19 01 02 03 04 05 06 07 08 09 00 04 15 08 01 20 26 00 00

================== final result ==================

successes! 17 19 02 03 04 05 06 07 08 09 00 04 15 08 27 01 20 26 17 00 [helperResultWithTimeSlice::401] result_code : 2345678904

恳请您帮忙

singcol avatar Jun 11 '15 07:06 singcol

我的邮箱是[email protected] QQ: 1528258848

singcol avatar Jun 11 '15 07:06 singcol

采样代码没有问题的话,基本可以确认是噪音导致的问题。

这个库的音频编解码部分直接使用了 WaveTrans,这个库的降噪主要靠的是手机的双MIC降噪,如果手机或者采集设备不具备降噪功能,那么声音基本上无法识别。

这里其实是需要自己对采集后的数据进行降噪的,这是这个库没有做的事情

linyehui avatar Jun 11 '15 07:06 linyehui

pcm文件是理想的正弦波,我是用SDK里面的编码api直接生成的pcm文件,并不是播放之后录制的,不存在噪声干扰。这里没法给您截图

singcol avatar Jun 11 '15 07:06 singcol

你的邮件或者QQ方便告知一下吗 ?

singcol avatar Jun 11 '15 07:06 singcol

问题应该是出在采样环节,你先确认下在Android下直接读取你自己生成的PCM文件流,看看能否正确识别

linyehui avatar Jun 11 '15 07:06 linyehui

pcm文件是理想的正弦波,我是用SDK里面的编码api直接生成的pcm文件,并不是播放之后录制的,不存在噪声干扰。所以应该不是降噪的问题 ----- 原始邮件 ----- 发件人:linyehui [email protected] 收件人:linyehui/sonic [email protected] 抄送人:singcol [email protected] 主题:Re:_[sonic]Linux平台解码遇到问题,求助!(#3) 日期:2015年06月11日 15点18分

采样代码没有问题的话,基本可以确认是噪音导致的问题。

这个库的音频编解码部分直接使用了 WaveTrans,这个库的降噪主要靠的是手机的双MIC降噪,如果手机或者采集设备不具备降噪功能,那么声音基本上无法识别。

这里其实是需要自己对采集后的数据进行降噪的,这是这个库没有做的事情

— Reply to this email directly or view it on GitHub.

singcol avatar Jun 11 '15 10:06 singcol