Вот хороший пример проекта для чтения и записи WAV-файлов на C #:
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);
Или вы можете вообще избежать Файлового ввода-вывода и создать свой WAV-файл в виде массива байтов в памяти и создать из него MemoryStream
.