У меня была задача слушать интересные аудиокниги за рулём или во время долгих прогулок. Не все нужные книги были озвучены, а многие существовали только в виде PDF — иногда аккуратных, иногда отсканированных и почти нечитаемых для обычной программы.
Сначала идея выглядела просто: извлечь текст и отправить его в синтез речи. На практике между PDF и хорошим аудио обнаружился целый производственный процесс.
Почему кнопки «озвучить PDF» недостаточно
PDF — это контейнер, а не гарантированно чистый текст. Внутри могут одновременно находиться цифровые страницы, изображения, колонтитулы, сноски, таблицы и разорванные переносами слова.
Если отдать такой материал голосовой модели напрямую, она честно прочитает мусор: номера страниц, повторяющиеся заголовки, обрывки подписей и неверный порядок колонок.
Главная инженерная задача — не озвучить текст. Сначала нужно доказать, что текст собран полностью и в правильном порядке.
Конвейер вместо одного промпта
Я разделил работу на этапы, у каждого из которых есть свой вход, выход и проверка.
1. Инвентаризация документа
Система определяет, где есть настоящий текстовый слой, а где нужен OCR. Это позволяет не распознавать заново качественные страницы и отдельно работать с проблемными.
2. Извлечение и очистка
Текст извлекается вместе с привязкой к страницам. Затем убираются повторяющиеся колонтитулы, склеиваются переносы и восстанавливается порядок чтения. Источник каждого фрагмента сохраняется, чтобы спорное место можно было найти в оригинале.
3. ИИ-редактура
Модель получает не всю книгу целиком, а управляемые фрагменты. Она отделяет авторский текст от реплик, исправляет очевидный OCR-шум и готовит материал к чтению. При этом нельзя разрешать ей свободно «улучшать» содержание.
4. Подготовка к синтезу
Текст делится на устойчивые по размеру части. Для каждой фиксируются голос, роль, паузы и порядок. Если процесс прерывается, готовые части не нужно создавать заново.
5. Аудиосборка и контроль
После синтеза проверяются пропуски, порядок фрагментов, длительность и технические сбои. Только затем части объединяются в главы или цельную запись.
Что оказалось самым ценным
Не скорость сама по себе, а управляемость. Я могу остановить конвейер после извлечения, вручную проверить сложную главу, заменить голос и продолжить с нужного места.
Такая архитектура полезна и за пределами аудиокниг: в обработке архивов, инструкций, отчётов и других документов, где потеря одного фрагмента важнее времени выполнения.
Во что превратилась личная задача
Изначально я просто хотел слушать нужные книги. В результате появился повторяемый контур: документ входит в систему, проходит несколько проверяемых стадий и выходит в форме, удобной для дороги.
Это хороший пример моего подхода: начинать не с технологии, а с живой ситуации, а затем постепенно собирать вокруг неё рабочую инфраструктуру.
Есть сложный поток документов?
Можно разобрать, где теряется структура и какой минимальный конвейер сделает процесс управляемым.
Обсудить задачу с Дмитрием →