我有一个Windows Phone Silverlight应用程序。我这样做是为了放慢声音,改变麦克风流的音高:
sound = new SoundEffect(bStream, microphone.SampleRate, AudioChannels.Mono);
SoundEffectInstance soundInstance = sound.CreateInstance();
soundInstance.Pitch -= 1;
soundInstance.Play();这里的"bStream“是一个字节数组。问题是我不能保存更改后的音高数据(尽管我可以播放它)。有没有办法在节距改变后保存我的字节数组?我也尝试了DynamicSoundEffectInstance,结果是一样的。当我将bStream保存为wav文件时,所有的效果都消失了。
感谢您的帮助和见解。
发布于 2011-09-05 20:31:34
你真的需要通过调整音高来保存它吗?为什么不将音高调整量与文件一起保存,并在加载文件后重新应用它(就像你已经做的那样)。
如果你真的需要调整数据的间距,你实际上是在对它进行重采样。这涉及对这些值进行插值和/或平均,以在时间上拉伸或压缩它们。我相信NAudio包含了实现这一点的C#代码:http://naudio.codeplex.com/
https://stackoverflow.com/questions/7294361
复制相似问题