Skip to content

clarinsi/rsdo_aknorm_v2

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Akustična normalizacija govornih posnetkov (ver. 2)

V tem repozitoriju so zbrani različni postopki akustične normalizacije govornih posnetkov, kot so NRSG, DFL, SEGAN.

Postopek NRSG

Postopek odstranjevanja šuma s pomočjo spektralnega razločevanja (ang. Noise Reduction using Spectral Gating, NRSG) temelji na algoritmu iz programa Audacity oziroma njegovi reimplementaciji iz repozitorija noisereduce.

Odstranitev šuma na posameznem posnetku ali vseh posnetkih v danem direktoriju se izvede z ukazom

python nrsg.py -i vhodni_wav_ali_dir -o razsumljeni_wav_ali_dir

Za izračun moči šuma postopek uporabi del posnetka, ki ne vsebuje govora. Predpostavljamo, da obstaja začetni in končni premor v katerem ni govora. Privzeta dolžina obeh premorov je 0.5 sekunde, lahko pa ju poljubno nastavimo z argumentom -b (npr. 0.3 s začetnega in 0.4 s končnega premora dobimo, če zgornjemu ukazu dodamo -b 0.3 0.4). Podrobnejši opis vhodnih argumentov dobimo z python nrsg.py -h.

Postopek DFL

Programska koda za odstranjevanje šuma s postopkom DFL (ang. deep feature losses) temelji na repozitoriju SpeechDenoisingWithDeepFeatureLosses.

Za namestitev zahtevanih paketov glej poglavje setup.

Odstranitev šuma iz posnetkov v danem direktoriju se izvede s pomočjo ukaza

python dfl.py -i /mapa/z/vhodnimi/posnetki/ -o /mapa/z/razsumljenimi/posnetki/ -m /mapa/z/modelom/SEnet/

Postopek SEGAN

Programska implementacija odstranjevanja šuma s postopkom SEGAN (ang. Speech Enhancement Generative Adversarial Network) se opira na kodo iz repozitorija santi-pdp/segan, prvotnih avtorjev tega postopka.

Za namestitev zahtevanih paketov glej poglavje Dependencies.

Odstranitev šuma na posameznem posnetku se izvede z zagonom skripte clean_wav.sh iz repozitorija santi-pdp/segan.

Izvedba postopka na vseh posnetkih v določenem direktoriju in poddirektorijih se izvede s

python segan.py --init_noise_std 0. --save_path pot/do/segan_v1.1 --batch_size 100 --g_nl prelu --weights SEGAN-41700 --preemph 0.95 --bias_deconv True --bias_downconv True --bias_D_conv True --in_dir pot/do/posnetkov --save_clean_path pot/do/razsumljenih/posnetkov

Pred zagonom je potrebno nastaviti pot do repozitorija santi-pdp/segan.

Postopek NSNet

Izboljšanje govornih posnetkov s postopkom NSNet (ang. Noise Suppression Network) temelji na uporabi programske opreme iz repozitorija DNS-Challenge.

Namestitev zahtevanih programskih paketov izvedemo z ukazi

pip install pysoundfile
pip install onnxruntime

Za izvedbo razšumljanja zvočnih posnetkov je potrebno najprej izvesti klon repozitorija DNS-Challenge in se premakniti v direktorij DNS-Challenge/NSNet2-baseline v katerem se nahaja skripta run_nsnet2.py. Razšumljanje izvedemo z ukazom

python run_nsnet2.py  --input vhodni_dir_ali_wav --output izhodni_dir_ali_wav

Vrednotenje kakovosti govornih posnetkov

Izračunu kakovost zvočnih posnetkov, obdelanih po obravnavanih postopkih razšumljanja, se opira na programsko opremo iz repozitorija speechmetrics, ki omogoča izračun tako različnih absolutnih mer (MOSNet, SRMR) kakor tudi relativnih mer kakovosti govornih posnetkov (PESQ, STOI, idr.). Poleg mer, ki jih zagotavlja speechmetrics, smo udejanjili še razmerje signal-šum (ang. signal to noise ratio, SNR).

Postopek vrednotenja lahko izvedemo z ukazom

python eval.py -i /mapa/z/vhodnimi/posnetki/ -r /mapa/z/referenčnimi/posnetki/ -o mere.csv

Pred zagonom je potrebno nastaviti pot do repozitorija speechmetrics.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages