Maison >développement back-end >Tutoriel Python >Comment utiliser la bibliothèque de traitement audio Python pydub
utilisez simplement pip (vous devez également installer les dépendances ffmpeg, il est recommandé d'utiliser le conda commande pour installer, puis Pas besoin de configurer l'environnement) :
pip install pydub
from pydub import AudioSegment audio = AudioSegment.from_file("path/to/file")
from pydub.playback import play play(audio)
duration = audio.duration_seconds # 单位为秒
# 前10秒 audio = audio[:10000] # 后10秒 audio = audio[-10000:] # 从第10秒开始到第20秒结束 audio = audio[10000:20000] # 从第10秒开始到结尾 audio = audio[10000:] # 从开始到第10秒audio = audio[:10000]
audio1 = AudioSegment.from_file("path/to/file1") audio2 = AudioSegment.from_file("path/to/file2") audio_combined = audio1 + audio2
audio.export("path/to/new/file", format="mp3")
# 增加10分贝 louder_audio = audio + 10 # 减小10分贝 quieter_audio = audio - 10
# 等分分割,按大概每三分钟进行分割 for i in range(1, 1000): if 3.3 >= (audio.duration_seconds / (60 * i)) >= 2.8: number = i break chunks = audio[::int(audio.duration_seconds / number * 1000 + 1)] # 切割 # 保存分割后的音频 for i, chunk in enumerate(chunks): chunk.export("path/to/new/file{}.wav".format(title,i), format="wav")2.
from pydub import AudioSegment # 读取音频文件 audio = AudioSegment.from_file("path/to/file") # 输出视频时长 print('视频时长:', audio.duration_seconds / 60) # 前后切割 start = int(input('前切割n秒,不切割输入0'))*1000 end = int(input('后切割n秒,不切割输入0'))*1000 if start: audio = audio[start:-end] # 计算合适的分割长度 for i in range(1, 1000): if 3.3 >= (audio.duration_seconds / (60 * i)) >= 2.8: number = i break chunks = audio[::int(audio.duration_seconds / number * 1000 + 1)] # 保存分割后的音频 for i, chunk in enumerate(chunks): print('分割后的时长:', chunk.duration_seconds / 60) chunk.export("path/to/new/file{}.wav".format(i), format="wav")
from pydub import AudioSegment # 读取音频文件 audio = AudioSegment.from_file("path/to/file") # 转换为mp3格式并保存 audio.export("path/to/new/file.mp3", format="mp3")Cas : divisez les chansons en audio en identifiant les sons vides
from pydub import AudioSegment # 读取音频文件 audio1 = AudioSegment.from_file("path/to/file1") audio2 = AudioSegment.from_file("path/to/file2") # 合并音频文件并保存 combined_audio = audio1 + audio2 combined_audio.export("path/to/new/file", format="wav")
Enfin, nous utilisons la méthode split_on_silence() pour diviser le fichier audio, définir les paramètres de division et ajuster en continu le seuil de silence via une boucle jusqu'à ce que le nombre de segments segmentés réponde aux attentes. Si la division réussit, sortez de la boucle ; sinon, continuez à essayer.
En bref, pydub est une bibliothèque de traitement audio très pratique qui peut facilement effectuer du traitement audio, de la conversion, de la fusion et d'autres opérations. Dans le même temps, pydub propose également de riches scénarios d'application, tels que la création de sonneries, le réglage du volume, etc. Il convient de noter que lorsque vous utilisez pydub, vous devez faire attention aux problèmes de compatibilité des formats audio. De plus, vous pouvez également effectuer des opérations telles que l'encodage, le décodage, le mixage et le rééchantillonnage de l'audio via pydub. Vous trouverez ci-dessous quelques exemples courants d'opérations.codage, mixage, rééchantillonnage
1. Codecfrom pydub import AudioSegment # 读取音频文件 audio = AudioSegment.from_file("path/to/file") # 切割并保存 start = 10000 end = 15000 ringtone = audio[start:end] ringtone.export("path/to/new/file", format="mp3")2. 🎜🎜#3. Rééchantillonnage
from pydub import AudioSegment # 读取音频文件 audio = AudioSegment.from_file("path/to/file") # 增加10分贝 louder_audio = audio + 10 # 减小10分贝 quieter_audio = audio - 10 # 保存调整后的音频 louder_audio.export("path/to/new/file", format="wav") quieter_audio.export("path/to/new/file", format="wav")Grâce à pydub, nous pouvons facilement effectuer l'encodage, le décodage, le mixage, le rééchantillonnage et d'autres opérations, élargissant ainsi les scénarios d'application de pydub. Il convient de noter que lors des opérations de mixage audio, il est nécessaire de s'assurer que le taux d'échantillonnage, le nombre de bits d'échantillonnage et le nombre de canaux des deux fichiers audio sont identiques. Enfin, résumons les avantages et les inconvénients de pydub. Avantages : Léger : pydub est une bibliothèque de traitement audio légère, facile à installer et simple à utiliser. Fonctions riches : pydub fournit une multitude de fonctions de traitement audio, notamment le découpage, la fusion, la conversion, le réglage du volume, l'encodage et le décodage, le mixage, le rééchantillonnage, etc. Large application : pydub propose un large éventail de scénarios d'application, notamment le traitement audio, la production de sonneries, la conversion de format audio, la reconnaissance vocale, etc. Inconvénients : Compatibilité limitée avec les formats : pydub a une compatibilité limitée avec les formats audio et ne prend pas en charge tous les formats audio. L'audio doit d'abord être converti dans un format pris en charge. peut être traité ultérieurement. Performances médiocres : Lorsque pydub gère des fichiers volumineux, ses performances peuvent être moyennes, ce qui nécessite un certain temps et des ressources informatiques. Ne prend pas en charge le streaming : pydub ne prend pas en charge le streaming et l'intégralité du fichier audio doit être lue en mémoire, ce qui entraîne une empreinte mémoire importante. Pour résumer, pydub est une bibliothèque de traitement audio riche en fonctionnalités et largement utilisée. Lorsque vous utilisez pydub, vous devez faire attention aux problèmes de compatibilité des formats audio, ainsi qu'aux performances et à l'utilisation de la mémoire lors du traitement de fichiers volumineux. Si vous devez gérer des tâches audio plus complexes, vous pouvez envisager d'utiliser d'autres bibliothèques de traitement audio plus professionnelles.
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!