Вячеслав ФоминРазработчик стендов измерения обработки данных

WAV-пакет: разбиение длинных файлов под лимит приема

Шесть исходных WAV превращаются в девять самостоятельных файлов не длиннее 10 секунд; обратная сборка PCM проверена побайтно.

Задача

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

Открыть работающий материал →

Последний фрагмент сохраняет остаток записи

Запись длиной 30 секунд делится на три десятисекундных файла, короткая запись остаётся одним фрагментом. Для каждого выхода пересчитываются размеры WAV, а порядок сохраняется в манифесте. Обратная сборка и SHA-256 проверяют, что дробление не потеряло остаток и не переставило части, даже когда все файлы по отдельности открываются.

Что сделано

Я создал шесть PCM-источников, разделил их на девять WAV и проверил восстановление исходных байтов.

Шесть WAV длительностью 1, 2, 4, 10, 20 и 30 секунд реально разделены на девять валидных частей не длиннее 10 секунд. В каждом заголовке пересчитаны размеры RIFF/data. Обратная сборка всех шести PCM-потоков совпала с исходными байтами; SHA-256 и порядок частей записаны в манифесте.

Открыть работающий материал · Контрольные примеры CSV · Повторить проверку · Модель и исходные условия