Ci sono un sacco di librerie per funzionare con i tag mp3, ma ho bisogno solo di 2 funzioni: dividere il file mp3 in 2 parti e il secondo per unire 5 mp3.Libreria Python per dividere e unire file mp3
Potete suggerire qualcosa? Grazie!
Ci sono un sacco di librerie per funzionare con i tag mp3, ma ho bisogno solo di 2 funzioni: dividere il file mp3 in 2 parti e il secondo per unire 5 mp3.Libreria Python per dividere e unire file mp3
Potete suggerire qualcosa? Grazie!
Dai un'occhiata allo MP3 file structure su Wikipedia. Usa la modalità di lettura binaria in python per modificare il file MP3. s = open(file_name, 'rb').read()
inserirà l'intero file in un oggetto stringa che rappresenta i byte non elaborati nel file (ad esempio \xeb\xfe\x80
). È quindi possibile cercare e modificare la stringa, indirizzando gli offset dei byte con gli indici usando le parentesi: s[n]
. Infine, basta fare una scrittura binaria dei frame MP3 che si desidera nei nuovi file, aggiungendo l'intestazione ID3 all'insieme di frame che si desidera creare in ciascun file.
Verificare GStreamer e il suo wrapper Python Gst-Python.
utilizzare il Comando Unix diviso:
split -b 200k file.mp3 output_
questa uscita output_a volontà, output_b, output_c, ..
è possibile quindi ottenere file mp3 semplicemente rinominando
for file in ./output_*; do mv "$file" "$(basename $file).mp3"; done
questa volontà output output_a.mp3, output_b.mp3, output_c.mp3 ... tutti (tranne l'ultimo, possono essere) hanno una dimensione di 200kb e la dimensione totale di output_x è la stessa di file.mp3
è possibile utilizzare il (utilizzo del disco) du
comando per ottenere il numero del file di byte e poi decidere quanti byte tagliare ..
du -sh file.mp3
poi ad unirsi usare il comando cat:
cat output_2.mp3 output_3.mp3 output_4.mp3 > output.mp3
ovviamente puoi mettere tutto questo in uno script di shell e chiamarlo da python.
Non sarà possibile riprodurre tali segmenti. –
Il commento è utile, tuttavia, la divisione dell'audio è qualcosa di completamente diverso dalla divisione della struttura binaria del file. –
ho scritto una libreria (pydub) per praticamente questo esatto caso d'uso:
from pydub import AudioSegment
sound = AudioSegment.from_mp3("/path/to/file.mp3")
# len() and slicing are in milliseconds
halfway_point = len(sound)/2
second_half = sound[halfway_point:]
# Concatenation is just adding
second_half_3_times = second_half + second_half + second_half
# writing mp3 files is a one liner
second_half_3_times.export("/path/to/new/file.mp3", format="mp3")
@Jiaaro è possibile creare una pausa di 2 secondi tra due file? – user544262772
@ 발렌 텐 si, basta creare un segmento audio silenzioso: 'two_sec_pause = AudioSegment.silent (duration = 2000)' che puoi quindi concatenare come normale 'sound1 + two_sec_pause + sound2' – Jiaaro
questo lib è un gioiello, grazie per la tua condivisione , questo è molto utile, sto sviluppando un software per gli studenti di lingue dando loro l'opportunità di generare suoni di formazione realizzati da brevi file mp3 di parole pronunciate. – user544262772
Quando si entra in file mp3 si trova un divario tra di loro, perché mp3 è blocco base e l'ultimo blocco di un file sarà pieno di silenzio. –