У меня есть приложение для Android, которое записывает АУДИО в необработанном формате, как я могу извлечь образец записи? например, если в необработанном файле записано 3 минуты звука, я хотел бы извлечь 20 секунд содержимого из произвольной начальной позиции, возможно ли это?
Извлечь образец из аудиофайла RAW на Android
Ответы (1)
Если файл содержит чередующиеся данные PCM без заголовка, и вы знаете свойства аудиоданных (частота дискретизации, количество каналов и т. д.), проблему можно решить с помощью базовой математики:
Количество байт аудиоданных в секунду равно sampleRate * bytesPerSample * numChannels
.
Тогда начальное смещение в байтах будет равно bytesPerSecond * offsetInSeconds
, а размер фрагмента для чтения (в байтах) будет равен bytesPerSecond * lengthInSeconds
.
person
Michael
schedule
13.06.2013
Майкл, спасибо за ваш ответ, я узнаю частоту дискретизации и количество каналов, откуда мне взять байты на выборку? это байты, которые мне нужны в моем извлеченном файле или исходной полной записи?
- person Hector; 13.06.2013
Я предполагаю, что вы указали, использовать ли 8 или 16 бит на семпл, когда создавали свой рекордер. Количество байтов на выборку равно битовой глубине, деленной на 8.
- person Michael; 13.06.2013
я использую 16 бит. Должен был упомянуть, что я записываю файлы формата .WAV. Еще раз спасибо.
- person Hector; 13.06.2013