**Krótki opis zadania:**
Opracować skrypt Python do automatycznego łączenia **dwóch ścieżek z projektu Audacity** (angielskiej i polskiej) w jeden plik, spełniając następujące warunki:
1. Polskie segmenty następują ściśle po angielskich.
2. Przerwy między segmentami powinny być takie same.
3. Nakładanie się między polskimi a angielskimi segmentami jest niedozwolone.
---
### **Główne kroki:**
1. **Eksport ścieżek z Audacity**
- Załadować projekt Audacity (*.aup), wyeksportować obie ścieżki do zsynchronizowanych plików audio (format do wyboru).
2. **Detekcja segmentów mowy**
- Określić znaczniki czasowe początku/końca segmentów na obu ścieżkach (wybór algorytmu: VAD, model ML, analiza energii).
3. **Dopasowanie segmentów**
- Dla każdego angielskiego segmentu `E_N` znaleźć polski segment `P_M`, który zaczyna się **po zakończeniu** `E_N`.
- Jeśli `P_M` jest zbyt długi i nakłada się z `E_{N+1}`:
- **Przesunąć** początek `E_{N+1}` (i wszystkich kolejnych segmentów), tak aby między `P_M` a `E_{N+1}` pozostała stała przerwa (np. 500 ms).
4. **Generacja końcowego pliku audio**
- Połączyć segmenty w kolejności: `E_1` → `P_1` → przerwa → `E_2` → `P_2` → przerwa → i tak dalej.
- Zachować oryginalną zawartość wszystkich segmentów bez zmian.
---
### **Dodatkowe informacje:**
- **Dane wejściowe**: projekt Audacity z dwoma ścieżkami.
- **Kluczowe zasady**:
- Kolejność angielskich segmentów nie ulega zmianie.
- Wszystkie segmenty są zachowane w pełnej formie.
- Przerwy między `P_M` a `E_{N+1}` są takie same dla wszystkich segmentów.
- **Technologie**:
- Detekcja segmentów — według uznania programisty.
- Algorytm przesuwania segmentów — dynamiczny (np. rekursywna korekta znaczników czasowych).
- **Obsługa konfliktów**:
- Jeśli przesunięcie jest niemożliwe (np. brak miejsca), wyświetlić ostrzeżenie w logu.
---
**Przykład logiki przesuwania:**
- Jeśli `P_M` kończy się w `t=5.0`, a `E_{N+1}` zaczyna się w `t=4.5`:
1. Obliczyć nakładanie: `4.5 - 5.0 = -0.5 sek`.
2. Przesunąć `E_{N+1}` o `0.5 sek + X` (gdzie `X` — stała przerwa).
3. Zaktualizować znaczniki czasowe wszystkich kolejnych segmentów.
**Cel:** Całkowita automatyzacja bez utraty danych, z zachowaniem naturalnego porządku segmentów i przerw.
W załączniku przykład pożądanego rezultatu (Efezjan 6 - D12_done.mp3),
przykład pliku źródłowego (Efezjan 6 - D12.aup3):
https://drive.google.com/file/d/1YQ1h95bzXD4M3EXCdNaFLADJUeQw1zTY/view?usp=sharing