使用NAudio更改wav文件(到16KHz和8bit)
我想用NAudio将WAV文件更改为8KHz和8bit。
WaveFormat format1 = new WaveFormat(8000, 8, 1); byte[] waveByte = HelperClass.ReadFully(File.OpenRead(wavFile)); Wave using (WaveFileWriter writer = new WaveFileWriter(outputFile, format1)) { writer.WriteData(waveByte, 0, waveByte.Length); }
但是当我播放输出文件时,声音只是嘶嘶声。 我的代码是正确的还是错的?
如果我将WaveFormat设置为WaveFormat(44100,16,1),它可以正常工作。
谢谢。
几点建议:
这是一些示例代码,显示如何从一种格式转换为另一种格式。 请记住,您可能需要根据输入文件的格式分多步进行转换:
using (var reader = new WaveFileReader("input.wav")) { var newFormat = new WaveFormat(8000, 16, 1); using (var conversionStream = new WaveFormatConversionStream(newFormat, reader)) { WaveFileWriter.CreateWaveFile("output.wav", conversionStream); } }
下面的代码解决了我处理G.711 Mu-Law的问题,并对wav文件进行了vox文件扩展。 我一直在使用WaveFileReader获得“No RIFF Header”错误。
上述就是C#学习教程:使用NAudio更改wav文件(到16KHz和8bit)分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!
FileStream fileStream = new FileStream(fileName, FileMode.Open); var waveFormat = WaveFormat.CreateMuLawFormat(8000, 1); var reader = new RawSourceWaveStream(fileStream, waveFormat); using (WaveStream convertedStream = WaveFormatConversionStream.CreatePcmStream(reader)) { WaveFileWriter.CreateWaveFile(fileName.Replace("vox", "wav"), convertedStream); } fileStream.Close();
openFileDialog openFileDialog = new openFileDialog(); openFileDialog.Filter = "Wave Files (*.wav)|*.wav|All Files (*.*)|*.*"; openFileDialog.FilterIndex = 1; WaveFileReader reader = new NAudio.Wave.WaveFileReader(dpmFileDestPath); WaveFormat newFormat = new WaveFormat(8000, 16, 1); WaveFormatConversionStream str = new WaveFormatConversionStream(newFormat, reader); try { WaveFileWriter.CreateWaveFile("C:\Konvertierten_Dateien.wav", str); } catch (Exception ex) { MessageBox.Show(String.Format("{0}", ex.Message)); } finally { str.Close(); } MessageBox.Show("Konvertieren ist Fertig!"); }
本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。
ctvol管理联系方式QQ:251552304
本文章地址:https://www.ctvol.com/cdevelopment/1016283.html