wideband 发表于 2023-3-6 14:43:38

Python 实现MP3格式转换: 同MAC上音频转换软件 Permute 的MP3格式

有几个 非标准MP3格式的 语音文件,目前需要使用 MAC上音频转换软件 Permute 来转换成标准的 MP3格式。

如果使用Python来实现此功能,如何使用 Python 实现? 谢谢!

isdkz 发表于 2023-3-6 14:43:39

wideband 发表于 2023-3-6 16:01
谢谢您! 但是还有问题:
另外,此语句不是已经表示mp5文件夹内的 音频文件进行 一此操作吗?fs5 =



我前面有跟你说了要下载 ffmpeg,然后你要么加环境变量,要么把这两个文件放到你的python执行文件目录下



isdkz 发表于 2023-3-6 14:55:00

本帖最后由 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格式文件的路径。

wideband 发表于 2023-3-6 15:20:29

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 =

isdkz 发表于 2023-3-6 15:35:22

wideband 发表于 2023-3-6 15:20
谢谢!把E盘 mp5文件夹内,非标准MP3格式转换成标准的 MP3,存储到E:\mp55

还是有些错误:


报什么错?

wideband 发表于 2023-3-6 15:41:08

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

wideband 发表于 2023-3-6 15:42:41

isdkz 发表于 2023-3-6 15:35
报什么错?

谢谢您的支持!

isdkz 发表于 2023-3-6 15:50:31

本帖最后由 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]

wideband 发表于 2023-3-6 16:01:14

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

isdkz 发表于 2023-3-6 16:27:21

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]

isdkz 发表于 2023-3-6 16:28:18

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]

isdkz 发表于 2023-3-6 16:28:46

wideband 发表于 2023-3-6 16:01
谢谢您! 但是还有问题:
另外,此语句不是已经表示mp5文件夹内的 音频文件进行 一此操作吗?fs5 =



还有你要安装 ffmpeg,你那个报错就是因为你没有装,不要用 pip 装

wideband 发表于 2023-3-6 20:30:34

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]

wideband 发表于 2023-3-8 09:13:15

设置python 环境变量: 系统变量

PATH = %SystemRoot%
PATH = E:\python\ffmpeg-6.0-full_build\bin
页: [1]
查看完整版本: Python 实现MP3格式转换: 同MAC上音频转换软件 Permute 的MP3格式