wzwyc

代码:

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

 

分类:

技术点:

相关文章: