diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000000000000000000000000000000000000..d79848e3a4214c3e0edc322cb2b551288f85c7f1 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,303 @@ +*.7z filter=lfs diff=lfs merge=lfs -text +*.arrow filter=lfs diff=lfs merge=lfs -text +*.bin filter=lfs diff=lfs merge=lfs -text +*.bz2 filter=lfs diff=lfs merge=lfs -text +*.ckpt filter=lfs diff=lfs merge=lfs -text +*.ftz filter=lfs diff=lfs merge=lfs -text +*.gz filter=lfs diff=lfs merge=lfs -text +*.h5 filter=lfs diff=lfs merge=lfs -text +*.joblib filter=lfs diff=lfs merge=lfs -text +*.lfs.* filter=lfs diff=lfs merge=lfs -text +*.mlmodel filter=lfs diff=lfs merge=lfs -text +*.model filter=lfs diff=lfs merge=lfs -text +*.msgpack filter=lfs diff=lfs merge=lfs -text +*.npy filter=lfs diff=lfs merge=lfs -text +*.npz filter=lfs diff=lfs merge=lfs -text +*.onnx filter=lfs diff=lfs merge=lfs -text +*.ot filter=lfs diff=lfs merge=lfs -text +*.parquet filter=lfs diff=lfs merge=lfs -text +*.pb filter=lfs diff=lfs merge=lfs -text +*.pickle filter=lfs diff=lfs merge=lfs -text +*.pkl filter=lfs diff=lfs merge=lfs -text +*.pt filter=lfs diff=lfs merge=lfs -text +*.pth filter=lfs diff=lfs merge=lfs -text +*.rar filter=lfs diff=lfs merge=lfs -text +*.safetensors filter=lfs diff=lfs merge=lfs -text +saved_model/**/* filter=lfs diff=lfs merge=lfs -text +*.tar.* filter=lfs diff=lfs merge=lfs -text +*.tar filter=lfs diff=lfs merge=lfs -text +*.tflite filter=lfs diff=lfs merge=lfs -text +*.tgz filter=lfs diff=lfs merge=lfs -text +*.wasm filter=lfs diff=lfs merge=lfs -text +*.xz filter=lfs diff=lfs merge=lfs -text +*.zip filter=lfs diff=lfs merge=lfs -text +*.zst filter=lfs diff=lfs merge=lfs -text +*tfevents* filter=lfs diff=lfs merge=lfs -text +samples/common-voice/before/ab.wav filter=lfs diff=lfs merge=lfs -text +samples/common-voice/before/af.flac filter=lfs diff=lfs merge=lfs -text +samples/common-voice/before/am.flac filter=lfs diff=lfs merge=lfs -text +samples/common-voice/before/audio.flac filter=lfs diff=lfs merge=lfs -text +samples/common-voice/before/cy.flac filter=lfs diff=lfs merge=lfs -text +samples/common-voice/after/ab_recon44k_d20.wav filter=lfs diff=lfs merge=lfs -text +samples/common-voice/after/af_recon44k_d20.wav filter=lfs diff=lfs merge=lfs -text +samples/common-voice/after/am_recon44k_d20.wav filter=lfs diff=lfs merge=lfs -text +samples/common-voice/after/audio_recon44k_d20.wav filter=lfs diff=lfs merge=lfs -text +samples/common-voice/after/cy_recon44k_d20.wav filter=lfs diff=lfs merge=lfs -text +samples/common-voice/before/ab.flac filter=lfs diff=lfs merge=lfs -text +samples/common-voice/before/ar.flac filter=lfs diff=lfs merge=lfs -text +samples/common-voice/before/as.flac filter=lfs diff=lfs merge=lfs -text +samples/common-voice/before/ast.flac filter=lfs diff=lfs merge=lfs -text +samples/common-voice/before/az.flac filter=lfs diff=lfs merge=lfs -text +samples/common-voice/before/bas.flac filter=lfs diff=lfs merge=lfs -text +samples/common-voice/before/be.flac filter=lfs diff=lfs merge=lfs -text +samples/common-voice/before/bg.flac filter=lfs diff=lfs merge=lfs -text +samples/common-voice/before/bn.flac filter=lfs diff=lfs merge=lfs -text +samples/common-voice/before/br.flac filter=lfs diff=lfs merge=lfs -text +samples/common-voice/before/ca.flac filter=lfs diff=lfs merge=lfs -text +samples/common-voice/before/ckb.flac filter=lfs diff=lfs merge=lfs -text +samples/common-voice/before/cnh.flac filter=lfs diff=lfs merge=lfs -text +samples/common-voice/before/cs.flac filter=lfs diff=lfs merge=lfs -text +samples/common-voice/before/cv.flac filter=lfs diff=lfs merge=lfs -text +samples/common-voice/before/da.flac filter=lfs diff=lfs merge=lfs -text +samples/common-voice/before/dav.flac filter=lfs diff=lfs merge=lfs -text +samples/common-voice/before/de.flac filter=lfs diff=lfs merge=lfs -text +samples/common-voice/before/dv.flac filter=lfs diff=lfs merge=lfs -text +samples/common-voice/before/dyu.flac filter=lfs diff=lfs merge=lfs -text +samples/common-voice/before/el.flac filter=lfs diff=lfs merge=lfs -text +samples/common-voice/before/en.flac filter=lfs diff=lfs merge=lfs -text +samples/common-voice/before/eo.flac filter=lfs diff=lfs merge=lfs -text +samples/common-voice/before/es.flac filter=lfs diff=lfs merge=lfs -text +samples/common-voice/before/et.flac filter=lfs diff=lfs merge=lfs -text +samples/common-voice/before/eu.flac filter=lfs diff=lfs merge=lfs -text +samples/common-voice/before/fa.flac filter=lfs diff=lfs merge=lfs -text +samples/common-voice/before/fi.flac filter=lfs diff=lfs merge=lfs -text +samples/common-voice/before/fr.flac filter=lfs diff=lfs merge=lfs -text +samples/common-voice/before/fy-NL.flac filter=lfs diff=lfs merge=lfs -text +samples/common-voice/before/ga-IE.flac filter=lfs diff=lfs merge=lfs -text +samples/common-voice/before/gl.flac filter=lfs diff=lfs merge=lfs -text +samples/common-voice/before/gn.flac filter=lfs diff=lfs merge=lfs -text +samples/common-voice/before/ha.flac filter=lfs diff=lfs merge=lfs -text +samples/common-voice/before/he.flac filter=lfs diff=lfs merge=lfs -text +samples/common-voice/before/hi.flac filter=lfs diff=lfs merge=lfs -text +samples/common-voice/before/hsb.flac filter=lfs diff=lfs merge=lfs -text +samples/common-voice/before/hu.flac filter=lfs diff=lfs merge=lfs -text +samples/common-voice/before/hy-AM.flac filter=lfs diff=lfs merge=lfs -text +samples/common-voice/before/ia.flac filter=lfs diff=lfs merge=lfs -text +samples/common-voice/before/id.flac filter=lfs diff=lfs merge=lfs -text +samples/common-voice/before/ig.flac filter=lfs diff=lfs merge=lfs -text +samples/common-voice/before/is.flac filter=lfs diff=lfs merge=lfs -text +samples/common-voice/before/it.flac filter=lfs diff=lfs merge=lfs -text +samples/common-voice/before/ja.flac filter=lfs diff=lfs merge=lfs -text +samples/common-voice/before/ka.flac filter=lfs diff=lfs merge=lfs -text +samples/common-voice/before/kab.flac filter=lfs diff=lfs merge=lfs -text +samples/common-voice/before/kk.flac filter=lfs diff=lfs merge=lfs -text +samples/common-voice/before/kln.flac filter=lfs diff=lfs merge=lfs -text +samples/common-voice/before/kmr.flac filter=lfs diff=lfs merge=lfs -text +samples/common-voice/before/ko.flac filter=lfs diff=lfs merge=lfs -text +samples/common-voice/before/ky.flac filter=lfs diff=lfs merge=lfs -text +samples/common-voice/before/lg.flac filter=lfs diff=lfs merge=lfs -text +samples/common-voice/before/lij.flac filter=lfs diff=lfs merge=lfs -text +samples/common-voice/before/lo.flac filter=lfs diff=lfs merge=lfs -text +samples/common-voice/before/lt.flac filter=lfs diff=lfs merge=lfs -text +samples/common-voice/before/ltg.flac filter=lfs diff=lfs merge=lfs -text +samples/common-voice/before/luo.flac filter=lfs diff=lfs merge=lfs -text +samples/common-voice/before/lv.flac filter=lfs diff=lfs merge=lfs -text +samples/common-voice/before/mhr.flac filter=lfs diff=lfs merge=lfs -text +samples/common-voice/before/mk.flac filter=lfs diff=lfs merge=lfs -text +samples/common-voice/before/mn.flac filter=lfs diff=lfs merge=lfs -text +samples/common-voice/before/mr.flac filter=lfs diff=lfs merge=lfs -text +samples/common-voice/before/mrj.flac filter=lfs diff=lfs merge=lfs -text +samples/common-voice/before/mt.flac filter=lfs diff=lfs merge=lfs -text +samples/common-voice/before/myv.flac filter=lfs diff=lfs merge=lfs -text +samples/common-voice/before/nb-NO.flac filter=lfs diff=lfs merge=lfs -text +samples/common-voice/before/nhi.flac filter=lfs diff=lfs merge=lfs -text +samples/common-voice/before/nl.flac filter=lfs diff=lfs merge=lfs -text +samples/common-voice/before/nn-NO.flac filter=lfs diff=lfs merge=lfs -text +samples/common-voice/before/nr.flac filter=lfs diff=lfs merge=lfs -text +samples/common-voice/before/nso.flac filter=lfs diff=lfs merge=lfs -text +samples/common-voice/before/oc.flac filter=lfs diff=lfs merge=lfs -text +samples/common-voice/before/or.flac filter=lfs diff=lfs merge=lfs -text +samples/common-voice/before/os.flac filter=lfs diff=lfs merge=lfs -text +samples/common-voice/before/pa-IN.flac filter=lfs diff=lfs merge=lfs -text +samples/common-voice/before/pl.flac filter=lfs diff=lfs merge=lfs -text +samples/common-voice/before/ps.flac filter=lfs diff=lfs merge=lfs -text +samples/common-voice/before/pt.flac filter=lfs diff=lfs merge=lfs -text +samples/common-voice/before/quy.flac filter=lfs diff=lfs merge=lfs -text +samples/common-voice/before/rm-sursilv.flac filter=lfs diff=lfs merge=lfs -text +samples/common-voice/before/rm-vallader.flac filter=lfs diff=lfs merge=lfs -text +samples/common-voice/before/ro.flac filter=lfs diff=lfs merge=lfs -text +samples/common-voice/before/ru.flac filter=lfs diff=lfs merge=lfs -text +samples/common-voice/before/rup.flac filter=lfs diff=lfs merge=lfs -text +samples/common-voice/before/rw.flac filter=lfs diff=lfs merge=lfs -text +samples/common-voice/before/sah.flac filter=lfs diff=lfs merge=lfs -text +samples/common-voice/before/sat.flac filter=lfs diff=lfs merge=lfs -text +samples/common-voice/before/sc.flac filter=lfs diff=lfs merge=lfs -text +samples/common-voice/before/sd.flac filter=lfs diff=lfs merge=lfs -text +samples/common-voice/before/sk.flac filter=lfs diff=lfs merge=lfs -text +samples/common-voice/before/skr.flac filter=lfs diff=lfs merge=lfs -text +samples/common-voice/before/sl.flac filter=lfs diff=lfs merge=lfs -text +samples/common-voice/before/sv-SE.flac filter=lfs diff=lfs merge=lfs -text +samples/common-voice/before/sw.flac filter=lfs diff=lfs merge=lfs -text +samples/common-voice/before/ta.flac filter=lfs diff=lfs merge=lfs -text +samples/common-voice/before/te.flac filter=lfs diff=lfs merge=lfs -text +samples/common-voice/before/tg.flac filter=lfs diff=lfs merge=lfs -text +samples/common-voice/before/th.flac filter=lfs diff=lfs merge=lfs -text +samples/common-voice/before/ti.flac filter=lfs diff=lfs merge=lfs -text +samples/common-voice/before/tk.flac filter=lfs diff=lfs merge=lfs -text +samples/common-voice/before/tn.flac filter=lfs diff=lfs merge=lfs -text +samples/common-voice/before/tok.flac filter=lfs diff=lfs merge=lfs -text +samples/common-voice/before/tr.flac filter=lfs diff=lfs merge=lfs -text +samples/common-voice/before/tt.flac filter=lfs diff=lfs merge=lfs -text +samples/common-voice/before/tw.flac filter=lfs diff=lfs merge=lfs -text +samples/common-voice/before/ug.flac filter=lfs diff=lfs merge=lfs -text +samples/common-voice/before/uk.flac filter=lfs diff=lfs merge=lfs -text +samples/common-voice/before/ur.flac filter=lfs diff=lfs merge=lfs -text +samples/common-voice/before/uz.flac filter=lfs diff=lfs merge=lfs -text +samples/common-voice/before/ve.flac filter=lfs diff=lfs merge=lfs -text +samples/common-voice/before/vi.flac filter=lfs diff=lfs merge=lfs -text +samples/common-voice/before/vot.flac filter=lfs diff=lfs merge=lfs -text +samples/common-voice/before/xh.flac filter=lfs diff=lfs merge=lfs -text +samples/common-voice/before/yi.flac filter=lfs diff=lfs merge=lfs -text +samples/common-voice/before/yo.flac filter=lfs diff=lfs merge=lfs -text +samples/common-voice/before/yue.flac filter=lfs diff=lfs merge=lfs -text +samples/common-voice/before/zgh.flac filter=lfs diff=lfs merge=lfs -text +samples/common-voice/before/zh-CN.flac filter=lfs diff=lfs merge=lfs -text +samples/common-voice/before/zh-TW.flac filter=lfs diff=lfs merge=lfs -text +samples/common-voice/before/zu.flac filter=lfs diff=lfs merge=lfs -text +samples/common-voice/before/zza.flac filter=lfs diff=lfs merge=lfs -text +samples/common-voice/after/ar_recon44k_d20.wav filter=lfs diff=lfs merge=lfs -text +samples/common-voice/after/as_recon44k_d20.wav filter=lfs diff=lfs merge=lfs -text +samples/common-voice/after/ast_recon44k_d20.wav filter=lfs diff=lfs merge=lfs -text +samples/common-voice/after/az_recon44k_d20.wav filter=lfs diff=lfs merge=lfs -text +samples/common-voice/after/ba_recon44k_d20.wav filter=lfs diff=lfs merge=lfs -text +samples/common-voice/after/bas_recon44k_d20.wav filter=lfs diff=lfs merge=lfs -text +samples/common-voice/after/be_recon44k_d20.wav filter=lfs diff=lfs merge=lfs -text +samples/common-voice/after/bg_recon44k_d20.wav filter=lfs diff=lfs merge=lfs -text +samples/common-voice/after/bn_recon44k_d20.wav filter=lfs diff=lfs merge=lfs -text +samples/common-voice/after/br_recon44k_d20.wav filter=lfs diff=lfs merge=lfs -text +samples/common-voice/after/ca_recon44k_d20.wav filter=lfs diff=lfs merge=lfs -text +samples/common-voice/after/ckb_recon44k_d20.wav filter=lfs diff=lfs merge=lfs -text +samples/common-voice/after/cnh_recon44k_d20.wav filter=lfs diff=lfs merge=lfs -text +samples/common-voice/after/cs_recon44k_d20.wav filter=lfs diff=lfs merge=lfs -text +samples/common-voice/after/cv_recon44k_d20.wav filter=lfs diff=lfs merge=lfs -text +samples/common-voice/after/da_recon44k_d20.wav filter=lfs diff=lfs merge=lfs -text +samples/common-voice/after/dav_recon44k_d20.wav filter=lfs diff=lfs merge=lfs -text +samples/common-voice/after/de_recon44k_d20.wav filter=lfs diff=lfs merge=lfs -text +samples/common-voice/after/dv_recon44k_d20.wav filter=lfs diff=lfs merge=lfs -text +samples/common-voice/after/dyu_recon44k_d20.wav filter=lfs diff=lfs merge=lfs -text +samples/common-voice/after/el_recon44k_d20.wav filter=lfs diff=lfs merge=lfs -text +samples/common-voice/after/en_recon44k_d20.wav filter=lfs diff=lfs merge=lfs -text +samples/common-voice/after/eo_recon44k_d20.wav filter=lfs diff=lfs merge=lfs -text +samples/common-voice/after/es_recon44k_d20.wav filter=lfs diff=lfs merge=lfs -text +samples/common-voice/after/et_recon44k_d20.wav filter=lfs diff=lfs merge=lfs -text +samples/common-voice/after/eu_recon44k_d20.wav filter=lfs diff=lfs merge=lfs -text +samples/common-voice/after/fa_recon44k_d20.wav filter=lfs diff=lfs merge=lfs -text +samples/common-voice/after/fi_recon44k_d20.wav filter=lfs diff=lfs merge=lfs -text +samples/common-voice/after/fr_recon44k_d20.wav filter=lfs diff=lfs merge=lfs -text +samples/common-voice/after/fy-NL_recon44k_d20.wav filter=lfs diff=lfs merge=lfs -text +samples/common-voice/after/ga-IE_recon44k_d20.wav filter=lfs diff=lfs merge=lfs -text +samples/common-voice/after/gl_recon44k_d20.wav filter=lfs diff=lfs merge=lfs -text +samples/common-voice/after/gn_recon44k_d20.wav filter=lfs diff=lfs merge=lfs -text +samples/common-voice/after/ha_recon44k_d20.wav filter=lfs diff=lfs merge=lfs -text +samples/common-voice/after/he_recon44k_d20.wav filter=lfs diff=lfs merge=lfs -text +samples/common-voice/after/hi_recon44k_d20.wav filter=lfs diff=lfs merge=lfs -text +samples/common-voice/after/hsb_recon44k_d20.wav filter=lfs diff=lfs merge=lfs -text +samples/common-voice/after/ht_recon44k_d20.wav filter=lfs diff=lfs merge=lfs -text +samples/common-voice/after/hu_recon44k_d20.wav filter=lfs diff=lfs merge=lfs -text +samples/common-voice/after/hy-AM_recon44k_d20.wav filter=lfs diff=lfs merge=lfs -text +samples/common-voice/after/ia_recon44k_d20.wav filter=lfs diff=lfs merge=lfs -text +samples/common-voice/after/id_recon44k_d20.wav filter=lfs diff=lfs merge=lfs -text +samples/common-voice/after/ig_recon44k_d20.wav filter=lfs diff=lfs merge=lfs -text +samples/common-voice/after/is_recon44k_d20.wav filter=lfs diff=lfs merge=lfs -text +samples/common-voice/after/it_recon44k_d20.wav filter=lfs diff=lfs merge=lfs -text +samples/common-voice/after/ja_recon44k_d20.wav filter=lfs diff=lfs merge=lfs -text +samples/common-voice/after/ka_recon44k_d20.wav filter=lfs diff=lfs merge=lfs -text +samples/common-voice/after/kab_recon44k_d20.wav filter=lfs diff=lfs merge=lfs -text +samples/common-voice/after/kk_recon44k_d20.wav filter=lfs diff=lfs merge=lfs -text +samples/common-voice/after/kln_recon44k_d20.wav filter=lfs diff=lfs merge=lfs -text +samples/common-voice/after/kmr_recon44k_d20.wav filter=lfs diff=lfs merge=lfs -text +samples/common-voice/after/ko_recon44k_d20.wav filter=lfs diff=lfs merge=lfs -text +samples/common-voice/after/ky_recon44k_d20.wav filter=lfs diff=lfs merge=lfs -text +samples/common-voice/after/lg_recon44k_d20.wav filter=lfs diff=lfs merge=lfs -text +samples/common-voice/after/lij_recon44k_d20.wav filter=lfs diff=lfs merge=lfs -text +samples/common-voice/after/lo_recon44k_d20.wav filter=lfs diff=lfs merge=lfs -text +samples/common-voice/after/lt_recon44k_d20.wav filter=lfs diff=lfs merge=lfs -text +samples/common-voice/after/ltg_recon44k_d20.wav filter=lfs diff=lfs merge=lfs -text +samples/common-voice/after/luo_recon44k_d20.wav filter=lfs diff=lfs merge=lfs -text +samples/common-voice/after/lv_recon44k_d20.wav filter=lfs diff=lfs merge=lfs -text +samples/common-voice/after/mdf_recon44k_d20.wav filter=lfs diff=lfs merge=lfs -text +samples/common-voice/after/mhr_recon44k_d20.wav filter=lfs diff=lfs merge=lfs -text +samples/common-voice/after/mk_recon44k_d20.wav filter=lfs diff=lfs merge=lfs -text +samples/common-voice/after/ml_recon44k_d20.wav filter=lfs diff=lfs merge=lfs -text +samples/common-voice/after/mn_recon44k_d20.wav filter=lfs diff=lfs merge=lfs -text +samples/common-voice/after/mr_recon44k_d20.wav filter=lfs diff=lfs merge=lfs -text +samples/common-voice/after/mrj_recon44k_d20.wav filter=lfs diff=lfs merge=lfs -text +samples/common-voice/after/mt_recon44k_d20.wav filter=lfs diff=lfs merge=lfs -text +samples/common-voice/after/myv_recon44k_d20.wav filter=lfs diff=lfs merge=lfs -text +samples/common-voice/after/nan-tw_recon44k_d20.wav filter=lfs diff=lfs merge=lfs -text +samples/common-voice/after/nb-NO_recon44k_d20.wav filter=lfs diff=lfs merge=lfs -text +samples/common-voice/after/ne-NP_recon44k_d20.wav filter=lfs diff=lfs merge=lfs -text +samples/common-voice/after/nhi_recon44k_d20.wav filter=lfs diff=lfs merge=lfs -text +samples/common-voice/after/nl_recon44k_d20.wav filter=lfs diff=lfs merge=lfs -text +samples/common-voice/after/nn-NO_recon44k_d20.wav filter=lfs diff=lfs merge=lfs -text +samples/common-voice/after/nr_recon44k_d20.wav filter=lfs diff=lfs merge=lfs -text +samples/common-voice/after/nso_recon44k_d20.wav filter=lfs diff=lfs merge=lfs -text +samples/common-voice/after/oc_recon44k_d20.wav filter=lfs diff=lfs merge=lfs -text +samples/common-voice/after/or_recon44k_d20.wav filter=lfs diff=lfs merge=lfs -text +samples/common-voice/after/os_recon44k_d20.wav filter=lfs diff=lfs merge=lfs -text +samples/common-voice/after/pa-IN_recon44k_d20.wav filter=lfs diff=lfs merge=lfs -text +samples/common-voice/after/pl_recon44k_d20.wav filter=lfs diff=lfs merge=lfs -text +samples/common-voice/after/ps_recon44k_d20.wav filter=lfs diff=lfs merge=lfs -text +samples/common-voice/after/pt_recon44k_d20.wav filter=lfs diff=lfs merge=lfs -text +samples/common-voice/after/quy_recon44k_d20.wav filter=lfs diff=lfs merge=lfs -text +samples/common-voice/after/rm-sursilv_recon44k_d20.wav filter=lfs diff=lfs merge=lfs -text +samples/common-voice/after/rm-vallader_recon44k_d20.wav filter=lfs diff=lfs merge=lfs -text +samples/common-voice/after/ro_recon44k_d20.wav filter=lfs diff=lfs merge=lfs -text +samples/common-voice/after/ru_recon44k_d20.wav filter=lfs diff=lfs merge=lfs -text +samples/common-voice/after/rup_recon44k_d20.wav filter=lfs diff=lfs merge=lfs -text +samples/common-voice/after/rw_recon44k_d20.wav filter=lfs diff=lfs merge=lfs -text +samples/common-voice/after/sah_recon44k_d20.wav filter=lfs diff=lfs merge=lfs -text +samples/common-voice/after/sat_recon44k_d20.wav filter=lfs diff=lfs merge=lfs -text +samples/common-voice/after/sc_recon44k_d20.wav filter=lfs diff=lfs merge=lfs -text +samples/common-voice/after/sd_recon44k_d20.wav filter=lfs diff=lfs merge=lfs -text +samples/common-voice/after/sk_recon44k_d20.wav filter=lfs diff=lfs merge=lfs -text +samples/common-voice/after/skr_recon44k_d20.wav filter=lfs diff=lfs merge=lfs -text +samples/common-voice/after/sl_recon44k_d20.wav filter=lfs diff=lfs merge=lfs -text +samples/common-voice/after/sq_recon44k_d20.wav filter=lfs diff=lfs merge=lfs -text +samples/common-voice/after/sr_recon44k_d20.wav filter=lfs diff=lfs merge=lfs -text +samples/common-voice/after/st_recon44k_d20.wav filter=lfs diff=lfs merge=lfs -text +samples/common-voice/after/sv-SE_recon44k_d20.wav filter=lfs diff=lfs merge=lfs -text +samples/common-voice/after/sw_recon44k_d20.wav filter=lfs diff=lfs merge=lfs -text +samples/common-voice/after/ta_recon44k_d20.wav filter=lfs diff=lfs merge=lfs -text +samples/common-voice/after/te_recon44k_d20.wav filter=lfs diff=lfs merge=lfs -text +samples/common-voice/after/tg_recon44k_d20.wav filter=lfs diff=lfs merge=lfs -text +samples/common-voice/after/th_recon44k_d20.wav filter=lfs diff=lfs merge=lfs -text +samples/common-voice/after/ti_recon44k_d20.wav filter=lfs diff=lfs merge=lfs -text +samples/common-voice/after/tig_recon44k_d20.wav filter=lfs diff=lfs merge=lfs -text +samples/common-voice/after/tk_recon44k_d20.wav filter=lfs diff=lfs merge=lfs -text +samples/common-voice/after/tn_recon44k_d20.wav filter=lfs diff=lfs merge=lfs -text +samples/common-voice/after/tok_recon44k_d20.wav filter=lfs diff=lfs merge=lfs -text +samples/common-voice/after/tr_recon44k_d20.wav filter=lfs diff=lfs merge=lfs -text +samples/common-voice/after/ts_recon44k_d20.wav filter=lfs diff=lfs merge=lfs -text +samples/common-voice/after/tt_recon44k_d20.wav filter=lfs diff=lfs merge=lfs -text +samples/common-voice/after/tw_recon44k_d20.wav filter=lfs diff=lfs merge=lfs -text +samples/common-voice/after/ug_recon44k_d20.wav filter=lfs diff=lfs merge=lfs -text +samples/common-voice/after/uk_recon44k_d20.wav filter=lfs diff=lfs merge=lfs -text +samples/common-voice/after/ur_recon44k_d20.wav filter=lfs diff=lfs merge=lfs -text +samples/common-voice/after/uz_recon44k_d20.wav filter=lfs diff=lfs merge=lfs -text +samples/common-voice/after/ve_recon44k_d20.wav filter=lfs diff=lfs merge=lfs -text +samples/common-voice/after/vi_recon44k_d20.wav filter=lfs diff=lfs merge=lfs -text +samples/common-voice/after/vot_recon44k_d20.wav filter=lfs diff=lfs merge=lfs -text +samples/common-voice/after/xh_recon44k_d20.wav filter=lfs diff=lfs merge=lfs -text +samples/common-voice/after/yi_recon44k_d20.wav filter=lfs diff=lfs merge=lfs -text +samples/common-voice/after/yo_recon44k_d20.wav filter=lfs diff=lfs merge=lfs -text +samples/common-voice/after/yue_recon44k_d20.wav filter=lfs diff=lfs merge=lfs -text +samples/common-voice/after/zgh_recon44k_d20.wav filter=lfs diff=lfs merge=lfs -text +samples/common-voice/after/zh-CN_recon44k_d20.wav filter=lfs diff=lfs merge=lfs -text +samples/common-voice/after/zh-HK_recon44k_d20.wav filter=lfs diff=lfs merge=lfs -text +samples/common-voice/after/zh-TW_recon44k_d20.wav filter=lfs diff=lfs merge=lfs -text +samples/common-voice/after/zu_recon44k_d20.wav filter=lfs diff=lfs merge=lfs -text +samples/common-voice/after/zza_recon44k_d20.wav filter=lfs diff=lfs merge=lfs -text +samples/boboiboy/boboiboy-after.wav filter=lfs diff=lfs merge=lfs -text +samples/boboiboy/after/boboiboy-after.wav filter=lfs diff=lfs merge=lfs -text +widecodec_progress.png filter=lfs diff=lfs merge=lfs -text diff --git a/README.md b/README.md new file mode 100644 index 0000000000000000000000000000000000000000..7802da175a6082a2e7b52815eaee18c3c8605d21 --- /dev/null +++ b/README.md @@ -0,0 +1,506 @@ +--- +license: apache-2.0 +library_name: neucodec +pipeline_tag: audio-to-audio +tags: +- neural-audio-codec +- neucodec +- widecodec +- 44100hz +- decoder-finetune +- speech +--- + +# WideCodec — 44.1 kHz decoder + +**A SOTA 0.8 kbps, 44.1 kHz audio tokenizer.** + +**WideCodec** is a **44.1 kHz decoder finetune** of [`neuphonic/neucodec`](https://huggingface.co/neuphonic/neucodec). + +- **Sample rate:** 44 100 Hz · **hop:** 882 · **50 tokens/sec** + +## Inference (self-contained) + +Everything needed to run inference is **in this repo** — the `neucodec/` package and +`infer_widecodec.py`. No other source code required. + +```bash +pip install torch transformers huggingface_hub local-attention einops librosa soundfile +huggingface-cli login # if this repo is private (or export HF_TOKEN=hf_...) + +huggingface-cli download Scicom-intl/WideCodec --local-dir WideCodec +cd WideCodec +python infer_widecodec.py --input my.wav --out-dir out # one file +python infer_widecodec.py --input folder/ --out-dir out # a directory +``` + +Or load it directly in Python: + +```python +import sys; sys.path.insert(0, "WideCodec") # the downloaded repo dir +import torch, librosa +from neucodec import NeuCodec + +model = NeuCodec._from_pretrained(model_id="Scicom-intl/WideCodec", decoder_depth=20).eval().cuda() +wav16, _ = librosa.load("my.wav", sr=16000, mono=True) # encoder ingests 16 kHz mono +x = torch.from_numpy(wav16).float().view(1, 1, -1).cuda() +with torch.no_grad(): + codes = model.encode_code(x) # frozen FSQ codes — 0.8 kbps, 50 tok/s + wav44 = model.decode_code(codes) # 44.1 kHz reconstruction +``` + +## Files + +| file | what | +|---|---| +| `pytorch_model.bin` | decoder weights for **inference** (load with `NeuCodec._from_pretrained(..., decoder_depth=20)`) | +| `last.ckpt` | full PyTorch-Lightning checkpoint **with optimizer states + LR schedulers** for **resuming training** | + +## How WideCodec compares (44 kHz-class, by bitrate) + +Offline benchmark on a **heavily multilingual 9,291-clip wideband set** (50 clips × 188 clean ≥44.1 kHz datasets, **400+ language/dialect tags**), +faster-UTMOSv2 + spectral vs ground truth. + +![bitrate vs UTMOSv2](bitrate_vs_utmosv2.png) + +![WideCodec release progression](widecodec_progress.png) + +| codec | native SR | tokens/s | codebooks | ~bitrate | UTMOSv2 | mel-L1 ↓ | HF≥11k | rolloff | +|---|--:|--:|--:|--:|--:|--:|--:|--:| +| ground truth | — | — | — | — | 2.822 | — | 0.00244 | 8263 | +| nvidia nemo44k | 44.1k | ~86 | RVQ (many) | ~6–9 kbps | **2.903** | 0.379 | 0.00196 | 8372 | +| **WideCodec (ours, 2026-08-16)** | 44.1k | **50** | **1** | **~0.8 kbps** | **2.919** | 0.571 | 0.00223 | 9011 | +| WideCodec (previous, 2026-07-21) | 44.1k | 50 | 1 | ~0.8 kbps | 2.788 | 0.571 | 0.00223 | 9011 | +| dac | 44.1k | 86 | 9 | ~8 kbps | 2.672 | **0.341** | 0.00156 | 8185 | +| snac44k | 44.1k | multi-scale | 3–4 | ~2.6 kbps | 2.340 | 0.493 | 0.00158 | 8402 | +| encodec48k | 48k | 150 | RVQ | 24 kbps | 2.042 | 0.458 | 0.00169 | 8800 | + +**Bitrate = frame-rate × Σ log₂(codebook size).** WideCodec's FSQ is `levels=[4]×8, +num_quantizers=1` → 8·log₂4 = **16 bits/frame** × 50 frames/s = **800 bps = 0.8 kbps** +(vs DAC's 9 codebooks × 10 bits × 86 fps ≈ 8 kbps). + +The **2026-08-16 release** reaches UTMOSv2 **2.919** on the 9,291-clip set — **above ground truth (2.822) +and level with NVIDIA NeMo-44k (2.903), at ~1/10 of NeMo's bitrate**. It gained **+0.131 UTMOSv2** over the +previous release **at unchanged content accuracy**: CV22 macro CER is **7.70%** for both (micro 7.09%), well +inside the measured run-to-run spread of ±0.25 pt. + +Same architecture, same losses, same 50 tokens/s and single codebook — **only the training corpus changed**, +to clean DNSMOS-gated ≥44.1 kHz audio. The gain is not an artifact of the benchmark pool: on a **held-out set +of 1,330 clips from 138 sources absent from training**, it scores 2.807 vs the previous release's 2.654 +(+0.153, paired t=+14.2), and reference-based **PESQ-WB also improves** (+0.017, t=+7.5) — so naturalness and +fidelity moved together rather than trading off. Full report: evaluation/REPORT_44k_class_codecs.md. + +## Training stages / which revision to pull + +This model is trained in two stages. `main` always points at the **latest** stage. + +| stage | data | how to load | +|---|---|---| +| **Stage 1 — noisy mix** (steps 0→1.58M, `epoch=9-step=1580000`) | 8 base corpora + `scale44k` (~6,500 h, mostly noisy crowdsourced/podcast) | pin revision **`d2c612f4319c1c1e0c65a9431a7d6db1b7955ce0`** | +| **Stage 2 — clean finetune** (from 1.58M, clean ≥44.1 kHz only; in progress) | TTS-Clean44k + Clean-Podcast + clean-teacher pool + EARS/Expresso | `main` (default) | + +```python +# the `neucodec/` package is bundled in this repo (see 'Inference (self-contained)') +from neucodec import NeuCodec + +# Stage 1 (first-stage noisy training) — pin the exact revision: +model = NeuCodec._from_pretrained( + model_id="Scicom-intl/WideCodec", + decoder_depth=20, + revision="d2c612f4319c1c1e0c65a9431a7d6db1b7955ce0", +) +``` + +## Training data + +Diverse, predominantly high-sample-rate human speech (no synthetic TTS). The **scale-up group is +SR-verified ≥ 44 kHz** (probed before inclusion); the base corpora are long-form conversational, +expressive and anechoic speech. Two groups: + +### Base corpora (Malaysia-AI + expressive/anechoic speech) + +| dataset | content | +|---|---| +| [`malaysia-ai/malaysian-podcast-youtube`](https://huggingface.co/datasets/malaysia-ai/malaysian-podcast-youtube) | Malay long-form conversational podcasts (~2,234 h) | +| [`malaysia-ai/singaporean-podcast-youtube`](https://huggingface.co/datasets/malaysia-ai/singaporean-podcast-youtube) | Singaporean English podcasts (~1,255 h) | +| [`malaysia-ai/Multilingual-TTS`](https://huggingface.co/datasets/malaysia-ai/Multilingual-TTS) | CommonVoice-sidon multilingual short clips | +| [`malaysia-ai/malaysian-cartoons-youtube`](https://huggingface.co/datasets/malaysia-ai/malaysian-cartoons-youtube) | 48 kHz cartoon dialogue (subset) | +| [`malaysia-ai/malaysian-movie-youtube`](https://huggingface.co/datasets/malaysia-ai/malaysian-movie-youtube) | 48 kHz Malay movie dialogue | +| [`ylacombe/expresso`](https://huggingface.co/datasets/ylacombe/expresso) | 48 kHz expressive read speech | +| [`nytopop/expresso-conversational`](https://huggingface.co/datasets/nytopop/expresso-conversational) | 48 kHz improvised dialogue | +| EARS | 48 kHz anechoic fullband (emotional / conversational / reading) | + +### Scale-up: 336 verified ≥ 44 kHz datasets + +To maximise acoustic diversity for the decoder (language-agnostic — the codebook is frozen), +training is scaled with **336 additional datasets** (162 at 48 kHz, 174 at 44.1 kHz), mirrored as +`*audio.zip` in [`malaysia-ai/Multilingual-TTS`](https://huggingface.co/datasets/malaysia-ai/Multilingual-TTS) +and SR-verified ≥ 44 kHz. Original sources: + +
+Full list of 336 ≥ 44 kHz source datasets + +- [`1rsh/gujarati-f-openslr`](https://huggingface.co/datasets/1rsh/gujarati-f-openslr) — 48000 Hz +- [`Aashish17405/audio-dataset`](https://huggingface.co/datasets/Aashish17405/audio-dataset) — 48000 Hz +- [`Aashish17405/audio-dataset-300`](https://huggingface.co/datasets/Aashish17405/audio-dataset-300) — 48000 Hz +- [`Aashish17405/audio-dataset-shuffled-300`](https://huggingface.co/datasets/Aashish17405/audio-dataset-shuffled-300) — 48000 Hz +- [`Abdullah500/IndicTTS-Bengali`](https://huggingface.co/datasets/Abdullah500/IndicTTS-Bengali) — 48000 Hz +- [`Abdullah500/IndicTTS_BengaliOLD`](https://huggingface.co/datasets/Abdullah500/IndicTTS_BengaliOLD) — 48000 Hz +- [`adalat-ai/in22-legal`](https://huggingface.co/datasets/adalat-ai/in22-legal) — 48000 Hz +- [`ahmadafaneh/common-voice-18-arabic`](https://huggingface.co/datasets/ahmadafaneh/common-voice-18-arabic) — 48000 Hz +- [`AIDC-AI/CSEMOTIONS`](https://huggingface.co/datasets/AIDC-AI/CSEMOTIONS) — 48000 Hz +- [`AJosh/audio-dataset`](https://huggingface.co/datasets/AJosh/audio-dataset) — 48000 Hz +- [`alexantonov/chuvash_voice`](https://huggingface.co/datasets/alexantonov/chuvash_voice) — 48000 Hz +- [`aliyzd95/common_voice_21_0_fa`](https://huggingface.co/datasets/aliyzd95/common_voice_21_0_fa) — 48000 Hz +- [`aliyzd95/common_voice_22_0_fa`](https://huggingface.co/datasets/aliyzd95/common_voice_22_0_fa) — 48000 Hz +- [`anian0707/hindi-tts-dataset`](https://huggingface.co/datasets/anian0707/hindi-tts-dataset) — 48000 Hz +- [`atlithor/talromur3_with_prompts`](https://huggingface.co/datasets/atlithor/talromur3_with_prompts) — 48000 Hz +- [`atlithor/talromur3_without_emotions`](https://huggingface.co/datasets/atlithor/talromur3_without_emotions) — 48000 Hz +- [`bilguun/cv-mn-24.0`](https://huggingface.co/datasets/bilguun/cv-mn-24.0) — 48000 Hz +- [`bookbot/slr72_dataset`](https://huggingface.co/datasets/bookbot/slr72_dataset) — 48000 Hz +- [`Chingkheinganba/IndicTTS_Manipuri`](https://huggingface.co/datasets/Chingkheinganba/IndicTTS_Manipuri) — 48000 Hz +- [`chuuhtetnaing/myanmar-speech-dataset-openslr-80`](https://huggingface.co/datasets/chuuhtetnaing/myanmar-speech-dataset-openslr-80) — 48000 Hz +- [`Cnam-LMSSC/vibravox_enhanced_by_EBEN`](https://huggingface.co/datasets/Cnam-LMSSC/vibravox_enhanced_by_EBEN) — 48000 Hz +- [`CraneAILabs/waxal-lug-clean`](https://huggingface.co/datasets/CraneAILabs/waxal-lug-clean) — 48000 Hz +- [`datahiveai/arabic-multidialect-emotional-speech-demo`](https://huggingface.co/datasets/datahiveai/arabic-multidialect-emotional-speech-demo) — 48000 Hz +- [`DatarrX/burmese-synthetic-speech-corpus`](https://huggingface.co/datasets/DatarrX/burmese-synthetic-speech-corpus) — 48000 Hz +- [`DDD-Cambodia/khm-asr-cultural`](https://huggingface.co/datasets/DDD-Cambodia/khm-asr-cultural) — 48000 Hz +- [`deepdml/igbo-dict`](https://huggingface.co/datasets/deepdml/igbo-dict) — 48000 Hz +- [`deepdml/igbo-dict-16khz`](https://huggingface.co/datasets/deepdml/igbo-dict-16khz) — 48000 Hz +- [`deepdml/igbo-dict-expansion`](https://huggingface.co/datasets/deepdml/igbo-dict-expansion) — 48000 Hz +- [`deepdml/igbo-dict-expansion-16khz`](https://huggingface.co/datasets/deepdml/igbo-dict-expansion-16khz) — 48000 Hz +- [`deepdml/openslr-32-hq-SA-languages`](https://huggingface.co/datasets/deepdml/openslr-32-hq-SA-languages) — 48000 Hz +- [`deepdml/openslr42-khmer-tts`](https://huggingface.co/datasets/deepdml/openslr42-khmer-tts) — 48000 Hz +- [`deepdml/openslr65-tamil`](https://huggingface.co/datasets/deepdml/openslr65-tamil) — 48000 Hz +- [`deepdml/openslr80-burmese`](https://huggingface.co/datasets/deepdml/openslr80-burmese) — 48000 Hz +- [`doof-ferb/fpt_fosd`](https://huggingface.co/datasets/doof-ferb/fpt_fosd) — 48000 Hz +- [`doof-ferb/infore1_25hours`](https://huggingface.co/datasets/doof-ferb/infore1_25hours) — 48000 Hz +- [`espnet/ace-kising-segments`](https://huggingface.co/datasets/espnet/ace-kising-segments) — 48000 Hz +- [`espnet/ace-opencpop-segments`](https://huggingface.co/datasets/espnet/ace-opencpop-segments) — 48000 Hz +- [`FatimahEmadEldin/alsanaa-emirati-arabic-asr`](https://huggingface.co/datasets/FatimahEmadEldin/alsanaa-emirati-arabic-asr) — 48000 Hz +- [`fluffypotatoes/f1-team-radio`](https://huggingface.co/datasets/fluffypotatoes/f1-team-radio) — 48000 Hz +- [`fosters/lagodny-tsmok-iury-zhygamont-output_original`](https://huggingface.co/datasets/fosters/lagodny-tsmok-iury-zhygamont-output_original) — 48000 Hz +- [`fosters/lagodny-tsmok-iury-zhygamont_all`](https://huggingface.co/datasets/fosters/lagodny-tsmok-iury-zhygamont_all) — 48000 Hz +- [`gauravparajuli/slr43`](https://huggingface.co/datasets/gauravparajuli/slr43) — 48000 Hz +- [`ggfox00000/stt-summre-fr-test`](https://huggingface.co/datasets/ggfox00000/stt-summre-fr-test) — 48000 Hz +- [`ggfox00000/stt-vibravox-fr-test`](https://huggingface.co/datasets/ggfox00000/stt-vibravox-fr-test) — 48000 Hz +- [`hanamizuki-ai/genshin-voice-v3.3-mandarin`](https://huggingface.co/datasets/hanamizuki-ai/genshin-voice-v3.3-mandarin) — 48000 Hz +- [`hanamizuki-ai/genshin-voice-v3.4-mandarin`](https://huggingface.co/datasets/hanamizuki-ai/genshin-voice-v3.4-mandarin) — 48000 Hz +- [`hanamizuki-ai/genshin-voice-v3.5-mandarin`](https://huggingface.co/datasets/hanamizuki-ai/genshin-voice-v3.5-mandarin) — 48000 Hz +- [`HeshamHaroon/arabic-msa-25k-saudi-male-tashkeel`](https://huggingface.co/datasets/HeshamHaroon/arabic-msa-25k-saudi-male-tashkeel) — 48000 Hz +- [`HeshamHaroon/Dahee7`](https://huggingface.co/datasets/HeshamHaroon/Dahee7) — 48000 Hz +- [`hezarai/common-voice-13-fa`](https://huggingface.co/datasets/hezarai/common-voice-13-fa) — 48000 Hz +- [`hosein-m/french_homophone_asr`](https://huggingface.co/datasets/hosein-m/french_homophone_asr) — 48000 Hz +- [`humyn-labs/Asian-High-Fidelity-ASR-Dataset`](https://huggingface.co/datasets/humyn-labs/Asian-High-Fidelity-ASR-Dataset) — 48000 Hz +- [`humyn-labs/LATAM-High-Fidelity-ASR`](https://huggingface.co/datasets/humyn-labs/LATAM-High-Fidelity-ASR) — 48000 Hz +- [`hypaai/Hypa-Speech-10k`](https://huggingface.co/datasets/hypaai/Hypa-Speech-10k) — 48000 Hz +- [`hypaai/Hypa_Fleurs`](https://huggingface.co/datasets/hypaai/Hypa_Fleurs) — 48000 Hz +- [`igidn/wuwa-voice-EN`](https://huggingface.co/datasets/igidn/wuwa-voice-EN) — 48000 Hz +- [`impriyanshu-garg00/IndicVoices-R_Hindi`](https://huggingface.co/datasets/impriyanshu-garg00/IndicVoices-R_Hindi) — 48000 Hz +- [`JacobLinCool/jl-speech`](https://huggingface.co/datasets/JacobLinCool/jl-speech) — 48000 Hz +- [`JeanKouss/ewe_bible_v2_tts`](https://huggingface.co/datasets/JeanKouss/ewe_bible_v2_tts) — 48000 Hz +- [`jspaulsen/vctk`](https://huggingface.co/datasets/jspaulsen/vctk) — 48000 Hz +- [`juanjucm/OpenHQ-SpeechT-GL-EN`](https://huggingface.co/datasets/juanjucm/OpenHQ-SpeechT-GL-EN) — 48000 Hz +- [`jzsues/genshin-voice-zh`](https://huggingface.co/datasets/jzsues/genshin-voice-zh) — 48000 Hz +- [`Kishor798/text_to_speech_dataset`](https://huggingface.co/datasets/Kishor798/text_to_speech_dataset) — 48000 Hz +- [`Kppwdfgu1/Hypa-Speech-10k`](https://huggingface.co/datasets/Kppwdfgu1/Hypa-Speech-10k) — 48000 Hz +- [`KrorngAI/fleurs_openslr42_mpwt`](https://huggingface.co/datasets/KrorngAI/fleurs_openslr42_mpwt) — 48000 Hz +- [`Kukedlc/openslr61-es-ar-full`](https://huggingface.co/datasets/Kukedlc/openslr61-es-ar-full) — 48000 Hz +- [`leduckhai/MultiMed`](https://huggingface.co/datasets/leduckhai/MultiMed) — 48000 Hz +- [`leduckhai/MultiMed-ST`](https://huggingface.co/datasets/leduckhai/MultiMed-ST) — 48000 Hz +- [`LeVy4/speech-to-text`](https://huggingface.co/datasets/LeVy4/speech-to-text) — 48000 Hz +- [`lilgoose777/nepali_speech_english_translation_shuffle_dataset`](https://huggingface.co/datasets/lilgoose777/nepali_speech_english_translation_shuffle_dataset) — 48000 Hz +- [`Lindarychwalski/pony-speech`](https://huggingface.co/datasets/Lindarychwalski/pony-speech) — 48000 Hz +- [`longhim99/khm-asr-cultural`](https://huggingface.co/datasets/longhim99/khm-asr-cultural) — 48000 Hz +- [`lyhourt-FSA/khm-asr-cultural`](https://huggingface.co/datasets/lyhourt-FSA/khm-asr-cultural) — 48000 Hz +- [`maikezu/dowis`](https://huggingface.co/datasets/maikezu/dowis) — 48000 Hz +- [`manassehzw/sna-manasseh-150-raw`](https://huggingface.co/datasets/manassehzw/sna-manasseh-150-raw) — 48000 Hz +- [`masuidrive/cv-corpus-17.0-zh-TW-client_id-grouped`](https://huggingface.co/datasets/masuidrive/cv-corpus-17.0-zh-TW-client_id-grouped) — 48000 Hz +- [`MatrixStudio/TTS-CCabNavMSC`](https://huggingface.co/datasets/MatrixStudio/TTS-CCabNavMSC) — 48000 Hz +- [`MatrixStudio/TTS-CFCabNavSC`](https://huggingface.co/datasets/MatrixStudio/TTS-CFCabNavSC) — 48000 Hz +- [`MatrixStudio/TTS-SCCusSerFSC`](https://huggingface.co/datasets/MatrixStudio/TTS-SCCusSerFSC) — 48000 Hz +- [`MatrixStudio/TTS-SCDuFSC`](https://huggingface.co/datasets/MatrixStudio/TTS-SCDuFSC) — 48000 Hz +- [`Max5ive/openslr-32-hq-SA-languages-Sesotho`](https://huggingface.co/datasets/Max5ive/openslr-32-hq-SA-languages-Sesotho) — 48000 Hz +- [`mazesmazes/jenny-mimi`](https://huggingface.co/datasets/mazesmazes/jenny-mimi) — 48000 Hz +- [`MikCil/f1-team-radio`](https://huggingface.co/datasets/MikCil/f1-team-radio) — 48000 Hz +- [`mohamedmou/DATASET-darija-ASR-clean`](https://huggingface.co/datasets/mohamedmou/DATASET-darija-ASR-clean) — 48000 Hz +- [`MohamedRashad/arabic-english-code-switching`](https://huggingface.co/datasets/MohamedRashad/arabic-english-code-switching) — 48000 Hz +- [`MohamedRashad/common-voice-18-arabic`](https://huggingface.co/datasets/MohamedRashad/common-voice-18-arabic) — 48000 Hz +- [`ngia/ASR_pulaar`](https://huggingface.co/datasets/ngia/ASR_pulaar) — 48000 Hz +- [`ntaquan0125/steinsgate-voice`](https://huggingface.co/datasets/ntaquan0125/steinsgate-voice) — 48000 Hz +- [`ntt123/VietBibleVox-aligned`](https://huggingface.co/datasets/ntt123/VietBibleVox-aligned) — 48000 Hz +- [`OmarAhmedSobhy/egyption-with-emotion-dataset`](https://huggingface.co/datasets/OmarAhmedSobhy/egyption-with-emotion-dataset) — 48000 Hz +- [`OmarAhmedSobhy/tts-egyption-dataset`](https://huggingface.co/datasets/OmarAhmedSobhy/tts-egyption-dataset) — 48000 Hz +- [`omersaidd/tts_ahmet_deniz_tur`](https://huggingface.co/datasets/omersaidd/tts_ahmet_deniz_tur) — 48000 Hz +- [`rahafvii/EGY2K`](https://huggingface.co/datasets/rahafvii/EGY2K) — 48000 Hz +- [`ranbirchabungbam/meiteimayek-audio-parallel-corpus`](https://huggingface.co/datasets/ranbirchabungbam/meiteimayek-audio-parallel-corpus) — 48000 Hz +- [`reapzor/neurologySTT`](https://huggingface.co/datasets/reapzor/neurologySTT) — 48000 Hz +- [`RikkaBotan/nyan-jenny-format`](https://huggingface.co/datasets/RikkaBotan/nyan-jenny-format) — 48000 Hz +- [`RobotsMali/transcription-scorer`](https://huggingface.co/datasets/RobotsMali/transcription-scorer) — 48000 Hz +- [`SachinTelecmi/tts-hindi-stts2`](https://huggingface.co/datasets/SachinTelecmi/tts-hindi-stts2) — 48000 Hz +- [`sartifyllc/Sukuma-Voices`](https://huggingface.co/datasets/sartifyllc/Sukuma-Voices) — 48000 Hz +- [`scriptaudio/f1-team-radio`](https://huggingface.co/datasets/scriptaudio/f1-team-radio) — 48000 Hz +- [`sdcsdccdsd/CSEMOTIONS`](https://huggingface.co/datasets/sdcsdccdsd/CSEMOTIONS) — 48000 Hz +- [`shoron08/irodori-refs-10k`](https://huggingface.co/datasets/shoron08/irodori-refs-10k) — 48000 Hz +- [`shreeshacharya/Dhravani`](https://huggingface.co/datasets/shreeshacharya/Dhravani) — 48000 Hz +- [`siddiqiya/ar-eg-dataset`](https://huggingface.co/datasets/siddiqiya/ar-eg-dataset) — 48000 Hz +- [`slprl/StressTest`](https://huggingface.co/datasets/slprl/StressTest) — 48000 Hz +- [`smcproject/MSC`](https://huggingface.co/datasets/smcproject/MSC) — 48000 Hz +- [`somu9/iisc_mono_hindi_female`](https://huggingface.co/datasets/somu9/iisc_mono_hindi_female) — 48000 Hz +- [`somu9/iitm_mono_hindi_female`](https://huggingface.co/datasets/somu9/iitm_mono_hindi_female) — 48000 Hz +- [`speech-uk/opentts-kateryna`](https://huggingface.co/datasets/speech-uk/opentts-kateryna) — 48000 Hz +- [`speech-uk/opentts-oleksa`](https://huggingface.co/datasets/speech-uk/opentts-oleksa) — 48000 Hz +- [`speech-uk/opentts-tetiana`](https://huggingface.co/datasets/speech-uk/opentts-tetiana) — 48000 Hz +- [`speech-uk/tts-crh-abibullah`](https://huggingface.co/datasets/speech-uk/tts-crh-abibullah) — 48000 Hz +- [`speech-uk/tts-crh-arslan`](https://huggingface.co/datasets/speech-uk/tts-crh-arslan) — 48000 Hz +- [`speech-uk/tts-crh-sevil`](https://huggingface.co/datasets/speech-uk/tts-crh-sevil) — 48000 Hz +- [`SPRINGLab/IndicTTS-Hindi`](https://huggingface.co/datasets/SPRINGLab/IndicTTS-Hindi) — 48000 Hz +- [`SPRINGLab/IndicTTS_Assamese`](https://huggingface.co/datasets/SPRINGLab/IndicTTS_Assamese) — 48000 Hz +- [`SPRINGLab/IndicTTS_Bengali`](https://huggingface.co/datasets/SPRINGLab/IndicTTS_Bengali) — 48000 Hz +- [`SPRINGLab/IndicTTS_Kannada`](https://huggingface.co/datasets/SPRINGLab/IndicTTS_Kannada) — 48000 Hz +- [`SPRINGLab/IndicTTS_Malayalam`](https://huggingface.co/datasets/SPRINGLab/IndicTTS_Malayalam) — 48000 Hz +- [`SPRINGLab/IndicTTS_Manipuri`](https://huggingface.co/datasets/SPRINGLab/IndicTTS_Manipuri) — 48000 Hz +- [`SPRINGLab/IndicTTS_Marathi`](https://huggingface.co/datasets/SPRINGLab/IndicTTS_Marathi) — 48000 Hz +- [`SPRINGLab/IndicTTS_Odia`](https://huggingface.co/datasets/SPRINGLab/IndicTTS_Odia) — 48000 Hz +- [`SPRINGLab/IndicTTS_Punjabi`](https://huggingface.co/datasets/SPRINGLab/IndicTTS_Punjabi) — 48000 Hz +- [`SPRINGLab/IndicTTS_Rajasthani`](https://huggingface.co/datasets/SPRINGLab/IndicTTS_Rajasthani) — 48000 Hz +- [`SPRINGLab/IndicTTS_Tamil`](https://huggingface.co/datasets/SPRINGLab/IndicTTS_Tamil) — 48000 Hz +- [`SPRINGLab/IndicVoices-R_Hindi`](https://huggingface.co/datasets/SPRINGLab/IndicVoices-R_Hindi) — 48000 Hz +- [`srezas/farsi_voice_dataset`](https://huggingface.co/datasets/srezas/farsi_voice_dataset) — 48000 Hz +- [`SynDataLab-JA-Refs/Irodori-Ja-Spk1-10k`](https://huggingface.co/datasets/SynDataLab-JA-Refs/Irodori-Ja-Spk1-10k) — 48000 Hz +- [`SynDataLab-JA-Refs/Irodori-Ja-Spk2-10k`](https://huggingface.co/datasets/SynDataLab-JA-Refs/Irodori-Ja-Spk2-10k) — 48000 Hz +- [`SynDataLab-JA-Refs/Irodori-Ja-Spk3-10k`](https://huggingface.co/datasets/SynDataLab-JA-Refs/Irodori-Ja-Spk3-10k) — 48000 Hz +- [`SynDataLab-JA-Refs/Irodori-Ja-Spk4-10k`](https://huggingface.co/datasets/SynDataLab-JA-Refs/Irodori-Ja-Spk4-10k) — 48000 Hz +- [`SynDataLab-JA-Refs/irodori-refs-10k`](https://huggingface.co/datasets/SynDataLab-JA-Refs/irodori-refs-10k) — 48000 Hz +- [`SynDataLab-JA-Refs/irodori-refs-10k-v2`](https://huggingface.co/datasets/SynDataLab-JA-Refs/irodori-refs-10k-v2) — 48000 Hz +- [`SynDataLab-JA-Refs/irodori-tts-refs-12k`](https://huggingface.co/datasets/SynDataLab-JA-Refs/irodori-tts-refs-12k) — 48000 Hz +- [`SynDataLab-JA/Irodori-Ja-500M-v2-vs-600M-v3-compare-20`](https://huggingface.co/datasets/SynDataLab-JA/Irodori-Ja-500M-v2-vs-600M-v3-compare-20) — 48000 Hz +- [`synthbot/pony-singing`](https://huggingface.co/datasets/synthbot/pony-singing) — 48000 Hz +- [`synthbot/pony-speech`](https://huggingface.co/datasets/synthbot/pony-speech) — 48000 Hz +- [`Tamazight-NLP/TOSD`](https://huggingface.co/datasets/Tamazight-NLP/TOSD) — 48000 Hz +- [`thennal/GMaSC`](https://huggingface.co/datasets/thennal/GMaSC) — 48000 Hz +- [`thennal/indic_tts_ml`](https://huggingface.co/datasets/thennal/indic_tts_ml) — 48000 Hz +- [`thennal/msc`](https://huggingface.co/datasets/thennal/msc) — 48000 Hz +- [`Trelis/multimed-hard`](https://huggingface.co/datasets/Trelis/multimed-hard) — 48000 Hz +- [`trysem/indicvoices_r-ML`](https://huggingface.co/datasets/trysem/indicvoices_r-ML) — 48000 Hz +- [`ttthe/MultiMed`](https://huggingface.co/datasets/ttthe/MultiMed) — 48000 Hz +- [`tunis-ai/arabic_speech_corpus`](https://huggingface.co/datasets/tunis-ai/arabic_speech_corpus) — 48000 Hz +- [`vinaybabu/voice_tech_for_all_challenge_samples_output`](https://huggingface.co/datasets/vinaybabu/voice_tech_for_all_challenge_samples_output) — 48000 Hz +- [`voice-biomarkers/openslr-32-hq-SA-languages-Afrikaans`](https://huggingface.co/datasets/voice-biomarkers/openslr-32-hq-SA-languages-Afrikaans) — 48000 Hz +- [`voice-biomarkers/openslr-32-hq-SA-languages-isiXhosa`](https://huggingface.co/datasets/voice-biomarkers/openslr-32-hq-SA-languages-isiXhosa) — 48000 Hz +- [`voice-biomarkers/openslr-32-hq-SA-languages-Sesotho`](https://huggingface.co/datasets/voice-biomarkers/openslr-32-hq-SA-languages-Sesotho) — 48000 Hz +- [`voice-biomarkers/openslr-32-hq-SA-languages-Setswana`](https://huggingface.co/datasets/voice-biomarkers/openslr-32-hq-SA-languages-Setswana) — 48000 Hz +- [`vrclc/openslr63`](https://huggingface.co/datasets/vrclc/openslr63) — 48000 Hz +- [`wanasash/enwaucymraeg`](https://huggingface.co/datasets/wanasash/enwaucymraeg) — 48000 Hz +- [`worldboss/ewe_bible_v2_tts`](https://huggingface.co/datasets/worldboss/ewe_bible_v2_tts) — 48000 Hz +- [`worldboss/twi_bible_v2_tts`](https://huggingface.co/datasets/worldboss/twi_bible_v2_tts) — 48000 Hz +- [`yasalma/tat_hackathon_asr`](https://huggingface.co/datasets/yasalma/tat_hackathon_asr) — 48000 Hz +- [`Yehor/qirimtatar-tts`](https://huggingface.co/datasets/Yehor/qirimtatar-tts) — 48000 Hz +- [`ylacombe/english_dialects`](https://huggingface.co/datasets/ylacombe/english_dialects) — 48000 Hz +- [`ylacombe/google-chilean-spanish`](https://huggingface.co/datasets/ylacombe/google-chilean-spanish) — 48000 Hz +- [`ylacombe/google-tamil`](https://huggingface.co/datasets/ylacombe/google-tamil) — 48000 Hz +- [`ymoslem/CoVoST2-EN-AR`](https://huggingface.co/datasets/ymoslem/CoVoST2-EN-AR) — 48000 Hz +- [`ymoslem/Living-Audio-Irish`](https://huggingface.co/datasets/ymoslem/Living-Audio-Irish) — 48000 Hz +- [`zinc75/Vibravox_dummy`](https://huggingface.co/datasets/zinc75/Vibravox_dummy) — 48000 Hz +- [`8Opt/clotho-dev-sample`](https://huggingface.co/datasets/8Opt/clotho-dev-sample) — 44100 Hz +- [`aangelakis/STOMA`](https://huggingface.co/datasets/aangelakis/STOMA) — 44100 Hz +- [`adiren7/darija_speech_to_text`](https://huggingface.co/datasets/adiren7/darija_speech_to_text) — 44100 Hz +- [`ahmed220v/SCC22`](https://huggingface.co/datasets/ahmed220v/SCC22) — 44100 Hz +- [`AigizK/bashkort_tts_dataset`](https://huggingface.co/datasets/AigizK/bashkort_tts_dataset) — 44100 Hz +- [`aipanjab/speech-mendeley-pa`](https://huggingface.co/datasets/aipanjab/speech-mendeley-pa) — 44100 Hz +- [`ALEKAS/ToneBooksPlus-Grigorii`](https://huggingface.co/datasets/ALEKAS/ToneBooksPlus-Grigorii) — 44100 Hz +- [`alimetin/turkish-parliament-speech`](https://huggingface.co/datasets/alimetin/turkish-parliament-speech) — 44100 Hz +- [`amine-khelif/DuBLaB-en-fr-0.7`](https://huggingface.co/datasets/amine-khelif/DuBLaB-en-fr-0.7) — 44100 Hz +- [`amine-khelif/DuBLaB-en-fr-0.7-f-0.2`](https://huggingface.co/datasets/amine-khelif/DuBLaB-en-fr-0.7-f-0.2) — 44100 Hz +- [`amine-khelif/DuBLaB-en-fr-0.7-f-0.5`](https://huggingface.co/datasets/amine-khelif/DuBLaB-en-fr-0.7-f-0.5) — 44100 Hz +- [`amine-khelif/DuBLaB-en-fr-0.8`](https://huggingface.co/datasets/amine-khelif/DuBLaB-en-fr-0.8) — 44100 Hz +- [`Anilosan15/YouTube_Video_Transkriptleri_TR`](https://huggingface.co/datasets/Anilosan15/YouTube_Video_Transkriptleri_TR) — 44100 Hz +- [`AnonXx/Pidgin_ASR_Dataset_Combined`](https://huggingface.co/datasets/AnonXx/Pidgin_ASR_Dataset_Combined) — 44100 Hz +- [`anzorq/kbd_speech`](https://huggingface.co/datasets/anzorq/kbd_speech) — 44100 Hz +- [`archivartaunik/Jevanhielle_Zyhamont_outChecked`](https://huggingface.co/datasets/archivartaunik/Jevanhielle_Zyhamont_outChecked) — 44100 Hz +- [`archivartaunik/output4Checked`](https://huggingface.co/datasets/archivartaunik/output4Checked) — 44100 Hz +- [`Bateesa/rw-tts-dataset`](https://huggingface.co/datasets/Bateesa/rw-tts-dataset) — 44100 Hz +- [`beratcmn/jessica-076`](https://huggingface.co/datasets/beratcmn/jessica-076) — 44100 Hz +- [`bezzam/coraal`](https://huggingface.co/datasets/bezzam/coraal) — 44100 Hz +- [`Bretagne/Lingua_Libre_br`](https://huggingface.co/datasets/Bretagne/Lingua_Libre_br) — 44100 Hz +- [`BrunoHays/Bangor-Miami-Spanish-English-Corpus`](https://huggingface.co/datasets/BrunoHays/Bangor-Miami-Spanish-English-Corpus) — 44100 Hz +- [`cagataydev/vlm-voice-audio`](https://huggingface.co/datasets/cagataydev/vlm-voice-audio) — 44100 Hz +- [`CentificAIResearch/DialectalSpeech-ICL`](https://huggingface.co/datasets/CentificAIResearch/DialectalSpeech-ICL) — 44100 Hz +- [`changelinglab/speechaccentarchive-pr`](https://huggingface.co/datasets/changelinglab/speechaccentarchive-pr) — 44100 Hz +- [`chris-t-jansen/erasmian_greek_nt`](https://huggingface.co/datasets/chris-t-jansen/erasmian_greek_nt) — 44100 Hz +- [`Codyfederer/fttrtest`](https://huggingface.co/datasets/Codyfederer/fttrtest) — 44100 Hz +- [`Codyfederer/test3434234`](https://huggingface.co/datasets/Codyfederer/test3434234) — 44100 Hz +- [`Codyfederer/tretret34543`](https://huggingface.co/datasets/Codyfederer/tretret34543) — 44100 Hz +- [`CoRal-project/coral-tts`](https://huggingface.co/datasets/CoRal-project/coral-tts) — 44100 Hz +- [`corti/med-term`](https://huggingface.co/datasets/corti/med-term) — 44100 Hz +- [`ctaguchi/killkan`](https://huggingface.co/datasets/ctaguchi/killkan) — 44100 Hz +- [`czyzi0/pwr-azon-speech-dataset`](https://huggingface.co/datasets/czyzi0/pwr-azon-speech-dataset) — 44100 Hz +- [`czyzi0/the-mc-speech-dataset`](https://huggingface.co/datasets/czyzi0/the-mc-speech-dataset) — 44100 Hz +- [`D00Movenok/russian-glados-portal2`](https://huggingface.co/datasets/D00Movenok/russian-glados-portal2) — 44100 Hz +- [`daanbrugmans/ovb-huissen-1`](https://huggingface.co/datasets/daanbrugmans/ovb-huissen-1) — 44100 Hz +- [`data-lab-voice/echo-tts-en-benchmarks-v1`](https://huggingface.co/datasets/data-lab-voice/echo-tts-en-benchmarks-v1) — 44100 Hz +- [`DataStudio/Vietnamese_ASR_TestingData_Old`](https://huggingface.co/datasets/DataStudio/Vietnamese_ASR_TestingData_Old) — 44100 Hz +- [`EMINES/Tamazight-Speech-to-Arabic-Text`](https://huggingface.co/datasets/EMINES/Tamazight-Speech-to-Arabic-Text) — 44100 Hz +- [`fablevi/one_voice_FACEBOOK_PARQUET`](https://huggingface.co/datasets/fablevi/one_voice_FACEBOOK_PARQUET) — 44100 Hz +- [`farbodbij/persian-words`](https://huggingface.co/datasets/farbodbij/persian-words) — 44100 Hz +- [`fiifinketia/twi-trigrams-speech-text-parallel`](https://huggingface.co/datasets/fiifinketia/twi-trigrams-speech-text-parallel) — 44100 Hz +- [`fosters/ales-krautsevich-karotkaia-gistoryia-belarusi-uladzimir-lisouski-output_original`](https://huggingface.co/datasets/fosters/ales-krautsevich-karotkaia-gistoryia-belarusi-uladzimir-lisouski-output_original) — 44100 Hz +- [`fosters/ales-krautsevich-karotkaia-gistoryia-belarusi-uladzimir-lisouski_all`](https://huggingface.co/datasets/fosters/ales-krautsevich-karotkaia-gistoryia-belarusi-uladzimir-lisouski_all) — 44100 Hz +- [`fosters/ales_razanau_all`](https://huggingface.co/datasets/fosters/ales_razanau_all) — 44100 Hz +- [`fosters/ales_razanau_output_original`](https://huggingface.co/datasets/fosters/ales_razanau_output_original) — 44100 Hz +- [`fosters/ales_zhuk_praklytaya_lyubow_all`](https://huggingface.co/datasets/fosters/ales_zhuk_praklytaya_lyubow_all) — 44100 Hz +- [`fosters/ales_zhuk_praklytaya_lyubow_output_original`](https://huggingface.co/datasets/fosters/ales_zhuk_praklytaya_lyubow_output_original) — 44100 Hz +- [`fosters/anatol_vyartsinski_pesnya_pra_hleb_all`](https://huggingface.co/datasets/fosters/anatol_vyartsinski_pesnya_pra_hleb_all) — 44100 Hz +- [`fosters/anatol_vyartsinski_pesnya_pra_hleb_output_original`](https://huggingface.co/datasets/fosters/anatol_vyartsinski_pesnya_pra_hleb_output_original) — 44100 Hz +- [`fosters/andre_marua_pakaranne_zolatam_all`](https://huggingface.co/datasets/fosters/andre_marua_pakaranne_zolatam_all) — 44100 Hz +- [`fosters/andre_marua_pakaranne_zolatam_output_original`](https://huggingface.co/datasets/fosters/andre_marua_pakaranne_zolatam_output_original) — 44100 Hz +- [`fosters/Antuan_de_Sent-Ekziupiery_Planieta_ludziei_all`](https://huggingface.co/datasets/fosters/Antuan_de_Sent-Ekziupiery_Planieta_ludziei_all) — 44100 Hz +- [`fosters/Antuan_de_Sent-Ekziupiery_Planieta_ludziei_output_original`](https://huggingface.co/datasets/fosters/Antuan_de_Sent-Ekziupiery_Planieta_ludziei_output_original) — 44100 Hz +- [`fosters/astryd_lindgren_braty_lvinae_sertsa_all`](https://huggingface.co/datasets/fosters/astryd_lindgren_braty_lvinae_sertsa_all) — 44100 Hz +- [`fosters/astryd_lindgren_braty_lvinae_sertsa_output_original`](https://huggingface.co/datasets/fosters/astryd_lindgren_braty_lvinae_sertsa_output_original) — 44100 Hz +- [`fosters/bely_klyck_all`](https://huggingface.co/datasets/fosters/bely_klyck_all) — 44100 Hz +- [`fosters/dzhozef_redzyard_kipling_all`](https://huggingface.co/datasets/fosters/dzhozef_redzyard_kipling_all) — 44100 Hz +- [`fosters/dzhozef_redzyard_kipling_output_original`](https://huggingface.co/datasets/fosters/dzhozef_redzyard_kipling_output_original) — 44100 Hz +- [`fosters/dzintra_shultse_robertsik_all`](https://huggingface.co/datasets/fosters/dzintra_shultse_robertsik_all) — 44100 Hz +- [`fosters/dzintra_shultse_robertsik_output_original`](https://huggingface.co/datasets/fosters/dzintra_shultse_robertsik_output_original) — 44100 Hz +- [`fosters/ernest_heminguei_stary_chalavek_i_mora_all`](https://huggingface.co/datasets/fosters/ernest_heminguei_stary_chalavek_i_mora_all) — 44100 Hz +- [`fosters/ernest_heminguei_stary_chalavek_i_mora_output_original`](https://huggingface.co/datasets/fosters/ernest_heminguei_stary_chalavek_i_mora_output_original) — 44100 Hz +- [`fosters/eryh_maryya_remark_all`](https://huggingface.co/datasets/fosters/eryh_maryya_remark_all) — 44100 Hz +- [`fosters/eryh_maryya_remark_output_original`](https://huggingface.co/datasets/fosters/eryh_maryya_remark_output_original) — 44100 Hz +- [`fosters/eryh_raspe_prygody_barona_myunhau_zena_all`](https://huggingface.co/datasets/fosters/eryh_raspe_prygody_barona_myunhau_zena_all) — 44100 Hz +- [`fosters/eryh_raspe_prygody_barona_myunhau_zena_output_original`](https://huggingface.co/datasets/fosters/eryh_raspe_prygody_barona_myunhau_zena_output_original) — 44100 Hz +- [`fosters/genadz_pashkou_all`](https://huggingface.co/datasets/fosters/genadz_pashkou_all) — 44100 Hz +- [`fosters/genadz_pashkou_output_original`](https://huggingface.co/datasets/fosters/genadz_pashkou_output_original) — 44100 Hz +- [`fosters/iagan_frydryh_shyler_kubak_all`](https://huggingface.co/datasets/fosters/iagan_frydryh_shyler_kubak_all) — 44100 Hz +- [`fosters/iagan_frydryh_shyler_kubak_output_original`](https://huggingface.co/datasets/fosters/iagan_frydryh_shyler_kubak_output_original) — 44100 Hz +- [`fosters/iakub-kolas-kazki-zhytstsia-output_original`](https://huggingface.co/datasets/fosters/iakub-kolas-kazki-zhytstsia-output_original) — 44100 Hz +- [`fosters/iakub-kolas-kazki-zhytstsia_all`](https://huggingface.co/datasets/fosters/iakub-kolas-kazki-zhytstsia_all) — 44100 Hz +- [`fosters/ivan-melezh-podykh-navalnitsy-valer-budzevich-output_original`](https://huggingface.co/datasets/fosters/ivan-melezh-podykh-navalnitsy-valer-budzevich-output_original) — 44100 Hz +- [`fosters/ivan-melezh-podykh-navalnitsy-valer-budzevich_all`](https://huggingface.co/datasets/fosters/ivan-melezh-podykh-navalnitsy-valer-budzevich_all) — 44100 Hz +- [`fosters/ivan-melezh-zavei-snezhan-valer-budzevich-output_original`](https://huggingface.co/datasets/fosters/ivan-melezh-zavei-snezhan-valer-budzevich-output_original) — 44100 Hz +- [`fosters/ivan-melezh-zavei-snezhan-valer-budzevich_all`](https://huggingface.co/datasets/fosters/ivan-melezh-zavei-snezhan-valer-budzevich_all) — 44100 Hz +- [`fosters/ivan-navumenka-zhul-vern-output_original`](https://huggingface.co/datasets/fosters/ivan-navumenka-zhul-vern-output_original) — 44100 Hz +- [`fosters/ivan-navumenka-zhul-vern_all`](https://huggingface.co/datasets/fosters/ivan-navumenka-zhul-vern_all) — 44100 Hz +- [`fosters/ivan-ptashnikau-lvy-output_original`](https://huggingface.co/datasets/fosters/ivan-ptashnikau-lvy-output_original) — 44100 Hz +- [`fosters/ivan-ptashnikau-lvy_all`](https://huggingface.co/datasets/fosters/ivan-ptashnikau-lvy_all) — 44100 Hz +- [`fosters/ivan_navumenka_sasna_pry_daroze_all`](https://huggingface.co/datasets/fosters/ivan_navumenka_sasna_pry_daroze_all) — 44100 Hz +- [`fosters/ivan_navumenka_sasna_pry_daroze_output_original`](https://huggingface.co/datasets/fosters/ivan_navumenka_sasna_pry_daroze_output_original) — 44100 Hz +- [`fosters/ivan_ptashnikau_all`](https://huggingface.co/datasets/fosters/ivan_ptashnikau_all) — 44100 Hz +- [`fosters/ivan_ptashnikau_output_original`](https://huggingface.co/datasets/fosters/ivan_ptashnikau_output_original) — 44100 Hz +- [`fosters/ivan_shamyakin_sertsa_na_daloni_all`](https://huggingface.co/datasets/fosters/ivan_shamyakin_sertsa_na_daloni_all) — 44100 Hz +- [`fosters/ivan_shamyakin_sertsa_na_daloni_output_original`](https://huggingface.co/datasets/fosters/ivan_shamyakin_sertsa_na_daloni_output_original) — 44100 Hz +- [`fosters/ivan_shamyakin_tryvozhnae_shchastse_all`](https://huggingface.co/datasets/fosters/ivan_shamyakin_tryvozhnae_shchastse_all) — 44100 Hz +- [`fosters/ivan_shamyakin_tryvozhnae_shchastse_output_original`](https://huggingface.co/datasets/fosters/ivan_shamyakin_tryvozhnae_shchastse_output_original) — 44100 Hz +- [`fosters/knihi-be-arlou_tancy_nad_horadam_all`](https://huggingface.co/datasets/fosters/knihi-be-arlou_tancy_nad_horadam_all) — 44100 Hz +- [`fosters/knihi-be-arlou_tancy_nad_horadam_output_original`](https://huggingface.co/datasets/fosters/knihi-be-arlou_tancy_nad_horadam_output_original) — 44100 Hz +- [`fosters/kuzma_chorny_makarkavyh_volka_all`](https://huggingface.co/datasets/fosters/kuzma_chorny_makarkavyh_volka_all) — 44100 Hz +- [`fosters/kuzma_chorny_makarkavyh_volka_output_original`](https://huggingface.co/datasets/fosters/kuzma_chorny_makarkavyh_volka_output_original) — 44100 Hz +- [`fosters/kuzma_chorny_poshuki_buduchyni_all`](https://huggingface.co/datasets/fosters/kuzma_chorny_poshuki_buduchyni_all) — 44100 Hz +- [`fosters/kuzma_chorny_poshuki_buduchyni_output_original`](https://huggingface.co/datasets/fosters/kuzma_chorny_poshuki_buduchyni_output_original) — 44100 Hz +- [`fosters/kuzma_chorny_zyamlya_all`](https://huggingface.co/datasets/fosters/kuzma_chorny_zyamlya_all) — 44100 Hz +- [`fosters/kuzma_chorny_zyamlya_output_original`](https://huggingface.co/datasets/fosters/kuzma_chorny_zyamlya_output_original) — 44100 Hz +- [`fosters/legendy-i-padanni_all`](https://huggingface.co/datasets/fosters/legendy-i-padanni_all) — 44100 Hz +- [`fosters/legendy-i-padanni_original`](https://huggingface.co/datasets/fosters/legendy-i-padanni_original) — 44100 Hz +- [`fosters/maksim_tank_all`](https://huggingface.co/datasets/fosters/maksim_tank_all) — 44100 Hz +- [`fosters/maksim_tank_output_original`](https://huggingface.co/datasets/fosters/maksim_tank_output_original) — 44100 Hz +- [`fosters/mar_yan_duksa_all`](https://huggingface.co/datasets/fosters/mar_yan_duksa_all) — 44100 Hz +- [`fosters/mar_yan_duksa_output_original`](https://huggingface.co/datasets/fosters/mar_yan_duksa_output_original) — 44100 Hz +- [`fosters/raisa_baravikova_vasmiradkou_i_all`](https://huggingface.co/datasets/fosters/raisa_baravikova_vasmiradkou_i_all) — 44100 Hz +- [`fosters/raisa_baravikova_vasmiradkou_i_output_original`](https://huggingface.co/datasets/fosters/raisa_baravikova_vasmiradkou_i_output_original) — 44100 Hz +- [`fosters/raisa_baravikova_vershy_pra_kahanne_all`](https://huggingface.co/datasets/fosters/raisa_baravikova_vershy_pra_kahanne_all) — 44100 Hz +- [`fosters/raisa_baravikova_vershy_pra_kahanne_output_original`](https://huggingface.co/datasets/fosters/raisa_baravikova_vershy_pra_kahanne_output_original) — 44100 Hz +- [`fosters/shata_rustaveli_vitsyaz_u_tygravai_shkury_all`](https://huggingface.co/datasets/fosters/shata_rustaveli_vitsyaz_u_tygravai_shkury_all) — 44100 Hz +- [`fosters/shata_rustaveli_vitsyaz_u_tygravai_shkury_output_original`](https://huggingface.co/datasets/fosters/shata_rustaveli_vitsyaz_u_tygravai_shkury_output_original) — 44100 Hz +- [`fosters/stefan_tsvei_g_nyabachnaya_kalektsyya_all`](https://huggingface.co/datasets/fosters/stefan_tsvei_g_nyabachnaya_kalektsyya_all) — 44100 Hz +- [`fosters/stefan_tsvei_g_nyabachnaya_kalektsyya_output_original`](https://huggingface.co/datasets/fosters/stefan_tsvei_g_nyabachnaya_kalektsyya_output_original) — 44100 Hz +- [`fosters/taras_shau_chenka_vershy_paemy_all`](https://huggingface.co/datasets/fosters/taras_shau_chenka_vershy_paemy_all) — 44100 Hz +- [`fosters/taras_shau_chenka_vershy_paemy_output_original`](https://huggingface.co/datasets/fosters/taras_shau_chenka_vershy_paemy_output_original) — 44100 Hz +- [`fosters/uilyam_folkner_pah_verbeny_all`](https://huggingface.co/datasets/fosters/uilyam_folkner_pah_verbeny_all) — 44100 Hz +- [`fosters/uilyam_folkner_pah_verbeny_output_original`](https://huggingface.co/datasets/fosters/uilyam_folkner_pah_verbeny_output_original) — 44100 Hz +- [`fosters/uladzimir-karatkevich-dzikae-paliavanne-karalia-stakha-aleg-garbuz-output_original`](https://huggingface.co/datasets/fosters/uladzimir-karatkevich-dzikae-paliavanne-karalia-stakha-aleg-garbuz-output_original) — 44100 Hz +- [`fosters/uladzimir-karatkevich-dzikae-paliavanne-karalia-stakha-aleg-garbuz_all`](https://huggingface.co/datasets/fosters/uladzimir-karatkevich-dzikae-paliavanne-karalia-stakha-aleg-garbuz_all) — 44100 Hz +- [`fosters/vasil_bykau_all`](https://huggingface.co/datasets/fosters/vasil_bykau_all) — 44100 Hz +- [`fosters/vasil_bykau_output_original`](https://huggingface.co/datasets/fosters/vasil_bykau_output_original) — 44100 Hz +- [`fosters/vasil_zue_nok_syaliba_all`](https://huggingface.co/datasets/fosters/vasil_zue_nok_syaliba_all) — 44100 Hz +- [`fosters/vasil_zue_nok_syaliba_output_original`](https://huggingface.co/datasets/fosters/vasil_zue_nok_syaliba_output_original) — 44100 Hz +- [`fosters/viktar_prau_dzin_all`](https://huggingface.co/datasets/fosters/viktar_prau_dzin_all) — 44100 Hz +- [`fosters/viktar_prau_dzin_output_original`](https://huggingface.co/datasets/fosters/viktar_prau_dzin_output_original) — 44100 Hz +- [`fosters/yakub_kolas_novaya_zyamlya_all`](https://huggingface.co/datasets/fosters/yakub_kolas_novaya_zyamlya_all) — 44100 Hz +- [`fosters/yakub_kolas_novaya_zyamlya_output_original`](https://huggingface.co/datasets/fosters/yakub_kolas_novaya_zyamlya_output_original) — 44100 Hz +- [`fosters/yanka_bryl_ptushki_i_gne_zdy_all`](https://huggingface.co/datasets/fosters/yanka_bryl_ptushki_i_gne_zdy_all) — 44100 Hz +- [`fosters/yanka_bryl_ptushki_i_gne_zdy_output_original`](https://huggingface.co/datasets/fosters/yanka_bryl_ptushki_i_gne_zdy_output_original) — 44100 Hz +- [`fosters/yanka_sipakou_odzium_all`](https://huggingface.co/datasets/fosters/yanka_sipakou_odzium_all) — 44100 Hz +- [`fosters/yanka_sipakou_odzium_output_original`](https://huggingface.co/datasets/fosters/yanka_sipakou_odzium_output_original) — 44100 Hz +- [`futureDoctor/turkic_tts_dataset`](https://huggingface.co/datasets/futureDoctor/turkic_tts_dataset) — 44100 Hz +- [`ghananlpcommunity/asante-twi-bible-speech-phonemes`](https://huggingface.co/datasets/ghananlpcommunity/asante-twi-bible-speech-phonemes) — 44100 Hz +- [`ghananlpcommunity/twi-trigrams-speech-text-parallel`](https://huggingface.co/datasets/ghananlpcommunity/twi-trigrams-speech-text-parallel) — 44100 Hz +- [`grandhigh/sample-id`](https://huggingface.co/datasets/grandhigh/sample-id) — 44100 Hz +- [`grider-transwithai/nekopara-speech`](https://huggingface.co/datasets/grider-transwithai/nekopara-speech) — 44100 Hz +- [`hananeek2/STT-algerian-dialect`](https://huggingface.co/datasets/hananeek2/STT-algerian-dialect) — 44100 Hz +- [`hhim8826/japanese-anime-speech-v2-split`](https://huggingface.co/datasets/hhim8826/japanese-anime-speech-v2-split) — 44100 Hz +- [`humairawan/AnimeSpeech`](https://huggingface.co/datasets/humairawan/AnimeSpeech) — 44100 Hz +- [`jdapaah/asante-twi-bible`](https://huggingface.co/datasets/jdapaah/asante-twi-bible) — 44100 Hz +- [`joujiboi/kuroyukihime-speech`](https://huggingface.co/datasets/joujiboi/kuroyukihime-speech) — 44100 Hz +- [`kizuna-intelligence/AItuber-Persona-Voices-JA`](https://huggingface.co/datasets/kizuna-intelligence/AItuber-Persona-Voices-JA) — 44100 Hz +- [`langswap/dialogs-ru-emotional-conversations`](https://huggingface.co/datasets/langswap/dialogs-ru-emotional-conversations) — 44100 Hz +- [`MatrixStudio/TTS-SCFChilSC`](https://huggingface.co/datasets/MatrixStudio/TTS-SCFChilSC) — 44100 Hz +- [`metricv/tl-whisper`](https://huggingface.co/datasets/metricv/tl-whisper) — 44100 Hz +- [`Michel21/rick-sanchez`](https://huggingface.co/datasets/Michel21/rick-sanchez) — 44100 Hz +- [`MikhailT/hifi-tts`](https://huggingface.co/datasets/MikhailT/hifi-tts) — 44100 Hz +- [`MohamedRashad/SCC22`](https://huggingface.co/datasets/MohamedRashad/SCC22) — 44100 Hz +- [`MothersTongue/mother_tongue_dataset`](https://huggingface.co/datasets/MothersTongue/mother_tongue_dataset) — 44100 Hz +- [`msnowchanj/pvariant-EQ`](https://huggingface.co/datasets/msnowchanj/pvariant-EQ) — 44100 Hz +- [`Pragmaticl/Trys2`](https://huggingface.co/datasets/Pragmaticl/Trys2) — 44100 Hz +- [`Pragmaticl/TuyenVanHoa2`](https://huggingface.co/datasets/Pragmaticl/TuyenVanHoa2) — 44100 Hz +- [`Pragmaticl/TuyenVanHoa4`](https://huggingface.co/datasets/Pragmaticl/TuyenVanHoa4) — 44100 Hz +- [`Professor/kinyarwanda-tts-dataset-kin`](https://huggingface.co/datasets/Professor/kinyarwanda-tts-dataset-kin) — 44100 Hz +- [`ray0rf1re/GLaDOS-audio-v2`](https://huggingface.co/datasets/ray0rf1re/GLaDOS-audio-v2) — 44100 Hz +- [`sachin6624/malayalam-tts-pro-voice`](https://huggingface.co/datasets/sachin6624/malayalam-tts-pro-voice) — 44100 Hz +- [`shannonnonshan/ViMedCSS-Cop`](https://huggingface.co/datasets/shannonnonshan/ViMedCSS-Cop) — 44100 Hz +- [`ShoukanLabs/AniSpeech`](https://huggingface.co/datasets/ShoukanLabs/AniSpeech) — 44100 Hz +- [`SoufianeDahimi/Tamazight-ASR-Dataset-v2`](https://huggingface.co/datasets/SoufianeDahimi/Tamazight-ASR-Dataset-v2) — 44100 Hz +- [`sudoping01/bam-asr-benchmark`](https://huggingface.co/datasets/sudoping01/bam-asr-benchmark) — 44100 Hz +- [`SynDataLab-EN-Refs/echo-ref-speakers-4k-en`](https://huggingface.co/datasets/SynDataLab-EN-Refs/echo-ref-speakers-4k-en) — 44100 Hz +- [`SynDataLab-EN-Refs/tts-pretrain-refs-3k-mos`](https://huggingface.co/datasets/SynDataLab-EN-Refs/tts-pretrain-refs-3k-mos) — 44100 Hz +- [`SynDataLab-EN/EchoTTS-OmniVoice-En`](https://huggingface.co/datasets/SynDataLab-EN/EchoTTS-OmniVoice-En) — 44100 Hz +- [`tensorxt/ViMedCSS`](https://huggingface.co/datasets/tensorxt/ViMedCSS) — 44100 Hz +- [`Thorsten-Voice/TV-44kHz-Full`](https://huggingface.co/datasets/Thorsten-Voice/TV-44kHz-Full) — 44100 Hz +- [`timniel/Pidgin_ASR_Dataset_Combined`](https://huggingface.co/datasets/timniel/Pidgin_ASR_Dataset_Combined) — 44100 Hz +- [`trysem/malayalam-tts-pro-voice`](https://huggingface.co/datasets/trysem/malayalam-tts-pro-voice) — 44100 Hz +- [`TutlaytAI/kabyle_asr`](https://huggingface.co/datasets/TutlaytAI/kabyle_asr) — 44100 Hz +- [`TutlaytAI/Kabyle_ASR-En_Translation`](https://huggingface.co/datasets/TutlaytAI/Kabyle_ASR-En_Translation) — 44100 Hz +- [`TutlaytAI/Kabyle_ASR-Fr_Translation`](https://huggingface.co/datasets/TutlaytAI/Kabyle_ASR-Fr_Translation) — 44100 Hz +- [`vsisik/voice-dataset-lili`](https://huggingface.co/datasets/vsisik/voice-dataset-lili) — 44100 Hz +- [`wcwxyz/test-audio`](https://huggingface.co/datasets/wcwxyz/test-audio) — 44100 Hz +- [`WhissleAI/Meta_STT_ZH_AIShell3`](https://huggingface.co/datasets/WhissleAI/Meta_STT_ZH_AIShell3) — 44100 Hz +- [`yasalma/audiobooks`](https://huggingface.co/datasets/yasalma/audiobooks) — 44100 Hz +- [`ymoslem/BitesizeIrish-GA-EN`](https://huggingface.co/datasets/ymoslem/BitesizeIrish-GA-EN) — 44100 Hz +- [`yuriilaba/toronto-tv-ukrainian`](https://huggingface.co/datasets/yuriilaba/toronto-tv-ukrainian) — 44100 Hz + +
+ +## Usage + +See the canonical +**Load from Hugging Face** +section in the source repo. **`decoder_depth=20` is required** — the weights are a +depth-20 decoder, so loading with any other depth mismatches the architecture. + +```python +import soundfile as sf + +# the `neucodec/` package is bundled in this repo (see 'Inference (self-contained)') +from neucodec import NeuCodec + +# decoder_depth=20 MUST match this repo; pass token=... (or hf login) for access +model = NeuCodec._from_pretrained(model_id="Scicom-intl/WideCodec", decoder_depth=20) +model = model.eval().cuda() + +# encode (16 kHz path, frozen) -> codes -> decode (44.1 kHz, this finetune) +codes = model.encode_code("input.wav") # [1, 1, T], identical to base NeuCodec +recon_44k = model.decode_code(codes).squeeze().cpu().numpy() +sf.write("recon.wav", recon_44k, model.sample_rate) # 44100 +``` + +The discrete codes are **identical to base `neuphonic/neucodec`** — only the reconstruction +sample rate and fidelity differ. diff --git a/bitrate_vs_utmosv2.png b/bitrate_vs_utmosv2.png new file mode 100644 index 0000000000000000000000000000000000000000..9d85652e968ef69e503054d7fdf0a42fd5a8ceaf Binary files /dev/null and b/bitrate_vs_utmosv2.png differ diff --git a/infer_widecodec.py b/infer_widecodec.py new file mode 100644 index 0000000000000000000000000000000000000000..b600c26d82af99af8724ab09323c96089776208e --- /dev/null +++ b/infer_widecodec.py @@ -0,0 +1,72 @@ +#!/usr/bin/env python3 +"""WideCodec — self-contained inference (44.1 kHz neural codec, depth-20 decoder). + +Encode -> decode any audio to a 44.1 kHz reconstruction. The encoder ingests mono +16 kHz; the frozen FSQ codebook (single codebook, 50 tokens/s, ~0.8 kbps) yields the +code stream; the depth-20 decoder renders it back to 44.1 kHz. + +This script + the bundled `neucodec/` package are ALL you need — no other source +repo. Weights (`pytorch_model.bin`) are pulled from the HF model repo on first run. + + pip install torch transformers huggingface_hub local-attention einops librosa soundfile + huggingface-cli login # if the repo is private (or export HF_TOKEN=hf_...) + python infer_widecodec.py --input my.wav --out-dir out + python infer_widecodec.py --input folder/ --out-dir out # batch a directory +""" +import argparse +import glob +import os +import sys + +# make the bundled `neucodec/` package importable regardless of CWD +sys.path.insert(0, os.path.dirname(os.path.abspath(__file__))) + +os.environ.setdefault("HF_HUB_DISABLE_XET", "1") # plain HTTPS: Xet can hang on some networks + +import librosa +import soundfile as sf +import torch + +from neucodec import NeuCodec + +AUDIO_EXTS = (".wav", ".mp3", ".flac", ".m4a", ".ogg", ".opus") + + +def main(): + ap = argparse.ArgumentParser() + ap.add_argument("--input", required=True, help="audio file OR a directory of audio") + ap.add_argument("--out-dir", default="out") + ap.add_argument("--repo", default="Scicom-intl/WideCodec") + ap.add_argument("--depth", type=int, default=20, help="decoder depth (WideCodec=20)") + ap.add_argument("--device", default="cuda" if torch.cuda.is_available() else "cpu") + a = ap.parse_args() + + os.makedirs(a.out_dir, exist_ok=True) + print(f"[infer] loading {a.repo} (decoder_depth={a.depth}) on {a.device} …") + model = NeuCodec._from_pretrained( + model_id=a.repo, decoder_depth=a.depth, token=os.environ.get("HF_TOKEN") + ).eval().to(a.device) + sr_out = model.sample_rate + print(f"[infer] output sample_rate = {sr_out}") + + if os.path.isdir(a.input): + files = sorted(f for f in glob.glob(os.path.join(a.input, "*")) + if f.lower().endswith(AUDIO_EXTS)) + else: + files = [a.input] + print(f"[infer] {len(files)} file(s)") + + for f in files: + wav16, _ = librosa.load(f, sr=16000, mono=True) # frozen encoder wants 16 kHz mono + x = torch.from_numpy(wav16).float().view(1, 1, -1).to(a.device) + with torch.no_grad(): + codes = model.encode_code(x) + wav = model.decode_code(codes).squeeze().detach().cpu().float().numpy() + base = os.path.splitext(os.path.basename(f))[0] + out = os.path.join(a.out_dir, f"{base}_44k.wav") + sf.write(out, wav, sr_out) + print(f"[infer] {f} -> {out} ({len(wav) / sr_out:.2f}s @ {sr_out} Hz)") + + +if __name__ == "__main__": + main() diff --git a/last.ckpt b/last.ckpt new file mode 100644 index 0000000000000000000000000000000000000000..6aacb819a5617e59e7f89d2bb79b4db6f079ca24 --- /dev/null +++ b/last.ckpt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:59dcb4176a20a7b1cad1b44fabfcfefc4cab569e1dc3be5e939769990f33f68c +size 6349290511 diff --git a/neucodec/__init__.py b/neucodec/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..3461850f22d12b6745d5f0cff535fb8e57abf5a1 --- /dev/null +++ b/neucodec/__init__.py @@ -0,0 +1 @@ +from .model import NeuCodec diff --git a/neucodec/activations.py b/neucodec/activations.py new file mode 100644 index 0000000000000000000000000000000000000000..007465947457c81dc8b5351c3ca6ca16cff7eef1 --- /dev/null +++ b/neucodec/activations.py @@ -0,0 +1,126 @@ +# Implementation adapted from https://github.com/EdwardDixon/snake under the MIT license. +# LICENSE is in incl_licenses directory. + +import torch +from torch import nn, sin, pow +from torch.nn import Parameter + + +class Snake(nn.Module): + """ + Implementation of a sine-based periodic activation function + Shape: + - Input: (B, C, T) + - Output: (B, C, T), same shape as the input + Parameters: + - alpha - trainable parameter + References: + - This activation function is from this paper by Liu Ziyin, Tilman Hartwig, Masahito Ueda: + https://arxiv.org/abs/2006.08195 + Examples: + >>> a1 = snake(256) + >>> x = torch.randn(256) + >>> x = a1(x) + """ + + def __init__( + self, in_features, alpha=1.0, alpha_trainable=True, alpha_logscale=False + ): + """ + Initialization. + INPUT: + - in_features: shape of the input + - alpha: trainable parameter + alpha is initialized to 1 by default, higher values = higher-frequency. + alpha will be trained along with the rest of your model. + """ + super(Snake, self).__init__() + self.in_features = in_features + + # initialize alpha + self.alpha_logscale = alpha_logscale + if self.alpha_logscale: # log scale alphas initialized to zeros + self.alpha = Parameter(torch.zeros(in_features) * alpha) + else: # linear scale alphas initialized to ones + self.alpha = Parameter(torch.ones(in_features) * alpha) + + self.alpha.requires_grad = alpha_trainable + + self.no_div_by_zero = 0.000000001 + + def forward(self, x): + """ + Forward pass of the function. + Applies the function to the input elementwise. + Snake ∶= x + 1/a * sin^2 (xa) + """ + alpha = self.alpha.unsqueeze(0).unsqueeze(-1) # line up with x to [B, C, T] + if self.alpha_logscale: + alpha = torch.exp(alpha) + x = x + (1.0 / (alpha + self.no_div_by_zero)) * pow(sin(x * alpha), 2) + + return x + + +class SnakeBeta(nn.Module): + """ + A modified Snake function which uses separate parameters for the magnitude of the periodic components + Shape: + - Input: (B, C, T) + - Output: (B, C, T), same shape as the input + Parameters: + - alpha - trainable parameter that controls frequency + - beta - trainable parameter that controls magnitude + References: + - This activation function is a modified version based on this paper by Liu Ziyin, Tilman Hartwig, Masahito Ueda: + https://arxiv.org/abs/2006.08195 + Examples: + >>> a1 = snakebeta(256) + >>> x = torch.randn(256) + >>> x = a1(x) + """ + + def __init__( + self, in_features, alpha=1.0, alpha_trainable=True, alpha_logscale=False + ): + """ + Initialization. + INPUT: + - in_features: shape of the input + - alpha - trainable parameter that controls frequency + - beta - trainable parameter that controls magnitude + alpha is initialized to 1 by default, higher values = higher-frequency. + beta is initialized to 1 by default, higher values = higher-magnitude. + alpha will be trained along with the rest of your model. + """ + super(SnakeBeta, self).__init__() + self.in_features = in_features + + # initialize alpha + self.alpha_logscale = alpha_logscale + if self.alpha_logscale: # log scale alphas initialized to zeros + self.alpha = Parameter(torch.zeros(in_features) * alpha) + self.beta = Parameter(torch.zeros(in_features) * alpha) + else: # linear scale alphas initialized to ones + self.alpha = Parameter(torch.ones(in_features) * alpha) + self.beta = Parameter(torch.ones(in_features) * alpha) + + self.alpha.requires_grad = alpha_trainable + self.beta.requires_grad = alpha_trainable + + self.no_div_by_zero = 0.000000001 + + def forward(self, x): + """ + Forward pass of the function. + Applies the function to the input elementwise. + SnakeBeta ∶= x + 1/b * sin^2 (xa) + """ + alpha = self.alpha.unsqueeze(0).unsqueeze(-1) # line up with x to [B, C, T] + beta = self.beta.unsqueeze(0).unsqueeze(-1) + if self.alpha_logscale: + alpha = torch.exp(alpha) + beta = torch.exp(beta) + x = x + (1.0 / (beta + self.no_div_by_zero)) * pow(sin(x * alpha), 2) + + return x diff --git a/neucodec/alias_free_torch/__init__.py b/neucodec/alias_free_torch/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..8f756ed83f87f9839e457b240f60469bc187707d --- /dev/null +++ b/neucodec/alias_free_torch/__init__.py @@ -0,0 +1,6 @@ +# Adapted from https://github.com/junjun3518/alias-free-torch under the Apache License 2.0 +# LICENSE is in incl_licenses directory. + +from .filter import * +from .resample import * +from .act import * diff --git a/neucodec/alias_free_torch/act.py b/neucodec/alias_free_torch/act.py new file mode 100644 index 0000000000000000000000000000000000000000..a6693aac602d7b331d6149522685dd512a26d277 --- /dev/null +++ b/neucodec/alias_free_torch/act.py @@ -0,0 +1,30 @@ +# Adapted from https://github.com/junjun3518/alias-free-torch under the Apache License 2.0 +# LICENSE is in incl_licenses directory. + +import torch.nn as nn +from .resample import UpSample1d, DownSample1d + + +class Activation1d(nn.Module): + def __init__( + self, + activation, + up_ratio: int = 2, + down_ratio: int = 2, + up_kernel_size: int = 12, + down_kernel_size: int = 12, + ): + super().__init__() + self.up_ratio = up_ratio + self.down_ratio = down_ratio + self.act = activation + self.upsample = UpSample1d(up_ratio, up_kernel_size) + self.downsample = DownSample1d(down_ratio, down_kernel_size) + + # x: [B,C,T] + def forward(self, x): + x = self.upsample(x) + x = self.act(x) + x = self.downsample(x) + + return x diff --git a/neucodec/alias_free_torch/filter.py b/neucodec/alias_free_torch/filter.py new file mode 100644 index 0000000000000000000000000000000000000000..99a4ba8f5847e13e59a59e110cb6990cc4d1c357 --- /dev/null +++ b/neucodec/alias_free_torch/filter.py @@ -0,0 +1,99 @@ +# Adapted from https://github.com/junjun3518/alias-free-torch under the Apache License 2.0 +# LICENSE is in incl_licenses directory. + +import torch +import torch.nn as nn +import torch.nn.functional as F +import math + +if "sinc" in dir(torch): + sinc = torch.sinc +else: + # This code is adopted from adefossez's julius.core.sinc under the MIT License + # https://adefossez.github.io/julius/julius/core.html + # LICENSE is in incl_licenses directory. + def sinc(x: torch.Tensor): + """ + Implementation of sinc, i.e. sin(pi * x) / (pi * x) + __Warning__: Different to julius.sinc, the input is multiplied by `pi`! + """ + return torch.where( + x == 0, + torch.tensor(1.0, device=x.device, dtype=x.dtype), + torch.sin(math.pi * x) / math.pi / x, + ) + + +# This code is adopted from adefossez's julius.lowpass.LowPassFilters under the MIT License +# https://adefossez.github.io/julius/julius/lowpass.html +# LICENSE is in incl_licenses directory. +def kaiser_sinc_filter1d( + cutoff, half_width, kernel_size +): # return filter [1,1,kernel_size] + even = kernel_size % 2 == 0 + half_size = kernel_size // 2 + + # For kaiser window + delta_f = 4 * half_width + A = 2.285 * (half_size - 1) * math.pi * delta_f + 7.95 + if A > 50.0: + beta = 0.1102 * (A - 8.7) + elif A >= 21.0: + beta = 0.5842 * (A - 21) ** 0.4 + 0.07886 * (A - 21.0) + else: + beta = 0.0 + window = torch.kaiser_window(kernel_size, beta=beta, periodic=False) + + # ratio = 0.5/cutoff -> 2 * cutoff = 1 / ratio + if even: + time = torch.arange(-half_size, half_size) + 0.5 + else: + time = torch.arange(kernel_size) - half_size + if cutoff == 0: + filter_ = torch.zeros_like(time) + else: + filter_ = 2 * cutoff * window * sinc(2 * cutoff * time) + # Normalize filter to have sum = 1, otherwise we will have a small leakage + # of the constant component in the input signal. + filter_ /= filter_.sum() + filter = filter_.view(1, 1, kernel_size) + + return filter + + +class LowPassFilter1d(nn.Module): + def __init__( + self, + cutoff=0.5, + half_width=0.6, + stride: int = 1, + padding: bool = True, + padding_mode: str = "replicate", + kernel_size: int = 12, + ): + # kernel_size should be even number for stylegan3 setup, + # in this implementation, odd number is also possible. + super().__init__() + if cutoff < -0.0: + raise ValueError("Minimum cutoff must be larger than zero.") + if cutoff > 0.5: + raise ValueError("A cutoff above 0.5 does not make sense.") + self.kernel_size = kernel_size + self.even = kernel_size % 2 == 0 + self.pad_left = kernel_size // 2 - int(self.even) + self.pad_right = kernel_size // 2 + self.stride = stride + self.padding = padding + self.padding_mode = padding_mode + filter = kaiser_sinc_filter1d(cutoff, half_width, kernel_size) + self.register_buffer("filter", filter) + + # input [B, C, T] + def forward(self, x): + _, C, _ = x.shape + + if self.padding: + x = F.pad(x, (self.pad_left, self.pad_right), mode=self.padding_mode) + out = F.conv1d(x, self.filter.expand(C, -1, -1), stride=self.stride, groups=C) + + return out diff --git a/neucodec/alias_free_torch/resample.py b/neucodec/alias_free_torch/resample.py new file mode 100644 index 0000000000000000000000000000000000000000..a35380f5a2b0767069d8e3a64e01e090299ee2ab --- /dev/null +++ b/neucodec/alias_free_torch/resample.py @@ -0,0 +1,58 @@ +# Adapted from https://github.com/junjun3518/alias-free-torch under the Apache License 2.0 +# LICENSE is in incl_licenses directory. + +import torch.nn as nn +from torch.nn import functional as F +from .filter import LowPassFilter1d +from .filter import kaiser_sinc_filter1d + + +class UpSample1d(nn.Module): + def __init__(self, ratio=2, kernel_size=None): + super().__init__() + self.ratio = ratio + self.kernel_size = ( + int(6 * ratio // 2) * 2 if kernel_size is None else kernel_size + ) + self.stride = ratio + self.pad = self.kernel_size // ratio - 1 + self.pad_left = self.pad * self.stride + (self.kernel_size - self.stride) // 2 + self.pad_right = ( + self.pad * self.stride + (self.kernel_size - self.stride + 1) // 2 + ) + filter = kaiser_sinc_filter1d( + cutoff=0.5 / ratio, half_width=0.6 / ratio, kernel_size=self.kernel_size + ) + self.register_buffer("filter", filter) + + # x: [B, C, T] + def forward(self, x): + _, C, _ = x.shape + + x = F.pad(x, (self.pad, self.pad), mode="replicate") + x = self.ratio * F.conv_transpose1d( + x, self.filter.expand(C, -1, -1), stride=self.stride, groups=C + ) + x = x[..., self.pad_left : -self.pad_right] + + return x + + +class DownSample1d(nn.Module): + def __init__(self, ratio=2, kernel_size=None): + super().__init__() + self.ratio = ratio + self.kernel_size = ( + int(6 * ratio // 2) * 2 if kernel_size is None else kernel_size + ) + self.lowpass = LowPassFilter1d( + cutoff=0.5 / ratio, + half_width=0.6 / ratio, + stride=ratio, + kernel_size=self.kernel_size, + ) + + def forward(self, x): + xx = self.lowpass(x) + + return xx diff --git a/neucodec/bs_roformer5.py b/neucodec/bs_roformer5.py new file mode 100644 index 0000000000000000000000000000000000000000..ce5138e4d622ac76d1d9ed002bd2e1a3798da011 --- /dev/null +++ b/neucodec/bs_roformer5.py @@ -0,0 +1,118 @@ +import torch +import torch.nn as nn +from einops import rearrange +from torchtune.modules import RotaryPositionalEmbeddings + + +class RMSNorm(torch.nn.Module): + def __init__(self, dim: int, eps: float = 1e-6): + r"""https://github.com/meta-llama/llama/blob/main/llama/model.py""" + super().__init__() + self.eps = eps + self.weight = nn.Parameter(torch.ones(dim)) + + def forward(self, x): + norm_x = torch.mean(x**2, dim=-1, keepdim=True) + output = x * torch.rsqrt(norm_x + self.eps) * self.weight + return output + + +class MLP(nn.Module): + def __init__(self, dim: int) -> None: + super().__init__() + + self.fc1 = nn.Linear(dim, 4 * dim, bias=False) + self.silu = nn.SiLU() + self.fc2 = nn.Linear(4 * dim, dim, bias=False) + + def forward(self, x): + x = self.fc1(x) + x = self.silu(x) + x = self.fc2(x) + return x + + +class Attention(nn.Module): + def __init__( + self, dim: int, n_heads: int, rotary_embed: RotaryPositionalEmbeddings + ): + super().__init__() + + assert dim % n_heads == 0 + + self.n_heads = n_heads + self.dim = dim + self.rotary_embed = rotary_embed + + self.flash = hasattr(torch.nn.functional, "scaled_dot_product_attention") + assert self.flash, "Must have flash attention." + + self.c_attn = nn.Linear(dim, 3 * dim, bias=False) + self.c_proj = nn.Linear(dim, dim, bias=False) + + def forward(self, x): + r""" + Args: + x: (b, t, h*d) + + Constants: + b: batch_size + t: time steps + r: 3 + h: heads_num + d: heads_dim + """ + B, T, C = x.size() + + q, k, v = rearrange( + self.c_attn(x), "b t (r h d) -> r b h t d", r=3, h=self.n_heads + ) + # q, k, v: (b, h, t, d) + + q = self.rotary_embed(q) + k = self.rotary_embed(k) + + if self.flash: + y = torch.nn.functional.scaled_dot_product_attention( + q, k, v, attn_mask=None, dropout_p=0, is_causal=False + ) + + y = rearrange(y, "b h t d -> b t (h d)") + + y = self.c_proj(y) + # shape: (b, t, h*d) + + return y + + +class TransformerBlock(nn.Module): + def __init__( + self, dim: int, n_heads: int, rotary_embed: RotaryPositionalEmbeddings + ): + super().__init__() + self.dim = dim + self.n_heads = n_heads + + self.att_norm = RMSNorm(dim) + self.ffn_norm = RMSNorm(dim) + self.att = Attention(dim=dim, n_heads=n_heads, rotary_embed=rotary_embed) + self.mlp = MLP(dim=dim) + + def forward( + self, + x: torch.Tensor, + ): + x = x + self.att(self.att_norm(x)) + x = x + self.mlp(self.ffn_norm(x)) + return x + + +if __name__ == "__main__": + rotary_embed_128 = RotaryPositionalEmbeddings(dim=128) + transformer_block = TransformerBlock( + dim=1024, n_heads=8, rotary_embed=rotary_embed_128 + ) + x = torch.randn(2, 128, 1024) + y = transformer_block(x) + print(y.shape) + c = 1 diff --git a/neucodec/codec_decoder_vocos.py b/neucodec/codec_decoder_vocos.py new file mode 100644 index 0000000000000000000000000000000000000000..91643491b2751068ce218f7c5fce41cf6b407e00 --- /dev/null +++ b/neucodec/codec_decoder_vocos.py @@ -0,0 +1,431 @@ +import torch +import torch.nn as nn + +from typing import List +from torchtune.modules import RotaryPositionalEmbeddings +from vector_quantize_pytorch import ResidualFSQ + +from .bs_roformer5 import TransformerBlock + + +class ISTFT(nn.Module): + """ + Custom implementation of ISTFT since torch.istft doesn't allow custom padding (other than `center=True`) with + windowing. This is because the NOLA (Nonzero Overlap Add) check fails at the edges. + See issue: https://github.com/pytorch/pytorch/issues/62323 + Specifically, in the context of neural vocoding we are interested in "same" padding analogous to CNNs. + The NOLA constraint is met as we trim padded samples anyway. + + Args: + n_fft (int): Size of Fourier transform. + hop_length (int): The distance between neighboring sliding window frames. + win_length (int): The size of window frame and STFT filter. + padding (str, optional): Type of padding. Options are "center" or "same". Defaults to "same". + """ + + def __init__( + self, n_fft: int, hop_length: int, win_length: int, padding: str = "same" + ): + super().__init__() + if padding not in ["center", "same"]: + raise ValueError("Padding must be 'center' or 'same'.") + self.padding = padding + self.n_fft = n_fft + self.hop_length = hop_length + self.win_length = win_length + window = torch.hann_window(win_length) + self.register_buffer("window", window) + + def forward(self, spec: torch.Tensor) -> torch.Tensor: + """ + Compute the Inverse Short Time Fourier Transform (ISTFT) of a complex spectrogram. + + Args: + spec (Tensor): Input complex spectrogram of shape (B, N, T), where B is the batch size, + N is the number of frequency bins, and T is the number of time frames. + + Returns: + Tensor: Reconstructed time-domain signal of shape (B, L), where L is the length of the output signal. + """ + if self.padding == "center": + # Fallback to pytorch native implementation + return torch.istft( + spec, + self.n_fft, + self.hop_length, + self.win_length, + self.window, + center=True, + ) + elif self.padding == "same": + pad = (self.win_length - self.hop_length) // 2 + else: + raise ValueError("Padding must be 'center' or 'same'.") + + assert spec.dim() == 3, "Expected a 3D tensor as input" + B, N, T = spec.shape + + # Inverse FFT + ifft = torch.fft.irfft(spec, self.n_fft, dim=1, norm="backward") + ifft = ifft * self.window[None, :, None] + + # Overlap and Add + output_size = (T - 1) * self.hop_length + self.win_length + y = torch.nn.functional.fold( + ifft, + output_size=(1, output_size), + kernel_size=(1, self.win_length), + stride=(1, self.hop_length), + )[:, 0, 0, pad:-pad] + + # Window envelope + window_sq = self.window.square().expand(1, T, -1).transpose(1, 2) + window_envelope = torch.nn.functional.fold( + window_sq, + output_size=(1, output_size), + kernel_size=(1, self.win_length), + stride=(1, self.hop_length), + ).squeeze()[pad:-pad] + + # Normalize + assert (window_envelope > 1e-11).all() + y = y / window_envelope + + return y + + +class FourierHead(nn.Module): + """Base class for inverse fourier modules.""" + + def forward(self, x: torch.Tensor) -> torch.Tensor: + """ + Args: + x (Tensor): Input tensor of shape (B, L, H), where B is the batch size, + L is the sequence length, and H denotes the model dimension. + + Returns: + Tensor: Reconstructed time-domain audio signal of shape (B, T), where T is the length of the output signal. + """ + raise NotImplementedError("Subclasses must implement the forward method.") + + +class ISTFTHead(FourierHead): + """ + ISTFT Head module for predicting STFT complex coefficients. + + Args: + dim (int): Hidden dimension of the model. + n_fft (int): Size of Fourier transform. + hop_length (int): The distance between neighboring sliding window frames, which should align with + the resolution of the input features. + padding (str, optional): Type of padding. Options are "center" or "same". Defaults to "same". + """ + + def __init__(self, dim: int, n_fft: int, hop_length: int, padding: str = "same"): + super().__init__() + out_dim = n_fft + 2 + self.out = torch.nn.Linear(dim, out_dim) + self.istft = ISTFT( + n_fft=n_fft, hop_length=hop_length, win_length=n_fft, padding=padding + ) + + def forward(self, x: torch.Tensor) -> torch.Tensor: + """ + Forward pass of the ISTFTHead module. + + Args: + x (Tensor): Input tensor of shape (B, L, H), where B is the batch size, + L is the sequence length, and H denotes the model dimension. + + Returns: + Tensor: Reconstructed time-domain audio signal of shape (B, T), where T is the length of the output signal. + """ + x_pred = self.out(x) + # x_pred = x + x_pred = x_pred.transpose(1, 2) + mag, p = x_pred.chunk(2, dim=1) + mag = torch.exp(mag) + mag = torch.clip( + mag, max=1e2 + ) # safeguard to prevent excessively large magnitudes + # wrapping happens here. These two lines produce real and imaginary value + x = torch.cos(p) + y = torch.sin(p) + # recalculating phase here does not produce anything new + # only costs time + # phase = torch.atan2(y, x) + # S = mag * torch.exp(phase * 1j) + # better directly produce the complex value + S = mag * (x + 1j * y) + audio = self.istft(S) + return audio.unsqueeze(1), x_pred + + +def nonlinearity(x): + # swish + return x * torch.sigmoid(x) + + +def Normalize(in_channels, num_groups=32): + return torch.nn.GroupNorm( + num_groups=num_groups, num_channels=in_channels, eps=1e-6, affine=True + ) + + +class ResnetBlock(nn.Module): + def __init__( + self, + *, + in_channels, + out_channels=None, + conv_shortcut=False, + dropout, + temb_channels=512, + ): + super().__init__() + self.in_channels = in_channels + out_channels = in_channels if out_channels is None else out_channels + self.out_channels = out_channels + self.use_conv_shortcut = conv_shortcut + + self.norm1 = Normalize(in_channels) + self.conv1 = torch.nn.Conv1d( + in_channels, out_channels, kernel_size=3, stride=1, padding=1 + ) + if temb_channels > 0: + self.temb_proj = torch.nn.Linear(temb_channels, out_channels) + self.norm2 = Normalize(out_channels) + self.dropout = torch.nn.Dropout(dropout) + self.conv2 = torch.nn.Conv1d( + out_channels, out_channels, kernel_size=3, stride=1, padding=1 + ) + if self.in_channels != self.out_channels: + if self.use_conv_shortcut: + self.conv_shortcut = torch.nn.Conv1d( + in_channels, out_channels, kernel_size=3, stride=1, padding=1 + ) + else: + self.nin_shortcut = torch.nn.Conv1d( + in_channels, out_channels, kernel_size=1, stride=1, padding=0 + ) + + def forward(self, x, temb=None): + h = x + h = self.norm1(h) + h = nonlinearity(h) + h = self.conv1(h) + + if temb is not None: + h = h + self.temb_proj(nonlinearity(temb))[:, :, None, None] + + h = self.norm2(h) + h = nonlinearity(h) + h = self.dropout(h) + h = self.conv2(h) + + if self.in_channels != self.out_channels: + if self.use_conv_shortcut: + x = self.conv_shortcut(x) + else: + x = self.nin_shortcut(x) + + return x + h + + +class Backbone(nn.Module): + """Base class for the generator's backbone. It preserves the same temporal resolution across all layers.""" + + def forward(self, x: torch.Tensor, **kwargs) -> torch.Tensor: + """ + Args: + x (Tensor): Input tensor of shape (B, C, L), where B is the batch size, + C denotes output features, and L is the sequence length. + + Returns: + Tensor: Output of shape (B, L, H), where B is the batch size, L is the sequence length, + and H denotes the model dimension. + """ + raise NotImplementedError("Subclasses must implement the forward method.") + + +class VocosBackbone(Backbone): + """ + Vocos backbone module built with ConvNeXt blocks. Supports additional conditioning with Adaptive Layer Normalization + + Args: + input_channels (int): Number of input features channels. + dim (int): Hidden dimension of the model. + intermediate_dim (int): Intermediate dimension used in ConvNeXtBlock. + num_layers (int): Number of ConvNeXtBlock layers. + layer_scale_init_value (float, optional): Initial value for layer scaling. Defaults to `1 / num_layers`. + adanorm_num_embeddings (int, optional): Number of embeddings for AdaLayerNorm. + None means non-conditional model. Defaults to None. + """ + + def __init__(self, hidden_dim=1024, depth=12, heads=16, pos_meb_dim=64): + super().__init__() + + self.embed = nn.Conv1d(hidden_dim, hidden_dim, kernel_size=7, padding=3) + + self.temb_ch = 0 + block_in = hidden_dim + dropout = 0.1 + + prior_net: List[nn.Module] = [ + ResnetBlock( + in_channels=block_in, + out_channels=block_in, + temb_channels=self.temb_ch, + dropout=dropout, + ), + ResnetBlock( + in_channels=block_in, + out_channels=block_in, + temb_channels=self.temb_ch, + dropout=dropout, + ), + ] + self.prior_net = nn.Sequential(*prior_net) + + depth = depth + time_rotary_embed = RotaryPositionalEmbeddings(dim=pos_meb_dim) + + transformer_blocks = [ + TransformerBlock( + dim=hidden_dim, n_heads=heads, rotary_embed=time_rotary_embed + ) + for _ in range(depth) + ] + + self.transformers = nn.Sequential(*transformer_blocks) + self.final_layer_norm = nn.LayerNorm(hidden_dim, eps=1e-6) + post_net: List[nn.Module] = [ + ResnetBlock( + in_channels=block_in, + out_channels=block_in, + temb_channels=self.temb_ch, + dropout=dropout, + ), + ResnetBlock( + in_channels=block_in, + out_channels=block_in, + temb_channels=self.temb_ch, + dropout=dropout, + ), + ] + self.post_net = nn.Sequential(*post_net) + + def forward(self, x: torch.Tensor) -> torch.Tensor: + x = x.transpose(1, 2) + x = self.embed(x) + x = self.prior_net(x) + x = x.transpose(1, 2) + x = self.transformers(x) + x = x.transpose(1, 2) + x = self.post_net(x) + x = x.transpose(1, 2) + x = self.final_layer_norm(x) + return x + + +def init_weights(m): + if isinstance(m, nn.Conv1d): + nn.init.trunc_normal_(m.weight, std=0.02) + nn.init.constant_(m.bias, 0) + + +class CodecDecoderVocos(nn.Module): + def __init__( + self, + hidden_dim=1024, + depth=12, + heads=16, + pos_meb_dim=64, + hop_length=320, + vq_num_quantizers=1, + vq_dim=2048, # 1024 2048 + vq_commit_weight=0.25, + vq_weight_init=False, + vq_full_commit_loss=False, + codebook_size=16384, + codebook_dim=16, + ): + super().__init__() + self.hop_length = hop_length + + self.quantizer = ResidualFSQ( + dim=vq_dim, levels=[4, 4, 4, 4, 4, 4, 4, 4], num_quantizers=1 + ) + + self.backbone = VocosBackbone( + hidden_dim=hidden_dim, depth=depth, heads=heads, pos_meb_dim=pos_meb_dim + ) + + self.head = ISTFTHead( + dim=hidden_dim, + n_fft=self.hop_length * 4, + hop_length=self.hop_length, + padding="same", + ) + + self.reset_parameters() + + def forward(self, x, vq=True): + if vq is True: + # x, q, commit_loss = self.quantizer(x) + x = x.permute(0, 2, 1) + x, q = self.quantizer(x) + x = x.permute(0, 2, 1) + q = q.permute(0, 2, 1) + return x, q, None + x = self.backbone(x) + x, _ = self.head(x) + + return x, _ + + def vq2emb(self, vq): + self.quantizer = self.quantizer.eval() + x = self.quantizer.vq2emb(vq) + return x + + def get_emb(self): + self.quantizer = self.quantizer.eval() + embs = self.quantizer.get_emb() + return embs + + def inference_vq(self, vq): + x = vq[None, :, :] + x = self.model(x) + return x + + def inference_0(self, x): + x, q, loss, perp = self.quantizer(x) + x = self.model(x) + return x, None + + def inference(self, x): + x = self.model(x) + return x, None + + def remove_weight_norm(self): + """Remove weight normalization module from all of the layers.""" + + def _remove_weight_norm(m): + try: + torch.nn.utils.remove_weight_norm(m) + except ValueError: # this module didn't have weight norm + return + + self.apply(_remove_weight_norm) + + def apply_weight_norm(self): + """Apply weight normalization module from all of the layers.""" + + def _apply_weight_norm(m): + if isinstance(m, nn.Conv1d) or isinstance(m, nn.ConvTranspose1d): + torch.nn.utils.weight_norm(m) + + self.apply(_apply_weight_norm) + + def reset_parameters(self): + self.apply(init_weights) diff --git a/neucodec/codec_encoder.py b/neucodec/codec_encoder.py new file mode 100644 index 0000000000000000000000000000000000000000..2d929a57d7e5adc28472fab6935aeecbd5d9fb05 --- /dev/null +++ b/neucodec/codec_encoder.py @@ -0,0 +1,84 @@ +import torch +import numpy as np + +from torch import nn + +from .module import WNConv1d, EncoderBlock +from .alias_free_torch import Activation1d +from . import activations + + +def init_weights(m): + if isinstance(m, nn.Conv1d): + nn.init.trunc_normal_(m.weight, std=0.02) + nn.init.constant_(m.bias, 0) + + +class CodecEncoder(nn.Module): + def __init__( + self, + ngf=48, + up_ratios=[2, 2, 4, 4, 5], + dilations=(1, 3, 9), + hidden_dim=1024, + depth=12, + heads=12, + pos_meb_dim=64, + ): + super().__init__() + self.hop_length = np.prod(up_ratios) + self.ngf = ngf + self.up_ratios = up_ratios + + d_model = ngf + self.conv_blocks = [WNConv1d(1, d_model, kernel_size=7, padding=3)] + + for i, stride in enumerate(up_ratios): + d_model *= 2 + self.conv_blocks += [ + EncoderBlock(d_model, stride=stride, dilations=dilations) + ] + + self.conv_blocks = nn.Sequential(*self.conv_blocks) + + self.conv_final_block = [ + Activation1d( + activation=activations.SnakeBeta(d_model, alpha_logscale=True) + ), + WNConv1d(d_model, hidden_dim, kernel_size=3, padding=1), + ] + self.conv_final_block = nn.Sequential(*self.conv_final_block) + + self.reset_parameters() + + def forward(self, x): + x = self.conv_blocks(x) + x = self.conv_final_block(x) + x = x.permute(0, 2, 1) + return x + + def inference(self, x): + return self.block(x) + + def remove_weight_norm(self): + """Remove weight normalization module from all of the layers.""" + + def _remove_weight_norm(m): + try: + torch.nn.utils.remove_weight_norm(m) + except ValueError: # this module didn't have weight norm + return + + self.apply(_remove_weight_norm) + + def apply_weight_norm(self): + """Apply weight normalization module from all of the layers.""" + + def _apply_weight_norm(m): + if isinstance(m, nn.Conv1d): + torch.nn.utils.weight_norm(m) + + self.apply(_apply_weight_norm) + + def reset_parameters(self): + self.apply(init_weights) diff --git a/neucodec/codec_encoder_distill.py b/neucodec/codec_encoder_distill.py new file mode 100644 index 0000000000000000000000000000000000000000..20ec349531be2dc3ee5098f7cf88cd3a0cdb29ce --- /dev/null +++ b/neucodec/codec_encoder_distill.py @@ -0,0 +1,388 @@ +import torch +from torch import Tensor +from torch import nn +from local_attention.transformer import DynamicPositionBias, LocalMHA, FeedForward +from .distill_layers import ChannelNorm, Conv1d, Linear, GRN, Snake1d +from .tconv.t_first import FirstBlock + + +class LocalTrans(nn.Module): + def __init__( + self, + dim=512, + depth=6, + causal=True, + local_attn_window_size=512, + dim_head=64, + heads=8, + ff_mult=4, + attn_dropout=0.0, + ff_dropout=0.0, + use_dynamic_pos_bias=False, + qk_rmsnorm=False, + ): + super().__init__() + + self.layers = nn.ModuleList([]) + + self.window_size = local_attn_window_size + self.use_rotary_pos_emb = not use_dynamic_pos_bias + self.dynamic_pos_bias = ( + None + if self.use_rotary_pos_emb + else DynamicPositionBias(dim=dim // 2, heads=heads) + ) + + for _ in range(depth): + self.layers.append( + nn.ModuleList( + [ + LocalMHA( + dim=dim, + dim_head=dim_head, + heads=heads, + dropout=attn_dropout, + causal=causal, + window_size=self.window_size, + use_xpos=False, + xpos_scale_base=None, + use_rotary_pos_emb=self.use_rotary_pos_emb, + prenorm=True, + qk_rmsnorm=qk_rmsnorm, + exact_windowsize=False, + ), + FeedForward(dim=dim, mult=ff_mult, dropout=ff_dropout), + ] + ) + ) + + def forward(self, x, mask=None): + attn_bias = ( + None + if self.use_rotary_pos_emb + else self.dynamic_pos_bias(self.window_size, self.window_size * 2) + ) + for attn, ff in self.layers: + x = attn(x, mask=mask, attn_bias=attn_bias) + x + x = ff(x) + x + + return x + + @classmethod + def builder( + cls, feature_dim=128, depth=2, local_window_size=200, use_dynamic_pos_bias=False + ): + return cls( + dim=feature_dim, + depth=depth, + dim_head=feature_dim // 4, + heads=6, + ff_mult=4, + causal=True, + local_attn_window_size=local_window_size, + use_dynamic_pos_bias=use_dynamic_pos_bias, + ) + + +class LocalEncoder(nn.Module): + def __init__( + self, + feature_dim=128, + depth=2, + local_window_size=200, + use_dynamic_pos_bias=False, + ): + super().__init__() + self.local_trans = LocalTrans.builder( + feature_dim=feature_dim, + depth=depth, + local_window_size=local_window_size, + use_dynamic_pos_bias=use_dynamic_pos_bias, + ) + + def forward(self, feature): + """ + Args: + feature: (B, C, T) + Returns: + local_feature: (B, T, C) + """ + feature = feature.permute(0, 2, 1) + feature = self.local_trans(feature) + return feature + + +class DownTrans(nn.Module): + def __init__( + self, feature_dim=128, window_size=200, compress_rate=2, depth=2, **kwargs + ): + super().__init__() + assert window_size % compress_rate == 0 + self.feature_dim = feature_dim + self.compress_rate = compress_rate + self.trans = LocalTrans.builder( + feature_dim, local_window_size=window_size, depth=depth, **kwargs + ) + self.down_layer = Conv1d( + feature_dim, feature_dim, kernel_size=compress_rate, stride=compress_rate + ) + + def forward(self, x): + x = self.trans(x) + # x = x[:, ::self.compress_rate, :] # v1 + x = self.down_layer(x.permute(0, 2, 1)).permute(0, 2, 1) # v2 + return x + + +class CompressedLocalEncoderWithCache(nn.Module): + def __init__( + self, + feature_dim=128, + local_window_size=200, + compress_rate=2, + cache_size=3, + depth=4, + **kwargs, + ): + super().__init__() + self.local_window_size = local_window_size + self.cache_size = cache_size + self.compress_rate = compress_rate + self.trans_window_size = local_window_size + cache_size + + self.cache_token = nn.Parameter( + torch.randn(1, self.cache_size * self.compress_rate, feature_dim) + ) + + self.down_trans = DownTrans( + feature_dim, + window_size=self.trans_window_size * compress_rate, + compress_rate=compress_rate, + depth=2, + **kwargs, + ) + + self.local_trans = LocalTrans.builder( + feature_dim, + local_window_size=self.trans_window_size, + depth=depth - 2, + **kwargs, + ) + + def forward(self, feature): + feature = feature.permute(0, 2, 1) + split_feature = torch.split( + feature, self.local_window_size * self.compress_rate, dim=1 + ) + cache_token = self.cache_token.expand(feature.shape[0], -1, -1) + feature = torch.cat( + [ + f + for fs in split_feature + for f in ( + cache_token, + fs, + ) + ], + dim=1, + ) + # assert feature[:, self.down_trans_window_size: 2*self.down_trans_window_size, :].equal( + # feature.reshape(B, -1, self.down_trans_window_size, C)[:, 1, :, :]) + feature = self.down_trans(feature) + feature = self.local_trans(feature) + return feature + + +class ConvUnit(nn.Module): + """ + Args: + dim (int): Number of input channels. + """ + + def __init__(self, dim, snake_act=True, norm=False, dilation=1, kernel_size=7): + super().__init__() + total_pad = (kernel_size - 1) * dilation + self.dw_conv = Conv1d( + dim, + dim, + kernel_size=kernel_size, + dilation=dilation, + padding=total_pad // 2, + groups=dim, + ) # depth-wise conv + + self.norm = ( + ChannelNorm(dim, data_format="channels_last") if norm else nn.Identity() + ) + self.pw_conv1 = Linear( + dim, 4 * dim + ) # point-wise/1x1 conv, implemented with linear layer + + if snake_act: + self.act = Snake1d(4 * dim, data_format="channels_last") + else: + self.act = nn.GELU() + self.grn = GRN(4 * dim) + self.pw_conv2 = Linear(4 * dim, dim) + + def forward(self, x): + x = self.dw_conv(x) + x = x.permute(0, 2, 1) # (N, C, T) -> (N, T, C) + x = self.norm(x) + x = self.pw_conv1(x) + x = self.act(x) + x = self.grn(x) + x = self.pw_conv2(x) + x = x.permute(0, 2, 1) # (N, T, C) -> (N, C, T) + return x + + +class Residual(nn.Module): + def __init__( + self, module: nn.Module, drop_prob: float = 0.0, scale_by_keep: bool = True + ): + super().__init__() + assert 0 <= drop_prob < 1 + self.module = module + self.drop_prob = drop_prob + self.scale_by_keep = scale_by_keep + + def drop_path(self, x_side: Tensor): + if self.drop_prob == 0.0 or not self.training: + return x_side + keep_prob = 1 - self.drop_prob + shape = (x_side.shape[0],) + (1,) * (x_side.ndim - 1) + keep_mask = x_side.new_empty(shape).bernoulli_(keep_prob) + if self.scale_by_keep: + keep_mask.div_(keep_prob) + return x_side * keep_mask + + def forward(self, x: Tensor): + x_side = self.module(x) + x_side = self.drop_path(x_side) + return x + x_side + + +ResidualUnit = lambda *args, drop_rate=0.0, **kwargs: Residual( + ConvUnit(*args, **kwargs), drop_prob=drop_rate +) + + +class LegacyUnit(nn.Module): + def __init__(self, dim, snake_act=True, norm=False, dilation=1, kernel_size=7): + super().__init__() + assert snake_act, "LegacyUnit only supports snake_act=True" + assert norm == False, "LegacyUnit only supports norm=False" + total_pad = (kernel_size - 1) * dilation + self.block = nn.Sequential( + Snake1d(dim), + Conv1d( + dim, + dim, + kernel_size=kernel_size, + dilation=dilation, + padding=total_pad // 2, + ), + Snake1d(dim), + Conv1d(dim, dim, kernel_size=1), + ) + + def forward(self, x): + return self.block(x) + + +ResidualLegacyUnit = lambda *args, **kwargs: Residual( + LegacyUnit(*args, **kwargs), drop_prob=0.0 +) + +BaseUnit = ResidualUnit + + +class Encoder(nn.Module): + def __init__( + self, + feature_dim: int = 512, + strides: tuple = (2, 2, 2, 2), + depths: tuple = (1, 1, 1, 1, 1), + dims: tuple = (32, 64, 128, 256, 512), + drop_path_rate: float = 0.0, + use_norm=False, + use_snake_act=True, + ): + super().__init__() + # Create first convolution + blocks = [ + # Conv1d(1, dims[0], kernel_size=7, padding=3), + FirstBlock(dims[0]), + ] + + drop_path_rates = [ + x.item() for x in torch.linspace(0, drop_path_rate, sum(depths)) + ] + cur = 0 + for i_d, o_d, stride, depth in zip(dims[:-1], dims[1:], strides, depths): + stage = nn.Sequential( + *[ + BaseUnit( + dim=i_d, + drop_rate=drop_path_rates[cur + j], + snake_act=use_snake_act, + norm=use_norm, + ) + for j in range(depth) + ] + ) + down_layer = nn.Sequential( + Conv1d(i_d, o_d, kernel_size=stride, stride=stride), + ChannelNorm(o_d, data_format="channels_first") + if use_norm + else nn.Identity(), + ) + blocks += [stage, down_layer] + cur += depth + + # Create last convolution + blocks += [ + nn.Sequential( + *[ + BaseUnit( + dim=dims[-1], + drop_rate=drop_path_rates[cur + j], + snake_act=use_snake_act, + norm=use_norm, + ) + for j in range(depths[-1]) + ] + ), + # Snake1d(dims[-1]), + Conv1d(dims[-1], feature_dim, kernel_size=3, padding=1), + ] + + self.blocks = nn.Sequential(*blocks) + + def forward(self, x): + return self.blocks(x) + + +class DistillCodecEncoder(nn.Module): + def __init__(self): + super().__init__() + self.encoder = Encoder( + feature_dim=512, + strides=(4, 4, 4, 4), + depths=(1, 1, 1, 2), + dims=(32, 64, 128, 256), + ) + self.en_encoder = CompressedLocalEncoderWithCache( + feature_dim=512, + local_window_size=300, + compress_rate=5, + cache_size=0, + depth=5, + use_dynamic_pos_bias=True, + ) + + def forward(self, x): + x = self.encoder(x) + x = self.en_encoder(x) + return x diff --git a/neucodec/distill_layers.py b/neucodec/distill_layers.py new file mode 100644 index 0000000000000000000000000000000000000000..618d9f2be6db357608fa7f538e7b14001156a4fb --- /dev/null +++ b/neucodec/distill_layers.py @@ -0,0 +1,155 @@ +import torch +import torch.nn as nn +import torch.nn.functional as F +from torch import Tensor +from torch.nn.utils.parametrizations import weight_norm + + +def get_eps(data_type): + return torch.finfo(data_type).eps + + +EPS = get_eps(torch.float32) + + +def nn_wrapper(nn_class, norm_weight=True, init_weight=True): + def nn_builder(*args, **kwargs): + nn_instance = nn_class(*args, **kwargs) + if init_weight: + nn.init.trunc_normal_(nn_instance.weight, std=0.02) + nn.init.constant_(nn_instance.bias, 0) + if norm_weight: + nn_instance = weight_norm(nn_instance) + return nn_instance + + return nn_builder + + +Conv1d = nn_wrapper(nn.Conv1d, norm_weight=True, init_weight=True) +Linear = nn_wrapper(nn.Linear, norm_weight=True, init_weight=True) + + +class Residual(nn.Module): + def __init__( + self, module: nn.Module, drop_prob: float = 0.0, scale_by_keep: bool = True + ): + super().__init__() + assert 0 <= drop_prob < 1 + self.module = module + self.drop_prob = drop_prob + self.scale_by_keep = scale_by_keep + + def drop_path(self, x_side: Tensor): + if self.drop_prob == 0.0 or not self.training: + return x_side + keep_prob = 1 - self.drop_prob + shape = (x_side.shape[0],) + (1,) * (x_side.ndim - 1) + keep_mask = x_side.new_empty(shape).bernoulli_(keep_prob) + if self.scale_by_keep: + keep_mask.div_(keep_prob) + return x_side * keep_mask + + def forward(self, x: Tensor): + x_side = self.module(x) + x_side = self.drop_path(x_side) + return x + x_side + + +class GRN(nn.Module): + """GRN (Global Response Normalization) layer + Which supports two data formats: channels_last (default) or channels_first. + Channels_last corresponds to inputs with shape (batch_size, Sequence, channels) + while channels_first corresponds to inputs with shape (batch_size, channels, Sequence). + """ + + def __init__(self, n_channels, eps=EPS, data_format="channels_last"): + super().__init__() + self.n_channels = n_channels + self.data_format = data_format + if data_format == "channels_last": + self.gamma = nn.Parameter(torch.zeros(1, n_channels)) + self.beta = nn.Parameter(torch.zeros(1, n_channels)) + self.channel_dim = -1 + elif data_format == "channels_first": + self.gamma = nn.Parameter(torch.zeros(n_channels, 1)) + self.beta = nn.Parameter(torch.zeros(n_channels, 1)) + self.channel_dim = 1 + else: + raise ValueError(f"Unsupported data_format: {data_format}") + self.eps = torch.tensor(eps) + + def forward(self, x): + g_x = torch.norm(x, p=2, dim=[1, 2], keepdim=True) + n_x = g_x / (g_x.mean(dim=self.channel_dim, keepdim=True) + self.eps) + return self.gamma * (x * n_x) + self.beta + x + + def __repr__(self): + return f"{self.__class__.__name__}(n_channels={self.n_channels}, {self.data_format})" + + +# Scripting this brings model speed up 1.4x +@torch.jit.script +def snake(x, alpha): + # torch.clamp_(alpha, 0.05, 50.) + eps = 1.1920928955078125e-07 + x = x + (alpha + eps).reciprocal() * torch.sin(alpha * x).pow(2) + return x + + +class Snake1d(nn.Module): + def __init__(self, channels, data_format="channels_first"): + super().__init__() + if data_format == "channels_first": + self.alpha = nn.Parameter(torch.ones(1, channels, 1)) + elif data_format == "channels_last": + self.alpha = nn.Parameter(torch.ones(1, 1, channels)) + else: + raise NotImplementedError + + def forward(self, x): + return snake(x, self.alpha) + + +@torch.jit.script +def channel_norm(x, weight, bias, eps): + u = x.mean(1, keepdim=True) + s = (x - u).pow(2).mean(1, keepdim=True) + x = (x - u) / torch.sqrt(s + eps) + x = weight * x + bias + return x + + +class ChannelNorm(nn.Module): + """ChannelNorm that supports two data formats: channels_last (default) or channels_first. + Channels_last corresponds to inputs with shape (batch_size, ..., channels) + while channels_first corresponds to inputs with shape (batch_size, channels, ...). + """ + + def __init__(self, n_channels, eps=EPS, data_format="channels_last"): + super().__init__() + self.n_channels = n_channels + self.data_format = data_format + self.weight = nn.Parameter(torch.ones(n_channels)) + self.bias = nn.Parameter(torch.zeros(n_channels)) + self.eps = torch.tensor(eps) + + def forward(self, x): + if self.data_format == "channels_first": + extend_dims = (1,) * len(x.shape[2:]) + return channel_norm( + x, + self.weight.view(-1, *extend_dims), + self.bias.view(-1, *extend_dims), + self.eps, + ) + + elif self.data_format == "channels_last": + return F.layer_norm( + x, (self.n_channels,), self.weight, self.bias, self.eps.item() + ) + + else: + raise NotImplementedError + + def __repr__(self): + return f"{self.__class__.__name__}(n_channels={self.n_channels}, {self.data_format})" diff --git a/neucodec/model.py b/neucodec/model.py new file mode 100644 index 0000000000000000000000000000000000000000..98ef1c58bf2da249d4e75df4184dec6e23155aad --- /dev/null +++ b/neucodec/model.py @@ -0,0 +1,218 @@ +from typing import Optional, Dict +from pathlib import Path +import numpy as np +import torch +import torch.nn as nn +import torch.nn.functional as F +import torchaudio +from torchaudio import transforms as T +from huggingface_hub import PyTorchModelHubMixin, ModelHubMixin, hf_hub_download +from transformers import AutoFeatureExtractor, HubertModel, Wav2Vec2BertModel + +from .codec_encoder import CodecEncoder +from .codec_encoder_distill import DistillCodecEncoder +from .codec_decoder_vocos import CodecDecoderVocos +from .module import SemanticEncoder + + +class NeuCodec( + nn.Module, + PyTorchModelHubMixin, + repo_url="https://github.com/neuphonic/neucodec", + license="apache-2.0", +): + + def __init__(self, sample_rate: int, hop_length: int, decoder_depth: int = 12): + super().__init__() + self.sample_rate = sample_rate + self.hop_length = hop_length + self.semantic_model = Wav2Vec2BertModel.from_pretrained( + "facebook/w2v-bert-2.0", output_hidden_states=True + ) + self.feature_extractor = AutoFeatureExtractor.from_pretrained( + "facebook/w2v-bert-2.0" + ) + self.SemanticEncoder_module = SemanticEncoder(1024, 1024, 1024) + self.CodecEnc = CodecEncoder() + self.generator = CodecDecoderVocos(hop_length=hop_length, depth=decoder_depth) + self.fc_prior = nn.Linear(2048, 2048) + self.fc_post_a = nn.Linear(2048, 1024) + + @property + def device(self): + return next(self.parameters()).device + + @classmethod + def _from_pretrained( + cls, + *, + model_id: str = None, + revision: Optional[str] = None, + cache_dir: Optional[str] = None, + force_download: bool = False, + proxies: Optional[Dict] = None, + resume_download: bool = False, + local_files_only: bool = False, + token: Optional[str] = None, + map_location: str = "cpu", + strict: bool = False, + local_ckpt_path: str = None, + **model_kwargs, + ): + if model_id == "neuphonic/neucodec": + ignore_keys = ["fc_post_s", "SemanticDecoder"] + elif model_id == "neuphonic/distill-neucodec": + ignore_keys = [] + else: + ignore_keys = [] + + if model_id is not None: + ckpt_path = hf_hub_download( + repo_id=model_id, + filename="pytorch_model.bin", + revision=revision, + cache_dir=cache_dir, + force_download=force_download, + proxies=proxies, + resume_download=resume_download, + local_files_only=local_files_only, + token=token, + ) + else: + # incase we interpolate the weight to become 960 instead train from scratch + ckpt_path = local_ckpt_path + + # initialize model + decoder_depth = model_kwargs.pop('decoder_depth', 12) + model = cls(44_100, 882, decoder_depth=decoder_depth) + + # load weights + state_dict = torch.load(ckpt_path, map_location) + contains_list = lambda s, l: any(i in s for i in l) + state_dict = { + k:v for k, v in state_dict.items() + if not contains_list(k, ignore_keys) + } + + # Filter out keys with shape mismatches (e.g. 48k model vs 24k checkpoint) + model_state = model.state_dict() + state_dict = { + k: v for k, v in state_dict.items() + if k in model_state and v.shape == model_state[k].shape + } + + model.load_state_dict(state_dict, strict=False) + + return model + + def _prepare_audio(self, audio_or_path: torch.Tensor | Path | str): + + # load from file + if isinstance(audio_or_path, (Path, str)): + y, sr = torchaudio.load(audio_or_path) + if sr != 16_000: + y, sr = (T.Resample(sr, 16_000)(y), 16_000) + y = y[None, :] # [1, T] -> [B, 1, T] + + # ensure input tensor is of correct shape + elif isinstance(audio_or_path, torch.Tensor): + y = audio_or_path + if len(y.shape) == 3: + y = audio_or_path + else: + raise ValueError( + f"NeuCodec expects tensor audio input to be of shape [B, 1, T] -- received shape: {y.shape}" + ) + + # pad audio + pad_for_wav = 320 - (y.shape[-1] % 320) + y = torch.nn.functional.pad(y, (0, pad_for_wav)) + + return y + + def encode_code(self, audio_or_path: torch.Tensor | Path | str) -> torch.Tensor: + """ + Args: + audio_or_path: torch.Tensor [B, 1, T] | Path | str, input audio + + Returns: + fsq_codes: torch.Tensor [B, 1, F], 50hz FSQ codes + """ + + # prepare inputs + y = self._prepare_audio(audio_or_path) + semantic_features = self.feature_extractor( + [w for w in y.squeeze(1).cpu()], sampling_rate=16_000, return_tensors="pt" + ).input_features.to(self.device) + + # acoustic encoding + acoustic_emb = self.CodecEnc(y.to(self.device)) + acoustic_emb = acoustic_emb.transpose(1, 2) + + # semantic encoding + semantic_output = ( + self.semantic_model(semantic_features).hidden_states[16].transpose(1, 2) + ) + semantic_encoded = self.SemanticEncoder_module(semantic_output) + + # concatenate embeddings + if acoustic_emb.shape[-1] != semantic_encoded.shape[-1]: + min_len = min(acoustic_emb.shape[-1], semantic_encoded.shape[-1]) + acoustic_emb = acoustic_emb[:, :, :min_len] + semantic_encoded = semantic_encoded[:, :, :min_len] + concat_emb = torch.cat([semantic_encoded, acoustic_emb], dim=1) + concat_emb = self.fc_prior(concat_emb.transpose(1, 2)).transpose(1, 2) + + # quantize + _, fsq_codes, _ = self.generator(concat_emb, vq=True) + return fsq_codes + + def encode_code_from_features(self, audio: torch.Tensor, semantic_features: torch.Tensor) -> torch.Tensor: + """Encode using pre-computed semantic features, avoiding CPU feature extraction. + + Args: + audio: torch.Tensor [B, 1, T], 16kHz input audio + semantic_features: torch.Tensor [B, seq_len, feat_dim], pre-computed features + + Returns: + fsq_codes: torch.Tensor [B, 1, F], 50hz FSQ codes + """ + y = self._prepare_audio(audio) + semantic_features = semantic_features.to(self.device) + + # acoustic encoding + acoustic_emb = self.CodecEnc(y.to(self.device)) + acoustic_emb = acoustic_emb.transpose(1, 2) + + # semantic encoding + semantic_output = ( + self.semantic_model(semantic_features).hidden_states[16].transpose(1, 2) + ) + semantic_encoded = self.SemanticEncoder_module(semantic_output) + + # concatenate embeddings + if acoustic_emb.shape[-1] != semantic_encoded.shape[-1]: + min_len = min(acoustic_emb.shape[-1], semantic_encoded.shape[-1]) + acoustic_emb = acoustic_emb[:, :, :min_len] + semantic_encoded = semantic_encoded[:, :, :min_len] + concat_emb = torch.cat([semantic_encoded, acoustic_emb], dim=1) + concat_emb = self.fc_prior(concat_emb.transpose(1, 2)).transpose(1, 2) + + # quantize + _, fsq_codes, _ = self.generator(concat_emb, vq=True) + return fsq_codes + + def decode_code(self, fsq_codes: torch.Tensor) -> torch.Tensor: + """ + Args: + fsq_codes: torch.Tensor [B, 1, F], 50hz FSQ codes + + Returns: + recon: torch.Tensor [B, 1, T], reconstructed 48kHz audio + """ + + fsq_post_emb = self.generator.quantizer.get_output_from_indices(fsq_codes.transpose(1, 2)) + fsq_post_emb = fsq_post_emb.transpose(1, 2) + fsq_post_emb = self.fc_post_a(fsq_post_emb.transpose(1, 2)).transpose(1, 2) + recon = self.generator(fsq_post_emb.transpose(1, 2), vq=False)[0] + return recon diff --git a/neucodec/module.py b/neucodec/module.py new file mode 100644 index 0000000000000000000000000000000000000000..369b021dff8ee2b1783de4eac2f08b02c52d6694 --- /dev/null +++ b/neucodec/module.py @@ -0,0 +1,102 @@ +import torch.nn as nn + +from torch.nn.utils import weight_norm + +from .activations import SnakeBeta +from .alias_free_torch import Activation1d + + +def WNConv1d(*args, **kwargs): + return weight_norm(nn.Conv1d(*args, **kwargs)) + + +class ResidualUnit(nn.Module): + def __init__(self, dim: int = 16, dilation: int = 1): + super().__init__() + pad = ((7 - 1) * dilation) // 2 + self.block = nn.Sequential( + Activation1d(activation=SnakeBeta(dim, alpha_logscale=True)), + WNConv1d(dim, dim, kernel_size=7, dilation=dilation, padding=pad), + Activation1d(activation=SnakeBeta(dim, alpha_logscale=True)), + WNConv1d(dim, dim, kernel_size=1), + ) + + def forward(self, x): + return x + self.block(x) + + +class EncoderBlock(nn.Module): + def __init__(self, dim: int = 16, stride: int = 1, dilations=(1, 3, 9)): + super().__init__() + runits = [ResidualUnit(dim // 2, dilation=d) for d in dilations] + self.block = nn.Sequential( + *runits, + Activation1d(activation=SnakeBeta(dim // 2, alpha_logscale=True)), + WNConv1d( + dim // 2, + dim, + kernel_size=2 * stride, + stride=stride, + padding=stride // 2 + stride % 2, + ), + ) + + def forward(self, x): + return self.block(x) + + +class SemanticEncoder(nn.Module): + def __init__( + self, + input_channels: int, + code_dim: int, + encode_channels: int, + kernel_size: int = 3, + bias: bool = True, + ): + super(SemanticEncoder, self).__init__() + + self.initial_conv = nn.Conv1d( + in_channels=input_channels, + out_channels=encode_channels, + kernel_size=kernel_size, + stride=1, + padding=(kernel_size - 1) // 2, + bias=False, + ) + + self.residual_blocks = nn.Sequential( + nn.ReLU(inplace=True), + nn.Conv1d( + encode_channels, + encode_channels, + kernel_size=kernel_size, + stride=1, + padding=(kernel_size - 1) // 2, + bias=bias, + ), + nn.ReLU(inplace=True), + nn.Conv1d( + encode_channels, + encode_channels, + kernel_size=kernel_size, + stride=1, + padding=(kernel_size - 1) // 2, + bias=bias, + ), + ) + + self.final_conv = nn.Conv1d( + in_channels=encode_channels, + out_channels=code_dim, + kernel_size=kernel_size, + stride=1, + padding=(kernel_size - 1) // 2, + bias=False, + ) + + def forward(self, x): + x = self.initial_conv(x) # (Batch, Encode_channels, Length) + x = self.residual_blocks(x) + x # 残差连接 + x = self.final_conv(x) # (Batch, Code_dim, Length) + return x diff --git a/neucodec/tconv/__init__.py b/neucodec/tconv/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/neucodec/tconv/base.py b/neucodec/tconv/base.py new file mode 100644 index 0000000000000000000000000000000000000000..ee7aef7b91cdc004bf11a32c6173bcfd45f9a4aa --- /dev/null +++ b/neucodec/tconv/base.py @@ -0,0 +1,92 @@ +import einops +import torch +from torch import nn +import torch.nn.functional as F + +from ..distill_layers import Conv1d + + +def trend_pool(x, kernel_size): + if kernel_size > 1: + pool_args = dict(kernel_size=kernel_size, stride=1, padding=kernel_size // 2) + return F.avg_pool1d(F.max_pool1d(x.abs(), **pool_args), **pool_args) + # return F.avg_pool1d(F.max_pool1d(x, **pool_args), **pool_args) # woabs + else: + return x + + +class TrendPool(nn.Module): + def __init__(self, kernel_size=5): + super().__init__() + self.kernel_size = kernel_size + + def forward(self, x): + return trend_pool(x, self.kernel_size) + + +class FirstBlock(nn.Module): + def __init__( + self, + target_dim, + conv_kernels=(7, 7, 7, 7), + pool_kernels=(1, 3, 5, 9), + dilation_rate=2, + ): + super().__init__() + assert target_dim % len(pool_kernels) == 0 + each_dim = target_dim // len(pool_kernels) + blocks = [] + for conv_kernel, pool_kernel in zip(conv_kernels, pool_kernels): + conv_dilation = pool_kernel // dilation_rate + 1 + conv_padding = (conv_kernel - 1) * conv_dilation // 2 + blocks.append( + nn.Sequential( + TrendPool(pool_kernel), + Conv1d( + 1, + each_dim, + kernel_size=conv_kernel, + dilation=conv_dilation, + padding=conv_padding, + ), + ) + ) + self.blocks = nn.ModuleList(blocks) + + def forward(self, x): + return torch.cat([block(x) for block in self.blocks], dim=1) + + +class EnhanceBlock(FirstBlock): + def __init__(self, dim): + super().__init__(4, conv_kernels=(7, 7, 7, 7), pool_kernels=(1, 3, 5, 9)) + self.dim = dim + self.merge_layer = nn.Sequential( + # nn.LeakyReLU(), # ! if active or use InstanceNorm1d + nn.InstanceNorm1d(4, affine=True), + nn.Conv1d(4, 1, kernel_size=1), + ) + + def forward(self, x): + x = einops.rearrange(x, "b c t -> (b c) 1 t", c=self.dim) + y = super().forward(x) + y = self.merge_layer(y) + y = einops.rearrange(y, "(b c) 1 t -> b c t", c=self.dim) + return y # ! x + y or x + y * x + + +class SimpleEnhanceBlock(FirstBlock): + def __init__(self, dim): + super().__init__(4, conv_kernels=(7, 7, 7, 7), pool_kernels=(1, 3, 5, 9)) + self.dim = dim + self.merge_layer = nn.Sequential( + # nn.LeakyReLU(), # ! if active or use InstanceNorm1d + nn.InstanceNorm1d(4, affine=True), + nn.Conv1d(4, self.dim, kernel_size=1), + ) + + def forward(self, x): + xi = x[:, :1, :] + yi = super().forward(xi) + y = self.merge_layer(yi) + return x + y * x diff --git a/neucodec/tconv/t_first.py b/neucodec/tconv/t_first.py new file mode 100644 index 0000000000000000000000000000000000000000..e656fa2febb5eb93b89659c4aa252c965d12ad5b --- /dev/null +++ b/neucodec/tconv/t_first.py @@ -0,0 +1,38 @@ +import torch +from torch import nn + +from ..distill_layers import Conv1d +from . import base + + +class V3FirstBlock(base.FirstBlock): # (1, 5, 11, 21, 45) + def __init__( + self, + target_dim, + conv_kernels=(7, 7, 7, 7, 7), + pool_kernels=(1, 5, 11, 21, 45), + dilation_rate=7, + ): + h_dim = len(pool_kernels) * 4 + super().__init__(h_dim, conv_kernels, pool_kernels, dilation_rate=dilation_rate) + self.conv_1 = Conv1d(h_dim, h_dim * 4, kernel_size=1) + self.act = nn.GELU() + self.conv_2 = Conv1d(h_dim * 4 + 1, target_dim, kernel_size=1) + + def forward(self, x): + h = super().forward(x) + h = self.conv_1(h) + h = self.act(h) + y = torch.cat([h, x], dim=1) + y = self.conv_2(y) + return y + + +FirstBlock = lambda dim: ( + V3FirstBlock( + dim, + conv_kernels=(7, 7, 7, 7, 7), + pool_kernels=(1, 5, 11, 21, 45), + dilation_rate=99, + ) # fv36 +) diff --git a/neucodec/token_interpolator.py b/neucodec/token_interpolator.py new file mode 100644 index 0000000000000000000000000000000000000000..7bfea9f9bb58c30316afc6e8a9d9c7e27baebceb --- /dev/null +++ b/neucodec/token_interpolator.py @@ -0,0 +1,112 @@ +""" +TokenInterpolator: Upsample low-rate (25/12 TPS) token embeddings back to 50 TPS. + +The original 50 TPS NeuCodec codebook is completely frozen and unchanged. +This module operates purely in embedding space (after quantizer lookup). + +Encode at 25 TPS: + audio -> NeuCodec.encode_code() -> 50 TPS codes [B, 1, T] + -> take every 2nd token -> 25 TPS codes [B, 1, T//2] + +Decode from 25 TPS: + 25 TPS codes -> quantizer.get_output_from_indices -> 25 TPS embeddings [B, T//2, 1024] + -> TokenInterpolator(factor=2) -> 50 TPS embeddings [B, T, 1024] + -> NeuCodec decoder backbone + ISTFT -> audio + +Training: + Freeze entire NeuCodec. Only train TokenInterpolator. + Loss: MSE on the predicted (odd-position) embeddings vs the true 50 TPS embeddings. + Optional: reconstruction loss via frozen decoder. +""" + +import torch +import torch.nn as nn +from torchtune.modules import RotaryPositionalEmbeddings +from .bs_roformer5 import TransformerBlock + + +class TokenInterpolator(nn.Module): + """ + Upsamples from low-rate token embeddings to 50 TPS embeddings. + + Args: + dim: embedding dimension (1024, matching fc_post_a output) + factor: upsample factor — 2 for 25->50 TPS, 4 for 12->50 TPS + depth: number of transformer layers + heads: attention heads + """ + + def __init__(self, dim: int = 1024, factor: int = 2, depth: int = 4, heads: int = 8): + super().__init__() + assert factor in (2, 4), "factor must be 2 (25 TPS) or 4 (12 TPS)" + self.factor = factor + self.dim = dim + + # Learned sub-position embeddings to distinguish slots within each group. + # e.g. factor=2: slot 0 = known token, slot 1 = to be predicted. + self.sub_pos_embed = nn.Embedding(factor, dim) + + rotary_embed = RotaryPositionalEmbeddings(dim=64) + self.transformer = nn.Sequential(*[ + TransformerBlock(dim=dim, n_heads=heads, rotary_embed=rotary_embed) + for _ in range(depth) + ]) + self.norm = nn.LayerNorm(dim) + + def forward(self, x: torch.Tensor) -> torch.Tensor: + """ + Args: + x: [B, T_low, dim] — embeddings at 25 or 12 TPS + + Returns: + out: [B, T_low * factor, dim] — embeddings at 50 TPS + """ + B, T, D = x.shape + + # Repeat each embedding `factor` times along time axis + # [B, T, D] -> [B, T, factor, D] -> [B, T*factor, D] + x = x.unsqueeze(2).expand(B, T, self.factor, D).reshape(B, T * self.factor, D) + + # Add sub-position embedding so the model knows which slot it's filling. + # sub_idx: [0,1,0,1,...] for factor=2; [0,1,2,3,0,1,2,3,...] for factor=4 + sub_idx = torch.arange(self.factor, device=x.device).repeat(T) # [T*factor] + x = x + self.sub_pos_embed(sub_idx) # broadcast over batch + + x = self.transformer(x) + x = self.norm(x) + return x # [B, T*factor, D] + + +def encode_low_rate(neucodec, audio, factor: int = 2) -> torch.Tensor: + """ + Encode audio to low-rate codes. + + Returns: + codes: [B, 1, T//factor] integer token indices + """ + codes = neucodec.encode_code(audio) # [B, 1, T] at 50 TPS + codes = codes[:, :, ::factor] # [B, 1, T//factor] + return codes + + +def decode_low_rate(neucodec, interpolator: TokenInterpolator, codes: torch.Tensor) -> torch.Tensor: + """ + Decode low-rate codes back to 48kHz audio via interpolation. + + Args: + codes: [B, 1, T_low] — 25 or 12 TPS codes + + Returns: + audio: [B, 1, T_audio] — 48kHz audio + """ + # 1. Lookup embeddings for the known tokens [B, T_low, 2048] + emb = neucodec.generator.quantizer.get_output_from_indices(codes.transpose(1, 2)) + # 2. Project to 1024-dim space [B, T_low, 1024] + emb = neucodec.fc_post_a(emb) + + # 3. Interpolate to 50 TPS [B, T_high, 1024] + emb = interpolator(emb) + + # 4. Decode with existing frozen backbone + ISTFT + audio, _ = neucodec.generator(emb, vq=False) + return audio diff --git a/pytorch_model.bin b/pytorch_model.bin new file mode 100644 index 0000000000000000000000000000000000000000..2830e41c843ad111d1d9defe5124d1f439322133 --- /dev/null +++ b/pytorch_model.bin @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fb902096a66990b777dec6f4f713699c3f3c3ef8e078c2fc6663f71b3f4da4f7 +size 3703305959 diff --git a/samples/boboiboy/boboiboy-after.wav b/samples/boboiboy/boboiboy-after.wav new file mode 100644 index 0000000000000000000000000000000000000000..8a73407b58149e213e22e4e5823b36585ed3b844 --- /dev/null +++ b/samples/boboiboy/boboiboy-after.wav @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:de4990e82bef8fb6c7d632e3fb5f418c1c6c61a6a67b6b043e24454affe544b5 +size 463976 diff --git a/samples/boboiboy/boboiboy-before.mp3 b/samples/boboiboy/boboiboy-before.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..e1c19941987ba08ba870e21c7a348c9a0b226ee0 Binary files /dev/null and b/samples/boboiboy/boboiboy-before.mp3 differ diff --git a/samples/common-voice/after/ab_recon44k_d20.wav b/samples/common-voice/after/ab_recon44k_d20.wav new file mode 100644 index 0000000000000000000000000000000000000000..f41e7064cc6d90ab41086497c0935610de2ce7ae --- /dev/null +++ b/samples/common-voice/after/ab_recon44k_d20.wav @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9978a540c4bcf20c702ce11c228ad351347afc6035f0cc702119d971f41f9263 +size 552176 diff --git a/samples/common-voice/after/af_recon44k_d20.wav b/samples/common-voice/after/af_recon44k_d20.wav new file mode 100644 index 0000000000000000000000000000000000000000..8a76744c19d1f439d4012887ed2f74ef42929db8 --- /dev/null +++ b/samples/common-voice/after/af_recon44k_d20.wav @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c6e099480e46ca062822ac493ed411c3ff6e33b20636238dbf2a5f4b91cb14fb +size 913796 diff --git a/samples/common-voice/after/am_recon44k_d20.wav b/samples/common-voice/after/am_recon44k_d20.wav new file mode 100644 index 0000000000000000000000000000000000000000..ed07e501614fa23754ff85d98300410eb616a55e --- /dev/null +++ b/samples/common-voice/after/am_recon44k_d20.wav @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3d74648c45bd65922f2cb2581b279acfab0b6c04e084e7bf04b7916eed71c0d3 +size 536300 diff --git a/samples/common-voice/after/ar_recon44k_d20.wav b/samples/common-voice/after/ar_recon44k_d20.wav new file mode 100644 index 0000000000000000000000000000000000000000..30fd754b9d4f096128b1393557bf437d05f347b7 --- /dev/null +++ b/samples/common-voice/after/ar_recon44k_d20.wav @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a8c3a4f625a5db1c289697bfefb9fbb576495900f769c0f913c9991f6e204116 +size 340496 diff --git a/samples/common-voice/after/as_recon44k_d20.wav b/samples/common-voice/after/as_recon44k_d20.wav new file mode 100644 index 0000000000000000000000000000000000000000..c8c0b6738b32ff29a90211b8db9c70c9c06be4f6 --- /dev/null +++ b/samples/common-voice/after/as_recon44k_d20.wav @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d607e04f1a90a04ee5c84770b8e3529b0bfdb5cf3089e4d101b1c808399bd1eb +size 478088 diff --git a/samples/common-voice/after/ast_recon44k_d20.wav b/samples/common-voice/after/ast_recon44k_d20.wav new file mode 100644 index 0000000000000000000000000000000000000000..cd30776ca292004236a992725113cdcf45e42f2c --- /dev/null +++ b/samples/common-voice/after/ast_recon44k_d20.wav @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:55b11df9d7c5c5a8e1176fa14328b12a8ffe9cf986df651ce9346d969d1f538a +size 349316 diff --git a/samples/common-voice/after/az_recon44k_d20.wav b/samples/common-voice/after/az_recon44k_d20.wav new file mode 100644 index 0000000000000000000000000000000000000000..26ba40aea51a1869fce3034d457c2c1ba0d6caae --- /dev/null +++ b/samples/common-voice/after/az_recon44k_d20.wav @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:22f3e235545b20e374d440ce5fd4ec5f247fd5da7c75530818bf9f8d303450f3 +size 342260 diff --git a/samples/common-voice/after/ba_recon44k_d20.wav b/samples/common-voice/after/ba_recon44k_d20.wav new file mode 100644 index 0000000000000000000000000000000000000000..bef5485c7542305ded1a4ba4a577e704622fcb34 --- /dev/null +++ b/samples/common-voice/after/ba_recon44k_d20.wav @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5dd9bdc70d56ff46eacf6ae12d8d6206d2d6761b323e30523444abdd18ce6ff5 +size 269936 diff --git a/samples/common-voice/after/bas_recon44k_d20.wav b/samples/common-voice/after/bas_recon44k_d20.wav new file mode 100644 index 0000000000000000000000000000000000000000..b53e2942bb9121b6e0438df8fad556314b38cb0d --- /dev/null +++ b/samples/common-voice/after/bas_recon44k_d20.wav @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a847003b3c73900a965af6fa8ba14fbd5af01bc8314c727cd4ba4cb92dd217e7 +size 793844 diff --git a/samples/common-voice/after/be_recon44k_d20.wav b/samples/common-voice/after/be_recon44k_d20.wav new file mode 100644 index 0000000000000000000000000000000000000000..fc26b53a439809d4d003a933d4c4d841cb4a39e1 --- /dev/null +++ b/samples/common-voice/after/be_recon44k_d20.wav @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7f6b091162088604e78511ed1aabf49fb6dbfcc5bfa16f66c85a892c6f6770ed +size 580400 diff --git a/samples/common-voice/after/bg_recon44k_d20.wav b/samples/common-voice/after/bg_recon44k_d20.wav new file mode 100644 index 0000000000000000000000000000000000000000..1b79b21168236d09ce37bcf6e6ab4432b9dfcb88 --- /dev/null +++ b/samples/common-voice/after/bg_recon44k_d20.wav @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a867cec76d72b8fc0f8366b077c55a62a7f7546a3847b281cea1a3cb54cdae4f +size 437516 diff --git a/samples/common-voice/after/bn_recon44k_d20.wav b/samples/common-voice/after/bn_recon44k_d20.wav new file mode 100644 index 0000000000000000000000000000000000000000..4f4e54903c5fcd6ba1a1e06d924cb632be0eca38 --- /dev/null +++ b/samples/common-voice/after/bn_recon44k_d20.wav @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:af075f426f5cb79ab16629f4a86c9cd84853d7475b466de6c30fbc56b75cf4b9 +size 652724 diff --git a/samples/common-voice/after/br_recon44k_d20.wav b/samples/common-voice/after/br_recon44k_d20.wav new file mode 100644 index 0000000000000000000000000000000000000000..69afac0d78f772627e77a19d67b80ee4fa55c1b8 --- /dev/null +++ b/samples/common-voice/after/br_recon44k_d20.wav @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:bc67f13630a1642f69882f078b2b1cddd42a35dfdd1533a8db13c912b8d120f7 +size 278756 diff --git a/samples/common-voice/after/ca_recon44k_d20.wav b/samples/common-voice/after/ca_recon44k_d20.wav new file mode 100644 index 0000000000000000000000000000000000000000..be360184ccdd313f2e015a90fff2bc024804602a --- /dev/null +++ b/samples/common-voice/after/ca_recon44k_d20.wav @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:069639311d9552e429f9577a82840db8762602e694a7eadfa3e62a982f3f07f2 +size 620972 diff --git a/samples/common-voice/after/ckb_recon44k_d20.wav b/samples/common-voice/after/ckb_recon44k_d20.wav new file mode 100644 index 0000000000000000000000000000000000000000..cd1c704f14b465239890858cc66d2040c5376036 --- /dev/null +++ b/samples/common-voice/after/ckb_recon44k_d20.wav @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2b3bd544722c10fa0f723be1106b40b0d025830ade65cf05313205bea5d5e349 +size 476324 diff --git a/samples/common-voice/after/cnh_recon44k_d20.wav b/samples/common-voice/after/cnh_recon44k_d20.wav new file mode 100644 index 0000000000000000000000000000000000000000..888962bf505fe323f8cd70632f57d5f85ce05a8c --- /dev/null +++ b/samples/common-voice/after/cnh_recon44k_d20.wav @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a2b7811471e2fee28c9d5b3a7c41d8465ef1705461478a0953a937efdef8115e +size 393416 diff --git a/samples/common-voice/after/cs_recon44k_d20.wav b/samples/common-voice/after/cs_recon44k_d20.wav new file mode 100644 index 0000000000000000000000000000000000000000..fde1d7fe1d7243f03e7d23558e926283af52ccf8 --- /dev/null +++ b/samples/common-voice/after/cs_recon44k_d20.wav @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d3c88dc4e9580250bb22fe8042ec773aeb003135ac6d6ed153429fe87a5e414d +size 606860 diff --git a/samples/common-voice/after/cv_recon44k_d20.wav b/samples/common-voice/after/cv_recon44k_d20.wav new file mode 100644 index 0000000000000000000000000000000000000000..f4aae1c7c988a75cec5ad0cdc71749ef46a8b270 --- /dev/null +++ b/samples/common-voice/after/cv_recon44k_d20.wav @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f46c257567f5cf20b1ea224b067f01fc39749a945f43301fcff16384100172d1 +size 276992 diff --git a/samples/common-voice/after/cy_recon44k_d20.wav b/samples/common-voice/after/cy_recon44k_d20.wav new file mode 100644 index 0000000000000000000000000000000000000000..62e909392cb811d3722a86825ea37f65923b0526 --- /dev/null +++ b/samples/common-voice/after/cy_recon44k_d20.wav @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:86754a27be88e12b6211d5edac45ec6f3651a3a8383b79d5d96f429dc4f984c4 +size 405764 diff --git a/samples/common-voice/after/da_recon44k_d20.wav b/samples/common-voice/after/da_recon44k_d20.wav new file mode 100644 index 0000000000000000000000000000000000000000..0bb7e370a68e132316f628930d19fc40640ceddf --- /dev/null +++ b/samples/common-voice/after/da_recon44k_d20.wav @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0075e1460f5d9cd4391a9ca1583227816e666616343b072954dc3685ea7c3dc4 +size 723284 diff --git a/samples/common-voice/after/dav_recon44k_d20.wav b/samples/common-voice/after/dav_recon44k_d20.wav new file mode 100644 index 0000000000000000000000000000000000000000..b222f9e948008a5de5ca37abaad0406cf866038f --- /dev/null +++ b/samples/common-voice/after/dav_recon44k_d20.wav @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ee5f14c97e350ec372a5c00474809f93f18e90da75b96487cbe41386433a6769 +size 414584 diff --git a/samples/common-voice/after/de_recon44k_d20.wav b/samples/common-voice/after/de_recon44k_d20.wav new file mode 100644 index 0000000000000000000000000000000000000000..1787478ee8ed610358ea7b959ba4e2a23a6d8068 --- /dev/null +++ b/samples/common-voice/after/de_recon44k_d20.wav @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:95376045ed5682f44dea0e5a1f4c67c4283612edb502ef76354e81bbae73478b +size 280520 diff --git a/samples/common-voice/after/dv_recon44k_d20.wav b/samples/common-voice/after/dv_recon44k_d20.wav new file mode 100644 index 0000000000000000000000000000000000000000..0c656bfda47321c9f65e792bd741f16f77510805 --- /dev/null +++ b/samples/common-voice/after/dv_recon44k_d20.wav @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:bd187f4dc8fa658be79bfc10f94976368f1a7804e6660c048b2ed872eb3d770e +size 345788 diff --git a/samples/common-voice/after/dyu_recon44k_d20.wav b/samples/common-voice/after/dyu_recon44k_d20.wav new file mode 100644 index 0000000000000000000000000000000000000000..4c283f52e41d2121ede79d375eda4727bea72e03 --- /dev/null +++ b/samples/common-voice/after/dyu_recon44k_d20.wav @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7cfe04beb8a703c66317419f305658bf472b73e77fb630040305a8db63c735af +size 548648 diff --git a/samples/common-voice/after/el_recon44k_d20.wav b/samples/common-voice/after/el_recon44k_d20.wav new file mode 100644 index 0000000000000000000000000000000000000000..cd934ff2f904a8ca374302666cca981b5d5c1d7c --- /dev/null +++ b/samples/common-voice/after/el_recon44k_d20.wav @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9d63b4b127a98e77341820d070efae55b6a28e308a51a4e5fbc5cbd0dd231674 +size 250532 diff --git a/samples/common-voice/after/en_recon44k_d20.wav b/samples/common-voice/after/en_recon44k_d20.wav new file mode 100644 index 0000000000000000000000000000000000000000..602605e0d18a10353b965c7dd81a3caa5fe2112f --- /dev/null +++ b/samples/common-voice/after/en_recon44k_d20.wav @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d972c5ea08fb4646293ff39481e3e09b23f5a40c9c6d7ab47f6b0b9af59e4c5e +size 1044332 diff --git a/samples/common-voice/after/eo_recon44k_d20.wav b/samples/common-voice/after/eo_recon44k_d20.wav new file mode 100644 index 0000000000000000000000000000000000000000..3d4cbf866aac5948784f8a4917fb971a74b71925 --- /dev/null +++ b/samples/common-voice/after/eo_recon44k_d20.wav @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5a5e6d6cce57e5555bf2604a0d3d355e29e639767b57ff8d59764bfed8aeac59 +size 345788 diff --git a/samples/common-voice/after/es_recon44k_d20.wav b/samples/common-voice/after/es_recon44k_d20.wav new file mode 100644 index 0000000000000000000000000000000000000000..1d35cadaf93231798848f08d46d9cdcd89318e55 --- /dev/null +++ b/samples/common-voice/after/es_recon44k_d20.wav @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:55289fe009f7c53f2e104070ef87675e35bed0bd2cbc78df3a8d5b360bc395f8 +size 613916 diff --git a/samples/common-voice/after/et_recon44k_d20.wav b/samples/common-voice/after/et_recon44k_d20.wav new file mode 100644 index 0000000000000000000000000000000000000000..098e8177fee8275715595bf57f36eebe6efd749d --- /dev/null +++ b/samples/common-voice/after/et_recon44k_d20.wav @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d1f85248e8188bcbb0f3d7cf727a9bee69f77159450e99b5f949622496f54206 +size 523952 diff --git a/samples/common-voice/after/eu_recon44k_d20.wav b/samples/common-voice/after/eu_recon44k_d20.wav new file mode 100644 index 0000000000000000000000000000000000000000..cf68230e9ede6f877f4bb0d04144001db6d4ad11 --- /dev/null +++ b/samples/common-voice/after/eu_recon44k_d20.wav @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:142a48ee3a5d205ae306e339c1c6718807aa0048d9b8e70d1cc3f9855c2bc0a9 +size 636848 diff --git a/samples/common-voice/after/fa_recon44k_d20.wav b/samples/common-voice/after/fa_recon44k_d20.wav new file mode 100644 index 0000000000000000000000000000000000000000..935d84788cac84ad01d72acb8759dcc7cce65153 --- /dev/null +++ b/samples/common-voice/after/fa_recon44k_d20.wav @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:aee0a497136538d665a1bba7c4206ed39916e8d9b0823c57b4d1b688c630ac4b +size 298160 diff --git a/samples/common-voice/after/fi_recon44k_d20.wav b/samples/common-voice/after/fi_recon44k_d20.wav new file mode 100644 index 0000000000000000000000000000000000000000..52997d3f4e93f615980cff10baae3d4d0464f472 --- /dev/null +++ b/samples/common-voice/after/fi_recon44k_d20.wav @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4453465a32cf1d7ebe581627a6c779afd52c7b2a02328eb31f99cab2022484f8 +size 421640 diff --git a/samples/common-voice/after/fr_recon44k_d20.wav b/samples/common-voice/after/fr_recon44k_d20.wav new file mode 100644 index 0000000000000000000000000000000000000000..54a38e4699d68c6d1807f21474406d7e89b357fa --- /dev/null +++ b/samples/common-voice/after/fr_recon44k_d20.wav @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8d270de38c3e7dc49fdaebd967988e363ca1641ebd9fd28589597388e2cf459f +size 322856 diff --git a/samples/common-voice/after/fy-NL_recon44k_d20.wav b/samples/common-voice/after/fy-NL_recon44k_d20.wav new file mode 100644 index 0000000000000000000000000000000000000000..7b0998d1d0b0b60b0292e1dbd6254ad9d657fde4 --- /dev/null +++ b/samples/common-voice/after/fy-NL_recon44k_d20.wav @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:072322a08f2bb0d3b56daaf3af0fcc4377c886b3947a27923dd0206f8163e4e8 +size 747980 diff --git a/samples/common-voice/after/ga-IE_recon44k_d20.wav b/samples/common-voice/after/ga-IE_recon44k_d20.wav new file mode 100644 index 0000000000000000000000000000000000000000..a20d30251c905da95a1d3219a1e3b7bc36bf3bf9 --- /dev/null +++ b/samples/common-voice/after/ga-IE_recon44k_d20.wav @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:376052a17a68e28191e3b8b09e53bf69d4ac9510298ca2b78a92758d7ef8abf6 +size 404000 diff --git a/samples/common-voice/after/gl_recon44k_d20.wav b/samples/common-voice/after/gl_recon44k_d20.wav new file mode 100644 index 0000000000000000000000000000000000000000..4375c6e0e4ee2590bfac32eec68a10ef85be00cf --- /dev/null +++ b/samples/common-voice/after/gl_recon44k_d20.wav @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0ebc01371c149f63f3a4337ddb9defc1c8c4babe2658a72e39c4da9f4c6e97a0 +size 541592 diff --git a/samples/common-voice/after/gn_recon44k_d20.wav b/samples/common-voice/after/gn_recon44k_d20.wav new file mode 100644 index 0000000000000000000000000000000000000000..06a1d7e72e42b5365998c86bdc1145244e012a50 --- /dev/null +++ b/samples/common-voice/after/gn_recon44k_d20.wav @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:968fa712bcbbc40d0660555b3be08d0bf901a633bf2b92ab6813398fc30845bf +size 763856 diff --git a/samples/common-voice/after/ha_recon44k_d20.wav b/samples/common-voice/after/ha_recon44k_d20.wav new file mode 100644 index 0000000000000000000000000000000000000000..b3ab0e9aa5f6ad121c821b785c78af1023686c24 --- /dev/null +++ b/samples/common-voice/after/ha_recon44k_d20.wav @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8bad31a24f7b0178eab102c0f3149ff05a42f3355b8bba39082c13e12e6aa7e0 +size 444572 diff --git a/samples/common-voice/after/he_recon44k_d20.wav b/samples/common-voice/after/he_recon44k_d20.wav new file mode 100644 index 0000000000000000000000000000000000000000..b4fcf201038e0c70fd7d75616a70fab2368fe897 --- /dev/null +++ b/samples/common-voice/after/he_recon44k_d20.wav @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d75fdcb626cc90d36f7d6b5e00ff330d728dde6b0727eb4fa7fccce3be27a067 +size 508076 diff --git a/samples/common-voice/after/hi_recon44k_d20.wav b/samples/common-voice/after/hi_recon44k_d20.wav new file mode 100644 index 0000000000000000000000000000000000000000..f786f454226197f43b95bdac48b0fd92da662181 --- /dev/null +++ b/samples/common-voice/after/hi_recon44k_d20.wav @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:861aba74b0663bc2d73d0785953f58563616b3d37700a39796bbc984f771108b +size 377540 diff --git a/samples/common-voice/after/hsb_recon44k_d20.wav b/samples/common-voice/after/hsb_recon44k_d20.wav new file mode 100644 index 0000000000000000000000000000000000000000..d1f1d5e8cfc7740b596a8f342597d9ba1dc453e3 --- /dev/null +++ b/samples/common-voice/after/hsb_recon44k_d20.wav @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d17b8ee0ade257296dec3d26da99546c41eb6edd1197e27ed73c0a42f8b216d0 +size 774440 diff --git a/samples/common-voice/after/ht_recon44k_d20.wav b/samples/common-voice/after/ht_recon44k_d20.wav new file mode 100644 index 0000000000000000000000000000000000000000..690c8c4dc9e766bac9043a707018fefc50cbd064 --- /dev/null +++ b/samples/common-voice/after/ht_recon44k_d20.wav @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0b75c5baec671af9bc71f2e7a5bb8d80ddae67227c5b070f525ea70ad7b70126 +size 282284 diff --git a/samples/common-voice/after/hu_recon44k_d20.wav b/samples/common-voice/after/hu_recon44k_d20.wav new file mode 100644 index 0000000000000000000000000000000000000000..dfb32e08d8c9bb06abc1ec4767e228271a6cdfe2 --- /dev/null +++ b/samples/common-voice/after/hu_recon44k_d20.wav @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5ef0d17bc36c8cdd60753a3f08ed6ed246c0dba0c4dad308f65bd9d68007aa94 +size 753272 diff --git a/samples/common-voice/after/hy-AM_recon44k_d20.wav b/samples/common-voice/after/hy-AM_recon44k_d20.wav new file mode 100644 index 0000000000000000000000000000000000000000..ca8e921ad190c84820c3e700941d0534323c06d3 --- /dev/null +++ b/samples/common-voice/after/hy-AM_recon44k_d20.wav @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:bdfa71ce33b12302e5e3bbc77461d3fafe303da350d509429681db3abb5816e2 +size 635084 diff --git a/samples/common-voice/after/ia_recon44k_d20.wav b/samples/common-voice/after/ia_recon44k_d20.wav new file mode 100644 index 0000000000000000000000000000000000000000..557b32ba22da0ea59c5033b69273431c55a906cd --- /dev/null +++ b/samples/common-voice/after/ia_recon44k_d20.wav @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:bd680b4fe46112c746eaf42469975a30334b7e0c277c2f5099d27ec312906d75 +size 441044 diff --git a/samples/common-voice/after/id_recon44k_d20.wav b/samples/common-voice/after/id_recon44k_d20.wav new file mode 100644 index 0000000000000000000000000000000000000000..97a7d1c0787753b5636d09529664c8329aa68e9a --- /dev/null +++ b/samples/common-voice/after/id_recon44k_d20.wav @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5c772265b74100cb110e25277f601a38f645c531ac2bdd716c69d4dc444d14d6 +size 493964 diff --git a/samples/common-voice/after/ig_recon44k_d20.wav b/samples/common-voice/after/ig_recon44k_d20.wav new file mode 100644 index 0000000000000000000000000000000000000000..25ac829886ed8bda01c6ad5e83eef018e6e30a2a --- /dev/null +++ b/samples/common-voice/after/ig_recon44k_d20.wav @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:576897b7b1c1e803b615d2144ecd3f13ccc53664120945090daf6e909a6027c6 +size 571580 diff --git a/samples/common-voice/after/is_recon44k_d20.wav b/samples/common-voice/after/is_recon44k_d20.wav new file mode 100644 index 0000000000000000000000000000000000000000..2047e2c2097065f9d9c87b76d65910437aa5ea22 --- /dev/null +++ b/samples/common-voice/after/is_recon44k_d20.wav @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:bc6dec31020c7c2804a1693fb3de5efde1d1d00e7fe9adc45b81ceda13ff8fe5 +size 866168 diff --git a/samples/common-voice/after/it_recon44k_d20.wav b/samples/common-voice/after/it_recon44k_d20.wav new file mode 100644 index 0000000000000000000000000000000000000000..3a2dce7b46743a6837ce0b6d1d470a2ed6c2fdb3 --- /dev/null +++ b/samples/common-voice/after/it_recon44k_d20.wav @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:48fc0790fc5050aaf8d29ff0f12a1dc2211c13ab02efa7403561fb2595e9be35 +size 329912 diff --git a/samples/common-voice/after/ja_recon44k_d20.wav b/samples/common-voice/after/ja_recon44k_d20.wav new file mode 100644 index 0000000000000000000000000000000000000000..4d35576cc3b1ca7861ac8ed1e80718f6e77938a1 --- /dev/null +++ b/samples/common-voice/after/ja_recon44k_d20.wav @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:74a0141346689c114f9243b34ddf854b80c85581b05c61f97397768714d4add0 +size 372248 diff --git a/samples/common-voice/after/ka_recon44k_d20.wav b/samples/common-voice/after/ka_recon44k_d20.wav new file mode 100644 index 0000000000000000000000000000000000000000..85f77ba2bb131fdcfb2b282fcafdabde0bb54f0b --- /dev/null +++ b/samples/common-voice/after/ka_recon44k_d20.wav @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ee799d596d3e4acbc7fa5a5cd40eacbe60537231c5485743aa88fe2e25021272 +size 594512 diff --git a/samples/common-voice/after/kab_recon44k_d20.wav b/samples/common-voice/after/kab_recon44k_d20.wav new file mode 100644 index 0000000000000000000000000000000000000000..d3059eedf90bd251e07d3795d88166ebcc89ab0a --- /dev/null +++ b/samples/common-voice/after/kab_recon44k_d20.wav @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a3ef2f7c235123632f654a0c4c2154e83a178fa48c200db8829b937ce8620e4b +size 386360 diff --git a/samples/common-voice/after/kk_recon44k_d20.wav b/samples/common-voice/after/kk_recon44k_d20.wav new file mode 100644 index 0000000000000000000000000000000000000000..5fc951e98ec59a2b1dfe9c93e8f440d857507a3b --- /dev/null +++ b/samples/common-voice/after/kk_recon44k_d20.wav @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b8575c01f87fcfd3f97c0028442df131dcc4358ab2a99bd389c189eeb7a803fb +size 377540 diff --git a/samples/common-voice/after/kln_recon44k_d20.wav b/samples/common-voice/after/kln_recon44k_d20.wav new file mode 100644 index 0000000000000000000000000000000000000000..454bf7cabbfe4127a4c6a812f94f907871978479 --- /dev/null +++ b/samples/common-voice/after/kln_recon44k_d20.wav @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e9832ea90aed26947182352f4d24676c5a28c4c7aa5ab82a084c10f301d5e353 +size 437516 diff --git a/samples/common-voice/after/kmr_recon44k_d20.wav b/samples/common-voice/after/kmr_recon44k_d20.wav new file mode 100644 index 0000000000000000000000000000000000000000..07e7c4520e91e046fe8eb7211570f8fd21158f19 --- /dev/null +++ b/samples/common-voice/after/kmr_recon44k_d20.wav @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:cc8e610bab4128f2b84b8a1006b35a9e608801022ed6700c6c25219577272c1e +size 747980 diff --git a/samples/common-voice/after/ko_recon44k_d20.wav b/samples/common-voice/after/ko_recon44k_d20.wav new file mode 100644 index 0000000000000000000000000000000000000000..d40df5c10b95fcec43f80b9a9e525f4a46f2bfeb --- /dev/null +++ b/samples/common-voice/after/ko_recon44k_d20.wav @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:614652beff933944fe8927a6b57303ef3c1f43d48f1bae631ca9b0c16fc6da14 +size 795608 diff --git a/samples/common-voice/after/ky_recon44k_d20.wav b/samples/common-voice/after/ky_recon44k_d20.wav new file mode 100644 index 0000000000000000000000000000000000000000..92b6ecdfad2b6bb3f78fbece6078299ebc00a34d --- /dev/null +++ b/samples/common-voice/after/ky_recon44k_d20.wav @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:80ac7b6ceae2cd90cb04657ce6790b3387216574148b5d81a52983033a8c43e3 +size 467504 diff --git a/samples/common-voice/after/lg_recon44k_d20.wav b/samples/common-voice/after/lg_recon44k_d20.wav new file mode 100644 index 0000000000000000000000000000000000000000..884fbde42c83884d07ff60c7807e78f93ccc4954 --- /dev/null +++ b/samples/common-voice/after/lg_recon44k_d20.wav @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f197f5188ba445968e0a9109fccaa06f3c7ee5973e26a08fbfaa712b4b4ccb6c +size 830888 diff --git a/samples/common-voice/after/lij_recon44k_d20.wav b/samples/common-voice/after/lij_recon44k_d20.wav new file mode 100644 index 0000000000000000000000000000000000000000..0f7069c4bbf91555d2104101c4b9aa1bcdb1ec14 --- /dev/null +++ b/samples/common-voice/after/lij_recon44k_d20.wav @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:16adbbd0fb7d80a1148c34fe0fcf9e24bc1b4bbfb6651008746903249fb6aebe +size 365192 diff --git a/samples/common-voice/after/lo_recon44k_d20.wav b/samples/common-voice/after/lo_recon44k_d20.wav new file mode 100644 index 0000000000000000000000000000000000000000..79f2f4f3b84518a6ae90e56197d8cc192f9e46da --- /dev/null +++ b/samples/common-voice/after/lo_recon44k_d20.wav @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9a2c3c7617d952c228ed16515f56ec48a2427d4c988c3a8f4a851d08139f3ff4 +size 557468 diff --git a/samples/common-voice/after/lt_recon44k_d20.wav b/samples/common-voice/after/lt_recon44k_d20.wav new file mode 100644 index 0000000000000000000000000000000000000000..7cc9a18142df91159b65cc46cb0ff9434f0afa2d --- /dev/null +++ b/samples/common-voice/after/lt_recon44k_d20.wav @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a1b16a3d1d09247bdb65019cde3410e68a548e554a455b20d729a503b241f888 +size 467504 diff --git a/samples/common-voice/after/ltg_recon44k_d20.wav b/samples/common-voice/after/ltg_recon44k_d20.wav new file mode 100644 index 0000000000000000000000000000000000000000..50f1f10e2f5ac69c0c0bbe006c5339c98f5beb54 --- /dev/null +++ b/samples/common-voice/after/ltg_recon44k_d20.wav @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fd2fbcf5f85bedca32225f435190346db8cd4d12c022d93bc5007108ea35b1a8 +size 418112 diff --git a/samples/common-voice/after/luo_recon44k_d20.wav b/samples/common-voice/after/luo_recon44k_d20.wav new file mode 100644 index 0000000000000000000000000000000000000000..82c495a0576b094afc83b3d8c17c19f8165ee20d --- /dev/null +++ b/samples/common-voice/after/luo_recon44k_d20.wav @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7d57ab2d5180a04e437ea64f4df42836c366ef2e5052f7abba72e0da23a5c1ed +size 1024928 diff --git a/samples/common-voice/after/lv_recon44k_d20.wav b/samples/common-voice/after/lv_recon44k_d20.wav new file mode 100644 index 0000000000000000000000000000000000000000..17a14c7d4446a54d3cfda67b8320be1a75657462 --- /dev/null +++ b/samples/common-voice/after/lv_recon44k_d20.wav @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:33aa6deb326e6bb3415c4350aba671d2b9a002bdb99fba6c6b835cac29bbfc68 +size 308744 diff --git a/samples/common-voice/after/mdf_recon44k_d20.wav b/samples/common-voice/after/mdf_recon44k_d20.wav new file mode 100644 index 0000000000000000000000000000000000000000..6f29d0a7990b217546c7c7209bc9f4b4abef9b72 --- /dev/null +++ b/samples/common-voice/after/mdf_recon44k_d20.wav @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6791ce6ec6d8e966bd083c9b4d3e7e26d84eed3a2bbf0342afd7d18dfd674a04 +size 303452 diff --git a/samples/common-voice/after/mhr_recon44k_d20.wav b/samples/common-voice/after/mhr_recon44k_d20.wav new file mode 100644 index 0000000000000000000000000000000000000000..d08d1c889ea9d9190f0fe6e852f10d31e726a5c8 --- /dev/null +++ b/samples/common-voice/after/mhr_recon44k_d20.wav @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f28e4e6221615c0cd407325700a70a7ba9a8f823cb2a04a80672d45001465764 +size 652724 diff --git a/samples/common-voice/after/mk_recon44k_d20.wav b/samples/common-voice/after/mk_recon44k_d20.wav new file mode 100644 index 0000000000000000000000000000000000000000..66211958acb57ae21395a3d77d6fd9bcb289e6fc --- /dev/null +++ b/samples/common-voice/after/mk_recon44k_d20.wav @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:cb9392d0b633db5f1273074441e48193e650d07770f48a464fcbda4b7ebdac4f +size 501020 diff --git a/samples/common-voice/after/ml_recon44k_d20.wav b/samples/common-voice/after/ml_recon44k_d20.wav new file mode 100644 index 0000000000000000000000000000000000000000..dcaf682772e663e3080fe01081cd22b9cbf05839 --- /dev/null +++ b/samples/common-voice/after/ml_recon44k_d20.wav @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5c2036f5cc89e155a4f0eda697607b241d6a9223e151c62c80ac4e8b86cdbfa6 +size 329912 diff --git a/samples/common-voice/after/mn_recon44k_d20.wav b/samples/common-voice/after/mn_recon44k_d20.wav new file mode 100644 index 0000000000000000000000000000000000000000..8e034d15bb09c203333d5d649758a7a1a1b058fc --- /dev/null +++ b/samples/common-voice/after/mn_recon44k_d20.wav @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:adb990db60392650eed171fc77badd2b262f79be4dd03f7365f1b865eb549268 +size 656252 diff --git a/samples/common-voice/after/mr_recon44k_d20.wav b/samples/common-voice/after/mr_recon44k_d20.wav new file mode 100644 index 0000000000000000000000000000000000000000..8756f64b68853bc58993d2cf1335547fd67a6899 --- /dev/null +++ b/samples/common-voice/after/mr_recon44k_d20.wav @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:adb857095859aa1f641faaf26e021f1ca9a765f1199e0b087300d09b29660959 +size 513368 diff --git a/samples/common-voice/after/mrj_recon44k_d20.wav b/samples/common-voice/after/mrj_recon44k_d20.wav new file mode 100644 index 0000000000000000000000000000000000000000..c0b0415d5f9bd4139bc3cb729ea00c13bf0e3067 --- /dev/null +++ b/samples/common-voice/after/mrj_recon44k_d20.wav @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:881b261d3434ce26d85380915a83cdd3d3a3f40364de21660e5fb269fc254f8b +size 351080 diff --git a/samples/common-voice/after/mt_recon44k_d20.wav b/samples/common-voice/after/mt_recon44k_d20.wav new file mode 100644 index 0000000000000000000000000000000000000000..4cde803815873690791fe5826fd9546cc7f8319e --- /dev/null +++ b/samples/common-voice/after/mt_recon44k_d20.wav @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:200e131a635676456af5e7487cdae6270615581c5b81c9bbebe9717edc0763d1 +size 319328 diff --git a/samples/common-voice/after/myv_recon44k_d20.wav b/samples/common-voice/after/myv_recon44k_d20.wav new file mode 100644 index 0000000000000000000000000000000000000000..1d7bd811c44bf42f0bf47e8899f3063f156c7ee6 --- /dev/null +++ b/samples/common-voice/after/myv_recon44k_d20.wav @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:bd5e5a976008cd642fa0846e1217793462de43d01ab9fca3724e1775eca7fbf6 +size 478088 diff --git a/samples/common-voice/after/nan-tw_recon44k_d20.wav b/samples/common-voice/after/nan-tw_recon44k_d20.wav new file mode 100644 index 0000000000000000000000000000000000000000..411f85d27462f0aea8203ae7ccd9723041c86dca --- /dev/null +++ b/samples/common-voice/after/nan-tw_recon44k_d20.wav @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2d23c0cb4f23346d87540501df26da48a4a6782460b4bc09d0b4515fe5511d76 +size 259352 diff --git a/samples/common-voice/after/nb-NO_recon44k_d20.wav b/samples/common-voice/after/nb-NO_recon44k_d20.wav new file mode 100644 index 0000000000000000000000000000000000000000..58277d9d96e9acbcc6bbb2728627a67909e35a5f --- /dev/null +++ b/samples/common-voice/after/nb-NO_recon44k_d20.wav @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d0a9e3e909e036a9d54374c3607ba0fe84bcbe50031f04e7b597fe205b7d8bcb +size 476324 diff --git a/samples/common-voice/after/ne-NP_recon44k_d20.wav b/samples/common-voice/after/ne-NP_recon44k_d20.wav new file mode 100644 index 0000000000000000000000000000000000000000..b6c3f5c34aa370dfc4a2685c021266c3b01bb41c --- /dev/null +++ b/samples/common-voice/after/ne-NP_recon44k_d20.wav @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b9d645bf930dfbff7d22564f74f9b9edc253b944f6d00f773111fcd901de2d63 +size 393416 diff --git a/samples/common-voice/after/nhi_recon44k_d20.wav b/samples/common-voice/after/nhi_recon44k_d20.wav new file mode 100644 index 0000000000000000000000000000000000000000..9f0b89f5d3aded069c629b4bb7706cc1e42e2e87 --- /dev/null +++ b/samples/common-voice/after/nhi_recon44k_d20.wav @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:cb3dab57fe7bf64699ec9dacbca26babe75b7ad41c8d20447721de6cb440b5ee +size 412820 diff --git a/samples/common-voice/after/nl_recon44k_d20.wav b/samples/common-voice/after/nl_recon44k_d20.wav new file mode 100644 index 0000000000000000000000000000000000000000..20585cd44321e510b21f72d5bb80b9f83daff68f --- /dev/null +++ b/samples/common-voice/after/nl_recon44k_d20.wav @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b3757721f81cbddceffa1b4f244f6e1acea185f026db5496c972ddbecc50c10d +size 423404 diff --git a/samples/common-voice/after/nn-NO_recon44k_d20.wav b/samples/common-voice/after/nn-NO_recon44k_d20.wav new file mode 100644 index 0000000000000000000000000000000000000000..365c6ee823a75e36f1e935f74a2a9c13068f8c06 --- /dev/null +++ b/samples/common-voice/after/nn-NO_recon44k_d20.wav @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e2a6190ced2a7c4c87c8eed05add52271032edaf3a0308ab02cb1f1bf11a9c94 +size 317564 diff --git a/samples/common-voice/after/nr_recon44k_d20.wav b/samples/common-voice/after/nr_recon44k_d20.wav new file mode 100644 index 0000000000000000000000000000000000000000..b956029e52eee8a68e661d610e08063e80fa3162 --- /dev/null +++ b/samples/common-voice/after/nr_recon44k_d20.wav @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:339ee9af098e7a5e6cf48fcbcb6c74b309fc8a9b942ef57024b1c4377d4129de +size 532772 diff --git a/samples/common-voice/after/nso_recon44k_d20.wav b/samples/common-voice/after/nso_recon44k_d20.wav new file mode 100644 index 0000000000000000000000000000000000000000..4fda48eb67dc50ae8ee1747e1b22cd408da50c9a --- /dev/null +++ b/samples/common-voice/after/nso_recon44k_d20.wav @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b4be97e292f9820a3ff8e7b4460ea533bcdca7b38ec117227b44e3a173c46caa +size 349316 diff --git a/samples/common-voice/after/oc_recon44k_d20.wav b/samples/common-voice/after/oc_recon44k_d20.wav new file mode 100644 index 0000000000000000000000000000000000000000..8cf53888cb570a82f4ce6e9f7284df526f4ede93 --- /dev/null +++ b/samples/common-voice/after/oc_recon44k_d20.wav @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:cce03610929af7da43d8056255df30c924fee198fa00249d19e4fdbce9542bbc +size 333440 diff --git a/samples/common-voice/after/or_recon44k_d20.wav b/samples/common-voice/after/or_recon44k_d20.wav new file mode 100644 index 0000000000000000000000000000000000000000..48970049692225400c492f111739a6b0500906df --- /dev/null +++ b/samples/common-voice/after/or_recon44k_d20.wav @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c3a2a0227dcb60a220f040ee862707471abebc22e52b285ca124502a3b699399 +size 435752 diff --git a/samples/common-voice/after/os_recon44k_d20.wav b/samples/common-voice/after/os_recon44k_d20.wav new file mode 100644 index 0000000000000000000000000000000000000000..ef37c619fdad11908b013714b05f3873e6a4eb67 --- /dev/null +++ b/samples/common-voice/after/os_recon44k_d20.wav @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:be617100a4094647bb0db87c1dece80edc12a5ddb70b0d1d444d7625696db4fa +size 659780 diff --git a/samples/common-voice/after/pa-IN_recon44k_d20.wav b/samples/common-voice/after/pa-IN_recon44k_d20.wav new file mode 100644 index 0000000000000000000000000000000000000000..bca2307e6df33dbd5b0b20cb0481f33413466711 --- /dev/null +++ b/samples/common-voice/after/pa-IN_recon44k_d20.wav @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e210f1add49ebb9d96c3b54bbfdc79b216c05d3c7cc303367771a22f33e7ba6d +size 455156 diff --git a/samples/common-voice/after/pl_recon44k_d20.wav b/samples/common-voice/after/pl_recon44k_d20.wav new file mode 100644 index 0000000000000000000000000000000000000000..c9af31d837628fba85317a515afa9a92f01410b2 --- /dev/null +++ b/samples/common-voice/after/pl_recon44k_d20.wav @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0d1b044def1e5a3859cd2c5f3244474441e593f8a38b49623c4c2404ca53fe2c +size 610388 diff --git a/samples/common-voice/after/ps_recon44k_d20.wav b/samples/common-voice/after/ps_recon44k_d20.wav new file mode 100644 index 0000000000000000000000000000000000000000..9f132a152960008d1691fbcfcf63e97e7e955f4a --- /dev/null +++ b/samples/common-voice/after/ps_recon44k_d20.wav @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2d00a373e95e04e6b4531334f4a8bfd9648c7d4465d2d0ee89c362e1d607d386 +size 548648 diff --git a/samples/common-voice/after/pt_recon44k_d20.wav b/samples/common-voice/after/pt_recon44k_d20.wav new file mode 100644 index 0000000000000000000000000000000000000000..130179ff89beb203b16a8494be2b3c27fb1f8be2 --- /dev/null +++ b/samples/common-voice/after/pt_recon44k_d20.wav @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:12d760487bea5967bcc7e42d7385ab3d494d3840364975e9f2cd2ffcc0cbf413 +size 361664 diff --git a/samples/common-voice/after/quy_recon44k_d20.wav b/samples/common-voice/after/quy_recon44k_d20.wav new file mode 100644 index 0000000000000000000000000000000000000000..43e9082d5a293319d51654b3670bf76bdddfff31 --- /dev/null +++ b/samples/common-voice/after/quy_recon44k_d20.wav @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:84c3e9c3fac93ed93abfc3df96ce4bea739bbc6705738ebd9309e05be2d27844 +size 381068 diff --git a/samples/common-voice/after/rm-sursilv_recon44k_d20.wav b/samples/common-voice/after/rm-sursilv_recon44k_d20.wav new file mode 100644 index 0000000000000000000000000000000000000000..9280f5350152491284d9ae1c85c547d868471e14 --- /dev/null +++ b/samples/common-voice/after/rm-sursilv_recon44k_d20.wav @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a75533f12a8814dcf6386f15f374b09ff52f8a91afd61f5c1aa60f68fd15cb95 +size 441044 diff --git a/samples/common-voice/after/rm-vallader_recon44k_d20.wav b/samples/common-voice/after/rm-vallader_recon44k_d20.wav new file mode 100644 index 0000000000000000000000000000000000000000..7ba2ab54289dfd309049ec554109d7e518f1270c --- /dev/null +++ b/samples/common-voice/after/rm-vallader_recon44k_d20.wav @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:495a49ca74fbc20fa95b3354b50bf7baff01839a2d773e334652d79c10b536b7 +size 564524 diff --git a/samples/common-voice/after/ro_recon44k_d20.wav b/samples/common-voice/after/ro_recon44k_d20.wav new file mode 100644 index 0000000000000000000000000000000000000000..350ef0d674f6bdb887d2a51b6ad6026701a972d4 --- /dev/null +++ b/samples/common-voice/after/ro_recon44k_d20.wav @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:004b130d5129d6a88d5062ae25cb4ccedecb2432177fe555dc8dd5d978a938c8 +size 303452 diff --git a/samples/common-voice/after/ru_recon44k_d20.wav b/samples/common-voice/after/ru_recon44k_d20.wav new file mode 100644 index 0000000000000000000000000000000000000000..5215641ac2a65ce70bc5ad3d19c4b58cb2a50f31 --- /dev/null +++ b/samples/common-voice/after/ru_recon44k_d20.wav @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9dbe5dbf5aecff6f28ca5a8a974b63bbcabec2da6ecaafaa81f5aeaf718c83e0 +size 255824 diff --git a/samples/common-voice/after/rup_recon44k_d20.wav b/samples/common-voice/after/rup_recon44k_d20.wav new file mode 100644 index 0000000000000000000000000000000000000000..c372a8f92ff9e070cf4966aa4f1d653bb98c280b --- /dev/null +++ b/samples/common-voice/after/rup_recon44k_d20.wav @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d5258201cd3e5c173a90a9ff75cc3ac2cf581feb765c970a969099b05929d24c +size 1031984 diff --git a/samples/common-voice/after/rw_recon44k_d20.wav b/samples/common-voice/after/rw_recon44k_d20.wav new file mode 100644 index 0000000000000000000000000000000000000000..9c32c3294e72958a06a1d3345af1bb9dfab888fb --- /dev/null +++ b/samples/common-voice/after/rw_recon44k_d20.wav @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8ba79f5124667c2211274c3282d55251fd2e33766280ac4abd9dfb12a0a65cff +size 695060 diff --git a/samples/common-voice/after/sah_recon44k_d20.wav b/samples/common-voice/after/sah_recon44k_d20.wav new file mode 100644 index 0000000000000000000000000000000000000000..134c03b4767c3f88548d0a99f4947cc65915e032 --- /dev/null +++ b/samples/common-voice/after/sah_recon44k_d20.wav @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e2fa1d351cf1f9463bfe7612cce9cd28cb83ee146c381d587620bdd267a12a05 +size 785024 diff --git a/samples/common-voice/after/sat_recon44k_d20.wav b/samples/common-voice/after/sat_recon44k_d20.wav new file mode 100644 index 0000000000000000000000000000000000000000..83f2b9499128e5c58f135d1634b25298c986be9d --- /dev/null +++ b/samples/common-voice/after/sat_recon44k_d20.wav @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:cfd45899fe93eebb7a17d217de2a26bf7b4bdaafa8d2b523ce65cf6cfead2838 +size 374012 diff --git a/samples/common-voice/after/sc_recon44k_d20.wav b/samples/common-voice/after/sc_recon44k_d20.wav new file mode 100644 index 0000000000000000000000000000000000000000..5303460b6ad3e11aa7a530edd615cef1a0b3b342 --- /dev/null +++ b/samples/common-voice/after/sc_recon44k_d20.wav @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d695febdeb009f768367e9ef2935db2279b69bc76a15b098446e94663a8a188d +size 374012 diff --git a/samples/common-voice/after/sd_recon44k_d20.wav b/samples/common-voice/after/sd_recon44k_d20.wav new file mode 100644 index 0000000000000000000000000000000000000000..8a17c08faa9d2d88da6f2f16cf9862be773fe54a --- /dev/null +++ b/samples/common-voice/after/sd_recon44k_d20.wav @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e0fb1114355656abe506b738846e22dd6af9f85b20fde3b3fec24acc3ce72be8 +size 843236 diff --git a/samples/common-voice/after/sk_recon44k_d20.wav b/samples/common-voice/after/sk_recon44k_d20.wav new file mode 100644 index 0000000000000000000000000000000000000000..a505fbd0dc39e30a2dfab5ab30b0031e4f338afd --- /dev/null +++ b/samples/common-voice/after/sk_recon44k_d20.wav @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1c35d464fd751c4497d8336f16ca2849d9b5fc797519290b0f1d297765ee11f6 +size 501020 diff --git a/samples/common-voice/after/skr_recon44k_d20.wav b/samples/common-voice/after/skr_recon44k_d20.wav new file mode 100644 index 0000000000000000000000000000000000000000..038556fd0ff91841698ebe145bce2e32ce682aa4 --- /dev/null +++ b/samples/common-voice/after/skr_recon44k_d20.wav @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0da0408d9456bab95a1cff5863ea0dc74a70bae627a2a1e90c19312cd825f035 +size 682712 diff --git a/samples/common-voice/after/sl_recon44k_d20.wav b/samples/common-voice/after/sl_recon44k_d20.wav new file mode 100644 index 0000000000000000000000000000000000000000..c02e23d0b138188ebf597c9b4129abfbd6e3fc1f --- /dev/null +++ b/samples/common-voice/after/sl_recon44k_d20.wav @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4f6bbb7d1e5270b7377f055344c6d446ccb6a1a23b93009f85abae969b7b5998 +size 456920 diff --git a/samples/common-voice/after/sq_recon44k_d20.wav b/samples/common-voice/after/sq_recon44k_d20.wav new file mode 100644 index 0000000000000000000000000000000000000000..eaa5213f2b4e097d3c530d782ff4780c701cf819 --- /dev/null +++ b/samples/common-voice/after/sq_recon44k_d20.wav @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9d6690e77729211b72e0f84d332fe78eefc552ed40f12661dbab6566f2298439 +size 247004 diff --git a/samples/common-voice/after/sr_recon44k_d20.wav b/samples/common-voice/after/sr_recon44k_d20.wav new file mode 100644 index 0000000000000000000000000000000000000000..dc7ea39ebbd42941c36b7a1329f846dd804878c2 --- /dev/null +++ b/samples/common-voice/after/sr_recon44k_d20.wav @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5945bc55a437a95f3ac2c55f30e59590480fdb4844fafe58d245036c7a645e1a +size 333440 diff --git a/samples/common-voice/after/st_recon44k_d20.wav b/samples/common-voice/after/st_recon44k_d20.wav new file mode 100644 index 0000000000000000000000000000000000000000..e7dc8057b48949c309751dd8b53cbaa44f469d1e --- /dev/null +++ b/samples/common-voice/after/st_recon44k_d20.wav @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f0954ac3192e3ec3c354a409d85023896e2f4a2b5281d3e4cb0ce72ade76e52c +size 155276 diff --git a/samples/common-voice/after/sv-SE_recon44k_d20.wav b/samples/common-voice/after/sv-SE_recon44k_d20.wav new file mode 100644 index 0000000000000000000000000000000000000000..5d97fcc84fbaada42c4638ce1d7394d7118ddb6b --- /dev/null +++ b/samples/common-voice/after/sv-SE_recon44k_d20.wav @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:15ea8a9cae7c43ba3506d339a384d249be0e1677201573ad202f98184f7ca6bb +size 451628 diff --git a/samples/common-voice/after/sw_recon44k_d20.wav b/samples/common-voice/after/sw_recon44k_d20.wav new file mode 100644 index 0000000000000000000000000000000000000000..99cf4f8a698259e3b5d4805ef5f6a20dddef085f --- /dev/null +++ b/samples/common-voice/after/sw_recon44k_d20.wav @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:aee9ad91b1df55a48d6e24017c6e587e662d2af3a527cdb1fae3795aa2645887 +size 707408 diff --git a/samples/common-voice/after/ta_recon44k_d20.wav b/samples/common-voice/after/ta_recon44k_d20.wav new file mode 100644 index 0000000000000000000000000000000000000000..80b488aa90bcf12b203800ae9f34fd37ed4edaf2 --- /dev/null +++ b/samples/common-voice/after/ta_recon44k_d20.wav @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:afeac125d1ab168871805d9d69449c785160579ca3ff4d3fd6ce447d372e6596 +size 753272 diff --git a/samples/common-voice/after/te_recon44k_d20.wav b/samples/common-voice/after/te_recon44k_d20.wav new file mode 100644 index 0000000000000000000000000000000000000000..5c2f5e9f909a2cca436ddf54b192524b319360f8 --- /dev/null +++ b/samples/common-voice/after/te_recon44k_d20.wav @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:adbbc00fa04e8b5c0f43328543139168da95bc9be2502b0e2bdad58f28a47af3 +size 389888 diff --git a/samples/common-voice/after/tg_recon44k_d20.wav b/samples/common-voice/after/tg_recon44k_d20.wav new file mode 100644 index 0000000000000000000000000000000000000000..58d720bd1d134cfcae69f7dfe47ddf4d8033eaf3 --- /dev/null +++ b/samples/common-voice/after/tg_recon44k_d20.wav @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e1f34a8fb6829a8e2442547e8556a7abd6d54e0fe3c9ebf4a9e2ac2c22b76dfc +size 580400 diff --git a/samples/common-voice/after/th_recon44k_d20.wav b/samples/common-voice/after/th_recon44k_d20.wav new file mode 100644 index 0000000000000000000000000000000000000000..3460029cfe6ad16f8a1c876a346b49e3c88e5290 --- /dev/null +++ b/samples/common-voice/after/th_recon44k_d20.wav @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9cd5fc9b9dffbe8cf6371cfdcf26eeedf6ee457e72da70ca766ed072ed92526d +size 583928 diff --git a/samples/common-voice/after/ti_recon44k_d20.wav b/samples/common-voice/after/ti_recon44k_d20.wav new file mode 100644 index 0000000000000000000000000000000000000000..2cd4bfc014d0b49b2d9df317a9494f194b8dc507 --- /dev/null +++ b/samples/common-voice/after/ti_recon44k_d20.wav @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:07819c51bdaf44ebbf574f9f52bdd0b985acc85f7fd11e1d5542d13f414b504e +size 802664 diff --git a/samples/common-voice/after/tig_recon44k_d20.wav b/samples/common-voice/after/tig_recon44k_d20.wav new file mode 100644 index 0000000000000000000000000000000000000000..b6f5f3c00250173f7f5f7bf615caa420e964438c --- /dev/null +++ b/samples/common-voice/after/tig_recon44k_d20.wav @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1bd692853006e83120452cce4190a9c6a4643e9df4fa17915857c2331fa38c4f +size 271700 diff --git a/samples/common-voice/after/tk_recon44k_d20.wav b/samples/common-voice/after/tk_recon44k_d20.wav new file mode 100644 index 0000000000000000000000000000000000000000..77b3cd3882af93ae3c28d97b10937ff528d16cae --- /dev/null +++ b/samples/common-voice/after/tk_recon44k_d20.wav @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:109a3e3d90dcd9d250a199b08da084c0909a9c7b949f00a74ea563efb71fc2f7 +size 668600 diff --git a/samples/common-voice/after/tn_recon44k_d20.wav b/samples/common-voice/after/tn_recon44k_d20.wav new file mode 100644 index 0000000000000000000000000000000000000000..7aba0d940196b9a4f02fa2ceba4db624bc4808a4 --- /dev/null +++ b/samples/common-voice/after/tn_recon44k_d20.wav @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ef507f8698ced0ebfe5c756a4bae181518d48a8286f196301f9ee9d503a57438 +size 428696 diff --git a/samples/common-voice/after/tok_recon44k_d20.wav b/samples/common-voice/after/tok_recon44k_d20.wav new file mode 100644 index 0000000000000000000000000000000000000000..5e8ecc3f0cdb872699bade60c616dd1085a77445 --- /dev/null +++ b/samples/common-voice/after/tok_recon44k_d20.wav @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f49b09f6e2ca930e85e576f081b4ef49c88237aa57ba89f1bf87719e4ec06f3d +size 446336 diff --git a/samples/common-voice/after/tr_recon44k_d20.wav b/samples/common-voice/after/tr_recon44k_d20.wav new file mode 100644 index 0000000000000000000000000000000000000000..3ab20c0b2e4cd0b748a36ac220871c23545fbcc5 --- /dev/null +++ b/samples/common-voice/after/tr_recon44k_d20.wav @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7a340205bfbfcbb85b135f8c6b1242d71577e7756686f6bad81885f756bbdfaf +size 426932 diff --git a/samples/common-voice/after/ts_recon44k_d20.wav b/samples/common-voice/after/ts_recon44k_d20.wav new file mode 100644 index 0000000000000000000000000000000000000000..fa2dadbe5947e4d6540d5eaf15a8f621bb53ef13 --- /dev/null +++ b/samples/common-voice/after/ts_recon44k_d20.wav @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9dc6d333ed8a473668b8a7e09ae84d704795b3f727ae87c94b3bf0ace725b272 +size 786788 diff --git a/samples/common-voice/after/tt_recon44k_d20.wav b/samples/common-voice/after/tt_recon44k_d20.wav new file mode 100644 index 0000000000000000000000000000000000000000..24089ef3a295f5132d94bc6d74df74e5a2b2dbac --- /dev/null +++ b/samples/common-voice/after/tt_recon44k_d20.wav @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c38c8def84e3ddfe50c7ee286fcd75173bd2f8aa7a86a061da6b1f0178a762c9 +size 402236 diff --git a/samples/common-voice/after/tw_recon44k_d20.wav b/samples/common-voice/after/tw_recon44k_d20.wav new file mode 100644 index 0000000000000000000000000000000000000000..4faa65762fcd07bc8d340cc6a358046d3b9738cb --- /dev/null +++ b/samples/common-voice/after/tw_recon44k_d20.wav @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a3eb7320cf0917363be1229243efd06371fa24c2f710f408b06fa8571f3ada30 +size 492200 diff --git a/samples/common-voice/after/ug_recon44k_d20.wav b/samples/common-voice/after/ug_recon44k_d20.wav new file mode 100644 index 0000000000000000000000000000000000000000..2b1040a5a7792408407b6a4a8fe0262e629903a9 --- /dev/null +++ b/samples/common-voice/after/ug_recon44k_d20.wav @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:bb8065bee115c528131b574e0c8ee6dffe4272df1c9ae834c047fac16d7206c8 +size 652724 diff --git a/samples/common-voice/after/uk_recon44k_d20.wav b/samples/common-voice/after/uk_recon44k_d20.wav new file mode 100644 index 0000000000000000000000000000000000000000..30d71cb5bcf2b4921969bc8ab20a2902bd53369e --- /dev/null +++ b/samples/common-voice/after/uk_recon44k_d20.wav @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d68dfb8e11cafdec1f8b536348d1196f4b4194955c74d164364a6353320fe51c +size 705644 diff --git a/samples/common-voice/after/ur_recon44k_d20.wav b/samples/common-voice/after/ur_recon44k_d20.wav new file mode 100644 index 0000000000000000000000000000000000000000..0a52a5412a59bf59819e607925d0c1eb846b712b --- /dev/null +++ b/samples/common-voice/after/ur_recon44k_d20.wav @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9917d98dac39fbf6fd45ad25e5c58cb477b7b8f71ecbd06d2fe4fd40e2225427 +size 317564 diff --git a/samples/common-voice/after/uz_recon44k_d20.wav b/samples/common-voice/after/uz_recon44k_d20.wav new file mode 100644 index 0000000000000000000000000000000000000000..6614c2055b2104cb5ef9e6bf3c6d3c14221cb96c --- /dev/null +++ b/samples/common-voice/after/uz_recon44k_d20.wav @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:99ee7fcd00264ce3540b5c1a7cf516f528a3b9f1415a36b5aba8620359c8e582 +size 421640 diff --git a/samples/common-voice/after/ve_recon44k_d20.wav b/samples/common-voice/after/ve_recon44k_d20.wav new file mode 100644 index 0000000000000000000000000000000000000000..c563d10dcd5a279c7c1347b3c63c1807150340e6 --- /dev/null +++ b/samples/common-voice/after/ve_recon44k_d20.wav @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:220a55dc95409875ea971e0b0401044028e6e00fdf5f89229bfa5a0d15c40b61 +size 571580 diff --git a/samples/common-voice/after/vi_recon44k_d20.wav b/samples/common-voice/after/vi_recon44k_d20.wav new file mode 100644 index 0000000000000000000000000000000000000000..f1e9cc6f552cbb4965125e0c768a5dd70d5aff52 --- /dev/null +++ b/samples/common-voice/after/vi_recon44k_d20.wav @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:61a67e8a6cc123986cef6481c1a2693c0b0c56edf6a806567844ab0795148b08 +size 695060 diff --git a/samples/common-voice/after/vot_recon44k_d20.wav b/samples/common-voice/after/vot_recon44k_d20.wav new file mode 100644 index 0000000000000000000000000000000000000000..60076370570a57210a2aee41c73db4c3296d81d3 --- /dev/null +++ b/samples/common-voice/after/vot_recon44k_d20.wav @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e8d571f4f556071a4a6f20cae3f64349159b9d47ad6fea2a03c2543e333a379a +size 381068 diff --git a/samples/common-voice/after/xh_recon44k_d20.wav b/samples/common-voice/after/xh_recon44k_d20.wav new file mode 100644 index 0000000000000000000000000000000000000000..05ac2244d0bb30354a91ecc849847523223da19e --- /dev/null +++ b/samples/common-voice/after/xh_recon44k_d20.wav @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:512d429f9bb213f5a4d7b2ec84b6941d244fda9a89a4828e0e04795f6a662259 +size 643904 diff --git a/samples/common-voice/after/yi_recon44k_d20.wav b/samples/common-voice/after/yi_recon44k_d20.wav new file mode 100644 index 0000000000000000000000000000000000000000..20a1a5570896b750cd2d7124764bd18d88b41089 --- /dev/null +++ b/samples/common-voice/after/yi_recon44k_d20.wav @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8e41c18ec251961034dd9327b3aee4a8b4505896ddaebb53897eed7d70fe5027 +size 446336 diff --git a/samples/common-voice/after/yo_recon44k_d20.wav b/samples/common-voice/after/yo_recon44k_d20.wav new file mode 100644 index 0000000000000000000000000000000000000000..77a532eda9b8cc5554550e1940b23008a2dbdb2d --- /dev/null +++ b/samples/common-voice/after/yo_recon44k_d20.wav @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:947ce14cc710fe70af5bd39f0ca713c9b1e139a5d719f2749a239a897a9c1834 +size 446336 diff --git a/samples/common-voice/after/yue_recon44k_d20.wav b/samples/common-voice/after/yue_recon44k_d20.wav new file mode 100644 index 0000000000000000000000000000000000000000..4c16e6cda7391c237613af0296418ad0234d918b --- /dev/null +++ b/samples/common-voice/after/yue_recon44k_d20.wav @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:eb2a29c4635a7bfe7e9e166fd4cc40a5b4d26788a87003012eb36a113c6c033c +size 405764 diff --git a/samples/common-voice/after/zgh_recon44k_d20.wav b/samples/common-voice/after/zgh_recon44k_d20.wav new file mode 100644 index 0000000000000000000000000000000000000000..2efe51bcf18fb9e141e4953df287302f4b4d516f --- /dev/null +++ b/samples/common-voice/after/zgh_recon44k_d20.wav @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:dcbc153670dd68692952d9da8a27e0cd055d7e30ada7e4af876366a7c64c6618 +size 412820 diff --git a/samples/common-voice/after/zh-CN_recon44k_d20.wav b/samples/common-voice/after/zh-CN_recon44k_d20.wav new file mode 100644 index 0000000000000000000000000000000000000000..bba990495830d26717eff8a66d62bad488138205 --- /dev/null +++ b/samples/common-voice/after/zh-CN_recon44k_d20.wav @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d0aa42721dd6ac50b0622391a4c7abff9e4df6b2f7412a69355cb3156c2db62d +size 285812 diff --git a/samples/common-voice/after/zh-HK_recon44k_d20.wav b/samples/common-voice/after/zh-HK_recon44k_d20.wav new file mode 100644 index 0000000000000000000000000000000000000000..2c009619727323ab8c580cc6408632c8eaabe42e --- /dev/null +++ b/samples/common-voice/after/zh-HK_recon44k_d20.wav @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1e65529d97faa94af494dec57138d6fa7ae2412aa3310fce7e70b79905836ea7 +size 289340 diff --git a/samples/common-voice/after/zh-TW_recon44k_d20.wav b/samples/common-voice/after/zh-TW_recon44k_d20.wav new file mode 100644 index 0000000000000000000000000000000000000000..ec4202d9ac8e35ccfc6e62fba071dc115a9c2ed1 --- /dev/null +++ b/samples/common-voice/after/zh-TW_recon44k_d20.wav @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a12ebd281debb79045aa5117829ac33fad4704998ef621b095840b6eaf582f5a +size 333440 diff --git a/samples/common-voice/after/zu_recon44k_d20.wav b/samples/common-voice/after/zu_recon44k_d20.wav new file mode 100644 index 0000000000000000000000000000000000000000..6404880059490b42d5780fe6e8d9150809c1baf6 --- /dev/null +++ b/samples/common-voice/after/zu_recon44k_d20.wav @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f10b8add7a610743884082396b6a50243cc5d43da666123c7d8fee266436393f +size 587456 diff --git a/samples/common-voice/after/zza_recon44k_d20.wav b/samples/common-voice/after/zza_recon44k_d20.wav new file mode 100644 index 0000000000000000000000000000000000000000..d4154513730c6a25aa17135bab3516b23e3d3384 --- /dev/null +++ b/samples/common-voice/after/zza_recon44k_d20.wav @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:43315ddd2ba3f508a0146da7c30b51c8a8e647b9b48e2f82cb396fb9d2f50f7b +size 460448 diff --git a/samples/common-voice/before/ab.flac b/samples/common-voice/before/ab.flac new file mode 100644 index 0000000000000000000000000000000000000000..e0d4c828fc869bb7f34301ec78bc459d02247354 --- /dev/null +++ b/samples/common-voice/before/ab.flac @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4a19b4cc178221e42cdbef0ab36ae600a19a7833ca8daaee532e28f13b0a2d75 +size 229017 diff --git a/samples/common-voice/before/af.flac b/samples/common-voice/before/af.flac new file mode 100644 index 0000000000000000000000000000000000000000..7aa82b3078177302acbb7a4de258dfd1af58b5da --- /dev/null +++ b/samples/common-voice/before/af.flac @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c2b2a45a219b5df921674ca4c6f286478606c7503564c644764ddad573d25631 +size 339546 diff --git a/samples/common-voice/before/am.flac b/samples/common-voice/before/am.flac new file mode 100644 index 0000000000000000000000000000000000000000..90ceef1f1216fe89f2a9bd00432efe8f0f62396d --- /dev/null +++ b/samples/common-voice/before/am.flac @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d3a4d184f582ee1db731aee0669af7823ed2746bef157c609556308f063bfdaa +size 238446 diff --git a/samples/common-voice/before/ar.flac b/samples/common-voice/before/ar.flac new file mode 100644 index 0000000000000000000000000000000000000000..e3bb7186f019c2a0459f334670885cad2b28b466 --- /dev/null +++ b/samples/common-voice/before/ar.flac @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5a216712771ed9f24fb8196f0a2df98b2e6e2deb100f85c63999313a78630066 +size 100881 diff --git a/samples/common-voice/before/as.flac b/samples/common-voice/before/as.flac new file mode 100644 index 0000000000000000000000000000000000000000..498235314cf87c7dcaba8394f6e6a68ddc02525d --- /dev/null +++ b/samples/common-voice/before/as.flac @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9ff3545f59d0dfe71065b2006bf967842fe0b0cd66ea3531a7dfa3f0f557e103 +size 174572 diff --git a/samples/common-voice/before/ast.flac b/samples/common-voice/before/ast.flac new file mode 100644 index 0000000000000000000000000000000000000000..332d2e7a793d349ab474de07a57096a02081d720 --- /dev/null +++ b/samples/common-voice/before/ast.flac @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f0210cdfb3c1df7b0e8baf889468d0d4ce0984ffe07d799247cc8af49f205ca1 +size 131952 diff --git a/samples/common-voice/before/az.flac b/samples/common-voice/before/az.flac new file mode 100644 index 0000000000000000000000000000000000000000..c7801895c35358c184091912162ba1928540cd46 --- /dev/null +++ b/samples/common-voice/before/az.flac @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c1c92a82695f1c9d44add4bc3576bc73d7d2f5fc9bc0ee24a5a9587233e2ddde +size 134040 diff --git a/samples/common-voice/before/ba.flac b/samples/common-voice/before/ba.flac new file mode 100644 index 0000000000000000000000000000000000000000..602352159dc7f49dea4840e27898899dfd3c0efe Binary files /dev/null and b/samples/common-voice/before/ba.flac differ diff --git a/samples/common-voice/before/bas.flac b/samples/common-voice/before/bas.flac new file mode 100644 index 0000000000000000000000000000000000000000..06b6fcafde526cb8122f95fbed5d4a626805766c --- /dev/null +++ b/samples/common-voice/before/bas.flac @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e6f9a4f104fc556bd9397f459859c14313c7d2065e1db64b5c0e358fb40b2f8b +size 181234 diff --git a/samples/common-voice/before/be.flac b/samples/common-voice/before/be.flac new file mode 100644 index 0000000000000000000000000000000000000000..8fa63fd23893181f2623b3cd3ccc1427d59516be --- /dev/null +++ b/samples/common-voice/before/be.flac @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:742679baaec845a5e85568e37f5925d5692414c964bb222d9cca8b745ec2ecb6 +size 233883 diff --git a/samples/common-voice/before/bg.flac b/samples/common-voice/before/bg.flac new file mode 100644 index 0000000000000000000000000000000000000000..2015804704e92450b7279831b4686247ceb85e63 --- /dev/null +++ b/samples/common-voice/before/bg.flac @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:047e1aff5c1bf5821a05f71303fdd0c6ee926e40383ec54df62145f0892931b3 +size 150105 diff --git a/samples/common-voice/before/bn.flac b/samples/common-voice/before/bn.flac new file mode 100644 index 0000000000000000000000000000000000000000..cb71ea016075c64d6080cc19dfb69e4624ab4473 --- /dev/null +++ b/samples/common-voice/before/bn.flac @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e1cddd28710f8b6be24305751811d371c9627ca1445ea958111aa82465bc367b +size 303211 diff --git a/samples/common-voice/before/br.flac b/samples/common-voice/before/br.flac new file mode 100644 index 0000000000000000000000000000000000000000..333ef371aa389a634207eb29ee4eebf050b77c6a --- /dev/null +++ b/samples/common-voice/before/br.flac @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:428ddfa9fd89c11b56e89ac0ab6647fc60d5c3d677b50f5af0b4a0c80a2984cf +size 100643 diff --git a/samples/common-voice/before/ca.flac b/samples/common-voice/before/ca.flac new file mode 100644 index 0000000000000000000000000000000000000000..ce400108b21a3a9c942b6d247c97d00282728829 --- /dev/null +++ b/samples/common-voice/before/ca.flac @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7dfcb561d749ace5f974cc7dd20b775fda21d66dbc74cc28439971434c4bd1d7 +size 199433 diff --git a/samples/common-voice/before/ckb.flac b/samples/common-voice/before/ckb.flac new file mode 100644 index 0000000000000000000000000000000000000000..ddb26731ca06c1d55b8143c2d14c6c92de30901a --- /dev/null +++ b/samples/common-voice/before/ckb.flac @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:20336c1390daa49e42d9178d0066b6990fd9b525f1cba9147861f876db12ff18 +size 176464 diff --git a/samples/common-voice/before/cnh.flac b/samples/common-voice/before/cnh.flac new file mode 100644 index 0000000000000000000000000000000000000000..f117be05419cd965224665380dfe9ccf44954eec --- /dev/null +++ b/samples/common-voice/before/cnh.flac @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:eb8126c89f9e593b77db0dadee920e0224c369da533cb2a4dd9a4e1b890bbca3 +size 168860 diff --git a/samples/common-voice/before/cs.flac b/samples/common-voice/before/cs.flac new file mode 100644 index 0000000000000000000000000000000000000000..bc14a7e88397d92b7d1e4864e7472b61d25f3df2 --- /dev/null +++ b/samples/common-voice/before/cs.flac @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0679b5511531cab448e89b827d47688a416a3507c900ff7c9f115c14263cb6df +size 303546 diff --git a/samples/common-voice/before/cv.flac b/samples/common-voice/before/cv.flac new file mode 100644 index 0000000000000000000000000000000000000000..f66fc084257580f11490cbcb5a3c3f84863e44f6 --- /dev/null +++ b/samples/common-voice/before/cv.flac @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f07952d46cb22e97afb5b651089d64e3194879d1ef9beaa38cecd1ebe8b21208 +size 130486 diff --git a/samples/common-voice/before/cy.flac b/samples/common-voice/before/cy.flac new file mode 100644 index 0000000000000000000000000000000000000000..439d45a186dc983ffc036184e81d7943aef94532 --- /dev/null +++ b/samples/common-voice/before/cy.flac @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e6d0e31ae66e67be8be2c3ed5a4a7fd2b4bfe7287d3c5d2cc60c57188db207b3 +size 191407 diff --git a/samples/common-voice/before/da.flac b/samples/common-voice/before/da.flac new file mode 100644 index 0000000000000000000000000000000000000000..778cb8af64c2d5642926c0c86097b1554cfc7708 --- /dev/null +++ b/samples/common-voice/before/da.flac @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:468d4f14d95778dd7804e19a6d0cc8ef57b01496aad70817fd85d00479787929 +size 304918 diff --git a/samples/common-voice/before/dav.flac b/samples/common-voice/before/dav.flac new file mode 100644 index 0000000000000000000000000000000000000000..833c88d0ab4af6de902b98e046c1dd2b869ba4f5 --- /dev/null +++ b/samples/common-voice/before/dav.flac @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ab3a71cea59c0d588fff41f69419c75c9b9fc3f2ea9fb6d2d4bf30c446710ff0 +size 159938 diff --git a/samples/common-voice/before/de.flac b/samples/common-voice/before/de.flac new file mode 100644 index 0000000000000000000000000000000000000000..9dc8ecfc120f5489daa7778d0b655393027b6e71 --- /dev/null +++ b/samples/common-voice/before/de.flac @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:84650095e81ea487d392e79e64c989c7e0c779f42c35f9e6e09620cbb29f34ae +size 113498 diff --git a/samples/common-voice/before/dv.flac b/samples/common-voice/before/dv.flac new file mode 100644 index 0000000000000000000000000000000000000000..162a7306d438bab75ef4d2960f3352c354733e07 --- /dev/null +++ b/samples/common-voice/before/dv.flac @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ab25397d8420e8addf7a0551108dd884e5bb84fb0aa65790e51763e90f10f18c +size 119407 diff --git a/samples/common-voice/before/dyu.flac b/samples/common-voice/before/dyu.flac new file mode 100644 index 0000000000000000000000000000000000000000..043a386656fc9c0170823ff39a9af105bc218173 --- /dev/null +++ b/samples/common-voice/before/dyu.flac @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:bbc281aec4649fb169db125d5be0159b5f498fab817429bddd391bdba640ef8e +size 104310 diff --git a/samples/common-voice/before/el.flac b/samples/common-voice/before/el.flac new file mode 100644 index 0000000000000000000000000000000000000000..66b6127f32c33245bb006c472d1ce948d790314d --- /dev/null +++ b/samples/common-voice/before/el.flac @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:90293f71a2c1dcc580669102141ddeb839d251aaa1e156bd3bef6561be0414df +size 101445 diff --git a/samples/common-voice/before/en.flac b/samples/common-voice/before/en.flac new file mode 100644 index 0000000000000000000000000000000000000000..99de913cfe84a647c480d40768077342b41b69cf --- /dev/null +++ b/samples/common-voice/before/en.flac @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:aee47aa3ddee9a546a4113a253eec6322045c71679d649ac751204b1f18fa235 +size 268781 diff --git a/samples/common-voice/before/eo.flac b/samples/common-voice/before/eo.flac new file mode 100644 index 0000000000000000000000000000000000000000..16af94abab867b50a4c43c448d76c1590b812418 --- /dev/null +++ b/samples/common-voice/before/eo.flac @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:58349d40309126933854c0c8659de1dedec2979ca1ca56f1c2eedbbed7760cb0 +size 147517 diff --git a/samples/common-voice/before/es.flac b/samples/common-voice/before/es.flac new file mode 100644 index 0000000000000000000000000000000000000000..baec1068df64f39e7fc7f131b4f6ee3cef0612dd --- /dev/null +++ b/samples/common-voice/before/es.flac @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:70f518cb1ebcec0195ba81d31dd600edab559300a1f2e36eedf0c37d293dca37 +size 229293 diff --git a/samples/common-voice/before/et.flac b/samples/common-voice/before/et.flac new file mode 100644 index 0000000000000000000000000000000000000000..3a9744a00515688e84c12703a8ec5395bf26b071 --- /dev/null +++ b/samples/common-voice/before/et.flac @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:93637454c64edbcec6c31684d8d5611ff05c2bc596aa7657a98fd4fbc6f43b6e +size 261116 diff --git a/samples/common-voice/before/eu.flac b/samples/common-voice/before/eu.flac new file mode 100644 index 0000000000000000000000000000000000000000..bbacafa35bd010cfb81aeab010e58fba743bedc7 --- /dev/null +++ b/samples/common-voice/before/eu.flac @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:00f98b6fee249e4d20e4ad3f3822cc6dd7c7461665541d214120e38cc6753b9a +size 234218 diff --git a/samples/common-voice/before/fa.flac b/samples/common-voice/before/fa.flac new file mode 100644 index 0000000000000000000000000000000000000000..d86dbba09a3824d14b871cd845f180022cc8ef5b --- /dev/null +++ b/samples/common-voice/before/fa.flac @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d00272408de40f995f54c9850482588a5f6972830b10895d4ae80108467b57ba +size 109798 diff --git a/samples/common-voice/before/fi.flac b/samples/common-voice/before/fi.flac new file mode 100644 index 0000000000000000000000000000000000000000..5150c481904772b4ceb9836b76ba48177df6830d --- /dev/null +++ b/samples/common-voice/before/fi.flac @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9c73a7d2d5d67f8101122ed2c3000648603cfc818b4224a50ec2167676dcd85a +size 129790 diff --git a/samples/common-voice/before/fr.flac b/samples/common-voice/before/fr.flac new file mode 100644 index 0000000000000000000000000000000000000000..9ae09aa86f505faf944ec6577c9918d2fd9f8846 --- /dev/null +++ b/samples/common-voice/before/fr.flac @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:aad1459ca98fc0d7bd64e2d43be6a3d62d99477b2afb191dcd2083a3197318e9 +size 167467 diff --git a/samples/common-voice/before/fy-NL.flac b/samples/common-voice/before/fy-NL.flac new file mode 100644 index 0000000000000000000000000000000000000000..858f00c8e894c491dac866d5c0f1c3d7f62c52d5 --- /dev/null +++ b/samples/common-voice/before/fy-NL.flac @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:80e6477eafa999bb8c57a7659761ac36c7c965bd61272cd195deedc5c86e19f6 +size 202272 diff --git a/samples/common-voice/before/ga-IE.flac b/samples/common-voice/before/ga-IE.flac new file mode 100644 index 0000000000000000000000000000000000000000..c56fc8f92e240d57fa6f5371d9ffe9d316e5ee09 --- /dev/null +++ b/samples/common-voice/before/ga-IE.flac @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e223483b9685bfb7c97e5a700aa3859cba867511c445b535472aab1cff5dfe62 +size 182215 diff --git a/samples/common-voice/before/gl.flac b/samples/common-voice/before/gl.flac new file mode 100644 index 0000000000000000000000000000000000000000..b18c9e6cf8d807880a746d3f36cd6cbcde9c2127 --- /dev/null +++ b/samples/common-voice/before/gl.flac @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a113aab18814b87f9f2c7d2e304c093d3e53a8174150eb857c8a85e8826cb229 +size 264783 diff --git a/samples/common-voice/before/gn.flac b/samples/common-voice/before/gn.flac new file mode 100644 index 0000000000000000000000000000000000000000..e7ab24567a6a2ea83b43dd928ea8377c415b995d --- /dev/null +++ b/samples/common-voice/before/gn.flac @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c54a7337f3df2d7542b7db07a5db8d8f781b40e6862c5659307b750edbcc990e +size 215153 diff --git a/samples/common-voice/before/ha.flac b/samples/common-voice/before/ha.flac new file mode 100644 index 0000000000000000000000000000000000000000..b52c6b9279429caf0fa66e44e8966d90b6dadc7f --- /dev/null +++ b/samples/common-voice/before/ha.flac @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:91dec452f1e3a7ccc58df99c4e71feda573410af444a263fb3d99bc0b132ad3b +size 137585 diff --git a/samples/common-voice/before/he.flac b/samples/common-voice/before/he.flac new file mode 100644 index 0000000000000000000000000000000000000000..66b5271cacaa25c7877d02dc6e05510abd4ea0d2 --- /dev/null +++ b/samples/common-voice/before/he.flac @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b0b7ed765c8524a807b7f7bafd541bb82579ddd50eefd56ee14ef5cf3d86d9ef +size 210462 diff --git a/samples/common-voice/before/hi.flac b/samples/common-voice/before/hi.flac new file mode 100644 index 0000000000000000000000000000000000000000..1d4c4ce4085104f308bf57a71924ffc7ed4e233b --- /dev/null +++ b/samples/common-voice/before/hi.flac @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:92f90bde64aac9f647f23de3f4265eccaec535a2dd22364b9c6117bfd236f382 +size 120490 diff --git a/samples/common-voice/before/hsb.flac b/samples/common-voice/before/hsb.flac new file mode 100644 index 0000000000000000000000000000000000000000..73f6dee98b011313fcfbfd78dd826b31d830c90c --- /dev/null +++ b/samples/common-voice/before/hsb.flac @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:30478e75844d60b9a62a385ee2d070dc3034f79e7e39285ef95d6d572b64efa3 +size 280080 diff --git a/samples/common-voice/before/ht.flac b/samples/common-voice/before/ht.flac new file mode 100644 index 0000000000000000000000000000000000000000..1a75585fd88cce236bb9257fea4781f3806ae4f9 Binary files /dev/null and b/samples/common-voice/before/ht.flac differ diff --git a/samples/common-voice/before/hu.flac b/samples/common-voice/before/hu.flac new file mode 100644 index 0000000000000000000000000000000000000000..9d7d492508a688cb5eb88b772a89168392cd65f4 --- /dev/null +++ b/samples/common-voice/before/hu.flac @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d3d9ced8eee260cf6bff7e8d29694eba9e27df5341eeafed019c5707f0c41e13 +size 279830 diff --git a/samples/common-voice/before/hy-AM.flac b/samples/common-voice/before/hy-AM.flac new file mode 100644 index 0000000000000000000000000000000000000000..f944a7f0c068522e2c3b1e03871993bc92044951 --- /dev/null +++ b/samples/common-voice/before/hy-AM.flac @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:afb659550f65652492117d17ac992ccfaf52e66d96491d84d207f64e530c9c9a +size 231861 diff --git a/samples/common-voice/before/ia.flac b/samples/common-voice/before/ia.flac new file mode 100644 index 0000000000000000000000000000000000000000..1cf8adb78f285bc47677168aa9cfeee90498e6c9 --- /dev/null +++ b/samples/common-voice/before/ia.flac @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:68bb2fb959d6f22c62042d62b940b281a55ead2bc69c9be455a346dff4a050d4 +size 113856 diff --git a/samples/common-voice/before/id.flac b/samples/common-voice/before/id.flac new file mode 100644 index 0000000000000000000000000000000000000000..99e970a5b45bfb35475620e3c70e7d1d68963837 --- /dev/null +++ b/samples/common-voice/before/id.flac @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4849e5a7ceac3542162e9930a1bf9af677a2195825f1d35989c9ba1e1b286b07 +size 154089 diff --git a/samples/common-voice/before/ig.flac b/samples/common-voice/before/ig.flac new file mode 100644 index 0000000000000000000000000000000000000000..364286f99816aac357fe6d70f24492a067bae8ab --- /dev/null +++ b/samples/common-voice/before/ig.flac @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:01e522029a33b7eed1312c07afcf2331f255b9918f708520c3d9f1a1ee672726 +size 275079 diff --git a/samples/common-voice/before/is.flac b/samples/common-voice/before/is.flac new file mode 100644 index 0000000000000000000000000000000000000000..63cf4aac3dc6e7fe5a8fb69be7b89f01d1cb561a --- /dev/null +++ b/samples/common-voice/before/is.flac @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c7e8167af67b65ffdb4f6d53c50fca37a45f74d64333e3ec54ea028064ca0a37 +size 385169 diff --git a/samples/common-voice/before/it.flac b/samples/common-voice/before/it.flac new file mode 100644 index 0000000000000000000000000000000000000000..53294e6feef0c95252962591fded498569b4ab11 --- /dev/null +++ b/samples/common-voice/before/it.flac @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:acb15c54a3098e2af3af66ba1ffa6114d77cd01c63e04a4953c39db2cbd8c880 +size 155406 diff --git a/samples/common-voice/before/ja.flac b/samples/common-voice/before/ja.flac new file mode 100644 index 0000000000000000000000000000000000000000..02cdad78a894d19b5d27318335729a811d9f8aa1 --- /dev/null +++ b/samples/common-voice/before/ja.flac @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2f6400d8af4d9c141ef3e906164664da059f48b8307cc2b2f0ba444908ed5b88 +size 152878 diff --git a/samples/common-voice/before/ka.flac b/samples/common-voice/before/ka.flac new file mode 100644 index 0000000000000000000000000000000000000000..3b3e1a3f5c3fb86b59c7e41acf012f0ba881b6a2 --- /dev/null +++ b/samples/common-voice/before/ka.flac @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c0526414bdb8b19ba5602797b575502c983d3edc3ae62ac33f7091d25dec3cc4 +size 184067 diff --git a/samples/common-voice/before/kab.flac b/samples/common-voice/before/kab.flac new file mode 100644 index 0000000000000000000000000000000000000000..6e601741e1ae267f6a700cd441d33bd00002c336 --- /dev/null +++ b/samples/common-voice/before/kab.flac @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fa80c28ae2cb5cb47755f02f7ce61b5fab283bc2b692d5af889245b39cd91ae5 +size 142933 diff --git a/samples/common-voice/before/kk.flac b/samples/common-voice/before/kk.flac new file mode 100644 index 0000000000000000000000000000000000000000..b5bcba8d3348fdb0d413e2bf456796d995015b9c --- /dev/null +++ b/samples/common-voice/before/kk.flac @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6d7f3e83f4f2da1ff09e5f70e48e0ea34c7440d448e34c51e2e9cecb49a8ff14 +size 150717 diff --git a/samples/common-voice/before/kln.flac b/samples/common-voice/before/kln.flac new file mode 100644 index 0000000000000000000000000000000000000000..6c8e79b60c8b3804500d7e704aef726ac34f3f25 --- /dev/null +++ b/samples/common-voice/before/kln.flac @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:bcc4618d8fedd66ef44cd57178794e92b4fd4dcd8866d3b45c8725a2895b6dbf +size 126351 diff --git a/samples/common-voice/before/kmr.flac b/samples/common-voice/before/kmr.flac new file mode 100644 index 0000000000000000000000000000000000000000..967eac2015bfbc92682278afd13ac26d39a7d9ee --- /dev/null +++ b/samples/common-voice/before/kmr.flac @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4d0a7825a4da424afe48b74e6925a404d9636676c2076893adc45b9a0d597f1a +size 217375 diff --git a/samples/common-voice/before/ko.flac b/samples/common-voice/before/ko.flac new file mode 100644 index 0000000000000000000000000000000000000000..385a7c1f5bacbc9f074b509dff508c210d9e32ea --- /dev/null +++ b/samples/common-voice/before/ko.flac @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:37b52662ac8390ae3de90fde082a42786c1719b64d97b8cecada31d38d4b5f15 +size 274219 diff --git a/samples/common-voice/before/ky.flac b/samples/common-voice/before/ky.flac new file mode 100644 index 0000000000000000000000000000000000000000..bc457961a7980f2b896755be95d32e98fe97723a --- /dev/null +++ b/samples/common-voice/before/ky.flac @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:08f968718094ea10d4d1c7af72a438e81caa416c7820962d4c0e63893e5607ac +size 209450 diff --git a/samples/common-voice/before/lg.flac b/samples/common-voice/before/lg.flac new file mode 100644 index 0000000000000000000000000000000000000000..2a42a77a7e0ee93bbae807080ce5fc152fde1a11 --- /dev/null +++ b/samples/common-voice/before/lg.flac @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:70ea8a64491f161a972e58bbb2a5e2334b52c42e1f457bd9368eb3be90111530 +size 357901 diff --git a/samples/common-voice/before/lij.flac b/samples/common-voice/before/lij.flac new file mode 100644 index 0000000000000000000000000000000000000000..741d3b197d2205e55f6a9af544ae231bf18de2b5 --- /dev/null +++ b/samples/common-voice/before/lij.flac @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:115df45a25e1b5471660a38d1e6df038d781fb7dca7317379b1fb6be371386d0 +size 120002 diff --git a/samples/common-voice/before/lo.flac b/samples/common-voice/before/lo.flac new file mode 100644 index 0000000000000000000000000000000000000000..c3fc63d43557907ba5066254abce9054a992e020 --- /dev/null +++ b/samples/common-voice/before/lo.flac @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:71086f21d1196a5e81d133598c6acf61b4800ec33218a81aacfd3df461bf22a7 +size 206765 diff --git a/samples/common-voice/before/lt.flac b/samples/common-voice/before/lt.flac new file mode 100644 index 0000000000000000000000000000000000000000..bf7ecbab0dfe390a142a0c4bc2ef5f98b5b63d74 --- /dev/null +++ b/samples/common-voice/before/lt.flac @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4195dccf7abfe38fa02bfc0b6c73d4e4eb2fadd6e62c875c070184bc06f2f4ab +size 169337 diff --git a/samples/common-voice/before/ltg.flac b/samples/common-voice/before/ltg.flac new file mode 100644 index 0000000000000000000000000000000000000000..52bff6fe62002e545042e352505f4710882c46c4 --- /dev/null +++ b/samples/common-voice/before/ltg.flac @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:77ce000ff23e1cd86ac9e8c59d3e81d853d2036a78a7b74d63262020cef7dcbc +size 152655 diff --git a/samples/common-voice/before/luo.flac b/samples/common-voice/before/luo.flac new file mode 100644 index 0000000000000000000000000000000000000000..a418b314f19ae5b4b2282638f5dd806fcfc6cc84 --- /dev/null +++ b/samples/common-voice/before/luo.flac @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:18661bcc1e2a4357136fbae9a42a179ec6bc2e582aaf4fdbd776b6f8302f4993 +size 381426 diff --git a/samples/common-voice/before/lv.flac b/samples/common-voice/before/lv.flac new file mode 100644 index 0000000000000000000000000000000000000000..095db84a443cc23696db999a63e60a4828e882b0 --- /dev/null +++ b/samples/common-voice/before/lv.flac @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d9a49eac910124e7e7741f661f9a189a8564e920311e201caa07f55d5206ee35 +size 111795 diff --git a/samples/common-voice/before/mdf.flac b/samples/common-voice/before/mdf.flac new file mode 100644 index 0000000000000000000000000000000000000000..7db5c29a5cbd2ae36f244101bea401c4d564e420 Binary files /dev/null and b/samples/common-voice/before/mdf.flac differ diff --git a/samples/common-voice/before/mhr.flac b/samples/common-voice/before/mhr.flac new file mode 100644 index 0000000000000000000000000000000000000000..493aa92ef3b4da54e72d3079673cf51fa7df27fc --- /dev/null +++ b/samples/common-voice/before/mhr.flac @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ab280d67457bcdb044a0660bd6476795126f57b6d22965820f4719a4b33dc2a9 +size 251434 diff --git a/samples/common-voice/before/mk.flac b/samples/common-voice/before/mk.flac new file mode 100644 index 0000000000000000000000000000000000000000..812139cf951ecf530177a66835fe0a6829cd3a46 --- /dev/null +++ b/samples/common-voice/before/mk.flac @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:be7f9b6a2ce802fec5214a6ff45858614e783100eeec5fad4b1e9d4873fcd2b1 +size 181895 diff --git a/samples/common-voice/before/ml.flac b/samples/common-voice/before/ml.flac new file mode 100644 index 0000000000000000000000000000000000000000..c6742de38c9b5eade19a23ed3c940e7ba5bf1183 Binary files /dev/null and b/samples/common-voice/before/ml.flac differ diff --git a/samples/common-voice/before/mn.flac b/samples/common-voice/before/mn.flac new file mode 100644 index 0000000000000000000000000000000000000000..d4f934baa42a2025251352838d7e48ce1d1e218a --- /dev/null +++ b/samples/common-voice/before/mn.flac @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:57d96cebe1ef1bbcb027edac9c35b1da37e7fb63a604927bc0fb464d8a383e93 +size 322639 diff --git a/samples/common-voice/before/mr.flac b/samples/common-voice/before/mr.flac new file mode 100644 index 0000000000000000000000000000000000000000..d27f4d6adccb61476dddd74fd1b32a640a0d9296 --- /dev/null +++ b/samples/common-voice/before/mr.flac @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b172ea13e4b41617626688f251388ec7a95f69bab3793e6540cae326f0afeb0d +size 163013 diff --git a/samples/common-voice/before/mrj.flac b/samples/common-voice/before/mrj.flac new file mode 100644 index 0000000000000000000000000000000000000000..43a2c9f5381fa9f897594062cd03df27341561b5 --- /dev/null +++ b/samples/common-voice/before/mrj.flac @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9422c6a55eabee43dd61cad32d1d56ab4b90186042ad26c9fbfc410db87ff66f +size 116870 diff --git a/samples/common-voice/before/mt.flac b/samples/common-voice/before/mt.flac new file mode 100644 index 0000000000000000000000000000000000000000..96bfe1e67200c95153f2abe5378d11c2e5657389 --- /dev/null +++ b/samples/common-voice/before/mt.flac @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4fd1a5917062ef84782edeaa290cdb0e01cde76124684898b0375b9ab82fd6c1 +size 140932 diff --git a/samples/common-voice/before/myv.flac b/samples/common-voice/before/myv.flac new file mode 100644 index 0000000000000000000000000000000000000000..aa582de16fb4fad943a3142b8d2a0acb5f18667f --- /dev/null +++ b/samples/common-voice/before/myv.flac @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:874f31af341b64c05be8408d29d7ef92919a99d16b45a8e59262ad1395d55d19 +size 208536 diff --git a/samples/common-voice/before/nan-tw.flac b/samples/common-voice/before/nan-tw.flac new file mode 100644 index 0000000000000000000000000000000000000000..a11db22d007583e8d2ff5d7ef2fbc9b9dcd6bf82 Binary files /dev/null and b/samples/common-voice/before/nan-tw.flac differ diff --git a/samples/common-voice/before/nb-NO.flac b/samples/common-voice/before/nb-NO.flac new file mode 100644 index 0000000000000000000000000000000000000000..d444cf6776b014607bd4e87a0e23ae7796e6149d --- /dev/null +++ b/samples/common-voice/before/nb-NO.flac @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e89663d26c9e33cb84437236afbace1f5c54cfa00f80c58407229171f5703633 +size 158587 diff --git a/samples/common-voice/before/ne-NP.flac b/samples/common-voice/before/ne-NP.flac new file mode 100644 index 0000000000000000000000000000000000000000..00bdcd78e12701a47bdd830904b5a342759dcaa9 Binary files /dev/null and b/samples/common-voice/before/ne-NP.flac differ diff --git a/samples/common-voice/before/nhi.flac b/samples/common-voice/before/nhi.flac new file mode 100644 index 0000000000000000000000000000000000000000..735fbb5ea927b8ba701eac61ac096ae133b680c5 --- /dev/null +++ b/samples/common-voice/before/nhi.flac @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7dbbdc2ef12942eefc7e58209fea224a8e3ae055dfc2b6233d97553621f31580 +size 158612 diff --git a/samples/common-voice/before/nl.flac b/samples/common-voice/before/nl.flac new file mode 100644 index 0000000000000000000000000000000000000000..4b802f02281de1c4c7f6cc170a2ef10e86071002 --- /dev/null +++ b/samples/common-voice/before/nl.flac @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:82cd04bf708ce02634fa9a616b303de47fc521529185b0475c352d721b0227eb +size 168194 diff --git a/samples/common-voice/before/nn-NO.flac b/samples/common-voice/before/nn-NO.flac new file mode 100644 index 0000000000000000000000000000000000000000..ce23001fb7a104c9db0701f0d96e2f9bad7ae94f --- /dev/null +++ b/samples/common-voice/before/nn-NO.flac @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6ecc73e277f892a2ab967151cb57c176470b22ad9b463b6dd5b225ea40487cd7 +size 118142 diff --git a/samples/common-voice/before/nr.flac b/samples/common-voice/before/nr.flac new file mode 100644 index 0000000000000000000000000000000000000000..f55667736de54720fd66406b01e74bcf5ff4e998 --- /dev/null +++ b/samples/common-voice/before/nr.flac @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:96311e70e98f49f145b1c4d586dbe52d261278c114f5eb3d0461480f9c01147a +size 180192 diff --git a/samples/common-voice/before/nso.flac b/samples/common-voice/before/nso.flac new file mode 100644 index 0000000000000000000000000000000000000000..e0e57c41e02351162015635e7ba4aa4abdc88b89 --- /dev/null +++ b/samples/common-voice/before/nso.flac @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:538a465f5e2a9c228c93ab96da623317a328f6621e07c2e4ce8b04e360a047c5 +size 135571 diff --git a/samples/common-voice/before/oc.flac b/samples/common-voice/before/oc.flac new file mode 100644 index 0000000000000000000000000000000000000000..8c6248d6d0ed70162c8ea8665c028d6e575669f0 --- /dev/null +++ b/samples/common-voice/before/oc.flac @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:cf9d6e558bb398c1c57287543423e57798925845b87a2e79b92652787052aabb +size 172663 diff --git a/samples/common-voice/before/or.flac b/samples/common-voice/before/or.flac new file mode 100644 index 0000000000000000000000000000000000000000..de08e0284374eeda214c8ef71b6a8ee595529c08 --- /dev/null +++ b/samples/common-voice/before/or.flac @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:17b240f1d29c3939d71952bce9c491331789570de483f9bf8e83d2ef7bd78eea +size 169931 diff --git a/samples/common-voice/before/os.flac b/samples/common-voice/before/os.flac new file mode 100644 index 0000000000000000000000000000000000000000..db73b42b9cb2acdce63878785d72a907fe13ef4b --- /dev/null +++ b/samples/common-voice/before/os.flac @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:027aad085c8a5fa418fac1059a8d1d143e46cc4b76fda2c9f71cbfa41e0b4682 +size 224541 diff --git a/samples/common-voice/before/pa-IN.flac b/samples/common-voice/before/pa-IN.flac new file mode 100644 index 0000000000000000000000000000000000000000..5bc089efbbd4fbd4eefb24f66f55dc3487bf72a5 --- /dev/null +++ b/samples/common-voice/before/pa-IN.flac @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3bc36da921fde999a9c3e14f20b15cedb9f0cfe392175148756998a454ce7a17 +size 177709 diff --git a/samples/common-voice/before/pl.flac b/samples/common-voice/before/pl.flac new file mode 100644 index 0000000000000000000000000000000000000000..3fe3a4b1790853ca38a813d0eae2393bfc9f067b --- /dev/null +++ b/samples/common-voice/before/pl.flac @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ef68f65d47a29cdf45f3197d30202f5fefd4ee708ef6fdec16d1cc9af6378932 +size 142615 diff --git a/samples/common-voice/before/ps.flac b/samples/common-voice/before/ps.flac new file mode 100644 index 0000000000000000000000000000000000000000..41a7a1a08dc10515f1c9e6cf3cbbb6a7c26a4f9b --- /dev/null +++ b/samples/common-voice/before/ps.flac @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b962e0a815491d802998e0557faf73d11fcd1cbe74c0b992173dda7594815ba2 +size 237527 diff --git a/samples/common-voice/before/pt.flac b/samples/common-voice/before/pt.flac new file mode 100644 index 0000000000000000000000000000000000000000..e12c4c41606cb2ea4f97053aa933fc8d27fdb25e --- /dev/null +++ b/samples/common-voice/before/pt.flac @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:23bf77a13656809b8a9936ff4e9b42e8befc599b90ba95eb6fd9c1b48455c17b +size 135523 diff --git a/samples/common-voice/before/quy.flac b/samples/common-voice/before/quy.flac new file mode 100644 index 0000000000000000000000000000000000000000..2ef9b01cc4f83f10a1d4ef11007458aa5676886e --- /dev/null +++ b/samples/common-voice/before/quy.flac @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7523017aa5496634ba139bd9de42485027cbc888d6fa9ca8b85e10077806a78a +size 130815 diff --git a/samples/common-voice/before/rm-sursilv.flac b/samples/common-voice/before/rm-sursilv.flac new file mode 100644 index 0000000000000000000000000000000000000000..1a53b80356fcf397f596487cde8acf8c1f9521ac --- /dev/null +++ b/samples/common-voice/before/rm-sursilv.flac @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7b889a4d259e8c563a4e9b474ff228e88f640744ef1eaa9c4403e199620506ff +size 205177 diff --git a/samples/common-voice/before/rm-vallader.flac b/samples/common-voice/before/rm-vallader.flac new file mode 100644 index 0000000000000000000000000000000000000000..66b2ca8e0244f2ac8454b5dc12998108e8d7bbc2 --- /dev/null +++ b/samples/common-voice/before/rm-vallader.flac @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c531bb32ef801c48cd2faae22adfedeab4c86cc34e459370b4d52aa7f6a75f6f +size 270685 diff --git a/samples/common-voice/before/ro.flac b/samples/common-voice/before/ro.flac new file mode 100644 index 0000000000000000000000000000000000000000..95f323960fd9283119ba39a8f47a560bdcace2a4 --- /dev/null +++ b/samples/common-voice/before/ro.flac @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c9f0768248b83191a006141cf206ec115b41db977b66a9854b8c762e71b08041 +size 108719 diff --git a/samples/common-voice/before/ru.flac b/samples/common-voice/before/ru.flac new file mode 100644 index 0000000000000000000000000000000000000000..175f1495450f955daa2d44e07ed710af393facff --- /dev/null +++ b/samples/common-voice/before/ru.flac @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8b6c27fe90ae028333be82c623c15bd8111e6b677f32b4375a9ac18615563a32 +size 110628 diff --git a/samples/common-voice/before/rup.flac b/samples/common-voice/before/rup.flac new file mode 100644 index 0000000000000000000000000000000000000000..b6d2cf990995a81977bb186e114561207dbaa192 --- /dev/null +++ b/samples/common-voice/before/rup.flac @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:75cf0e6fb7523fbce9a6f201edbf3f3ee6f6a468c2549960eebce531808260b3 +size 198301 diff --git a/samples/common-voice/before/rw.flac b/samples/common-voice/before/rw.flac new file mode 100644 index 0000000000000000000000000000000000000000..c2c03c578dfb97a515ef9e159fd97eb5fa46039a --- /dev/null +++ b/samples/common-voice/before/rw.flac @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d213e03030cad2ba116ea7284d5d620d69202348da450f1eab8baa8bfbb99cd3 +size 225491 diff --git a/samples/common-voice/before/sah.flac b/samples/common-voice/before/sah.flac new file mode 100644 index 0000000000000000000000000000000000000000..7681025307f2e97b1f3d92e5ae9061df7a04fc6a --- /dev/null +++ b/samples/common-voice/before/sah.flac @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:cd7e2583f5996a3fc46f22dab3f720c9dce5a9ebf41462502c9cf73aafdfc64b +size 340741 diff --git a/samples/common-voice/before/sat.flac b/samples/common-voice/before/sat.flac new file mode 100644 index 0000000000000000000000000000000000000000..569341e0aeeb0c65e281339a6835068553b59d2d --- /dev/null +++ b/samples/common-voice/before/sat.flac @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:585a4e6074da3d9cdb5e145ba56026d4b55568c2ecece87f04cc346ffebcaa6e +size 117199 diff --git a/samples/common-voice/before/sc.flac b/samples/common-voice/before/sc.flac new file mode 100644 index 0000000000000000000000000000000000000000..a19a78e541364395805938312c64ba47198cf0c9 --- /dev/null +++ b/samples/common-voice/before/sc.flac @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d86affdc0a1aa0fc82f06ce015c0823300597c9f701fb72922f5f9131d6cd35a +size 124578 diff --git a/samples/common-voice/before/sd.flac b/samples/common-voice/before/sd.flac new file mode 100644 index 0000000000000000000000000000000000000000..d27d0a97fa941f117565c706fcfc3d3c1acde840 --- /dev/null +++ b/samples/common-voice/before/sd.flac @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:96cda54dc4ce133f6176ec7eb822b8ff5dbc9015467b6349232bde7b8309af50 +size 343793 diff --git a/samples/common-voice/before/sk.flac b/samples/common-voice/before/sk.flac new file mode 100644 index 0000000000000000000000000000000000000000..2a646702cec08e7d58185820920cac9e28c1d5f5 --- /dev/null +++ b/samples/common-voice/before/sk.flac @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:906662a804b646c53c026e04fb7da288e43d8d3bcd50505e3dd8490a01cbcbf1 +size 157824 diff --git a/samples/common-voice/before/skr.flac b/samples/common-voice/before/skr.flac new file mode 100644 index 0000000000000000000000000000000000000000..e13e6bd3f0f1fe6f0f49a0d1c9d4337bc8e688b2 --- /dev/null +++ b/samples/common-voice/before/skr.flac @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:39cdfb58f45a73f151fbefec4e7bfe1ddf4f652eaadcdc00f37900bb2503d2cb +size 197125 diff --git a/samples/common-voice/before/sl.flac b/samples/common-voice/before/sl.flac new file mode 100644 index 0000000000000000000000000000000000000000..56b3e6beec9e5f04c9bc32e8aec9bb1c0181afa1 --- /dev/null +++ b/samples/common-voice/before/sl.flac @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:cdb4ae3c58c0f7ed8a7b37073e4dd246b70bc7b21ea8686278164c10536cd0c3 +size 192661 diff --git a/samples/common-voice/before/sq.flac b/samples/common-voice/before/sq.flac new file mode 100644 index 0000000000000000000000000000000000000000..9f715a637e815eea3981b2845b6c6397994b587d Binary files /dev/null and b/samples/common-voice/before/sq.flac differ diff --git a/samples/common-voice/before/sr.flac b/samples/common-voice/before/sr.flac new file mode 100644 index 0000000000000000000000000000000000000000..153e404f1fa248e1f742da9a114a3b0965113e11 Binary files /dev/null and b/samples/common-voice/before/sr.flac differ diff --git a/samples/common-voice/before/st.flac b/samples/common-voice/before/st.flac new file mode 100644 index 0000000000000000000000000000000000000000..dada481ce2d0d2873e637f035d01174a07ea30a9 Binary files /dev/null and b/samples/common-voice/before/st.flac differ diff --git a/samples/common-voice/before/sv-SE.flac b/samples/common-voice/before/sv-SE.flac new file mode 100644 index 0000000000000000000000000000000000000000..74b9b5ffe253e780dddd03201819fbac84c9515e --- /dev/null +++ b/samples/common-voice/before/sv-SE.flac @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1c00fb7d1e1124a638c05220b69bdd2d074dd77250272b3c7e2ddf156b1ebfbe +size 141844 diff --git a/samples/common-voice/before/sw.flac b/samples/common-voice/before/sw.flac new file mode 100644 index 0000000000000000000000000000000000000000..3c682f105559fea75babd73b6d675ae48b6f21bd --- /dev/null +++ b/samples/common-voice/before/sw.flac @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d6e82bcf773a15f36ed1df097d13b075f60d92168dea75b250d9f74bf700e034 +size 343801 diff --git a/samples/common-voice/before/ta.flac b/samples/common-voice/before/ta.flac new file mode 100644 index 0000000000000000000000000000000000000000..2ee78e631d73c094734378d7453471d8aa46a5d6 --- /dev/null +++ b/samples/common-voice/before/ta.flac @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c0fbec9f86f0ae0688108f6296d564d84b509e4af1073c15e3505078bffcd961 +size 215910 diff --git a/samples/common-voice/before/te.flac b/samples/common-voice/before/te.flac new file mode 100644 index 0000000000000000000000000000000000000000..f923437be1365940c227f465d8590df38e30f176 --- /dev/null +++ b/samples/common-voice/before/te.flac @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d705f3badcf0c51d06080bc2d53139365be291c7d4bc26575436dac43878b3b5 +size 146969 diff --git a/samples/common-voice/before/tg.flac b/samples/common-voice/before/tg.flac new file mode 100644 index 0000000000000000000000000000000000000000..bf8b9800aee89a8fe90a8644067cd8146838a287 --- /dev/null +++ b/samples/common-voice/before/tg.flac @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e75200d94378fe8e934cbaeff112325cfc3859a638cee02be24831047629b592 +size 158980 diff --git a/samples/common-voice/before/th.flac b/samples/common-voice/before/th.flac new file mode 100644 index 0000000000000000000000000000000000000000..86279610a2b1dc50e85a92d64c0b7f7555d055ed --- /dev/null +++ b/samples/common-voice/before/th.flac @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a520ffdfbc12ea39dfceb7b82595b47c198f6c35e68f9a76c0de6189c56b7f2e +size 129937 diff --git a/samples/common-voice/before/ti.flac b/samples/common-voice/before/ti.flac new file mode 100644 index 0000000000000000000000000000000000000000..a476368354ff1c85882d6d001727e9fddf909e52 --- /dev/null +++ b/samples/common-voice/before/ti.flac @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:25ddbb39126c86c87c60f17ee55007fa37127dde47dc5a4325dfd6efd4d401c0 +size 293285 diff --git a/samples/common-voice/before/tig.flac b/samples/common-voice/before/tig.flac new file mode 100644 index 0000000000000000000000000000000000000000..c2cee8a07555192a3d1c97ffb2cd5c15d0d68eb9 Binary files /dev/null and b/samples/common-voice/before/tig.flac differ diff --git a/samples/common-voice/before/tk.flac b/samples/common-voice/before/tk.flac new file mode 100644 index 0000000000000000000000000000000000000000..65a479ebd47ae07ef693122d2e31fc9bc4f26e9c --- /dev/null +++ b/samples/common-voice/before/tk.flac @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:412cbde28cc0f10286b4cecce55bc39be3db96a83b734f8ccfb2c2378ed5baec +size 228913 diff --git a/samples/common-voice/before/tn.flac b/samples/common-voice/before/tn.flac new file mode 100644 index 0000000000000000000000000000000000000000..1a87d3278a4f3c216ececde2aaff7b7b9f31a964 --- /dev/null +++ b/samples/common-voice/before/tn.flac @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2a6315bd33df7bada27bb48d76791883cc08066c47c52bdcc7334f650df87e73 +size 155270 diff --git a/samples/common-voice/before/tok.flac b/samples/common-voice/before/tok.flac new file mode 100644 index 0000000000000000000000000000000000000000..3549e6b4e6a5bc18d9d59a2fa46de7293043c419 --- /dev/null +++ b/samples/common-voice/before/tok.flac @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:64e6491806917984a72e74570df8d2457f0ba5fc130c5a2ecb5f981cebb8f0d6 +size 161415 diff --git a/samples/common-voice/before/tr.flac b/samples/common-voice/before/tr.flac new file mode 100644 index 0000000000000000000000000000000000000000..00d1bf8decbe67b76132cd9e2f174bb56be45c7e --- /dev/null +++ b/samples/common-voice/before/tr.flac @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:300869cefb4d32bbedbfdded76cfef71603b50a6243e2c7d9a64b488bf169986 +size 146629 diff --git a/samples/common-voice/before/ts.flac b/samples/common-voice/before/ts.flac new file mode 100644 index 0000000000000000000000000000000000000000..3d0bc8f94c4b76afd60d2d9266e5c1af2c077ba0 Binary files /dev/null and b/samples/common-voice/before/ts.flac differ diff --git a/samples/common-voice/before/tt.flac b/samples/common-voice/before/tt.flac new file mode 100644 index 0000000000000000000000000000000000000000..e0c8c93c3f2b0a971154f5fbbe085a90fd788985 --- /dev/null +++ b/samples/common-voice/before/tt.flac @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fed26d6932b89d1e87dd03bc45cade9c048bc09b7ff716c0ef81b06964ac3a3c +size 139404 diff --git a/samples/common-voice/before/tw.flac b/samples/common-voice/before/tw.flac new file mode 100644 index 0000000000000000000000000000000000000000..91b4491bcaf499bc2e1d7c8ad3be778d32dff180 --- /dev/null +++ b/samples/common-voice/before/tw.flac @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:539e90e1072e8c20fa4a2bdece96127f6c4dec9fb9192dab527d657dad34828d +size 126014 diff --git a/samples/common-voice/before/ug.flac b/samples/common-voice/before/ug.flac new file mode 100644 index 0000000000000000000000000000000000000000..52c74e5d184fac3fd09f7c2fce038204a6928a5e --- /dev/null +++ b/samples/common-voice/before/ug.flac @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:38c01b7bc64f6ea9984b4eb93257f785fc22121b3d9035fb9b2fb3fde27c9eec +size 239736 diff --git a/samples/common-voice/before/uk.flac b/samples/common-voice/before/uk.flac new file mode 100644 index 0000000000000000000000000000000000000000..9fa62349772c6ac408d6f12add2779f7b9f13dfa --- /dev/null +++ b/samples/common-voice/before/uk.flac @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:554fa8b61310d5f3f15fa464884a16b74863f962bb0dc4103cd72fed9055f50d +size 275259 diff --git a/samples/common-voice/before/ur.flac b/samples/common-voice/before/ur.flac new file mode 100644 index 0000000000000000000000000000000000000000..9a9116226771310b2903cd747695b2e162da50a9 --- /dev/null +++ b/samples/common-voice/before/ur.flac @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3e4ca3cac4e3cf035ea159fa74f4c0c78c4bf7fac08ea9a118ddf8e094dfd00e +size 100321 diff --git a/samples/common-voice/before/uz.flac b/samples/common-voice/before/uz.flac new file mode 100644 index 0000000000000000000000000000000000000000..de057305e900f5ef2d20e39838b6da0f176a1533 --- /dev/null +++ b/samples/common-voice/before/uz.flac @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:37684c0bb771d17ae9f7fc73aa632c74e57123d89cc0c47cd97f8ad13bfea03f +size 149428 diff --git a/samples/common-voice/before/ve.flac b/samples/common-voice/before/ve.flac new file mode 100644 index 0000000000000000000000000000000000000000..cf660cbdf60360f103d83948e6add0db7ba4c579 --- /dev/null +++ b/samples/common-voice/before/ve.flac @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:274b948af656631f10adb9cc1aec4323c8f6f44749b0e0035a74f34f544336c2 +size 164315 diff --git a/samples/common-voice/before/vi.flac b/samples/common-voice/before/vi.flac new file mode 100644 index 0000000000000000000000000000000000000000..3e1eef151c66ccd652c44cc9893d5e4223222a7d --- /dev/null +++ b/samples/common-voice/before/vi.flac @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a1c845dd396cf50b8376be5d056ca0ac15c4dafb383f94c9166373f954b0c844 +size 167064 diff --git a/samples/common-voice/before/vot.flac b/samples/common-voice/before/vot.flac new file mode 100644 index 0000000000000000000000000000000000000000..f3c66e05287d13aebbf095c79e844dd8d6d5b4e5 --- /dev/null +++ b/samples/common-voice/before/vot.flac @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5c41b21a4e7a6930decdeca0db7b81ccf5eca6b6c9035853090bd55c30108b71 +size 119795 diff --git a/samples/common-voice/before/xh.flac b/samples/common-voice/before/xh.flac new file mode 100644 index 0000000000000000000000000000000000000000..ebe508b01f08c0e6230aff10d67c3511862c36bc --- /dev/null +++ b/samples/common-voice/before/xh.flac @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d4b3394f0c6e2aa2fb716dc2f396d9c2fea3cf5bb09562e73a804efbc3a0b3f0 +size 226793 diff --git a/samples/common-voice/before/yi.flac b/samples/common-voice/before/yi.flac new file mode 100644 index 0000000000000000000000000000000000000000..20d4f6c62d7b14f7aac25e4519c7c7afd7d94cf6 --- /dev/null +++ b/samples/common-voice/before/yi.flac @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:442c35528aed120ef9d7e4d3aa943a998f5bdfcd80c2df1413cf6ac54bf3ba81 +size 167283 diff --git a/samples/common-voice/before/yo.flac b/samples/common-voice/before/yo.flac new file mode 100644 index 0000000000000000000000000000000000000000..23b5ac336b5b4971ca2e0ddb5aadc09f7f2529af --- /dev/null +++ b/samples/common-voice/before/yo.flac @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3da29300d1655f6e189b3dc0e59bf3696f8e3af4cb71ed5f547b24ce16a5a399 +size 178236 diff --git a/samples/common-voice/before/yue.flac b/samples/common-voice/before/yue.flac new file mode 100644 index 0000000000000000000000000000000000000000..9770aa748a9d5bcb6d05cc750fa9190c14390446 --- /dev/null +++ b/samples/common-voice/before/yue.flac @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3998e84519d0c60b17279338b96490d64c3c9a69a792c5d388c42bd3446e63f8 +size 181259 diff --git a/samples/common-voice/before/zgh.flac b/samples/common-voice/before/zgh.flac new file mode 100644 index 0000000000000000000000000000000000000000..d4e317eb028a3cecfef99f189c32f6df8e008a29 --- /dev/null +++ b/samples/common-voice/before/zgh.flac @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fee73133d4d64d4e0b9a7de6aadda563d55c7cbb40151dcd468b5e0842ec66a0 +size 163550 diff --git a/samples/common-voice/before/zh-CN.flac b/samples/common-voice/before/zh-CN.flac new file mode 100644 index 0000000000000000000000000000000000000000..932d9b7ce0b707802638b4e69b75e0c0f364a378 --- /dev/null +++ b/samples/common-voice/before/zh-CN.flac @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:aaad4cb42b10daf668733016d1a46e18e372e6d9d82418153640e8ce8deffab6 +size 105939 diff --git a/samples/common-voice/before/zh-HK.flac b/samples/common-voice/before/zh-HK.flac new file mode 100644 index 0000000000000000000000000000000000000000..46ef839faabfc107f397d8d58411e752e627a1fb Binary files /dev/null and b/samples/common-voice/before/zh-HK.flac differ diff --git a/samples/common-voice/before/zh-TW.flac b/samples/common-voice/before/zh-TW.flac new file mode 100644 index 0000000000000000000000000000000000000000..0b1a7b970d4ead8efbfbfb9c91f70c063b19c785 --- /dev/null +++ b/samples/common-voice/before/zh-TW.flac @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b50b99751664ff91ac2fee321b0ca98d44414095272182fa41938ebaea72202e +size 137864 diff --git a/samples/common-voice/before/zu.flac b/samples/common-voice/before/zu.flac new file mode 100644 index 0000000000000000000000000000000000000000..41d8a75475fa9744fb7ddb32bfe32b2b4d16b039 --- /dev/null +++ b/samples/common-voice/before/zu.flac @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fa71eb8e8830489a974d9ed25be8715111b8ec6c89e048f2f1f63faf59abd2db +size 264494 diff --git a/samples/common-voice/before/zza.flac b/samples/common-voice/before/zza.flac new file mode 100644 index 0000000000000000000000000000000000000000..3f55c86f81cdeeb70a88f4ce10d48c5d0e40d7bd --- /dev/null +++ b/samples/common-voice/before/zza.flac @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:682f71c6a7ca872be8197a1eb5149f751e384e2dcd53ce01f04ddb2dbbdebb3d +size 152199 diff --git a/widecodec_progress.png b/widecodec_progress.png new file mode 100644 index 0000000000000000000000000000000000000000..ab3bb8867edf89b7215afc94e301973353dbb249 --- /dev/null +++ b/widecodec_progress.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:54ff683d162d24fa22d0e4414b99e7b575a613f3b7cb4f1dcc6a319ea80f8edb +size 128236