NAudio 处理音频

最近在做一个文章生成语音的功能碰到一些问题;

文字生成语音用的是科大讯飞的长文接口,生成出来之后是mp3文件;在实际使用过程中发现声音很小,于是超找方案最终找到NAudio来处理

首先在NuGet搜索NAudio 并安装指定版本,如果想用.net Framework 4.7.4以下的 可以用V1.10.0

 

修改音量


        /// <summary>
        ///  修改音量
        /// </summary>
        /// <param name="inPutfile">需要修改的MP3源文件路径</param>
        /// <param name="outputFile">修改后的MP3文件路径</param>
        /// <param name="volume">音量 float类型 默认1 建议不要超过3否则破音很严重</param>
        public void UpVolume(string inPutfile,string outputFile,float volume=1) {
            try
            {
                using (AudioFileReader first = new AudioFileReader(inPutfile))
                {
                    first.Volume = volume;
                    MediaFoundationEncoder.EncodeToMp3(first.ToWaveProvider16(), outputFile);
                };
            }
            catch (InvalidOperationException ex)
            {
                Console.WriteLine(ex.Message);
            }
        }

 

   

合并Mp3文件

       /// <summary>
        /// Mp3格式合并
        /// </summary>
        /// <param name="inputFiles">待合并文件路径</param>
        /// <param name="outputfullName">输出文件名</param>
        public void CombineMp3(List<string> inputFiles, string outputfullName)
        {
            using (FileStream outputStream = new FileStream(outputfullName, FileMode.OpenOrCreate))
            {
                foreach (string file in inputFiles)
                {
                    Mp3FileReader reader = new Mp3FileReader(file);
                    if ((outputStream.Position == 0) && (reader.Id3v2Tag != null))
                    {
                        outputStream.Write(reader.Id3v2Tag.RawData, 0, reader.Id3v2Tag.RawData.Length);
                    }
                    Mp3Frame frame;
                    while ((frame = reader.ReadNextFrame()) != null)
                    {
                        outputStream.Write(frame.RawData, 0, frame.RawData.Length);
                    }
                }
            }

        }

 参考内容:

https://github.com/naudio/NAudio/blob/master/Docs/MediaFoundationEncoder.md

https://github.com/naudio/NAudio/blob/master/Docs/ConvertMp3ToWav.md

posted @ 2023-08-16 14:37  zhuweirandy  阅读(464)  评论(0)    收藏  举报