Я на какой-то период перестала сидеть в чатах, но вернула эту привычку. Один из любимых чатов от канала
Speech Recognition. Длинные ответы нужно бы постить и тут.
🦘Я все еще в поиске хорошего денойзера для спецэффектов, плача, смеха и аплодисментов. Если вам такой известен, поделитесь, пожалуйста.
#grokaem_audio
Про предобработку:
Обычно для очистики я использую два этапа, однако можно всегда один из них выкинуть.
1.
Denoise - использую почти всегда старый добрый
demucs.api. Он удобен, если у вас например, есть задача сначала отделить музыку, а потом вернуть ее обратно. Вместо demucs можете попробовать
MVSEP. Не могу сказать, что я увидела много разницы с demucs, но это типо их расширение.
2. Дальше я всегда делаю
enhance перед любой TTS, так как пару раз уже проверяла, что качество всегда будет лучше (как mos, так и objective metrics). Однако, если вы будет потом просто сравнивать мелспеки, помните, что вы сделали enhance.
Для быстрых кейсов я юзаю
resemble-enhance, у него я ставлю их denoise, а потом enhance только на vocals от demucs. Качество мне нравится. Плюс они делают поддержку подсчета на gpu.
Однако если вы прям запарились и нужно качество лучше по enhance, то советую ребят
MP-SENet, у них хорошая модель с двумя енкодерами и для phase и для магнитуды. Также можно натренировать (я проверяла), все збс воспроизводится и тренеруется недолго.
Минусы двухэтапной обработки - вам нужно сохранять файл от demucs, я не долго и не сильно копала, может можно как-то его перекинуть сразу в enhance.
код от resemble-enhance, он у них в
app.py
def enhance_audio(audio_path, save_path, solver="midpoint",
nfe=64, tau=0.5, device="cuda", target_sr=16000):
solver = solver.lower()
nfe = int(nfe)
lambd = 0.9
dwav, sr = torchaudio.load(audio_path)
dwav = dwav.mean(dim=0)
wav1, new_sr = denoise(dwav, sr, device)
wav2, new_sr = enhance(dwav, sr, device, nfe=nfe, solver=solver, lambd=lambd, tau=tau)
wav2 = wav2.cpu().unsqueeze(0)
if new_sr != target_sr:
resampler = torchaudio.transforms.Resample(new_sr, target_sr)
wav2 = resampler(wav2)
torchaudio.save(save_path, wav2, target_sr)