**Краткое описание задачи:**
Разработать Python-скрипт для автоматического объединения **двух дорожек из Audacity-проекта** (английской и польской) в единый файл, соблюдая условия:
1. Польские сегменты следуют строго после английских.
2. Паузы между сегментами должны быть одинаковыми.
3. Перекрытия между польскими и английскими сегментами недопустимы.
---
### **Основные шаги:**
1. **Экспорт дорожек из Audacity**
- Загрузить Audacity-проект (*.aup), экспортировать обе дорожки в синхронизированные аудиофайлы (формат на выбор).
2. **Детекция речевых сегментов**
- Определить временные метки начала/окончания сегментов в обеих дорожках (алгоритм на выбор: VAD, ML-модель, энергетический анализ).
3. **Сопоставление сегментов**
- Для каждого английского сегмента `E_N` найти польский сегмент `P_M`, который начинается **после окончания** `E_N`.
- Если `P_M` слишком длинный и пересекается с `E_{N+1}`:
- **Сдвинуть** начало `E_{N+1}` (и всех последующих сегментов) так, чтобы между `P_M` и `E_{N+1}` осталась фиксированная пауза (например, 500 мс).
4. **Генерация финального аудио**
- Объединить сегменты в порядке: `E_1` → `P_1` → пауза → `E_2` → `P_2` → пауза → и т.д.
- Сохранить исходное содержимое всех сегментов без изменений.
---
### **Уточнения:**
- **Исходные данные**: Audacity-проект с двумя дорожками.
- **Ключевые правила**:
- Порядок английских сегментов не меняется.
- Все сегменты сохраняются в полном объеме.
- Паузы между `P_M` и `E_{N+1}` одинаковы для всех сегментов.
- **Технологии**:
- Детекция сегментов — на усмотрение разработчика.
- Алгоритм сдвига сегментов — динамический (например, рекурсивная коррекция временных меток).
- **Обработка конфликтов**:
- Если сдвиг невозможен (например, недостаточно места), вывести предупреждение в лог.
---
**Пример реализации логики сдвига:**
- Если `P_M` заканчивается в `t=5.0`, а `E_{N+1}` начинается в `t=4.5`:
1. Вычислить перекрытие: `4.5 - 5.0 = -0.5 сек`.
2. Сдвинуть `E_{N+1}` на `0.5 сек + X` (где `X` — фиксированная пауза).
3. Обновить временные метки всех последующих сегментов.
**Цель:** Полная автоматизация без потерь данных, с сохранением естественного порядка сегментов и пауз.
В приложении пример желаемого результата (Efezjan 6 - D12_done.mp3),
пример исходного файла (Efezjan 6 - D12.aup3):
https://drive.google.com/file/d/1YQ1h95bzXD4M3EXCdNaFLADJUeQw1zTY/view?usp=sharing