4

我正在开发一个 C# WPF 应用程序,它将一组单词(大约 17,000 个单词)组合在一起,并生成一个匹配 mp3 文件的播放列表(每个 mp3 文件都是一个单词)。

目前,每个 mp3 文件在其波形结束时都有 1 秒到 30 秒之间的随机静音。

我希望能够以编程方式从文件末尾删除静音波。

使用 NAudio for .NET 如何从 mp3 文件末尾删除静音波?

4

2 回答 2

2

我完成了使用SoX

SoX Silence 文档: http ://digitalcardboard.com/blog/2009/08/25/the-sox-of-silence/

SoX Silence 文件结尾的 Stackoverflow 帮助参考: https ://stackoverflow.com/a/11834671/677607

使用 C# 执行命令行: https ://stackoverflow.com/a/1469790/677607

于 2012-10-29T21:16:43.523 回答
1

有两种方法可以修剪 MP3 文件。第一种是使用 Mp3FileReader 将音频读出为 WAV,然后使用 WaveFileWriter 仅将您想要的数量写入新的 WAV 文件。然后,您将使用 LAME.exe 等工具将其转换回 MP3,因为 NAudio 不包含 MP3 编码器。

第二个是丢弃 Mp3Frames 并且具有不需要解码和重新编码的好处。MP3 文件由一系列 Mp3Frames 组成(并且可以选择在开始或结束处包含 ID3 标签等元数据)。然后,您可以创建一个新的 MP3 文件,只需将您想要的 MP3 帧附加到一个新文件中,跳过最后一个(并选择确保您的 ID3 标签包含在截断的文件中)。查看 Mp3FileReader 的源代码,了解如何从 MP3 文件中一一读取 Mp3Frame。

于 2012-10-24T14:12:20.703 回答