最近看到了游戏会说话的汤姆猫,感觉很有吸引力,特别是对声音处理方面很感兴趣,但是完全搞不懂这是怎么做到的,比如我想做一个可以改变声音的变声器 先把声音录入,再转换出去,这是怎么做到的呢???求大神解答
解决方案 »
- 现在有跟我一样在开发微信第三方客户端的吗?
- android如何发送中文短信(代码实现)
- 跪求authoware简历
- 请教:android 输入法中关于回车是怎样处理的
- Android 中,怎样实现本地数据sqlite与远程数据库中的数据同步
- 小米手机调用com.android.camera.action.CROP时剪裁图片不成功的原因
- Home键退出长时间返回,Fragment失效求解,求大神解救!!!
- 关于java开发android应用中,读取文件的机制的疑惑。请解释下。
- 求大神帮忙解决,在AS中创建Genymotion模拟器报错
- Hbuilder连接手机报错
- 我编完了一个.so的库 现在在程序里load后 ,当调用native的方法nativeCreateObject ()时 ,会报错 。
- 客户端如何调用支付宝
我的变音器大体思路如下,首先录入声音,一般要对音频编辑的话,需要将音频文件保存为PCM格式,而Android没有提供这种格式的录音API,所以需要自己写一个,有些困难。
然后就是对声音的处理,有两种途径:
1.我们录到的声音其实是时域信号,一般的信号处理技术都需要将时域转成频域,然后利用就像楼上所说的频谱迁移技术来对信号处理,然后再将频域信号转换回时域,再播放,声音变化就完成了,可以通过此法实现变声不变速。在这过程中需要用到快速傅立叶变换,卷积变换和逆傅立叶变换等。此法对声音处理效果应当较好....但个人觉得实现起来很困难,而且手机的资源可能没办法支持这么大量的计算.
2.直接在时域上处理声音,需要用到卷积的一些推导公式.比上面的方法快是快了点了,但变出来的声音很难听,就跟那个汤姆猫似的.
就这么多了,不知道有没有帮助