2016-06-14 14 views
0

Я написал скрипт python для прослушивания аудио в 30-минутных mp3-файлах и нарезал его в unix timestamped, вторые длинные файлы. Исходные аудиофайлы - 192kbps, 441000Hz, stero mp3-файлы.Экспорт звука Pydub имеет тишину в начале?

Я хочу, чтобы он служил для службы, которая архивирует аудио с радиостанции (где я работаю) и могу доставить ее пользователю в течение заданного времени начала и окончания, ко второму. Мы отключили сервер на час для обслуживания (мы стараемся не делать этого, но это происходит), и мы записали его в течение этого времени, используя другой компьютер, который сохранил наш звук в 30-минутных кусках. Обычно этот сервер архивации без проблем сохраняет сабвуферы.

Функция, которая выполняет преобразование, учитывая 30 минут входной звуковой файл, каталог для сохранения выходных ломти в, и время начала файла как Отметка времени Unix:

def slice_file(infile, workingdir, start): 
    #find the duration of the input clip in millliseconds 
    duration_in_milliseconds = len(infile) 

    print ("Converting " + working_file + " (", end="", flush=True) 

    song = infile 
    #grab each one second slice and save it from the first second to the last whole second in the file 
    for i in range(0,duration_in_milliseconds,1*one_second): 
     #get the folder where this second goes: 
     arr = datefolderfromtimestamp(int(start) + (int(i/1000))) 
     #print ("Second number: %s \n" % (int(i/1000))) 
     offset = (i + one_second) 
     current_second = song[i:offset] 
     ensure_dir(working_directory + "/" + arr[0] + "/" + arr[1] + "/" + arr[2] + "/") 
     filename = os.path.normpath(working_directory + "/" + arr[0] + "/" + arr[1] + "/" + arr[2] + "/" + str(int(start) + (int(i/1000))) + "-second.mp3") 
     current_second.export(filename, format="mp3") 

     #indicate some sort of progress is happening by printing a dot every three minutes processed 
     if(i % (3*60*one_second) == 0): 
      print ('.', end="", flush=True) 

    print (")") 

Мой вопрос что все остальные файлы, преобразованные этим скриптом, кажутся длиннее секунды, в среднем 70 мс молчания в начале их. Когда я загружаю файлы с моего сервера архиватора, он дает мне все файлы, объединенные вместе, так что это звучит ужасно и глючно.

Может кто-нибудь помочь мне? Я не уверен, откуда эта ошибка.

Мой полный сценарий, если вам интересно:

http://pastebin.com/fy8EkVSz

+0

Вот как звучит мой плохой звук. Обратите внимание, что это должно быть 2 минуты, но вместо этого 2:07 из-за того, что все небольшие блокировки складываются из-за конкатенации 120-секундных файлов: http://www.citr.ca/?attachment_id=69907 – Scott

ответ