← Все работы

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

Вячеслав Фомин
Аналитика
Дата сценария:

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

Дата выпуска кейса
РольРазработчик стендов измерения обработки данных
ПроектКонцепция

О проекте

Задача

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

Решение

Я разделил PCM только по границе отсчета и пересчитал RIFF/data для каждого фрагмента. Манифест хранит исходный файл, номер части и диапазон отсчетов. После разрезания части собираются обратно и сравниваются с исходным PCM без потерь.

Результат

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

Что передано заказчику

  • index.html
  • source.json
  • source.csv
  • result.json
  • result.csv
  • engine.js
  • checks.json
  • style.css
  • tone-1s.wav
  • tone-2s.wav
  • tone-4s.wav
  • tone-10s.wav
  • tone-20s.wav
  • tone-30s.wav
  • timings.json
  • segmentation.json
  • tone-1s-part-1.wav
  • tone-2s-part-1.wav
  • tone-4s-part-1.wav
  • tone-10s-part-1.wav
  • tone-20s-part-1.wav
  • tone-20s-part-2.wav
  • tone-30s-part-1.wav
  • tone-30s-part-2.wav
  • tone-30s-part-3.wav

Инструменты и подход

Навыки

Нагрузочные измеренияПрофилирование затратКэшированиеКонтроль качества

Готовая работа

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

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

Разбор и материалы

Вклад и команда

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

Ссылки и материалы

Связанные услуги

Другие работы

Нагрузочные измеренияПрофилирование затратКэширование

Редакционная концепция по брифу P50-C03. Ситуации и значения подготовлены для проверки подхода.

Материалы доступны для изучения и самостоятельной проверки.

Обсуждение

Задайте вопрос об этой работе, обсудите решение или поделитесь своим опытом.

Обсуждение открыто для всех участников.

Загружаем комментарии…