如何用C#中的原始音频样本创建wave STREAM? 最佳答案 这是一个很好的示例项目,用于在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.