代码:
/// <summary> /// 将.mp3或者其他.wav文件转为16kHz,16bit的.wav(by NAudio) /// </summary> /// <param name="filePath">转换前音频文件的路径</param> /// <returns>转换后音频文件的路径</returns> public static string Convert2Wav(string filePath) { string directoryName = Path.GetDirectoryName(filePath); string fileName = Path.GetFileName(filePath); string tempDir = directoryName + "\\temp" + DateTime.Now.ToString("yyyyMMddHHmmss") + "\\"; if (!Directory.Exists(tempDir)) { Directory.CreateDirectory(tempDir); } if (filePath.EndsWith(".wav", StringComparison.CurrentCultureIgnoreCase)) { using (var reader = new WaveFileReader(filePath)) { var newFormat = new WaveFormat(16000, 16, 1); // 16kHz, 16bit using (var conversionStream = new WaveFormatConversionStream(newFormat, reader)) { WaveFileWriter.CreateWaveFile(tempDir + fileName, conversionStream); } } } else if (filePath.EndsWith(".mp3", StringComparison.CurrentCultureIgnoreCase)) { using (Mp3FileReader reader = new Mp3FileReader(filePath)) { var newFormat = new WaveFormat(16000, 16, 1); // 16kHz, 16bit using (var conversionStream = new WaveFormatConversionStream(newFormat, reader)) { WaveFileWriter.CreateWaveFile(tempDir + fileName, conversionStream); } } } return tempDir + fileName; }