C# 将大mp3文件转换为wav定时问题

C# 将大mp3文件转换为wav定时问题,c#,mp3,wav,naudio,lame,C#,Mp3,Wav,Naudio,Lame,我正在处理一些大的mp3声音文件。从几个小时到15个多小时不等。 我需要把这些mp3文件转换成wav。 由于文件的大小,无法加载整个文件,然后对其进行转换 到目前为止,我的解决方案是使用NAudio和NAudio.Lame 我修改了:和 满足我的需要。这是可行的,我可以一次装入100 mb的卡盘并转换它。 由于我的实现,我可以加载一个Mp3文件,其中同一Mp3文件中的每一帧都略有不同(同一文件中的一帧是单声道,另一帧是立体声) 这一切都很好 我的问题是原始mp3和生成的wav之间的时间。 例如,

我正在处理一些大的mp3声音文件。从几个小时到15个多小时不等。 我需要把这些mp3文件转换成wav。 由于文件的大小,无法加载整个文件,然后对其进行转换

到目前为止,我的解决方案是使用NAudio和NAudio.Lame 我修改了:和 满足我的需要。这是可行的,我可以一次装入100 mb的卡盘并转换它。 由于我的实现,我可以加载一个Mp3文件,其中同一Mp3文件中的每一帧都略有不同(同一文件中的一帧是单声道,另一帧是立体声)

这一切都很好

我的问题是原始mp3和生成的wav之间的时间。 例如,一个9小时34分38秒的mp3文件,生成的wav文件只有9小时21分15秒长

这意味着损失了13分23秒,缩短了3.7%!。但是我找不到音频中丢失的任何东西。一切似乎都在那里,只是,更短。喜欢的音频播放速度比mp3快3.7%。这对我来说是一个问题,因为我需要能够在以后的日期在wav和mp3之间进行映射,我非常希望映射是1对1

我尝试将Mp3文件导入到中,但结果相同,Audacity中导入的音频再次比原始Mp3文件短13分钟


这让我觉得问题不仅仅是我的代码,对这种行为有什么解释吗

我已经通过了MP3文件,问题似乎不是NAudio和NAudio.Lame,而是MP3文件本身

MP3文件包含错误


修复方法是确保MP3文件不包含错误

MP3文件包含一系列MP3帧。
将MP3转换为WAV后,WAV播放器读取的音频长度正确。
您原来的MP3长度被您的播放器误解了

有些播放器无法正确读取MP3音频长度,这通常是由于帧修剪造成的

我不认为您丢失了音频数据,但在转换后,新音频的运行速度略快于原始音频,这就是它变短的原因。确保转换数据的采样率与源匹配。我可以问一下为什么要将MP3还原为wav吗?@DarkBee我正在音频上运行语音识别,我使用的语音识别软件只接受wav音频,这就是为什么我必须转换它。@Sam在当前示例中,MP3和wav都是44100 hz。有没有办法让运行速度稍微慢一点,这样它就可以与原来的运行速度相匹配呢?有一件事让我很恼火,那就是当我通过Audacity运行它时,我得到的结果与通过我自己的代码运行它时的结果相同,比原来缩短了13分钟。我用multible文件进行了测试,所有这些文件都比较短。