# Python实操之各种音频文件格式免费转换

> 作者/来源: UCloud 运营管理员
> 发布时间: 2023-01-02T13:26:00.000Z
> 分类: 其他
> 标签: Linux, Python
> 原文链接: http://117.50.162.249:3000/yun/articles/1836

---

# Python实操之各种音频文件格式免费转换

> 来源: https://www.ucloud.cn/yun/129042.html
> 作者: 89542767
> 发布日期: 发布于2023-01-02 21:26

Pydub是1个根据ffmpeg的Python数字音频处理控制模块，封装形式了很多ffmpeg最底层插口，因而用这个方法做歌曲格式转化会十分方便。今日为大家介绍它歌曲格式转化作用，基本上适用所有歌曲音频文件格式，所需要的可以了解一下

　　Pydub是1个根据ffmpeg的Python数字音频处理控制模块，封装形式了很多ffmpeg最底层插口，因而用这个方法做歌曲格式转化会十分方便，假如你阅读文章过别人其他回答：3行Python代码编写音乐剪辑你就会知道它有多强了。

　　今日为大家介绍它歌曲格式转化作用，基本上适用所有歌曲音频文件格式，十分强大。

　　1.组装

　　组装Pydub前必须要先组装ffmpeg:

　　Mac(开启终端设备(Terminal),用homebrew组装):

```
　　brewinstallffmpeg--with-libvorbis--with-sdl2--with-theora
```

　　Linux:

```
　　apt-getinstallffmpeglibavcodec-extra
```

　　Windows:

　　1.进入http://ffmpeg.org/download.html#build-windows，点一下windows相对应的标志，进到下载界面点一下download下载按键，

　　2.缓解压力手机下载的zip文件在指定文件名称

　　3.将缓解压力后文件名称中bin文件名称（包括ffmpeg.exe）加上进path环境自变量中

　　以上ffmpeg安装好了之后就可以开启cmd(cmd)，组装pydub:

```
　　pipinstallpydub
```

　　将多带带mp3影音文件转化成wav音频文件格式：

```
　　frompydubimportAudioSegment
　　deftrans_mp3_to_wav(filepath):
　　"""
　　将mp3文件转化为wav格式
　　Args:
　　filepath(str):目标文件夹
　　"""
　　song=AudioSegment.from_mp3(filepath)
　　filename=filepath.split(".")[0]
　　song.export(f"{filename}.wav",format="wav")
```

　　微信公众平台里编码字体样式实在太大了，甚至有的时候并没有高亮度温馨提醒，这儿多提供了一个图片版编码（相同）:

![01.png](https://ucloud-blog.cn-bj.ufileos.com/articles/129042/images/129042_000.png)

　　还可以继续封装形式该函数公式，将多带带mp3文件转化为随意别的歌曲音频文件格式：

```
　　from pydub import AudioSegment
　　def trans_mp3_to_any_audio(filepath,audio_type):
　　"""
　　将mp3文件转化为随意音频文件格式
　　Args:
　　filepath(str):目标文件夹
　　audio_type(str):文件类型
　　"""
　　song=AudioSegment.from_mp3(filepath)
　　filename=filepath.split(".")[0]
　　song.export(f"{filename}.{audio_type}",format=f"{audio_type}")
```

　　图片版编码：

![02.png](https://ucloud-blog.cn-bj.ufileos.com/articles/129042/images/129042_001.png)

　　如ogg格式：

```
　　trans_mp3_to_any_audio("Alone.mp3","ogg")
```

　　只需是ffmpeg适用的歌曲音频文件格式，它都能够变换，认可的文件格式将近很多，下面我就简易列某些：

![03.png](https://ucloud-blog.cn-bj.ufileos.com/articles/129042/images/129042_002.png)

　　3.更为通用转换函数

　　刚是mp3转随意音频文件格式，希望将它写出随意音频文件格式转随意音频文件格式：

```
　　frompydubimportAudioSegment
　　deftrans_any_audio_types(filepath,input_audio_type,output_audio_type):
　　"""
　　将随意音频文件格式转化成随意音频文件格式
　　Args:
　　filepath(str):目标文件夹
　　input_audio_type(str):键入音频文件格式
　　output_audio_type(str):导出来音频文件格式
　　"""
　　song=AudioSegment.from_file(filepath,input_audio_type)
　　filename=filepath.split(".")[0]
　　song.export(f"{filename}.{output_audio_type}",format=f"{output_audio_type}")
　　图片版编码：
　　例如将ogg歌曲音频文件格式转化成flv音乐音频文件格式：
　　trans_any_audio_types("Alone.ogg","ogg","flv")
　　或是MP4文件格式，总而言之，一般说来你想要的文件格式它可以满足。
　　trans_any_audio_types("Alone.ogg","ogg","mp4")
```

![04.png](https://ucloud-blog.cn-bj.ufileos.com/articles/129042/images/129042_003.png)

      4.大批量转换音频文件格式

```
　　如今，试着将一个文件夹中的所有非mp3音频文件格式的文件转化为mp3音频文件格式：
　　deftrans_all_file(files_path,target="mp3"):
　　"""
　　大批量转换声频音频格式
　　Args:
　　files_path(str):文件夹路径
　　target(str,optional):总体目标音频格式.Defaultsto"mp3".
　　"""
　　forfilepathinos.listdir(files_path):
　　#途径解决
　　modpath=os.path.dirname(os.path.abspath(sys.argv[0]))
　　datapath=os.path.join(modpath,files_path+filepath)
　　#切分为文件名字和后缀名并加载文档
　　input_audio=os.path.splitext(datapath)
　　song=AudioSegment.from_file(datapath,input_audio[-1].split(".")[-1])
　　#导出来
　　song.export(f"{input_audio[0]}.{target}",format=target)
```

　　图片版编码：

![05.png](https://ucloud-blog.cn-bj.ufileos.com/articles/129042/images/129042_004.png)

　　只需键入文件名，就可以了所有转换该文件夹中的歌曲文件类型为mp3文件格式：

```
　　trans_all_file("F:push20200607music")
```

     综上所述，这篇文章就给大家介绍到这里了，希望可以给大家带来帮助。