如何用C#中的原始音频样本创建wave STREAM?

时间:2010-05-18 15:00:40

标签: c# audio stream wave

如何用C#中的原始音频样本创建wave STREAM?

1 个答案:

答案 0 :(得分:2)

这是一个很好的示例项目,用于在C#中读取和编写WAV文件:

http://www.codeproject.com/KB/audio-video/Concatenation%5FWave%5FFiles.aspx

假设您的“原始音频”是一个短(2字节)整数数组,这是一项简单的任务。 WAV文件的标题是44个字节(参见注释),因此您首先写出标题(使用示例中的代码),然后是数据。

注意:并非所有WAV文件都是“规范”的,这意味着它们并非都有一个44字节的标头,后跟数据。 WAV格式实际上是一种RIFF格式,这意味着它们可以包含各种不同的数据,并且标题不一定在开头。但是,由于您只是编写 WAV文件,所以这一切都不重要。

更新:如果语音识别程序需要流(而不是文件路径),则可以轻松创建MemoryStream这样的内容:

byte[] bytes = System.IO.File.ReadAllBytes("c:\whatever.wav"); 
System.IO.MemoryStream stream = new System.IO.MemoryStream(bytes); 

或者您可以完全避免文件I / O并首先将WAV文件创建为内存中的字节数组,然后从中创建MemoryStream