>  기사  >  백엔드 개발  >  여러 음악 형식의 일괄 변환에 대한 Python 실습 튜토리얼

여러 음악 형식의 일괄 변환에 대한 Python 실습 튜토리얼

WBOY
WBOY앞으로
2023-04-12 12:16:141780검색

여러 음악 형식의 일괄 변환에 대한 Python 실습 튜토리얼

Pydub은 ffmpeg 기반의 Python 오디오 처리 모듈입니다. 이는 많은 ffmpeg 기본 인터페이스를 캡슐화하므로 음악 및 노래 파일 형식을 변환하는 데 사용하는 것이 매우 편리합니다.

이전 기사를 읽어보셨다면 Pydub이 얼마나 강력한지 아실 겁니다.

오늘은 거의 모든 음악 오디오 형식을 지원하는 음악 파일 형식 변환 기능을 소개하겠습니다. 정말 대단합니다.

1. 설치

Pydub을 설치하기 전에 먼저 ffmpeg를 설치해야 합니다:

(선택 사항) Mac(터미널을 열고 homebrew로 설치):

brew install ffmpeg --with-libvorbis --with-sdl2 --with-theora

(선택 사항 2) Linux:

apt-get install ffmpeg libavcodec-extra

(선택 사항 3개) Windows:

1. http://ffmpeg.org/download.html#build-windows를 입력하고 창에 해당하는 아이콘을 클릭한 다음 다운로드 인터페이스로 들어가서 다운로드 버튼을 클릭합니다.

2. 다운로드한 zip 파일을 지정된 디렉터리에 압축을 푼다.

3. 압축이 풀린 파일 디렉터리의 bin 디렉터리(ffmpeg.exe 포함)를 경로 환경 변수에 추가합니다.

(필수) 위의 ffmpeg 설치 단계를 성공적으로 수행한 후 명령 프롬프트(cmd) 또는 터미널(터미널)을 열고 pydub:

pip install pydub

2를 설치할 수 있습니다. mp3를 wav 또는 기타 형식으로 변환

Convert 단일 mp3 오디오 파일을 wav 오디오 형식으로 변환:

from pydub import AudioSegment
def trans_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")

이 함수를 계속 캡슐화하여 단일 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}")

ogg 형식과 같은:

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

ffmpeg에서 지원하는 음악 오디오 형식입니다. 변환이 가능하며 아래에 몇 가지 형식을 간략히 나열하겠습니다. ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ

apemp2

aiff

voc

au

3. 更加通用的转换函数

刚刚是mp3转任意音频格式,我希望把它写成任意音频格式转任意音频格式:

from pydub import AudioSegment
def trans_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")

4. 批量转化音频格式

现在,尝试将一个文件夹下的所有非mp3音频格式的文件转化为mp3音频格式:

def trans_all_file(files_path, target="mp3"):
 """
 批量转化音频音乐格式
 Args:
 files_path (str): 文件夹路径
 target (str, optional): 目标音乐格式. Defaults to "mp3".
 """
 for filepath in os.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)

只要输入文件夹名称,即可全部转化该文件夹下的音乐文件格式为mp3格式:

trans_all_file("F:\push\20200607\music\")

看了我们今天的教程,学会这招后,你再也不用担心格式之间的转化问题,通过使用 pydub模块你能轻易地解决这些问题。如果本篇文章对你有帮助,请在文末点个赞在看支持一下哦。

위 내용은 여러 음악 형식의 일괄 변환에 대한 Python 실습 튜토리얼의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 51cto.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제