完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
这是我自己小编的一个基于重采样原理的男女声变换程序,但是效果很差,自己也是第一次接触DSP,不是很了解,希望诸位大神指点一下!!注释的那部分代码只是做了简单的男女声频谱搬移,效果也不理想,所以想琢磨用重采样的方法。在线等啊!!
void change(Int16 *inbuf, Int16 *outbuf, Int16 length) { Int16 a=8; Int16 b=6; Int q; Int i; Int m; DATA *dbptr = &db[0]; for (i = 0; i < length/2; i++) { temp[2*i] = inbuf[2*i]; temp[2*i+1]=0; } //fir(temp,h,temp,dbptr,512,16); q=256*b/a; if(mode0==0)/*女变男*/ { for(i=0;i {m=b*i/a; temp[i]=temp[m]; } for(i=q;i<256;i++) {temp[i]=temp[i-q];} } else if(mode0==1)/*男变女*/ { for(i=0;i {m=a*i/b; outbuf[i]=inbuf[m];} for(i=q;i<512;i++) {outbuf[i]=0; } } // // cfft(temp,512,SCALE); // cbrev(temp,temp,512); // // if(style<5) // 男声变女声*/ // { // // asm(" BSET XF"); // ; Set XF // for (i=length/2-1;i>29;i--) // temp[i] = temp[i-30]; // for(i=0;i<30;i++) temp[i]=0; // for (i=length/2;i // for(i=length-30;i // // } // /*女声变男声*/ // else if(style>5) // // { for (i=0;i // for(i=length/2-22;i // for (i=length-1;i>length/2+21;i--) // temp[i] = temp[i-22]; // for(i=length/2;i // // } // // cifft(temp,512,NOSCALE); //cbrev(temp,temp,512); // fir(temp, h, out_buffer, dbptr, 512, 16); // for (i = 0; i < length/2; i++) { inbuf[2*i]=temp[2*i] ; } for (i = 0; i < length; i++) { outbuf[i] = inbuf[i]; } } |
|
相关推荐
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
697 浏览 0 评论
522 浏览 0 评论
2001 浏览 0 评论
基于 DSP5509 进行数字图像处理中 Sobel 算子边缘检测的硬件连接电路图
3853 浏览 0 评论
849 浏览 0 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-1-13 19:19 , Processed in 0.478112 second(s), Total 70, Slave 53 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号