我正在使用 WaveFormatConversionStream 将包含录制语音的单通道 16 位 PCM WAV 文件的采样率从 11025 提高到 16000 Hz。生成的 WAV 文件仍然可以理解,但似乎有很多“静态”(听起来好像是通过部分爆裂的扬声器播放的)。这是正常的,预期的行为,还是我做错了什么?代码如下:
using (WaveFileReader wfr = new WaveFileReader("inFile.wav"))
{
var newFormat = new WaveFormat(16000, wfr.WaveFormat.BitsPerSample, wfr.WaveFormat.Channels);
using (WaveFileWriter wfw = new WaveFileWriter("outFile.wav", newFormat))
{
using (WaveFormatConversionStream conversionStream = new WaveFormatConversionStream(newFormat, wfr))
{
conversionStream.Position = 0;
byte[] buffer = new byte[1024];
while (conversionStream.Position < conversionStream.Length)
{
int bytesRead = conversionStream.Read(buffer, 0, 1024);
if (bytesRead > 0)
{
wfw.Write(buffer, 0, bytesRead);
}
else
{
break;
}
}
}
}
}