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