Maison  >  Article  >  développement back-end  >  Comment utiliser la bibliothèque de traitement audio Python pydub

Comment utiliser la bibliothèque de traitement audio Python pydub

WBOY
WBOYavant
2023-05-06 11:58:061945parcourir

    1. Installez

    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

    2 Importer et lire des fichiers audio

    from pydub import AudioSegment
    audio = AudioSegment.from_file("path/to/file")

    3. #4. Durée audio# 🎜🎜#
    from pydub.playback import play
    play(audio)

    5. Découpe audio

    duration = audio.duration_seconds # 单位为秒

    6. Fusion audio

    # 前10秒
    audio = audio[:10000]
    
    # 后10秒
    audio = audio[-10000:]
    
    # 从第10秒开始到第20秒结束
    audio = audio[10000:20000]
    
    # 从第10秒开始到结尾
    audio = audio[10000:]
    
    # 从开始到第10秒audio = audio[:10000]

    7. 🎜🎜#8. Réglage du volume

    audio1 = AudioSegment.from_file("path/to/file1")
    audio2 = AudioSegment.from_file("path/to/file2")
    audio_combined = audio1 + audio2

    9. Divisez l'audio de manière égale

    audio.export("path/to/new/file", format="mp3")

    10. Code complet

    Ce qui suit est un code complet pour. traitement de l'audio avant et après Couper et diviser l'audio en segments de longueur appropriée pour la sauvegarde.

    # 增加10分贝
    louder_audio = audio + 10
    
    # 减小10分贝
    quieter_audio = audio - 10

    Application Case

    1 Convertissez les fichiers audio aux formats spécifiés

    # 等分分割,按大概每三分钟进行分割
    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.

    3. Créez des sonneries

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

    4. Ajustez le volume audio

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

    Tout d'abord, nous utilisons la méthode AudioSegment.from_file() pour lire le fichier audio et définissons les paramètres de segmentation min_silence_len, silence_thresh et keep_silence pour représenter respectivement la longueur minimale du silence, le seuil de silence et la longueur du silence conservé. Parmi eux, plus le seuil de silence est petit, plus les petits segments seront segmentés, mais une mauvaise segmentation peut se produire ; à l'inverse, plus le seuil de silence est grand, moins de segments seront segmentés, mais une segmentation manquée peut se produire ;

    Ensuite, nous calculons le nombre de divisions num_segments, c'est-à-dire en combien de segments le fichier audio est divisé. Ici, nous supposons que chaque chanson dure environ trois minutes et calculons en combien de segments elle doit être divisée.

    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. Codec

    from 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!

    Déclaration:
    Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer