搜索
bottom↓
回复: 1

小E开发板wifi音箱四解决声音难听的问题

[复制链接]

出0入0汤圆

发表于 2018-5-9 08:52:57 | 显示全部楼层 |阅读模式
在前面的文章中我基本实现了wifi播放wav音乐的功能,但是在此之前的博客中听到的声音都十分的难听,到这里我都十分的纳闷:为什么声音会怎么难看,有关这个项目之前的内容请看:小E开发板wifi音箱三与wifi整合,缩短内存(blog.csdn.net/chengdong1314/article/details/54426561)。最后我搞清楚了,确定是音乐文件的问题,我们这里使用《艾奇音频转换器全能大师》软件来生成wav文件,正确的设置如下:

        这里最终生成了3个wav文件,测试后发现声音真的好听了很多,完全没有问题了!这里文件如下:

             其中的mp3是原文件,即从网上直接下载下来的文件,而紧跟着的WAV文件就是通过《艾奇音频转换器全能大师》转换出来的wav文件。这里已经把这些文件上传到资源里了,文件如下:download.csdn.net/detail/chengdong1314/9743398

              这里上传目前测试OK的代码:download.csdn.net/detail/chengdong1314/9743364

            

              接下来将适应两种情况,一种是适应不一样的采样率,比如8K和44.1K,另外将要适应有没有fact这两种wav文件,这里最终的代码主要部分如下:

                recv_buf[recbytes] = 0;
                recv_buf_temp=recv_buf;
                os_printf("ESP8266 TCP client task > recv data %d bytes!\n", recbytes);
                if(download_file_size==0){
                   if((strstr(recv_buf,"RIFF")==recv_buf) && (strstr((recv_buf+8),"WAVE")==(recv_buf+8)) && (strstr((recv_buf+12),"fmt ")==(recv_buf+12))){  
                           PCMWAVEFORMAT *wav_format;
                        os_printf("WAV file\n");
                        recv_buf_temp=recv_buf+16;
                        wav_format =(PCMWAVEFORMAT *)(recv_buf_temp+4);
                        i2sSetChannel(wav_format->wf.nChannls);
                        if(wav_format->wf.nChannls ==1){
                            i2sSetRate(wav_format->wf.nSamplesPerSec,1);
                        }else if(wav_format->wf.nChannls ==2){
                            i2sSetRate(wav_format->wf.nSamplesPerSec *2,1);
                        }                        
                        os_printf("%dHz samply\n",wav_format->wf.nSamplesPerSec);

                        recv_buf_temp +=*(et_uint32 *)recv_buf_temp +4;
                        if((*recv_buf_temp =='f') && (*(recv_buf_temp+1) =='a') && (*(recv_buf_temp+2) =='c') && (*(recv_buf_temp+3) =='t')){
                            recv_buf_temp +=4;
                            recv_buf_temp +=(et_uint32)((*recv_buf_temp) | (*(recv_buf_temp+1)<<8) | (*(recv_buf_temp+2)<<16) | (*(recv_buf_temp+3)<<24))+4;
                            os_printf("have fatm\n");
                        }
                        if((*recv_buf_temp =='d') && (*(recv_buf_temp+1) =='a') && (*(recv_buf_temp+2) =='t') && (*(recv_buf_temp+3) =='a')){
                            recv_buf_temp +=4;
                            download_file_size= (et_uint32)((*recv_buf_temp) | (*(recv_buf_temp+1)<<8) | (*(recv_buf_temp+2)<<16) | (*(recv_buf_temp+3)<<24))-8;
                            recv_buf_temp +=4;
                            //os_printf("recv_buf_temp1:%x\n",recv_buf_temp);
                            if((et_uint32)recv_buf_temp%4 !=0){
                                download_file_size -=4-(et_uint32)recv_buf_temp%4;
                                recv_buf_temp +=4-(et_uint32)recv_buf_temp%4;
                                //os_printf("recv_buf_temp2:%x\n",recv_buf_temp);
                            }
                            recbytes -=recv_buf_temp-recv_buf;
                            file_total_size100=0;
                            sector100 = AUDIO_FLASH_START_SECTOR;
                            os_printf("have data\n");
                        }
                    }
                   }

                这里上传全部代码:download.csdn.net/detail/chengdong1314/9744121

                 这里上传本实验用的wav文件,其中的带有44.1khz的文件就是转换出来的44.1khz频率的文件,可以直接使用:download.csdn.net/detail/chengdong1314/9744489

               

                这个项目到这里要停一下了,我有更加重要的事情去做了!

阿莫论坛20周年了!感谢大家的支持与爱护!!

月入3000的是反美的。收入3万是亲美的。收入30万是移民美国的。收入300万是取得绿卡后回国,教唆那些3000来反美的!

出0入0汤圆

发表于 2018-5-9 09:38:52 | 显示全部楼层
我也是做wifi speaker的,楼主可以下一步加上语音识别、语音控制啊
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-4-25 19:26

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表