У меня есть много .wav
аудиофайлов, которые я хочу разделить в соответствии с информацией о сегментах, доступной для соответствующих .wav
файлов. Ниже приведен пример информации о сегментах для одного аудиофайла. Число внутри массива указывается в миллисекундах.
start_array = [1285, 19967, 30227, 41823]
duration_array = [14423, 7437, 10000, 6454]
Я написал код, который разделяет аудиофайл каждые десять секунд и сохраняет разделенный файл с тем же именем, что и исходный файл, с расширенным номером, указывающим номер чанка. например, "originalFileName_00"
для первого чанка, "originalFileName_01"
для второго чанка и т. д.
Ниже приведен код:
# read file from input dir and split them
for filename in os.listdir(inputdir):
save_file_name = filename[:-4]
myaudio = AudioSegment.from_file(inputdir+"/"+filename, "wav")
chunk_length_ms = 10000 # pydub calculates in millisec
chunks = make_chunks(myaudio, chunk_length_ms) #Make chunks of ten sec
# saving then to output dir.
for i, chunk in enumerate(chunks):
chunk_name = save_file_name+"_{0}.wav".format(i)
#print(chunk_name)
parts = chunk_name.split('_')
a = parts[-1].split('.')
b = a[0]
if(len(b) == 1):
b = "0"+b
chunk_name = parts[0]+"_"+parts[1]+"_"+b+".wav"
#print(chunk_name)
print "exporting", chunk_name
chunk.export(outputdir+"/"+chunk_name, format="wav")
Теперь я хочу разделить звуковые дорожки в соответствии с доступной информацией о начале и конце сегмента (начало + продолжительность даст мне конец этого сегмента). Как я могу сделать это, используя функцию make_chunks
? Или есть какая-нибудь другая функция, которую я могу использовать для этого?