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
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
Kes aplikasi
# 等分分割,按大概每三分钟进行分割 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")
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")
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")
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")
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 Semula1. 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!