Heim  >  Artikel  >  Backend-Entwicklung  >  Praktisches Python-Tutorial zur Stapelkonvertierung mehrerer Musikformate

Praktisches Python-Tutorial zur Stapelkonvertierung mehrerer Musikformate

WBOY
WBOYnach vorne
2023-04-12 12:16:141736Durchsuche

Praktisches Python-Tutorial zur Stapelkonvertierung mehrerer Musikformate

Pydub ist ein Python-Audioverarbeitungsmodul, das auf ffmpeg basiert. Es kapselt viele zugrunde liegende ffmpeg-Schnittstellen und ist daher sehr praktisch zum Konvertieren von Musik- und Songdateiformaten.

Wenn Sie unsere vorherigen Artikel gelesen haben, wissen Sie, wie leistungsstark Pydub ist.

Heute stelle ich Ihnen die Funktion zur Konvertierung von Musikdateiformaten vor. Sie unterstützt fast alle Musik-Audioformate, was sehr großartig ist.

1. Installieren

Bevor Sie Pydub installieren, müssen Sie zuerst ffmpeg installieren:

(optional) Mac (Terminal öffnen und mit Homebrew installieren):

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

(optional zwei) Linux:

apt-get install ffmpeg libavcodec-extra

(optional drei) Windows:

1. Geben Sie http://ffmpeg.org/download.html#build-windows ein, klicken Sie auf das Symbol für Windows, rufen Sie die Download-Oberfläche auf und klicken Sie auf die Download-Schaltfläche.

2. Entpacken Sie die heruntergeladene ZIP-Datei in das angegebene Verzeichnis.

3. Fügen Sie das bin-Verzeichnis (einschließlich ffmpeg.exe) im dekomprimierten Dateiverzeichnis zur Pfadumgebungsvariablen hinzu.

(erforderlich) Nachdem Sie die oben genannten ffmpeg-Installationsschritte erfolgreich ausgeführt haben, können Sie die Eingabeaufforderung (cmd) oder das Terminal (Terminal) öffnen und pydub:

pip install pydub

2 installieren. MP3 in WAV oder andere Formate konvertieren

Konvertieren einzelnes MP3-Audio Konvertieren Sie die Datei in das WAV-Audioformat:

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")

Sie können diese Funktion weiterhin kapseln, um eine einzelne MP3-Datei in ein beliebiges anderes Musik-Audioformat zu konvertieren:

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}")

Wie zum Beispiel das Ogg-Format:

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

Solange es ist ein Musik-Audioformat, das von ffmpeg unterstützt wird. Es kann konvertiert werden und unterstützt Dutzende von Formaten. Ich werde einige unten kurz auflisten:

wav

avi

mp4

flv

ogg

flac

ape

mp2

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模块你能轻易地解决这些问题。如果本篇文章对你有帮助,请在文末点个赞在看支持一下哦。

Das obige ist der detaillierte Inhalt vonPraktisches Python-Tutorial zur Stapelkonvertierung mehrerer Musikformate. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:51cto.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen