2011-10-02 66 views
8

Python'da temel ses karıştırma yapmak istiyorum.Ses dosyalarını python kullanarak nasıl karıştırırım?

Bir örnek vermek gerekirse: İki mp3 dosyası almak ve bunları bir araya getirmek ve bir mp3 dosyası döndürmek istiyorum. Başka bir örnek: Bir mp3 dosyasının ilk on saniyesini almak ve onu başka bir mp3 dosyasının başına eklemek istiyorum.

Bu görevleri gerçekleştirmenin en iyi yolu nedir? Yerleşik python işlevlerini audioop gibi kullanmak istiyorum ancak yerleşik işlevleri kullanmak için iyi bir öğretici veya örnek kod bulamıyorum.

Dokümanları inceliyorum ama oldukça kafam karıştı ve böyle şeyler nasıl yapılacağını anlayamıyorum. Mp3 gibi python kütüphanelerinin bile emin değilim. Baktığım şeylerin çoğu WAV dosyalarını işaret ediyor gibi görünüyor. Yani, bu durumda, ben bir takip sorusu olurdu bir manipülasyon ve tekrar bir mp3 için bir WAV dönüştürmek için kolay bir yolu olurdu?

+0

hemen her durumda işlemeden önce WAV dönüştürmek GEREKİR I düşünebiliriz. mp3, PCM verilerini işlemek için önce sıkıştırılmış olması gereken sıkıştırılmış bir formattır. –

+0

özür dilerim son soru daha net olmalı: "manipüle için bir WAV bir mp3 dönüştürmek için kolay bir yol ve tekrar ** python **?" – user439299

cevap

13

Oldukça kolay pydub kullanarak bunu yapabilirsiniz:

from pydub import AudioSegment 

sound1 = AudioSegment.from_mp3("/path/to/file1.mp3") 
sound2 = AudioSegment.from_mp3("/path/to/file1.mp3") 

# mix sound2 with sound1, starting at 5000ms into sound1) 
output = sound1.overlay(sound2, position=5000) 

# save the result 
output.export("mixed_sounds.mp3", format="mp3") 
+0

Bu eski bir soru ve cevap, ancak yine de alakalı ve hala çalışıyor. Bunu gelecekteki okuyucular için gönderiyorum. –

1

python audiotools projesindeki bazı kodları inceleyebilirsiniz. Ortak bir python paketini kullanan komut satırı yardımcı programlarından oluşan bir koleksiyon. İki ya da daha fazla ses parçasını çalıştırabilen * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * başka bir (tracksplit) bir ses parçasını (bir .cue dosyası kullanarak) bölebilir. Bunlar, sayısız diğer yardımcı programların yanı sıra, mp3 dahil çeşitli kodlamaların ses dosyalarıyla çalışabilir.

0

Geçmişte bunu yaptığım yol sadece subprocess kullanıyor. ve sox numaralı telefonu arayın.

E.g. subprocess.call(["sox", "in.1.mp3", "in.2.mp3", "out.mp3"])

İlgili konular