资讯动态

将目录下MP3文件批量转换成WAVE文件:mp32wave

发布时间:2026/9/27 19:34:38 来源:尧图企业网站定制
转换MP3文件到WAVE文件01【MP3转换成WAV文件】一、转换原理不知道为什么现在我的电脑中直接用一个应用程序打开mp3文件有问题 所以下面我们需要将已经下载录制好的MP3音乐文件转换成WAV文件。 这个呢需要批量将一个目录下多个子目录下的MP3文件进行转换 查看了很多网上给出的转换方式 需要安装一些特殊的Python包不太方便。 下面我们介绍一下自己经过测试使用两种软件包进行转换的方法。首先使用Sound file软件包来读取MP3文件 它可以将MP3文件对应的数据读入内存 它读入的数据为浮点数 接下来使用 sYsPy IO wav file将数据存成WAV文件。 这个呢需要对读入的数据进行转换 将浮点数转换成整形数 下面我们看一下具体的转换过程 将转换过程封装为一个函数 首先根据输入的文件名称 将它的后缀转换成wave文件后缀 接下来判断该文件是否已经存在 如果存在就直接跳过转换。 首先使用sound file读取MP3文件 可以获得对应的数据和采样率参数 接下来判断数据的格式 如果是双通道数据 则提取每个通道数据的最大值 然后再获得整个数据的最大值 这个很重要在后面进行数据格式转换时 需要使用这个最大值。 如果是单通道就很简单 直接获得声音数据的最大值即可接下来我们看一下转换过程 转化过程很简单 首先将输入的数据进行规划 也就是除以整个数据文件的最大值 然后再乘以0.95注意这个乘以0.95是防止转换整型数数据溢出 接下来乘以最大的整数。 强制输出类型为有符号16位 最后将数据写入Web文件。 然后再根据输入参数是否为大于0的数字 判断是否将原来的MP3文件进行删除 这就是整个的转换过程 因为这个文件是用于技术日记转换成视频文档 所以对于背景音乐要求不高 所以使用了整型16位的WAV文件。下面是对应用文件所在目录进行扫描 对于扫描中所得到的MP3文件进行转换 转换成一个时间为20分钟的MP3大概需要3至5秒。 整个转换过程消耗了大约三个小时 转换了500多个音乐文件。 当然最终的后果是转化完外部文件时 整个的文件数据量增加了很多。 但是还好将原来音乐文件转换成外文文件之后我们所使用的播放软件就可以正常打开了。二、程序#!/usr/local/bin/python# -*- coding: gbk -*-## MP32WAVE.PY -- by Dr. ZhuoQing 2026-09-26## Note:#fromheadmimport*importsoundfileassffromscipy.ioimportwavfile#------------------------------------------------------------defmp32wave(infile:str,removeflag0):outfileinfile.split(.)[0].wavifos.path.isfile(outfile):ifremoveflag0:os.remove(infile)returnsig,sample_ratesf.read(infile)sigshapeshape(sig)iflen(shape(sig))2:sigmax0max(sig[:,0])sigmax1max(sig[:,1])sigmaxmax([sigmax0,sigmax1])else:sigmaxmax(sig)sig(sig*(0x7fff/sigmax*0.95)).astype(int16)wavfile.write(outfile,sample_rate,sig)ifremoveflag0:os.remove(infile)#------------------------------------------------------------dirdim[Song,2025,2026,Class,BGM,Pop,Science,TMP,Used,Voice]fordindirdim:dirsrd:\Mooc\Music\\MusicdifdVoice:dirsrd:\Mooc\\d printf(dirs)fdimos.listdir(dirs)# printf(fdim)forfinfdim:iff.upper().find(.MP3)0:continueinfileos.path.join(dirs,f)outfileinfile.split(.)[0].wavifos.path.isfile(outfile):continueprintf(infile)mp32wave(infile,0)# break#------------------------------------------------------------printf(\a)#------------------------------------------------------------# END OF FILE : MP32WAVE.PY#

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价 →
↑