Python 实现MP3格式转换: 同MAC上音频转换软件 Permute 的MP3格式
有几个 非标准MP3格式的 语音文件,目前需要使用 MAC上音频转换软件 Permute 来转换成标准的 MP3格式。如果使用Python来实现此功能,如何使用 Python 实现? 谢谢! wideband 发表于 2023-3-6 16:01
谢谢您! 但是还有问题:
另外,此语句不是已经表示mp5文件夹内的 音频文件进行 一此操作吗?fs5 =
我前面有跟你说了要下载 ffmpeg,然后你要么加环境变量,要么把这两个文件放到你的python执行文件目录下
本帖最后由 isdkz 于 2023-3-6 14:58 编辑
你可以使用Python中的pydub库来实现音频文件格式转换。以下是一些代码示例,它将读取非标准MP3格式的音频文件并将其转换为标准MP3格式。
首先,你需要安装pydub库。你可以使用以下命令在终端中安装它:
pip install pydub
你还要安装 ffmpeg,安装 ffmpeg 在 Mac 上有几种方法:
一、使用包管理器,如 Homebrew 或 MacPorts,来安装 ffmpeg。这些会自动更新你的 ffmpeg 安装。
二、下载一个静态构建的二进制文件。这很简单,只需解压并运行下载的文件。
三、手动安装 ffmpeg 和 ffprobe。你需要从 https://ffmpeg.org/download.html 下载 ffmpeg 和 ffprobe,并将它们移动到正确的位置。你需要授权 ffmpeg 和 ffprobe 可以在你的电脑上运行。
然后,你可以使用以下代码将非标准MP3格式的音频文件转换为标准MP3格式:
from pydub import AudioSegment
# 读取非标准MP3格式的音频文件
audio = AudioSegment.from_file("path/to/non-standard-audio-file", format="your_non_standard_audio_format")
# 将音频文件转换为标准MP3格式
audio.export("path/to/standard-mp3-file.mp3", format="mp3")
你需要将 "path/to/non-standard-audio-file" 替换为你要转换的非标准MP3格式音频文件的路径。
你还需要将 "your_non_standard_audio_format" 替换为非标准音频文件的格式(例如,如果文件扩展名为 .wav,则格式为 "wav")。
最后,你需要将 "path/to/standard-mp3-file.mp3" 替换为你要将音频文件转换为的标准MP3格式文件的路径。 isdkz 发表于 2023-3-6 14:55
你可以使用Python中的pydub库来实现音频文件格式转换。以下是一些代码示例,它将读取非标准MP3格式的音频文 ...
谢谢!把E盘 mp5文件夹内,非标准MP3格式转换成标准的 MP3,存储到E:\mp55
还是有些错误:
#把E盘 mp5文件夹内,非标准MP3格式转换成标准的 MP3,存储到E:\mp55
import os
dirname = os.path.join('E:', '\mp5')
from pydub import AudioSegment
fs5 =
wideband 发表于 2023-3-6 15:20
谢谢!把E盘 mp5文件夹内,非标准MP3格式转换成标准的 MP3,存储到E:\mp55
还是有些错误:
报什么错? WIN10系统, 我直接安装了:pip install pydub 和 pip install ffmpeg
#把E盘 mp5文件夹内,非标准MP3格式转换成标准的 MP3,存储到E:\mp55
import os
dirname = os.path.join('E:', '\mp5')
from pydub import AudioSegment
fs5 =
Warning (from warnings module):
File "C:\Users\Administrator\AppData\Local\Programs\Python\Python36\lib\site-packages\pydub\utils.py", line 170
warn("Couldn't find ffmpeg or avconv - defaulting to ffmpeg, but may not work", RuntimeWarning)
RuntimeWarning: Couldn't find ffmpeg or avconv - defaulting to ffmpeg, but may not work
Traceback (most recent call last):
File "E:/mp5/36 mp3 format.py", line 9, in <module>
File "E:/mp5/36 mp3 format.py", line 9, in <listcomp>
NameError: name 'audio' is not defined isdkz 发表于 2023-3-6 15:35
报什么错?
谢谢您的支持! 本帖最后由 isdkz 于 2023-3-6 16:15 编辑
wideband 发表于 2023-3-6 15:42
谢谢您的支持!
#把E盘 mp5文件夹内,非标准MP3格式转换成标准的 MP3,存储到E:\mp55
import os
dirname = os.path.join('E:', '\mp5')
from pydub import AudioSegment
fs5 =
).export("E:\mp55", format="mp3") for i in fs5] isdkz 发表于 2023-3-6 15:50
谢谢您! 但是还有问题:
另外,此语句不是已经表示mp5文件夹内的 音频文件进行 一此操作吗?fs5 =
Warning (from warnings module):
File "C:\Users\Administrator\AppData\Local\Programs\Python\Python36\lib\site-packages\pydub\utils.py", line 170
warn("Couldn't find ffmpeg or avconv - defaulting to ffmpeg, but may not work", RuntimeWarning)
RuntimeWarning: Couldn't find ffmpeg or avconv - defaulting to ffmpeg, but may not work
Traceback (most recent call last):
File "E:/mp5/36 mp3 format.py", line 11, in <module>
).export("E:\mp55", format="mp3") for i in fs5]
File "E:/mp5/36 mp3 format.py", line 11, in <listcomp>
).export("E:\mp55", format="mp3") for i in fs5]
File "C:\Users\Administrator\AppData\Local\Programs\Python\Python36\lib\site-packages\pydub\audio_segment.py", line 651, in from_file
file, close_file = _fd_or_path_or_tempfile(file, 'rb', tempfile=False)
File "C:\Users\Administrator\AppData\Local\Programs\Python\Python36\lib\site-packages\pydub\utils.py", line 60, in _fd_or_path_or_tempfile
wideband 发表于 2023-3-6 16:01
谢谢您! 但是还有问题:
另外,此语句不是已经表示mp5文件夹内的 音频文件进行 一此操作吗?fs5 =
这个是找不到 ffmpeg,你没有安装 ffmpeg,不是用 pip 安装
https://ffmpeg.org/download.html 你在这个网址下载,然后把那个 bin 目录加入环境变量 path
我又改了一下你的那个代码(路径你自己改一下):
#把E盘 mp5文件夹内,非标准MP3格式转换成标准的 MP3,存储到E:\mp55
import os
dirname = 'mp5'
from pydub import AudioSegment
fs5 =
).export(f"mp55/{i.rsplit('.', 1)}.mp3", format="mp3") for i in fs5]
wideband 发表于 2023-3-6 16:01
谢谢您! 但是还有问题:
另外,此语句不是已经表示mp5文件夹内的 音频文件进行 一此操作吗?fs5 =
代码我又改了一下:
#把E盘 mp5文件夹内,非标准MP3格式转换成标准的 MP3,存储到E:\mp55
import os
dirname = 'mp5'
from pydub import AudioSegment
fs5 =
).export(f"mp55/{i.rsplit('.', 1)}.mp3", format="mp3") for i in fs5]
wideband 发表于 2023-3-6 16:01
谢谢您! 但是还有问题:
另外,此语句不是已经表示mp5文件夹内的 音频文件进行 一此操作吗?fs5 =
还有你要安装 ffmpeg,你那个报错就是因为你没有装,不要用 pip 装 ok
import os
dirname = 'E:\\mp5\\'
from pydub import AudioSegment
fs5 =
).export(f"E:/mp55/{i.rsplit('.', 1)}.mp3", format="mp3") for i in fs5]
设置python 环境变量: 系统变量
PATH = %SystemRoot%
PATH = E:\python\ffmpeg-6.0-full_build\bin
页:
[1]