Разрезать аудиофайл на десять секунд - PullRequest
3 голосов
/ 01 ноября 2010

Приветствуются рекомендации по нарезке файла .wav 1 на сегменты с разделением по времени с использованием библиотеки Python.

1 Фактический тип файла на самом деле не тот материал, я уверен, что при необходимости смогу конвертировать между различными типами.

Ответы [ 2 ]

3 голосов
/ 02 ноября 2010

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

2 голосов
/ 01 ноября 2010

Я бы посоветовал посмотреть на структуру данных для данного файла и «обрезать» данные в соответствующей точке вдоль линии, чтобы кадры не отсекались раньше.

Это будет означать просмотр частоты записи и скорости передачи данных и использование ее для получения размера (в битах) каждого кадра. Затем вы можете снимать фрагменты аудио, не обрезая отдельные данные кадра.

Посмотрите на это ТАК сообщение . Он предлагает рассматривать ваше аудио как двоичную строку для чтения. Поскольку это строка, вы можете копировать, вырезать и перемещать строку, как хотите, в новый выходной файл.

Проверьте это: http://docs.python.org/library/binascii.html

Также стоит посмотреть на: https://ccrma.stanford.edu/courses/422/projects/WaveFormat/

Либо это, либо просто оставьте его двоичным и используйте байтовые массивы. Нужно подумать о заголовочном файле и о том, что с этим происходит, хотя каждый формат отличается. MP3 легко сохранить заголовок, поскольку он чередуется между данными:

http://en.wikipedia.org/wiki/Mp3#File_structure

Хорошо, куча всего.


НАКОНЕЦ: Тот, который вы, без сомнения, уже видели: http://sourceforge.net/projects/audiotools/

Обновлено ....

Используйте метод bits_per_sample() в ссылке на аудио инструменты от sourceforge.net

Returns the number of bits-per-sample in this audio file as a positive integer.

Затем разделите ваше аудио на байтовый массив, используя эту информацию и некоторую информацию сверху. Затем вы можете, по крайней мере, точно восстановить некоторые аудиоданные в формате RAW.

Вы можете взять длину файла в битах и ​​разделить ее на 16. Затем вы можете использовать метод деления массива по времени в миллисекундах. Это звучит сложно, но это действительно элементарная математика.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...