如何用C#中的原始音频样本创建wave STREAM?
答案 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
。