cari
Rumahpembangunan bahagian belakangTutorial PythonCara menggunakan pydub pustaka pemprosesan audio Python

    1.Pemasangan

    Hanya gunakan pip untuk memasang (kebergantungan ffmpeg juga perlu dipasang, disyorkan untuk menggunakan arahan conda untuk memasang, anda tidak perlu mengkonfigurasi persekitaran):

    pip install pydub

    2 Import dan baca fail audio

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

    3 Mainkan audio

    from pydub.playback import play
    play(audio)

    Tempoh audio

    rreee

    5. Pemotongan audio

    duration = audio.duration_seconds # 单位为秒

    6 Penggabungan audio

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

    7 Penukaran audio

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

    8 kepada bahagian yang sama

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

    10. Kod lengkap

    Berikut ialah kod lengkap yang digunakan untuk memotong audio sebelum dan selepas, dan membahagikan audio kepada segmen kecil dengan panjang yang sesuai untuk disimpan.

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

    Kes aplikasi

    1 Tukar fail audio kepada format yang ditentukan

    # 等分分割,按大概每三分钟进行分割
    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 Gabungkan berbilang fail audio ke dalam satu fail

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

    3

    from pydub import AudioSegment
    
    # 读取音频文件
    audio = AudioSegment.from_file("path/to/file")
    
    # 转换为mp3格式并保存
    audio.export("path/to/new/file.mp3", format="mp3")

    4. Laraskan kelantangan audio

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

    Kes: Pisahkan lagu dalam audio dengan mengenal pasti bunyi kosong

    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")
    Pertama, kami Gunakan Segmen Audio. kaedah from_file() untuk membaca fail audio, dan tetapkan parameter pembahagian min_silence_len, silence_thresh dan keep_silence masing-masing untuk mewakili panjang senyap minimum, ambang senyap dan panjang senyap dikekalkan. Antaranya, semakin kecil ambang senyap, semakin banyak segmen kecil akan dibahagikan, tetapi pembahagian yang salah mungkin berlaku, sebaliknya, semakin besar ambang senyap, semakin sedikit segmen yang akan dibahagikan, tetapi pembahagian yang terlepas mungkin berlaku.

    Kemudian, kami mengira bilangan bahagian num_segmen, iaitu, berapa banyak segmen fail audio dibahagikan. Di sini kita mengandaikan bahawa setiap lagu adalah kira-kira tiga minit, dan mengira berapa banyak segmen yang perlu dibahagikan kepada.

    Akhir sekali, kami menggunakan kaedah split_on_silence() untuk membelah fail audio, menetapkan parameter pisah dan melaraskan ambang senyap secara berterusan melalui gelung sehingga bilangan segmen tersegmen memenuhi jangkaan. Jika perpecahan berjaya, lompat keluar dari gelung jika tidak, teruskan mencuba.

    Ringkasnya, pydub ialah perpustakaan pemprosesan audio yang sangat praktikal yang boleh melakukan pemprosesan audio, penukaran, penggabungan dan operasi lain dengan mudah. Pada masa yang sama, pydub juga mempunyai senario aplikasi yang kaya, seperti membuat nada dering, melaraskan kelantangan, dsb. Perlu diingat bahawa apabila menggunakan pydub, anda perlu memberi perhatian kepada isu keserasian format audio.

    Selain itu, anda juga boleh melakukan operasi seperti pengekodan, penyahkodan, pencampuran dan pensampelan semula audio melalui pydub. Di bawah adalah beberapa contoh biasa operasi.

    Pengekodan, Pencampuran, Pensampelan Semula

    1. Codec

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

    2

    Melalui pydub, kami boleh melakukan pengekodan audio, penyahkodan, pencampuran, pensampelan semula dan operasi lain dengan mudah, seterusnya mengembangkan senario aplikasi pydub. Perlu diingat bahawa semasa menjalankan operasi pencampuran audio, adalah perlu untuk memastikan bahawa kadar pensampelan, bilangan bit pensampelan dan bilangan saluran bagi kedua-dua fail audio adalah sama.

    Akhir sekali, mari kita ringkaskan kelebihan dan kekurangan pydub.

    Kelebihan:

    Ringan: pydub ialah perpustakaan pemprosesan audio ringan yang mudah dipasang dan digunakan.

    Fungsi yang kaya: pydub menyediakan pelbagai fungsi pemprosesan audio, termasuk memotong, menggabungkan, menukar, melaraskan volum, pengekodan dan penyahkodan, pencampuran, pensampelan semula, dsb.

    Aplikasi luas: pydub mempunyai pelbagai senario aplikasi, termasuk pemprosesan audio, pengeluaran nada dering, penukaran format audio, pengecaman pertuturan, dsb.

    Kelemahan:

    Keserasian terhad dengan format: pydub mempunyai keserasian terhad dengan format audio dan tidak menyokong semua format audio Audio perlu ditukar kepada format yang disokong sebelum memproses .

    Prestasi biasa-biasa: Apabila pydub memproses fail besar, prestasinya mungkin purata, memerlukan masa dan sumber pengkomputeran tertentu.

    Tidak menyokong penstriman: pydub tidak menyokong penstriman, dan keseluruhan fail audio perlu dibaca ke dalam memori, menghasilkan jejak memori yang besar.

    Ringkasnya, pydub ialah perpustakaan pemprosesan audio yang kaya dengan ciri dan digunakan secara meluas. Apabila menggunakan pydub, anda perlu memberi perhatian kepada isu keserasian format audio, dan memberi perhatian kepada prestasi dan penggunaan memori semasa memproses fail besar. Jika anda perlu mengendalikan tugas audio yang lebih kompleks, anda boleh mempertimbangkan untuk menggunakan perpustakaan pemprosesan audio lain yang lebih profesional.

    Atas ialah kandungan terperinci Cara menggunakan pydub pustaka pemprosesan audio Python. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

    Kenyataan
    Artikel ini dikembalikan pada:亿速云. Jika ada pelanggaran, sila hubungi admin@php.cn Padam
    Apakah beberapa operasi biasa yang boleh dilakukan pada tatasusunan python?Apakah beberapa operasi biasa yang boleh dilakukan pada tatasusunan python?Apr 26, 2025 am 12:22 AM

    PythonArraysSupportVariousoperations: 1) SlicingExtractsSubsets, 2) Menambah/ExtendingAddSelements, 3) InsertingPlaceSelementSatSatSatSpecifics, 4) RemovingDeleteselements, 5) Sorting/ReversingChangesOrder,

    Dalam jenis aplikasi yang biasa digunakan oleh numpy?Dalam jenis aplikasi yang biasa digunakan oleh numpy?Apr 26, 2025 am 12:13 AM

    NumpyarraysareessentialforapplicationRequiringeficientnumericalcomputationsanddatamanipulation.theyarecrucialindaSascience, machinelearning, fizik, kejuruteraan, danfinanceduetotheirabilitytOHandlelarge-Scaledataefisien.Forexample, infinancialanal

    Bilakah anda memilih untuk menggunakan array di atas senarai di Python?Bilakah anda memilih untuk menggunakan array di atas senarai di Python?Apr 26, 2025 am 12:12 AM

    UseanArray.arrayoveralistinpythonwhendealingwithhomogeneousdata, criticalcode prestasi, orinterfacingwithccode.1) homogeneousdata: arrayssavemememorywithtypedelements.2)

    Adakah semua operasi senarai disokong oleh tatasusunan, dan sebaliknya? Mengapa atau mengapa tidak?Adakah semua operasi senarai disokong oleh tatasusunan, dan sebaliknya? Mengapa atau mengapa tidak?Apr 26, 2025 am 12:05 AM

    Tidak, notalllistoperationsaresuportedByArrays, andviceversa.1) arraysdonotsupportdynamicoperationslikeappendorinsertwithoutresizing, whyimpactsperformance.2) listsdonotguaranteeconstantTimeComplexityFordirectacesscesscesscesscesscesscesscesscesscesessd.

    Bagaimana anda mengakses elemen dalam senarai python?Bagaimana anda mengakses elemen dalam senarai python?Apr 26, 2025 am 12:03 AM

    ToaccesselementsinaPythonlist,useindexing,negativeindexing,slicing,oriteration.1)Indexingstartsat0.2)Negativeindexingaccessesfromtheend.3)Slicingextractsportions.4)Iterationusesforloopsorenumerate.AlwayschecklistlengthtoavoidIndexError.

    Bagaimana tatasusunan digunakan dalam pengkomputeran saintifik dengan python?Bagaimana tatasusunan digunakan dalam pengkomputeran saintifik dengan python?Apr 25, 2025 am 12:28 AM

    Arraysinpython, terutamanya yang, arecrucialinscientificificputingputingfortheirefficiencyandversatility.1) mereka yang digunakan untuk

    Bagaimana anda mengendalikan versi python yang berbeza pada sistem yang sama?Bagaimana anda mengendalikan versi python yang berbeza pada sistem yang sama?Apr 25, 2025 am 12:24 AM

    Anda boleh menguruskan versi python yang berbeza dengan menggunakan Pyenv, Venv dan Anaconda. 1) Gunakan pyenv untuk menguruskan pelbagai versi python: Pasang pyenv, tetapkan versi global dan tempatan. 2) Gunakan VENV untuk mewujudkan persekitaran maya untuk mengasingkan kebergantungan projek. 3) Gunakan Anaconda untuk menguruskan versi python dalam projek sains data anda. 4) Simpan sistem python untuk tugas peringkat sistem. Melalui alat dan strategi ini, anda dapat menguruskan versi Python yang berbeza untuk memastikan projek yang lancar.

    Apakah beberapa kelebihan menggunakan array numpy melalui array python standard?Apakah beberapa kelebihan menggunakan array numpy melalui array python standard?Apr 25, 2025 am 12:21 AM

    Numpyarrayshaveseveraladvantagesoverstanderardpythonarrays: 1) thearemuchfasterduetoc-assedimplementation, 2) thearemorememory-efficient, antyedlargedataSets, and3) theyofferoptimized, vectorizedfuncionsformathhematicalicalicalicialisation

    See all articles

    Alat AI Hot

    Undresser.AI Undress

    Undresser.AI Undress

    Apl berkuasa AI untuk mencipta foto bogel yang realistik

    AI Clothes Remover

    AI Clothes Remover

    Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

    Undress AI Tool

    Undress AI Tool

    Gambar buka pakaian secara percuma

    Clothoff.io

    Clothoff.io

    Penyingkiran pakaian AI

    Video Face Swap

    Video Face Swap

    Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

    Alat panas

    Notepad++7.3.1

    Notepad++7.3.1

    Editor kod yang mudah digunakan dan percuma

    PhpStorm versi Mac

    PhpStorm versi Mac

    Alat pembangunan bersepadu PHP profesional terkini (2018.2.1).

    Penyesuai Pelayan SAP NetWeaver untuk Eclipse

    Penyesuai Pelayan SAP NetWeaver untuk Eclipse

    Integrasikan Eclipse dengan pelayan aplikasi SAP NetWeaver.

    MinGW - GNU Minimalis untuk Windows

    MinGW - GNU Minimalis untuk Windows

    Projek ini dalam proses untuk dipindahkan ke osdn.net/projects/mingw, anda boleh terus mengikuti kami di sana. MinGW: Port Windows asli bagi GNU Compiler Collection (GCC), perpustakaan import yang boleh diedarkan secara bebas dan fail pengepala untuk membina aplikasi Windows asli termasuk sambungan kepada masa jalan MSVC untuk menyokong fungsi C99. Semua perisian MinGW boleh dijalankan pada platform Windows 64-bit.

    VSCode Windows 64-bit Muat Turun

    VSCode Windows 64-bit Muat Turun

    Editor IDE percuma dan berkuasa yang dilancarkan oleh Microsoft