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

Comment utiliser la bibliothèque de traitement audio Python pydub

WBOY
Libérer: 2023-05-06 11:58:06
avant
2063 Les gens l'ont consulté

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

    2 Importer et lire des fichiers audio

    from pydub import AudioSegment
    audio = AudioSegment.from_file("path/to/file")
    Copier après la connexion

    3. #4. Durée audio# 🎜🎜#
    from pydub.playback import play
    play(audio)
    Copier après la connexion

    5. Découpe audio

    duration = audio.duration_seconds # 单位为秒
    Copier après la connexion

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

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

    audio1 = AudioSegment.from_file("path/to/file1")
    audio2 = AudioSegment.from_file("path/to/file2")
    audio_combined = audio1 + audio2
    Copier après la connexion

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

    audio.export("path/to/new/file", format="mp3")
    Copier après la connexion

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

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

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

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

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

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

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

    Étiquettes associées:
    source:yisu.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