Сайт: https://napoykin01.github.io/priemka/
Проверка звука перед сдачей на площадку. Загружаете файлы — получаете заключение по каждому: что не проходит требования, насколько и что с этим делать. Часть замечаний исправляется машинно, для остального — инструкция, что делать руками.
Работает целиком в браузере. Файлы не загружаются на сервер: декодирование и все измерения идут локально. Это важно не только для скорости — авторы работают с неопубликованными материалами.
Три режима, переключаются боковой панелью без повторной загрузки файлов (сырые измерения считаются один раз, каждый режим только по-своему их интерпретирует):
Частота дискретизации, разрядность (из заголовка WAV), каналы, средняя громкость RMS, пиковый уровень, шумовой пол, реверберация помещения, посторонние тоны (гул сети), клиппинг, тишина в начале и конце, длительность, постоянная составляющая, средний битрейт MP3. При нескольких файлах — согласованность RMS и шумового пола между главами.
Базовые пороги — из опубликованной спецификации ACX (приёмка аудиокниг Audible и Amazon), самого строгого и прозрачного стандарта отрасли. Официальный FAQ Литреса (reader.litres.ru/faq) числами громкости и шума не делится — только качественно («без шумов и эха, ровная громкость»), но называет конкретный битрейт: 128 кбит/с, а не 192 от ACX — это и используется здесь. Уровень шума, реверберация, гул сети и мягкая рекомендация по стерео уточнены по отзывам чтецов Литреса из чата @readerlitres (август 2026):
- официальный порог шума ACX −60 dBFS, но по факту принимают и −50, если к остальному качеству нет вопросов;
- реверберация (гулкость помещения) и посторонние тоны — свисты, гудения — две основные причины отказа после фонового шума, названные напрямую;
- в одном из гайдов по подготовке записи фигурирует формат «MP3 (Stereo)» — источник не первоклассный, поэтому моно даёт мягкое предупреждение, а не отказ.
| Параметр | Требование |
|---|---|
| Частота дискретизации | 44 100 Гц |
| Разрядность | 16 бит |
| RMS | от −23 до −18 dBFS |
| Пик | не выше −3 dBFS |
| Шумовой пол | до −60 dBFS уверенно, до −50 обычно тоже принимают |
| Реверберация помещения | затухание после фразы до шумового пола — быстрое |
| Посторонние тоны (гул сети) | нет доминирующего тона в паузах на 50/100/150 Гц |
| Тишина в начале / в конце | 0,5–1,0 с / 1,0–5,0 с |
| Битрейт MP3 | 128 кбит/с — прямое требование FAQ Литреса |
Требования Литрес Чтеца и Строк — не единый официально опубликованный документ: часть цифр (битрейт) от самого Литреса, часть — из практики и отзывов в чате; они могут измениться или отличаться для конкретного проекта. Все значения вынесены в константу SPEC_AUDIOBOOK и меняются в одном месте.
Отдельно проверила статью-методичку по постобработке в Audacity на блоге Литреса (blog.selfpub.ru) — она оказалась личной рекомендацией внешнего автора, не официальным требованием площадки. Её диапазоны (RMS −24…−14 дБ, пик −18…−6 дБ) шире наших и не противоречат — менять пороги под неё не стала.
Диагностика полностью бесплатна — платной части нет. Кнопка «Что делать» доводит до первого замечания в таблице проверок и подсвечивает его; инструмент не обещает автоматического или платного исправления.
Гарантируется то, что проверяется алгоритмически и относится к категории «auto» в FIX (например частота дискретизации, разрядность, каналы, тишина по краям, гул сети). Не гарантируется, что площадка примет книгу — это может зависеть от того, что мы не проверяем и не можем починить программно: качество чтения, текст, метаданные, реверберация помещения.
«Запомнить на этом устройстве» — не аккаунт, а localStorage: email сохраняется только в этом браузере, без сервера и без синхронизации между устройствами.
Настоящий RT60 (время затухания на 60 дБ, стандартная акустическая мера гулкости помещения) измеряют контрольным сигналом — свип-тоном или импульсом — в самом помещении. У нас есть только готовая запись речи, контрольного сигнала нет, поэтому это оценка по естественной речи, а не сертифицированный замер:
- Реверберация — после каждого окончания фразы измеряется, сколько времени огибающая идёт вниз до уровня, близкого к шумовому полу («время затухания»). В сухом помещении это быстро (десятки миллисекунд), в гулком — заметно дольше. Берётся медиана по всем найденным окончаниям фраз в файле; если пауз слишком мало для оценки — честно показывается «недостаточно данных», а не число наугад.
- Гул сети — резонаторы Гёрцеля (узкополосный анализ на одну частоту, дешевле полного FFT) на 50, 100 и 150 Гц считаются только в паузах между фразами, где тон не маскируется голосом. Если тон почти равен по уровню всей «тишине» в паузе — это не тишина, а гул.
Оба алгоритма проверены на синтетических сигналах: реверберация — что измеренное время монотонно растёт при добавлении контролируемого затухающего хвоста (диапазон, соответствующий RT60 от ~0,2 до ~1,5 с), гул — что чистая пауза даёт разницу тона и широкополосного уровня около 45 дБ на всех трёх частотах, а добавленный гул на 50 Гц роняет разницу именно на этой частоте до <1 дБ, не трогая соседние. Оба — прокси-метрики, откалиброванные вручную по здравому смыслу и синтетике, а не по массиву размеченных реальных отказов.
Интегральная громкость (LUFS) и пик между отсчётами (true peak), плюс клиппинг и постоянная составляющая. Требования опубликованы Apple Podcasts и Spotify — в отличие от аудиокниг, здесь не нужно уточнять цифры по факту отказов.
| Параметр | Требование |
|---|---|
| Интегральная громкость | −16 LUFS ±1 (стерео) / −19 LUFS ±1 (моно) |
| Пик (true peak) | не выше −1 dBTP |
Тот же движок LUFS/true peak с ориентиром −14 LUFS / −1 dBTP, к которому сходится стриминг (Spotify, Apple Music, YouTube). Помечено как бета: это практика индустрии, а не писаный стандарт одной площадки, и метаданные (ISRC, обложка, теги) по аудиосигналу не проверяются.
Точно измеряются: каналы, длительность, пик, RMS, клиппинг, постоянная составляющая. Разрядность и частота дискретизации читаются из заголовка WAV и неприменимы к сжатым форматам — браузер при декодировании ЛЮБОГО файла ресемплит его в частоту своего аудиоконтекста, поэтому AudioBuffer.sampleRate не отражает исходную частоту файла (баг был в проверке до 2026-08-04: использовалась именно она — на машине с аудиоконтекстом по умолчанию 48 кГц корректный 44 100 Гц файл получал ложный отказ; найдено прогоном настоящих файлов, не синтетики). Битрейт MP3 оценивается по размеру файла и длительности — отличить CBR от VBR без разбора кадров нельзя. Шумовой пол берётся как третий процентиль среди 400-миллисекундных окон.
LUFS считается по методике K-взвешивания и гейтинга −70/−10 LU (та же логика, что в EBU R128 / ITU-R BS.1770): полочный фильтр и ВЧ-фильтр пересчитываются под фактическую частоту дискретизации файла. Проверено по частотной характеристике фильтра (+2 дБ на характерной частоте 1682 Гц, +4 дБ на высоких, спад к низким — учебная K-кривая) и на контрольных синусоидах.
True peak — оценка через кубическую интерполяцию ×4 на каждом канале, а не полный ITU-фильтр. На речи и музыке ловит почти весь межотсчётный пик; на редких высокочастотных тестовых сигналах (тон ровно на четверти частоты дискретизации) может показывать чуть ниже реального значения — это оценка, а не сертифицированный измеритель, и в интерфейсе это написано прямо.
Открыть index.html в браузере. Зависимостей и сборки нет.