我正在使用MediaFoundationReader和ResamplerDmoStream将MP4(音频)文件重新采样到WAV到WaveFormat(16000,16,1)。重新采样后,我将流发送到语音API进行转录,但API失败,因为流不包含WAV标头。 如果我将流保存到WAV文件(使用WaveFileWriter),再次读取该文件然后将流发送到API然后API工作,因为流包含WAV标头。 有没有办法在ResamplerDmoStream重新采样后将WAV标头添加到流中,以防止耗费时间的I / O?
答案 0 :(得分:0)
您可以使用WaveFileWriter
写信给Stream
。所以在这种情况下,我会写一个MemoryStream
,并且必须处理WaveFileWriter
才能正确完成WAV标题。但是你会有一个WAV文件的内存表示。
有一点需要注意的是,当您处置MemoryStream
时,最终可能会处置WaveFileWriter
,所以我在NAudio中有一个名为IgnoreDisposeStream
的便捷类,您可以将MemoryStream
包裹起来n
1}} in以在使用它之前阻止它被处理掉。