阅读:2218回复:9
help!!!谁懂语音变速不变调的技术???
最近老板叫我做语音的变速不变调的程序,基于PC的,最简单的做法就是向采集来的数据添加额外的数据,但效果不是很好,语音衔接不好,复杂点的开发时间又不够,HELP!!!
小弟在这儿谢谢大家了 vc_king@163.com |
|
沙发#
发布于:2003-01-04 10:49
No scores, who likes to answer?
|
|
板凳#
发布于:2003-01-05 16:10
楼上的这位兄台,分给现金比起来,你选哪个?
技术这个东西为什么在中国始终发展得不是很快,一句话“没M哪个做哟”,不过也是,没得事,如果我觉得你的方案可行,你开个价嘛! |
|
地板#
发布于:2003-01-06 14:17
Try to skip some milliseconds of voice data, then it shall be faster
and try to repeat some milliseconds of voice data, it shall get slower |
|
地下室#
发布于:2003-02-14 05:46
it\'s too easy
这很简单 以下详细说明 举例: 问题A: 一个1秒的正弦波,想把它变成2秒,但不变调 1,如果简单的在后面添加一个副本,显然不行,衔接有问题 2,分成若干段,然后各自复制成副本,插在中间,还是不行,除非段的长度正好是正弦波周期的整数倍. 3,测出正弦波的周期,分段,复制,合成,OK! 4,测出正弦波的频率,然后合成成一个2秒的正弦波,OK!!!! 5,要注意正弦波的起始相位 问题B:两个正弦频率合成的声音,1秒,变成2秒,不变调 1,测出正弦波的周期,分段,复制,合成,NO!!!!,因为两个正弦波的周期不同,起始相位也不同,测不出周期, 2,分别测出两个正弦波的频率,起始相位,再合成成2秒的,OK!!!!! 正要用到DCT或FFT了. 问题C;一个1秒的波形,前0.5秒频率f1,后0.5秒频率f2,变成2秒,频率不变. 1,将声音分成若干段处理,每段时间约1/30秒,变成2/30秒,按照前面B2的方法,然后30个合成为2秒,OK but 30HZ以下的声音听不到了,不过没有关系,不太影响. 2,解决办法,记录每个小片段的平均值,再在新生成的采样中相加,补偿回来,缺点,效果不太好. 3,解决办法2,以1/8秒的时间为片段再对原始波形采样,但这次只采集8hz-30hz的频率,然后合成到新生成的波形中去,OK 问题D:一个10秒钟的声音信号,变成X秒,声音频率不变, 这就简单了,按照问题C的解决办法就搞定了. |
|
5楼#
发布于:2003-02-14 05:49
说了这么多,你们懂了吗?
好像MP3中声音的压缩就采用了这种方法 |
|
6楼#
发布于:2003-12-14 23:52
好贴,顶
|
|
|
7楼#
发布于:2003-12-15 16:03
呵呵,这个问题要想很快解决的好,我认为用M$的DSOUND模块最好,效果不错。 如果没有好的源代码,从理论基础做起,估计得很长时间吧。
|
|
|
8楼#
发布于:2004-06-08 17:52
很好的傥!
|
|
9楼#
发布于:2004-06-11 18:16
it's too easy 首先计算机得到的已经是数字信号,如果还原成正/余旋曲线,精度怎么保证。 另外,数字信号本生已经不是完整、单一的简单正/余旋曲线,当然不是只正/余旋曲线起使位置不同,可能得到的已经是变形的正/余旋曲线曲线,在PC端怎么处理? 当然,如果是在声卡本身来做这样的事情,应该会简单很多。 问题: 不知道兄弟对这些是怎样处理的?很想听听这为仁兄的意见 |
|
|