Воспроизводимый локальный замер · P50-C03

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

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

Задача и принятое решение

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

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

Использованы шесть авторских тональных PCM-файлов. Проверена подготовка аудио к ограниченному приему, а не распознавание речи или качество внешнего ASR.

Проверить решение

Измените исходные строки или параметры и пересчитайте результат. Данные остаются в этой странице.

6Исходников
9Фрагментов
67Всего секунд
10Максимальная часть
ИсточникЧастьПервый ОтсчетОтсчетовСекундБайт WAV
tone-1s.wav108000116044
tone-2s.wav1016000232044
tone-4s.wav1032000464044
tone-10s.wav108000010160044
tone-20s.wav108000010160044
tone-20s.wav2800008000010160044
tone-30s.wav108000010160044
tone-30s.wav2800008000010160044
tone-30s.wav31600008000010160044

Исходный набор

Авторский набор. В timings.json записан фактически выполненный локальный замер кода; тариф модели и сеть в него не входят.

Изменить входные строки
Посмотреть исходные строки
ФайлЧастотаКаналовБитБайт ДанныхБайт Файла
tone-1s.wav80001161600016044
tone-2s.wav80001163200032044
tone-4s.wav80001166400064044
tone-10s.wav8000116160000160044
tone-20s.wav8000116320000320044
tone-30s.wav8000116480000480044

Что получилось

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

Выполненная проверка

ПроверкаРезультат
Девять частей сохраняют все 67 секунд и лимит 10Пройдена
Baseline оставляет шесть файлов, включая 30 секунд сверх лимитаПройдена
Лимит 7 секунд меняет разбиение, но не теряет отсчетыПройдена

Сегментатор рассчитан на приложенный PCM WAV с 44-байтовым заголовком. Он не ищет паузы речи и не поддерживает произвольные дополнительные WAV-chunks. Локальные времена относятся к расчету плана сегментов, не к ASR.

Скачать материалы и повторить проверку

source.json · source.csv · result.json · result.csv · engine.js · verify.cjs · checks.json · style.css · benchmark.cjs · tone-1s.wav · tone-2s.wav · tone-4s.wav · tone-10s.wav · tone-20s.wav · tone-30s.wav · segment-wav.cjs · 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

Локальная проверка: node verify.cjs. Нужен Node.js; сетевые обращения не выполняются.