如何加快声音文件的播放而不改变音调,100分不够再加100

navi_dx 2006-11-30 10:44:50
一段样本数据(人的发声),现在要将该样本数据播放时间缩短为原来的一般,但是不能改变音调音色,我觉得要转换到频域上处理,但是具体如何达到这样的效果我是在想不出来,请高人指点
...全文
1053 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
Shankr 2007-01-10
  • 打赏
  • 举报
回复
关注
i_noname 2007-01-03
  • 打赏
  • 举报
回复
以下说法是对PCM数据来说的,MP3的话可以先解码成PCM再处理
改变播放时间可以用重采样技术(resample)。
但时域的变化必然对频域有反作用,即如果加快播放速度的话,声音的频率必然升高,减速的话,频率就会降低。
所以经过重采样的数据,必须再经过一个相应的变调处理。英语叫pitch shift。

http://ccrma.stanford.edu/~jos/resample/
http://www.dspdimension.com
luoqintao 2007-01-03
  • 打赏
  • 举报
回复
跳sample
minideveloper 2007-01-03
  • 打赏
  • 举报
回复
通常这种有两种方法,一种是在频域处理,一种是在时域处理,而且两种都可以达到效果,用的技术叫做sola,就是波形匹配叠加,通常是找到波形类似的点,然后将类似的波形进行叠加,处理应该是在pcm层处理,mp3需要解码。
对于频域方面的处理是先把时域信号转成频域信号,修改声音信号的频率,然后再转回去,可能中间还有一些处理,理论上来说mp3经过dct后的数据是可以拿来作为频域信号源的
kinkindu 2006-12-13
  • 打赏
  • 举报
回复
12平均音律
每高8度频率提高1倍,即为原来的2倍
而8度中间有12个半音,所以每个半音之间的频率相差2的开12次方倍
2个半音就是2的开6次方了
navi_dx 2006-12-05
  • 打赏
  • 举报
回复
使用Cooledit软件进行了频谱分析,得到结论效果最好的办法是用窗口函数截取样本,FFT将时域信号转换到频域,将频率往低频段压缩,再IFFT转换到时域后再重采样(抽点),基本可以做到不变声调变速率。

但是有几个疑问,
频率数据降调不是简单平移频率数据,而是向低频段进行线性的压缩,频率压缩的系数怎么确定,比如我要将频率降调2个半音,压缩系统是多少?
我处理的数据是MP3,本来就是32个子带的频率数据,可以直接使用这个数据做频率数据压缩吗
SmallBigCat 2006-12-01
  • 打赏
  • 举报
回复
跳帧?
navi_dx 2006-12-01
  • 打赏
  • 举报
回复
对呀,先吧频率降低一半,在播放的时候吧速度提高一倍,降调就是吧频率降低吧
pp7765 2006-12-01
  • 打赏
  • 举报
回复
先降调处理再加快速度

2,543

社区成员

发帖
与我相关
我的任务
社区描述
专题开发/技术/项目 多媒体/流媒体开发
社区管理员
  • 多媒体/流媒体开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧