一、准备工作
在使用转换时,可以直接使用python中的模块进行调用,还有一种直接使用ffmpeg程序在命令窗下执行的方法,暂时没有实现。
1.1 模块的安装
1)AudioSegment的模块在pydub中调用,安装pydub。
安装方式
https://github.com/jiaaro/pydub#installation
2)安装wave模块用来读取wav格式文件
pip install wave
1.2 工具的安装
数据的转换主要是使用ffmpeg程序,下载地址
https://www.gyan.dev/ffmpeg/builds/ffmpeg-release-full.7z
下载后将ffmpeg.exe文件加载到环境变量中,也可以将该文件放到运行目录下。# 将文件放入目录下比较方便。
二、python的转换代码
from pydub import AudioSegment impot wave class Trans(): def mp3_to_wav(self, mp3_name, wav_name): """ mp3格式转wav格式 :param mp3_name: mp3的文件名 :param wav_name: 保存wav的文件名 :return: """ try: # 转换 song = AudioSegment.from_mp3(mp3_name) # 输出 wave_file = song.export(wav_name, format="wav") # wav_data 是wav的数据 wav_data = wave_file.read() except Exception as e: print("mp3转换为wav过程出错{}".format(e)) def wav_to_mp3(self, wav_name, mp3_name): """ wav格式转换为 :param wav_name: :param mp3_name: :return: """ try: # 打开wav文件 wav_data = wave.open(wav_name) # 获取文件参数 wav_params = wav_data.getparams() # 将参数赋值 channels, sample_width, frame_rate, n_frames = wav_params[:4] # 读取音频数据 bytes_data = wav_data.readframs(n_frames) # 加载数据 sound = AudioSegment( bytes_data, sample_width=sample_width, frame_rate=frame_rate, channels=channels) # 输出MP3格式数据 mp3_data = sound.export(mp3_name, format="mp3") # mp3的数据 mp3_data = mp3_data.read() return mp3_data except Exception as e: print("wav转换成MP3格式错误,{}".format(e)) return b""
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)