Как записать только количество «x» объекта Byte (необработанный звуковой файл .ogg) в файл в Python - PullRequest
0 голосов
/ 21 мая 2019

У меня есть скрипт для записи музыкальных нот в каталог на основе объекта байта, возвращенного из моего HTTP-запроса. У меня проблема в том, что звуковой файл .ogg имеет длину 5 секунд, и в идеале я хотел бы сократить его до 0,5 секунд. Возможно ли это сделать, просто отбросив куски объекта байта? Я знаю, что через pysoundfile можно использовать кадры и частоту дискретизации, чтобы вычислить длительность и, следовательно, написать кадры 'x'. Однако это возможно только для статических скоростей, а частота дискретизации для этих файлов неизвестна из-за музыкальных нот, извлекаемых в необработанном виде.

Часть кода, который я написал, приведена ниже.

        for notenumbers in range(48, 64+1):
            note = requests.get(url.format(instrument, notenumbers))
            notebinary = note.content
            time.sleep(3)
            with open("E:\\useraccount\\x\\x\\"+str(dirname)+"\\"+str(instrname)+"\\"+str(instrname) +"-" +str(notenumbers) +".ogg", "wb") as o:
                print("Creating file named: " +str(instrname) +":" +str(notenumbers) +".ogg")
                o.write(notebinary)

Спасибо, если вы можете помочь с этим!

...