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;
}
}
}
}
}