Podział audio stereo na mono za pomocą PyDub
Jeśli chcesz transkrybować rozmowy telefoniczne, istnieje spora szansa, że zostały nagrane w formacie stereo – z jednym mówcą na każdym kanale.
Jak już wiesz, transkrypcja pliku audio z więcej niż jednym mówcą jest trudna. Jednym z rozwiązań jest podzielenie takiego pliku na osobne pliki – po jednym dla każdego mówcy.
Funkcja split_to_mono() z biblioteki PyDub świetnie się do tego nadaje. Wywołana na AudioSegment nagranym w stereo, zwraca listę dwóch oddzielnych AudioSegment'ów w formacie mono – po jednym na każdy kanał.
W tym ćwiczeniu przećwiczysz to, dzieląc to nagranie stereofonicznej rozmowy telefonicznej (stereo_phone_call.wav) na kanał 1 i kanał 2. Dzięki temu rozdzielisz obu rozmówców, co znacznie ułatwi transkrypcję.
To ćwiczenie jest częścią kursu
Przetwarzanie mowy w Pythonie
Instrukcje do ćwiczenia
- Zaimportuj
AudioSegmentzpydub. - Utwórz instancję
AudioSegmento nazwiestereo_phone_callna podstawie plikustereo_phone_call.wav. - Podziel
stereo_phone_callna kanały (channels), używającsplit_to_mono(), i sprawdź kanały zwróconego wyniku. - Zapisz każdy kanał do nowych zmiennych:
phone_call_channel_1iphone_call_channel_2.
Interaktywne ćwiczenie praktyczne
Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.
# Import AudioSegment
from ____ import ____
# Import stereo audio file and check channels
stereo_phone_call = AudioSegment.from_file(____)
print(f"Stereo number channels: {stereo_phone_call.channels}")
# Split stereo phone call and check channels
channels = stereo_phone_call.____
print(f"Split number channels: {channels[0].____}, {channels[1].____}")
# Save new channels separately
phone_call_channel_1 = channels[0]
phone_call_channel_2 = ____