Качество записи и точность расшифровки: что чинить до отправки


Если вы отправляете аудио в api распознавания речи, качество исходной записи часто важнее последующей обработки текста. Речь с постоянным шумом, эхом, слишком низким уровнем или музыкой на переднем плане требует от распознавания больше работы, а ошибки в исходном сигнале уже нельзя исправить заменой одного параметра запроса.

Подготовка аудио к расшифровке поэтому начинается не с API, а с проверки самой записи. Ниже разберём, что делать с шумом, эхом, тихим голосом, несколькими микрофонами и музыкой, как проверить результат на коротком фрагменте и в какой момент обработка перестаёт иметь смысл. Для доступа к ключу и разделу API используйте страницу API: ключ показывается один раз после выпуска.

Для самой расшифровки в сервисе предусмотрена операция stt стоимостью 10 ₽ за один запуск. Оплата идёт за запуск, без абонентской платы и минимального платежа. При выпуске первого ключа на баланс начисляется 50 ₽ для пробного использования.

Что именно мешает распознаванию

Распознавание работает с акустическим сигналом, поэтому проблема может находиться не в словах и не в запросе к API. Если голос перекрыт кондиционером, дорожным шумом или музыкой, полезный сигнал становится менее различимым. Если запись содержит сильное эхо, один и тот же голос приходит к микрофону напрямую и с задержкой после отражения от стен, потолка или других поверхностей.

Отдельная проблема — слишком низкий уровень речи. Если человек говорит далеко от микрофона, а затем запись пытаются просто увеличить по громкости, вместе с голосом усиливаются и окружающие шумы. В результате громкость файла возрастает, но полезность сигнала не обязательно улучшается.

При разговоре двух или нескольких людей добавляется ещё одна причина ошибок: собеседники могут находиться на разном расстоянии от микрофонов. Один голос оказывается чистым и громким, другой — тихим и частично перекрывается первым. Если несколько микрофонов записывают одну беседу, дорожки могут также иметь разные задержки и характеристики.

Практически полезно разделять проблемы на две группы. Первая — то, что можно исправить обработкой: умеренный постоянный шум, лишние паузы, слишком большой или слишком маленький уровень, отдельные артефакты. Вторая — потерянная информация: слова, которые полностью перекрыла музыка, речь, щелчок или сильный шум. Вторую группу обработка уже не восстановит.

Именно поэтому точность распознавания речи нельзя свести к одному фильтру «улучшить звук». Сначала нужно определить, какая часть записи действительно мешает услышать слова. Если проблема локальная, лучше обработать только проблемный участок или дорожку, а не применять агрессивную обработку ко всему файлу.

Есть и простой практический критерий: после обработки прослушайте несколько фраз в наушниках. Если голос стал разборчивее для человека, это хороший признак. Если после шумоподавления появляются металлические призвуки, обрезаются окончания слов или речь становится неестественной, дополнительная обработка может дать обратный эффект.

Подготовка записи к расшифровке: очистка от шума
Подготовка записи к расшифровке: очистка от шума

Шум и эхо: чем чистить и когда это помогает

Постоянный равномерный шум обычно проще для обработки, чем непредсказуемые звуки. К этой категории относятся гул вентиляции, кондиционера или относительно стабильный фон помещения. Если шум находится ниже уровня речи и не меняется резко, его можно уменьшить до отправки файла на расшифровку.

Важна умеренность. Агрессивное подавление пытается отделить речь от фона и иногда принимает за шум тихие согласные, окончания слов или части голоса. На слух такая запись может казаться «чище», но для расшифровки потеря мелких речевых деталей нежелательна.

С эхом ситуация сложнее. Если микрофон расположен в пустой комнате с твёрдыми поверхностями, отражённый сигнал может быть сопоставим по уровню с прямым. Простое увеличение громкости проблему не решает: вместе с голосом увеличивается и отражённый сигнал.

До записи эхо дешевле устранять физически: приблизить микрофон к говорящему, выбрать более подходящее помещение, добавить мягкие поверхности. После записи можно применять обработку, но результат зависит от силы и характера отражений. При сильном многократном эхе исходную запись иногда рациональнее перезаписать.

В API доступна отдельная операция denoise стоимостью 36 ₽ за запуск. Её можно учитывать как этап предварительной обработки, если конкретная запись действительно содержит шум, который мешает работе с голосом. Это отдельная операция, поэтому при расчёте стоимости полного процесса нужно учитывать и её, и последующую расшифровку.

Операция Цена за запуск Когда относится к подготовке речи
Расшифровка записи (stt) 10 ₽ Получение текста из записи
Убрать шум (denoise) 36 ₽ Предварительное уменьшение шума
Звук из видео (ytaudio) 0 ₽ Извлечение звуковой дорожки из видео
Читать  Перевести видео на другой язык: почему перевод не влезает в ролик

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

Для работы с API используется базовый адрес https://genius-bot.ru/wp-json/genius/v1. Авторизация передаётся в заголовке Authorization: Bearer <ключ>. Например, проверить список доступных операций и их цены можно так:

curl -X GET \
  "https://genius-bot.ru/wp-json/genius/v1/services" \
  -H "Authorization: Bearer <ВАШ_КЛЮЧ>"

Этот запрос удобен перед интеграцией: приложение получает актуальный список операций и цен, не требуя хранить их в коде. Для самой расшифровки используются маршруты загрузки файла и запуска операции, но конкретные поля тела запроса нужно брать из документации API, а не угадывать их по названию маршрута.

Тихий голос и разные уровни у собеседников

Тихая речь — не то же самое, что плохой микрофон. Если человек говорит негромко, но микрофон находится близко, запись может содержать достаточно информации. Если же микрофон расположен далеко, вместе с уменьшением уровня голоса растёт относительная доля помещения и окружающего шума.

Первое, что стоит проверить, — не требуется ли вообще усиление. Нормализация уровня может сделать речь удобнее для прослушивания, но не создаёт отсутствующие детали. Если на исходной дорожке тихий голос почти полностью скрыт шумом, усиление само по себе не исправит проблему.

При двух собеседниках особенно полезно посмотреть запись по отдельным участкам. Если один человек стабильно громче второго, обработка всей дорожки одним коэффициентом оставит разницу. Лучше сначала выровнять уровни, сохраняя естественную структуру речи, и только после этого оценивать качество.

Если разговор записывался несколькими микрофонами, не стоит автоматически складывать все дорожки в один файл. Сначала нужно определить, какая дорожка лучше передаёт конкретного говорящего. Дублирование одного голоса с задержкой может создать фазовые и временные артефакты, а разные задержки между микрофонами способны сделать речь менее чёткой.

При наличии отдельных дорожек полезнее сохранить их до момента, когда станет понятно, какая комбинация даёт лучший результат. Иногда достаточно одной хорошо записанной дорожки. Иногда несколько дорожек позволяют компенсировать провалы, но только после выравнивания по времени и уровням.

Для api распознавания речи имеет значение не то, насколько громким выглядит итоговый файл в медиаплеере, а насколько хорошо в нём различима речь. Поэтому ориентироваться только на пик громкости неправильно. Прослушайте тихие фразы, окончания слов и места, где собеседники говорят одновременно.

Разные уровни громкости у собеседников
Разные уровни громкости у собеседников

Музыка и речь вместе: разделение дорожек

Фоновая музыка создаёт другую проблему: она может занимать те же частотные области, что и человеческий голос. Особенно заметно это в записи, где музыка находится почти на том же уровне, что и речь. Простое увеличение громкости голоса не удаляет музыкальную составляющую.

Если исходный проект содержит отдельные дорожки, ситуация проще. Сохраните дорожку с голосом отдельно и отправляйте на расшифровку вариант без музыки. Это предпочтительнее, чем пытаться восстановить голос из уже сведённого файла.

Если есть только готовый микс, сначала имеет смысл проверить, насколько музыка действительно перекрывает речь. На паузах между словами можно услышать структуру фона, а на участках с плотной музыкой — оценить, сохраняются ли согласные и окончания слов.

В сервисе есть операция «Убрать вокал» стоимостью 45 ₽, но её назначение нельзя автоматически считать эквивалентом удаления любой фоновой музыки из речи. Для задачи расшифровки важен конкретный исходный материал: музыка, вокал и разговорная речь — разные типы сигнала.

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

Для коротких роликов иногда быстрее проверить несколько вариантов обработки, чем пытаться идеально восстановить всю дорожку. Это особенно актуально, когда полная запись длинная, а проблемные музыкальные фрагменты занимают только небольшую часть материала.

Проверка на коротком куске перед полной расшифровкой

Перед запуском всей записи полезно взять короткий фрагмент, в котором присутствует именно проблемный участок. Для интервью это может быть 30–60 секунд с двумя собеседниками и фоновым шумом. Для лекции — фрагмент с тихой речью или эхом. Цель теста не в том, чтобы получить статистически точную оценку, а в том, чтобы не тратить полный запуск на явно неподходящий исходник.

Читать  API генерации видео: первый ролик из текста за десять минут

Сравнивайте минимум два варианта: исходную запись и обработанную. Если обработанный вариант заметно понятнее на слух, можно проверить его через stt и посмотреть, исчезли ли конкретные ошибки. Не стоит делать вывод о всей записи только по одному идеально чистому фрагменту.

В техническом плане схема работы выглядит просто: подготовить короткий файл, загрузить его, запустить расшифровку, дождаться результата и только затем повторить процесс для полного материала. Состояние задачи можно получать через GET /tasks/{id}. Вместо постоянного опроса предусмотрен необязательный callback_url: когда задача готова, на него приходит POST.

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

import requests

BASE_URL = "https://genius-bot.ru/wp-json/genius/v1"
API_KEY = "ВАШ_КЛЮЧ"

response = requests.get(
    f"{BASE_URL}/services",
    headers={"Authorization": f"Bearer {API_KEY}"},
    timeout=30,
)

response.raise_for_status()
print(response.json())

Этот пример специально не подставляет неуказанные поля для /uploads или /generate. В интеграции лучше сначала получить описание доступных операций через API и использовать параметры конкретной операции из документации. Такой подход не привязывает код к предположительной схеме запроса.

При тестировании также учитывайте ограничение частоты: на один ключ допускается не более 60 запросов в минуту. Если приложение массово проверяет состояние задач через /tasks/{id}, опрос нужно организовать с учётом этого лимита или использовать callback.

Короткий тест особенно полезен ещё и из-за стоимости. Один запуск stt стоит 10 ₽, а denoise — 36 ₽. Если обработка нужна, проверка небольшого фрагмента помогает сначала выяснить, даёт ли она практический результат, прежде чем запускать её на всём материале.

Проверка расшифровки на коротком фрагменте
Проверка расшифровки на коротком фрагменте

Когда дешевле перезаписать

У обработки есть предел. Если микрофон находился далеко, голос почти полностью перекрыт разговором других людей, а запись содержит сильное эхо и клиппинг, последовательное применение нескольких фильтров не возвращает потерянную информацию.

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

Для интервью или мероприятия перезапись часто невозможна. В таком случае имеет смысл работать с тем, что есть: выбрать лучшую дорожку, уменьшить постоянный шум, аккуратно выровнять уровни и только затем отправлять материал на расшифровку. Если проблема касается отдельных минут из часовой записи, не обязательно одинаково обрабатывать весь файл.

Есть и экономический критерий. Если предварительная обработка стоит 36 ₽ за запуск, а расшифровка — 10 ₽, обработка одной записи уже требует 46 ₽ только на эти два этапа. Если после denoise результат всё равно остаётся плохо различимым, повторять несколько вариантов обработки без проверки на коротком фрагменте нерационально.

При этом стоимость запуска не должна быть единственным критерием. Если исходную запись невозможно получить заново, даже дорогостоящая подготовка может быть оправдана, поскольку альтернатива — ручное восстановление текста. Если же запись можно повторить за несколько минут, сначала сравните стоимость времени на перезапись с несколькими циклами обработки.

Хорошая последовательность подготовки выглядит так: сначала исправить условия записи, если это ещё возможно; затем выбрать лучшую дорожку; после этого уменьшить умеренный постоянный шум и проверить эхо; затем выровнять уровни голосов; убрать или отделить музыку; после чего сделать короткий тест через stt. Только при приемлемом результате имеет смысл запускать полный файл.

Такой порядок помогает не путать улучшение звука с восстановлением информации. Фильтр может убрать часть шума, но не восстановит слово, которое уже полностью перекрыто музыкой. Поэтому точность распознавания речи лучше оценивать на конкретных проблемных местах, а не по ощущению, что файл после обработки стал просто громче или «чище».

Для интеграции остаётся стандартная схема: ключ передаётся через Authorization: Bearer <ключ>, файл можно загрузить через POST /uploads, операцию запустить через POST /generate, а состояние получить через GET /tasks/{id}. При готовности результата можно использовать callback_url, чтобы не держать постоянный цикл опроса.

Частые вопросы

Нужно ли обязательно очищать аудио перед использованием api распознавания речи?

Нет. Обработка нужна, если конкретный шум, эхо, низкий уровень или музыка действительно мешают различать речь. Если исходная запись уже хорошо слышна, дополнительный этап может быть не нужен.

Поможет ли увеличение громкости тихой записи?

Не всегда. Усиление повышает уровень и голоса, и окружающего шума. Если голос на исходной записи уже сильно перекрыт фоном, одного увеличения громкости недостаточно.

Читать  Подключить нейросеть без кода: сценарии в n8n и таблицах

Стоит ли применять denoise ко всей записи?

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

Что делать, если два человека записаны с разной громкостью?

Сначала выровнять уровни и проверить результат на коротком фрагменте. Если есть отдельные микрофонные дорожки, их лучше оценивать до сведения, поскольку одна дорожка может быть существенно чище другой.

Как понять, что запись лучше перезаписать?

Если после разумной обработки слова остаются неразборчивыми, а повторная запись доступна и занимает меньше времени, чем несколько циклов восстановления и последующая ручная правка текста, перезапись может быть практичнее. Особенно это относится к коротким материалам.

Где взять ключ и проверить доступные операции?

Ключ выдаётся после входа в разделе документация и доступ к API и показывается один раз. Через GET /services можно получить список операций и цен, а для работы с задачами доступны /uploads, /generate и /tasks/{id}.

API для разработчиковОзвучка, музыка, видео и картинки одним ключом. Пробный баланс при выпуске.
Получить ключ