Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/265.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 用NAudio实现Wav变换_C#_Naudio_Wave - Fatal编程技术网

C# 用NAudio实现Wav变换

C# 用NAudio实现Wav变换,c#,naudio,wave,C#,Naudio,Wave,我有一个问题,转换为a-定律的声音规则波。这样做会让我感觉质量不好: WaveStream stream = new WaveFileReader(in.wav); var s = new RawSourceWaveStream(new WaveFormatConversionStream(new WaveFormat(8000, 16, 1), stream), new WaveFormat(8000, 16, 1)); var c = new WaveFormatConversionStre

我有一个问题,转换为a-定律的声音规则波。这样做会让我感觉质量不好:

WaveStream stream = new WaveFileReader(in.wav);
var s = new RawSourceWaveStream(new WaveFormatConversionStream(new WaveFormat(8000, 16, 1), stream), new WaveFormat(8000, 16, 1));
var c = new WaveFormatConversionStream(WaveFormat.CreateALawFormat(8000, 1), s);
WaveFileWriter.CreateWaveFile(AppDomain.CurrentDomain.BaseDirectory + "\\out.alaw", c);

或是特维斯的声音变慢了:

WaveStream stream = new WaveFileReader(in.wav);
 var s = new RawSourceWaveStream(stream, new WaveFormat(8000, 16, 1));
 var c = new WaveFormatConversionStream(WaveFormat.CreateALawFormat(8000, 1), s);
WaveFileWriter.CreateWaveFile(AppDomain.CurrentDomain.BaseDirectory + "\\out.alaw", c);


如何将wav转换为高质量的a-law?

在这两个示例中,您都不需要
RawSourceStream
,第二个示例将无法工作,除非.wav中的
恰好具有正确的格式

试试这个:

var stream = new WaveFileReader(in.wav);
var s = new WaveFormatConversionStream(new WaveFormat(8000, 16, 1), stream);
var c = new WaveFormatConversionStream(WaveFormat.CreateALawFormat(8000, 1), s);
WaveFileWriter.CreateWaveFile(AppDomain.CurrentDomain.BaseDirectory + "\\out.alaw", c);