ТранскрибаторТранскрибатор
Практическая инструкция

FFmpeg amix: как смешать две записи разговора и сохранить оба голоса

Как подготовить общий звук двух синхронных записей через FFmpeg amix: совпадение начала, длительность longest и проверка громкости. Учебная команда.

Транскрибатор
ЗАПИСЬПЛАН РАБОТЫПроверьте синхронностьСмешайте копииПрослушайте результатПроверить результатОТ СЛОВ К РЕЗУЛЬТАТУ
Работа с реальной записьюНаглядный учебный примерШаблон для копирования
1Проверьте синхронность2Смешайте копии3Прослушайте результат
Сначала сохраните источник, затем выполните преобразование и проверьте результат по записи.

Убедитесь, что нужно смешивание, а не склейка

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

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

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

Проверьте общую временную шкалу

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

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

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

Создайте отдельную смешанную копию

Учебная команда: ffmpeg -i mic.wav -i remote.wav -filter_complex "[0:a:0][1:a:0]amix=inputs=2:duration=longest:normalize=1[a]" -map "[a]" -c:a pcm_s16le mixed.wav. Используются первые аудиопотоки двух входов, нормализация фильтра и длительность самого длинного входа.

Параметр normalize=1 масштабирует входы внутри amix. Это не гарантирует одинаковую разборчивость всех говорящих. Если один вход почти не слышен, сначала выясните его качество и уровень; общий итог нельзя оценивать только по отсутствию технической ошибки.

Смешивание выполняет обработку звука и создаёт новый файл. Не используйте stream copy вместо указанной обработки. Выход mixed.wav сохраните отдельно от исходников и не соглашайтесь вслепую на замену уже имеющейся рабочей версии.

Прослушайте разговор и передайте проверенную копию

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

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

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

Учебный пример

Учебный пример: проверка на коротком фрагменте

Ниже вымышленная запись. Имена, время и содержание нужны только для объяснения порядка работы.

ПроверкаУчебная ситуацияДействие
ВходыМикрофон и собеседник отдельноНет дублирующего захвата
ВремяНачало и середина совпалиПроверить также конец
Длительностьremote длиннее micСохранить longest и прослушать хвост
ВходыМикрофон и собеседникотдельноНет дублирующего захватаВремяНачало и середина совпалиПроверить также конецДлительностьremote длиннее micСохранить longest ипрослушать хвост
Каждая контрольная точка связана с конкретным результатом; отсутствие подтверждения оставляйте открытым вопросом.

Повторите проверку на своей копии записи. Учебные значения не описывают Ваш файл и не подтверждают качество всей расшифровки.

Заготовка для собственной проверки

Рабочая заготовкаВыделите и скопируйте
Вход 1: mic.wav
Вход 2: remote.wav
Общая шкала проверена: [начало / середина / конец]

ffmpeg -i mic.wav -i remote.wav -filter_complex "[0:a:0][1:a:0]amix=inputs=2:duration=longest:normalize=1[a]" -map "[a]" -c:a pcm_s16le mixed.wav

Прослушать: оба голоса, пересечения, конец.
Исходники сохранены отдельно.

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

amix ставит файлы последовательно?

Нет. Он смешивает сигналы одновременно.

normalize=1 делает голоса одинаково разборчивыми?

Нет. Нужна проверка фактического качества и уровней.

longest восстанавливает пропущенные реплики?

Нет. Он задаёт длительность результата по длинному входу.

Можно смешать две полные записи с одинаковыми голосами?

Это может дать двойной звук. Сначала проверьте содержимое входов.