Maison > développement back-end > Tutoriel Python > Tutoriel pratique Python sur la conversion par lots de plusieurs formats de musique

Tutoriel pratique Python sur la conversion par lots de plusieurs formats de musique

WBOY
Libérer: 2023-04-12 12:16:14
avant
1828 Les gens l'ont consulté

Tutoriel pratique Python sur la conversion par lots de plusieurs formats de musique

Pydub est un module de traitement audio Python basé sur ffmpeg. Il encapsule de nombreuses interfaces sous-jacentes à ffmpeg, il est donc très pratique de l'utiliser pour convertir les formats de fichiers de musique et de chansons.

Si vous avez lu nos articles précédents, vous savez à quel point Pydub est puissant.

Aujourd'hui, je vais vous présenter sa fonction de conversion de format de fichier musical. Elle prend en charge presque tous les formats audio musicaux, ce qui est vraiment génial.

1. Installer

Avant d'installer Pydub, vous devez d'abord installer ffmpeg :

(facultatif) Mac (ouvrez le terminal et installez avec homebrew) :

brew install ffmpeg --with-libvorbis --with-sdl2 --with-theora
Copier après la connexion

(deux facultatifs) Linux :

apt-get install ffmpeg libavcodec-extra
Copier après la connexion

(trois facultatifs) Windows :

1. Entrez http://ffmpeg.org/download.html#build-windows, cliquez sur l'icône correspondant à Windows, entrez dans l'interface de téléchargement et cliquez sur le bouton de téléchargement.

2. Décompressez le fichier zip téléchargé dans le répertoire spécifié.

3. Ajoutez le répertoire bin (y compris ffmpeg.exe) dans le répertoire du fichier décompressé à la variable d'environnement path.

(obligatoire) Après avoir suivi avec succès les étapes d'installation de ffmpeg ci-dessus, vous pouvez ouvrir l'invite de commande (cmd) ou le terminal (Terminal) et installer pydub:

pip install pydub
Copier après la connexion

2 Convertir mp3 en wav ou en d'autres formats

Convertir. audio mp3 unique Convertissez le fichier au format audio 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")
Copier après la connexion

Vous pouvez continuer à encapsuler cette fonction pour convertir un seul fichier mp3 en n'importe quel autre format audio musical :

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}")
Copier après la connexion

Tel que le format ogg :

trans_mp3_to_any_audio("Alone.mp3", "ogg")
Copier après la connexion

Tant qu'il est un format audio musical pris en charge par ffmpeg, il peut être converti et prend en charge des dizaines de formats. J'en énumérerai brièvement quelques-uns ci-dessous :

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}")
Copier après la connexion

比如将ogg音乐音频格式转化为flv音乐音频格式:

trans_any_audio_types("Alone.ogg", "ogg", "flv")
Copier après la connexion

或者MP4格式,总之,一般你需要的格式它都能满足。

trans_any_audio_types("Alone.ogg", "ogg", "mp4")
Copier après la connexion

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)
Copier après la connexion

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

trans_all_file("F:\push\20200607\music\")
Copier après la connexion

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

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:51cto.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal