From c9a041a8ab7abc7f66e121c59e7fb7812a3a12bb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=BA=90=E6=96=87=E9=9B=A8?= <41315874+fumiama@users.noreply.github.com> Date: Sat, 1 Apr 2023 15:02:53 +0800 Subject: [PATCH 01/11] =?UTF-8?q?=E5=88=A0=E9=99=A4=E6=97=A0=E7=94=A8?= =?UTF-8?q?=E6=96=87=E4=BB=B6=EF=BC=8C=E5=A2=9E=E5=8A=A0--colab=E5=90=AF?= =?UTF-8?q?=E5=8A=A8=E9=80=89=E9=A1=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 5 ++++ infer-web.py | 24 +++++++++++++----- .../__pycache__/attentions.cpython-39.pyc | Bin 9901 -> 0 bytes infer_pack/__pycache__/commons.cpython-39.pyc | Bin 5863 -> 0 bytes infer_pack/__pycache__/models.cpython-39.pyc | Bin 22162 -> 0 bytes infer_pack/__pycache__/modules.cpython-39.pyc | Bin 11850 -> 0 bytes .../__pycache__/transforms.cpython-39.pyc | Bin 3902 -> 0 bytes my_utils.py | 3 ++- pretrained/.gitignore | 2 ++ train/__pycache__/data_utils.cpython-39.pyc | Bin 12855 -> 0 bytes train/__pycache__/losses.cpython-39.pyc | Bin 1510 -> 0 bytes .../__pycache__/mel_processing.cpython-39.pyc | Bin 3392 -> 0 bytes train/__pycache__/process_ckpt.cpython-39.pyc | Bin 4120 -> 0 bytes train/__pycache__/utils.cpython-39.pyc | Bin 11429 -> 0 bytes uvr5_pack/__pycache__/utils.cpython-39.pyc | Bin 6304 -> 0 bytes .../layers_123821KB.cpython-39.pyc | Bin 4139 -> 0 bytes .../model_param_init.cpython-39.pyc | Bin 1621 -> 0 bytes .../__pycache__/nets_61968KB.cpython-39.pyc | Bin 3463 -> 0 bytes .../__pycache__/spec_utils.cpython-39.pyc | Bin 13274 -> 0 bytes uvr5_weights/.gitignore | 2 ++ weights/... | 1 - weights/.gitignore | 2 ++ 22 files changed, 30 insertions(+), 9 deletions(-) create mode 100644 .gitignore delete mode 100644 infer_pack/__pycache__/attentions.cpython-39.pyc delete mode 100644 infer_pack/__pycache__/commons.cpython-39.pyc delete mode 100644 infer_pack/__pycache__/models.cpython-39.pyc delete mode 100644 infer_pack/__pycache__/modules.cpython-39.pyc delete mode 100644 infer_pack/__pycache__/transforms.cpython-39.pyc create mode 100644 pretrained/.gitignore delete mode 100644 train/__pycache__/data_utils.cpython-39.pyc delete mode 100644 train/__pycache__/losses.cpython-39.pyc delete mode 100644 train/__pycache__/mel_processing.cpython-39.pyc delete mode 100644 train/__pycache__/process_ckpt.cpython-39.pyc delete mode 100644 train/__pycache__/utils.cpython-39.pyc delete mode 100644 uvr5_pack/__pycache__/utils.cpython-39.pyc delete mode 100644 uvr5_pack/lib_v5/__pycache__/layers_123821KB.cpython-39.pyc delete mode 100644 uvr5_pack/lib_v5/__pycache__/model_param_init.cpython-39.pyc delete mode 100644 uvr5_pack/lib_v5/__pycache__/nets_61968KB.cpython-39.pyc delete mode 100644 uvr5_pack/lib_v5/__pycache__/spec_utils.cpython-39.pyc create mode 100644 uvr5_weights/.gitignore delete mode 100644 weights/... create mode 100644 weights/.gitignore diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..eb7cc89 --- /dev/null +++ b/.gitignore @@ -0,0 +1,5 @@ +.DS_Store +__pycache__ +/TEMP +*.pyd +hubert_base.pt diff --git a/infer-web.py b/infer-web.py index cf0f242..5c5f017 100644 --- a/infer-web.py +++ b/infer-web.py @@ -64,9 +64,11 @@ def load_hubert(): weight_root="weights" weight_uvr5_root="uvr5_weights" names=[] -for name in os.listdir(weight_root):names.append(name) +for name in os.listdir(weight_root): + if name.endswith(".pt"): names.append(name) uvr5_names=[] -for name in os.listdir(weight_uvr5_root):uvr5_names.append(name.replace(".pth","")) +for name in os.listdir(weight_uvr5_root): + if name.endswith(".pth"): uvr5_names.append(name.replace(".pth","")) def vc_single(sid,input_audio,f0_up_key,f0_file,f0_method,file_index,file_big_npy,index_rate):#spk_item, input_audio0, vc_transform0,f0_file,f0method0 global tgt_sr,net_g,vc,hubert_model @@ -180,7 +182,10 @@ def get_vc(sid): n_spk=cpt["config"][-3] return {"visible": True,"maximum": n_spk, "__type__": "update"} -def change_choices():return {"choices": sorted(list(os.listdir(weight_root))), "__type__": "update"} +def change_choices(): + for name in os.listdir(weight_root): + if name.endswith(".pt"): names.append(name) + return {"choices": sorted(name), "__type__": "update"} def clean():return {"value": "", "__type__": "update"} def change_f0(if_f0_3,sr2):#np7, f0method8,pretrained_G14,pretrained_D15 if(if_f0_3=="是"):return {"visible": True, "__type__": "update"},{"visible": True, "__type__": "update"},"pretrained/f0G%s.pth"%sr2,"pretrained/f0D%s.pth"%sr2 @@ -443,7 +448,7 @@ with gr.Blocks() as app: with gr.Tabs(): with gr.TabItem("模型推理"): with gr.Row(): - sid0 = gr.Dropdown(label="推理音色", choices=names) + sid0 = gr.Dropdown(label="推理音色", choices=sorted(names)) refresh_button = gr.Button("刷新音色列表", variant="primary") refresh_button.click( fn=change_choices, @@ -625,6 +630,11 @@ with gr.Blocks() as app: with gr.TabItem("点击查看交流、问题反馈群号"): gr.Markdown(value="""xxxxx""") - # app.launch(server_name="0.0.0.0",server_port=7860) - # app.queue(concurrency_count=511, max_size=1022).launch(server_name="127.0.0.1",inbrowser=True,server_port=7861,quiet=True) - app.queue(concurrency_count=511, max_size=1022).launch(server_name="0.0.0.0",inbrowser=True,server_port=7865,quiet=True) \ No newline at end of file + import argparse + parser = argparse.ArgumentParser() + parser.add_argument("--colab", type=bool, default=False, help="Launch in colab") + cmd_opts = parser.parse_args() + if cmd_opts.colab: + app.launch(share=True) + else: + app.queue(concurrency_count=511, max_size=1022).launch(server_name="0.0.0.0",inbrowser=True,server_port=7865,quiet=True) diff --git a/infer_pack/__pycache__/attentions.cpython-39.pyc b/infer_pack/__pycache__/attentions.cpython-39.pyc deleted file mode 100644 index 6073f255a668a8b4851052f99a050accd04a7e27..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9901 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 diff --git a/infer_pack/__pycache__/commons.cpython-39.pyc b/infer_pack/__pycache__/commons.cpython-39.pyc deleted file mode 100644 index de9f06cd6067005350e4e52a609245d40bcf946c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5863 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 WXX=8t-$^D)mr8c&;>^LBgZ~#ZoK8~! diff --git a/infer_pack/__pycache__/modules.cpython-39.pyc b/infer_pack/__pycache__/modules.cpython-39.pyc deleted file mode 100644 index b5d62e112dc524c296ac80d3de5f5501be5e10c9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11850 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 E02DHOcmMzZ diff --git a/infer_pack/__pycache__/transforms.cpython-39.pyc b/infer_pack/__pycache__/transforms.cpython-39.pyc deleted file mode 100644 index 2676b31541481b7fa57fc5fc123d129931b03e0c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3902 zcmai1&2JmW6`z^?;BvX7NQts2Tej%$vVbL{4Uis;eARZXA{N@zbpav(yW*^*mB?LY zc4;~4uqcxD=)!+M4ib=yZ@u(i=pWGIo(l937)68h&A^%j&d5ssji=K<|(!{vO%aE2Jt#C`djv^xAnhg|M~mneQ74?sxCp(eGN$rxqd+LlSt zPX4|&i|mD45_RZ)@#NosJ$UiAzr58o)YS2#`s(=Fv3`h-L~K}Okx2F?F~}{Fk{v23 zXONIxLXY~4 zuKt#Z{v4SR3=(a&oXlZf<|ToTX-O>7fUiQ5DEB9{io?1%sA;fo#In+~l?y<3GE`vz#Rg_@Q_)dHR-j|uBD%HF5?O+sJXyL$ctMs`i@+>!=fIKHA^ntoLenC&Txe10 z;{G9jVw=jgY>G3cI8))5_L%0OTzukv$gq=(UCWvt1+%*@nmBcfiF0T)!Chkv5I0JI zPbJjX5oZ)pz5VmQ8#Q(CH+>N_qd0Ab{XsA22NCSQ((+CXoXqS6n`veV75SOH5vOU~ z&x|x4yb?$)S1e(t%-s(}oOF8OZjjNt0v9#OSTx8C1QA@}@gVa)7)EK>5AFyNi_BJ` z;ip1<&(_STI8G1XdKe`k4>}=^A|B!X==;fTdmh32x>!`Pi>N6~j=oa-D1F5>g>tSp z@g_Gxh&zkmbE(T5TA>Z?{`AFDvXbw>*%QKNjvR7 z41%!Bol{!7Bv}H-l&ivlO>rePxOOE;cT5$SBTp8kS0~)S=zAD7m7_`bSoRPyOFN&n zW2<21Hr%?5j8MpDHsC~cvOq>V1MACDY8@1%aY!+H2J73Bjd!cU=?gh(>`>Kssv1vq ztWnc=Y7=;B$ZG{?*MO&h6>G?JHI2tXtMJsO@F;E)PgR;vsrY^B%9(Wnd5W*g+7v%8tFnBKjLyh2Q}P8lGsQRL%p|s{u|-*(;?Dx7 zA#O?{=W*JGTwEZ$Di`XcL2&Z3azQp!4;DBFt^wJ1YT^ql$pu^{dbCbP=jGCY$E&!~ zYVsUromVT4F31afcGo&6ACjjmdHQqm3B_(0lS?J#nH72AkTwX;xGa}t9r8Ks+?31s ze#;8S=%PY2iBewF=q|~Hd_TD;m-8O{R-Yu-kd1teqp=0G+GXrHBQFCb`~kg7hg9Rd zBAfC`iKrR|Cz^w0>cDhWUd0+$$2gR2t{$xhOd1E)yml(Wd3jA+Bo?t-oUCydJ&7grRys>n4(rfa{cCTB`32piwC{bZ}#TqvP~zBf_6C{8{^5S zpV5tscJVJHOu8b3{gK}?Q^awqGhcfimP~y$w}U~fqWKI*jbf#p#-d$6Id=#42~cjw zBF~vtu3kJ5t7`b9tkX&Sw-6NqkzckGXJ40t#gL>Gf3O$?EsSEAux3cz?5Y z`@y~TnODX4?yUXn-h*lR?K>Z=J$(1U+QU1#VAme5YX%Kuq7>1F)upm?3!yjc1#hX? gO5Om0IhkXaD3#5^#D9So?q%1T;%_izI`#Yd|GSd6>i_@% diff --git a/my_utils.py b/my_utils.py index 48a93b6..c82c754 100644 --- a/my_utils.py +++ b/my_utils.py @@ -1,4 +1,5 @@ -import ffmpeg,numpy as np +import ffmpeg +import numpy as np def load_audio(file,sr): try: # https://github.com/openai/whisper/blob/main/whisper/audio.py#L26 diff --git a/pretrained/.gitignore b/pretrained/.gitignore new file mode 100644 index 0000000..d6b7ef3 --- /dev/null +++ b/pretrained/.gitignore @@ -0,0 +1,2 @@ +* +!.gitignore diff --git a/train/__pycache__/data_utils.cpython-39.pyc b/train/__pycache__/data_utils.cpython-39.pyc deleted file mode 100644 index c3cbe4ccd3a004fe9caa5b7ac880cca8608c4559..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12855 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 diff --git a/train/__pycache__/losses.cpython-39.pyc b/train/__pycache__/losses.cpython-39.pyc deleted file mode 100644 index bb61e477e4ce77ec41c8ddf4b1c082868c97fec1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1510 zcmZXU&2A$_5Xbv#KH_yuHnBqZkg%4MMOg1)B@jX^5@^L~C6wF1$~$q7y+g)hyJx&W z)V=@@VjuS{IPwgALgKWqz=?nLj6(=L>Z-2lp6;n%RZn_&*kNeVw-59m0b_rWak~i^ zU!qr^LTILW!4lG<;B%2k&a~9(H(d{c<&9~X3vJ)b*Afb zQs;{@Ehe=0zC{=upnrv4y@1esBWh-u<-dxr+4FC{7aO@z@JOq?=P^9NCbYqp@7PxC z*e0+cjo}lu+$!|I!gt1Ye8)dw8?hR!dRA!BXZR-h%y69ZhQ4ALI(eNhT`(;cY3)Lt z)#>D=3+jb|Qu8b=olGyQVdTQ;JY9}Wt7lFXi>h)$8}ykIrf_0byk_P;w*7lF(rKNJ z^kQ({QBGvx&x8SeNAP71=$ABI~_JF^~kA$Jg35B(96wwX- zr!at@1HG^emHTKT0ga(9WzDy!J}YlPD@&l2N6D=MV7}^FZpBnwFw@6YLv;t3IVEq9 zbUl<7QG=obM0*4jz2n8*fO{>)HrNlasyc#bf^7or@QyI=!Z)Fy_Kh+YqWcT_3Iof0 zP^c}h@zGvWh4^4m8>AH~f+JvbR9v7rs!_leC#=sr5a8*fn)*~<0X!0yR*{F+dmDh> zqiY@F+N$d(odMeQczHf37PD%+`fTvs<@w;{`Jf)x&;8{5W^(!e$ypQ9pHF;Qwif&S zHfblbpO#Km>p5<`#8ED6j&c%Pw+8g}c%D{QPFxk{9qf9Sc63$ve0+qtin7T9LhK*W zY diff --git a/train/__pycache__/mel_processing.cpython-39.pyc b/train/__pycache__/mel_processing.cpython-39.pyc deleted file mode 100644 index d2310c51c50c48066a84d2e88d44fb8db608212a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3392 zcmcImNslB)6^_WQva*)0-lluHXK5Q5sSwj`z{X&j@ic>*%^m>*#!4ZTax${2vnH2v zWL7Vu?9=$*OaF)N8*}4;&)j_C7vu@aNNA9d;ADh^hVMmIRWHK<4n$SHc=6)J_LeWg zYqcDPQv2Df;&=0meNK&wMMvWvzU(g`f(afmx2n0zRan;?eKTayuT(AW^m z;u?Bh5jVt&ScT+O!5^~j&F45Td(h>jmLy%htS70Ay(oMVl+MT#JwHhDK$b=xCPz?m z20`9C2osSWpk>Iw6R7n#hz2wdV}HE&oTK{l-}gTM8?+PofhIPeE0EXs~|Z$ zIk6f9D{0G!D0N>4nJ_PT3pD)Td>W!RF|wye*CrFAn{l^pZi)yRfOAT7HoZ zs(~;|67MUX+9<@6MU*w#V8|K;&R_6#1{?4vyZ@^VHpW>XHu7|4p2{eiY-0LS4-Q9N zP0oRr9U^r2iY!q7E0<3rf|t&718URrEQ9yS*V97hp--KM7R*_}p7LXy=OKH>5o5{* z&otMGy+IP@V-aMfm5%e#IKR4=)oc{_FniRS1!QH?*D!HrfG}=zc^&nCzX^E_>evQt zU9J$hVuAJ9sv@|$@K>OJzVI4ayFLZ;wA8`Ssnzjq7-s5D!5=euE7ycJl|0or_3Gqo zp+7d{HhPVzMD-d48=6nKFjrVky!Di?uwx6nQArC6?OIXGYx`V&g0Z#2IO9W`#*x0T zPP82T+gNE>A3DQE!A_f^cEWCN); z4mQGUV=8|Ka_{h5Uh>{Etu#e`Gzv;f1pA>MNHXwq3b3*!gMNhYAP9<65$yh=YnRSm zI_gD1GRXHz2M{&otqQJ6YXW69!5WP!omps!(oT~g3q>HxwhZ#IOjI&Q!Qt~4D1(!~ zetP=FXTQDMT~w(g8?+5`B*P>J`gwBf>hq7uEw61Bom-4HDH0-x6>adeh$d; zqEg2;%KA9TJ{kuB&{n6ZYSWgH<^8-gvX3O@AEgJFe;jw~B|j?7q}NAZD+8oOz#(8y z9+WnnJ|oz+>FmVGFVjw%%80$nhUMZxLS4N}LW83IYAVcEsgMq&7gw404NRB44Z?Vv zcj(hsQQO?%_6x_b!QJB8zbwbJhh2K1hX>@kzH2+ zg%;pee;^6o5U49*O!%g{@9srg1MB$D)+89~%Ll<$yWp4dwck~R�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

O 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 Bikkoc diff --git a/uvr5_pack/lib_v5/__pycache__/layers_123821KB.cpython-39.pyc b/uvr5_pack/lib_v5/__pycache__/layers_123821KB.cpython-39.pyc deleted file mode 100644 index a8ec492b8145c9d7d3468988c8bc34c6ec6771c6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4139 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 diff --git a/uvr5_pack/lib_v5/__pycache__/nets_61968KB.cpython-39.pyc b/uvr5_pack/lib_v5/__pycache__/nets_61968KB.cpython-39.pyc deleted file mode 100644 index b13e91d3a4cda898f46504bc3a3b384f4c81a639..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3463 zcmZ`+-EJGl6`q;>B`Hy|%*3)|r0EZguxW%!vRylHQ(I1)qDce+%0;sfuvqOZsg=nk zJG+!+V+9nogWS|WUZ4PZ(F;FB@A?#b+bg|7fEM}A?2@7+cd7Yy=A8N4Gv|C~6f7>* z8J>Ip`bYTBCS(7h#{6TV@en2T0Fp`GV;;RlkM+67c_|ZpE*NKh!!xzS=vjT+b2$5g zNmE*{n6x5(=)N?(8YH%KAaN>5UGiPlc26-s+ivqhBnfb-7d($t>aTBX-rHFJaw{bD z{6ia~C%pxTn8zjagtWhB9WI45Ue!FKT-r0gXD0J3EaDW6tsspa?e6SsN7)?XPsojbSIRJT~^YFbzBajI)p zI<9qGPUTCI!EW{KQ!>M;Am9LH6Oeh7w%#f!76?euUM{S3G>nuYBNndj$4Q*|eqon~ z>N%e$;Xp>JFry?~*SMi^Q{!!~PDk|hK#qD*VFu}NSU8_W)esqlw+j=9&Oi(VuD8v? zOru_>Fp@YaM0nuUWZVm~c#x!Tcv18HuotAM@4sO`e)IV!do)?PH+;T%fA1*HQvWFQ zyTj3*8YNlWkM?@;{$3hq(Z|Ced>VAob#$ce_|zhue{^Rri7@Q$`u)52zT8?HK3C*H z6iaCfz<86l_$t52Z;Dj`#P3CG&iU4+MhVHN(}yfdHhYYc9szPTW;vhmJ#ivVaQI`m zT-7qsg0odEIN;crwQRIZYMltwtX$;w1T&y+qi$7o2X(WmyQmwwE^y#{yIoT&SYKTw zpf6JI5WGu3r>(9N+#q-l(00^Kyb69?@Pk4`>nIy2n<%%{ Y+Ur;AFL>TmXzE2a) z%+-X+nxZZixc-TY<|>D@xw0^-ZPP4C(2w9&b>Hu6UqOAr_x~~qdZk96iE7iDi$qoW z3bHAbilxUv8U`|w6%Czp0CI*I>--yyi>yPu@)8H>o0&1ITbVs}5VN3K{A|rSU=Os* zzBR3Pz({9$un5|&o~w~994=zp9QvB9zlLl1O)VpSJCiNFMYf!C$#1|>{VQcnTGyzx zA{)S~nm-n{6-CDB2L#&IWM|bNAUZkSB6tXR0_r#S;~+i#D_ZTATEa`M5m0=UgmNX# zy6b*#@XX&266qrlixn+8h`R?fnYw}j-s0myaX?-(mB72Sq1T*m_o37=uw(xWVXn-JjMrbj|4p$NoN;s1EsXlV&n5ny>&C_esq8w+4R&H?<{|NneQAtYj+h`p zj-B(`+@#rQz6tN@bopAGSb8R&TadsFAtA@WXd3=k9d>tE@x8VZSy`u*%_;AGrE^HF^bnNGn=;v^6){ddq0+ zT(5aGcdC8Tn$FxP=Pje0+|3Q7R!gHp*fDmI@_!KO7G`W=*XK_G>HT_THwj*sF3zC# z9=paS;{W%3z%I{47X^&HFxTaI=KDQh<$iZDPN#nzz6ec2#{ILfEov$n_Tn(eqP9_3 zaRNs#jA0-P6MP&MwG`UY^{u0zH;NQ_WBZ-LmQfaj2Za^(21%s;04cI}{30r>Y@nbp zFsHf$vARoekKlI%pAg&!6iym<`-51j2h`$E)Du!Yq=uWR05^`LtA0{-ME&v4~HM5|v>H>%=_(GSw6b4i0ZtZ+I5^(;`5 z=1;!@Fz#|!+!V{)>BMzv6!sFRopT z?`pMk(M_3(Zd^LLzd;4jfCxwC*SCd3Q1eq$?c~OJ?;>wN6d+m;d4oK|M6?^ZL04NT zDB7Qz>CT_n-*^r$Z5!K~rOVSZ)St1AdPG1U-8QvRJ?q%-2VJ#GaoL1+zz-O1gwdzav5d1lc2vL1R@EZc13iLLL2M`(r&1)X$*0>cU8OGT9T}FMhW&eNP=EbKdY-9^eUET_rJCB{-=m#b&e_Q@}{bj gQ<CvJpcdz diff --git a/uvr5_pack/lib_v5/__pycache__/spec_utils.cpython-39.pyc b/uvr5_pack/lib_v5/__pycache__/spec_utils.cpython-39.pyc deleted file mode 100644 index 2a1ca015d78ce7cefb77b9ed3f962100bc722e70..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 13274 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 diff --git a/uvr5_weights/.gitignore b/uvr5_weights/.gitignore new file mode 100644 index 0000000..d6b7ef3 --- /dev/null +++ b/uvr5_weights/.gitignore @@ -0,0 +1,2 @@ +* +!.gitignore diff --git a/weights/... b/weights/... deleted file mode 100644 index 8b13789..0000000 --- a/weights/... +++ /dev/null @@ -1 +0,0 @@ - diff --git a/weights/.gitignore b/weights/.gitignore new file mode 100644 index 0000000..d6b7ef3 --- /dev/null +++ b/weights/.gitignore @@ -0,0 +1,2 @@ +* +!.gitignore From 981ec0ddb8eaea1895b20f3cbc1b6d5117463843 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=BA=90=E6=96=87=E9=9B=A8?= <41315874+fumiama@users.noreply.github.com> Date: Sat, 1 Apr 2023 15:10:46 +0800 Subject: [PATCH 02/11] fix ffmpeg --- my_utils.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/my_utils.py b/my_utils.py index c82c754..71d4b1e 100644 --- a/my_utils.py +++ b/my_utils.py @@ -8,7 +8,7 @@ def load_audio(file,sr): out, _ = ( ffmpeg.input(file, threads=0) .output("-", format="s16le", acodec="pcm_s16le", ac=1, ar=sr) - .run(cmd=["./ffmpeg", "-nostdin"], capture_stdout=True, capture_stderr=True) + .run(cmd=["ffmpeg", "-nostdin"], capture_stdout=True, capture_stderr=True) ) except ffmpeg.Error as e: raise RuntimeError(f"Failed to load audio: {e.stderr.decode()}") from e From b9b433f7eb598c963820590cdbdd49afa2657197 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=BA=90=E6=96=87=E9=9B=A8?= <41315874+fumiama@users.noreply.github.com> Date: Sat, 1 Apr 2023 15:35:24 +0800 Subject: [PATCH 03/11] fix parser --- infer-web.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/infer-web.py b/infer-web.py index 5c5f017..a344659 100644 --- a/infer-web.py +++ b/infer-web.py @@ -632,7 +632,7 @@ with gr.Blocks() as app: import argparse parser = argparse.ArgumentParser() - parser.add_argument("--colab", type=bool, default=False, help="Launch in colab") + parser.add_argument("--colab", action='store_true', help="Launch in colab") cmd_opts = parser.parse_args() if cmd_opts.colab: app.launch(share=True) From 9d1eb265c392b580c587b1ea55a976712838617b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=BA=90=E6=96=87=E9=9B=A8?= <41315874+fumiama@users.noreply.github.com> Date: Sat, 1 Apr 2023 15:38:04 +0800 Subject: [PATCH 04/11] fix gradio queue --- infer-web.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/infer-web.py b/infer-web.py index a344659..dd6f29f 100644 --- a/infer-web.py +++ b/infer-web.py @@ -635,6 +635,6 @@ with gr.Blocks() as app: parser.add_argument("--colab", action='store_true', help="Launch in colab") cmd_opts = parser.parse_args() if cmd_opts.colab: - app.launch(share=True) + app.queue(concurrency_count=511, max_size=1022).launch(share=True) else: app.queue(concurrency_count=511, max_size=1022).launch(server_name="0.0.0.0",inbrowser=True,server_port=7865,quiet=True) From a3089e6ead32827f52b72947b367e831b7b61edf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=BA=90=E6=96=87=E9=9B=A8?= <41315874+fumiama@users.noreply.github.com> Date: Sat, 1 Apr 2023 16:42:19 +0800 Subject: [PATCH 05/11] fix: train step2a & add arg --port --pycmd --noparallel --- .gitignore | 1 + config.py | 14 +++++- infer-web.py | 35 +++++++-------- my_utils.py | 7 +-- slicer2.py | 1 - trainset_preprocess_pipeline_print.py | 64 +++++++++++++-------------- 使用需遵守的协议-LICENSE.txt | 1 + 7 files changed, 64 insertions(+), 59 deletions(-) diff --git a/.gitignore b/.gitignore index eb7cc89..82c8a74 100644 --- a/.gitignore +++ b/.gitignore @@ -3,3 +3,4 @@ __pycache__ /TEMP *.pyd hubert_base.pt +/logs diff --git a/config.py b/config.py index f379ea7..086f882 100644 --- a/config.py +++ b/config.py @@ -1,3 +1,10 @@ +import argparse +parser = argparse.ArgumentParser() +parser.add_argument("--port", type=int, default=7865, help="Listen port") +parser.add_argument("--pycmd", type=str, default="python", help="Python command") +parser.add_argument("--colab", action='store_true', help="Launch in colab") +parser.add_argument("--noparallel", action='store_true', help="Disable parallel processing") +cmd_opts = parser.parse_args() ############离线VC参数 inp_root=r"白鹭霜华长条"#对输入目录下所有音频进行转换,别放非音频文件 opt_root=r"opt"#输出目录 @@ -7,10 +14,15 @@ person=r"weights\洛天依v3.pt"#目前只有洛天依v3 device = "cuda:0"#填写cuda:x或cpu,x指代第几张卡,只支持N卡加速 is_half=True#9-10-20-30-40系显卡无脑True,不影响质量,>=20显卡开启有加速 n_cpu=0#默认0用上所有线程,写数字限制CPU资源使用 +############python命令路径 +python_cmd=cmd_opts.pycmd +listen_port=cmd_opts.port +iscolab=cmd_opts.colab +noparallel=cmd_opts.noparallel ############下头别动 import torch if(torch.cuda.is_available()==False): - print("没有发现支持的N卡,使用CPU进行推理") + print("没有发现支持的N卡, 使用CPU进行推理") device="cpu" is_half=False if(device!="cpu"): diff --git a/infer-web.py b/infer-web.py index dd6f29f..c970f36 100644 --- a/infer-web.py +++ b/infer-web.py @@ -1,9 +1,10 @@ from multiprocessing import cpu_count import threading from time import sleep -from subprocess import Popen,PIPE,run as runn +from subprocess import Popen from time import sleep -import torch, pdb, os,traceback,sys,warnings,shutil,numpy as np,faiss +import torch, os,traceback,sys,warnings,shutil,numpy as np +import faiss #判断是否有能用来训练和加速推理的N卡 ncpu=cpu_count() ngpu=torch.cuda.device_count() @@ -33,11 +34,9 @@ from infer_pack.models import SynthesizerTrnMs256NSFsid, SynthesizerTrnMs256NSFs from scipy.io import wavfile from fairseq import checkpoint_utils import gradio as gr -import librosa import logging from vc_infer_pipeline import VC -import soundfile as sf -from config import is_half,device,is_half +from config import is_half,device,is_half,python_cmd,listen_port,iscolab,noparallel from infer_uvr5 import _audio_pre_ from my_utils import load_audio from train.process_ckpt import show_info,change_info,merge,extract_small_model @@ -222,7 +221,7 @@ def preprocess_dataset(trainset_dir,exp_dir,sr,n_p=ncpu): os.makedirs("%s/logs/%s"%(now_dir,exp_dir),exist_ok=True) f = open("%s/logs/%s/preprocess.log"%(now_dir,exp_dir), "w") f.close() - cmd="python trainset_preprocess_pipeline_print.py %s %s %s %s/logs/%s"%(trainset_dir,sr,n_p,now_dir,exp_dir) + cmd=python_cmd + " trainset_preprocess_pipeline_print.py %s %s %s %s/logs/%s "%(trainset_dir,sr,n_p,now_dir,exp_dir)+str(noparallel) print(cmd) p = Popen(cmd, shell=True)#, stdin=PIPE, stdout=PIPE,stderr=PIPE,cwd=now_dir ###煞笔gr,popen read都非得全跑完了再一次性读取,不用gr就正常读一句输出一句;只能额外弄出一个文本流定时读 @@ -242,7 +241,7 @@ def extract_f0_feature(gpus,n_p,f0method,if_f0,exp_dir): f = open("%s/logs/%s/extract_f0_feature.log"%(now_dir,exp_dir), "w") f.close() if(if_f0=="是"): - cmd="python extract_f0_print.py %s/logs/%s %s %s"%(now_dir,exp_dir,n_p,f0method) + cmd=python_cmd + " extract_f0_print.py %s/logs/%s %s %s"%(now_dir,exp_dir,n_p,f0method) print(cmd) p = Popen(cmd, shell=True,cwd=now_dir)#, stdin=PIPE, stdout=PIPE,stderr=PIPE ###煞笔gr,popen read都非得全跑完了再一次性读取,不用gr就正常读一句输出一句;只能额外弄出一个文本流定时读 @@ -266,7 +265,7 @@ def extract_f0_feature(gpus,n_p,f0method,if_f0,exp_dir): leng=len(gpus) ps=[] for idx,n_g in enumerate(gpus): - cmd="python extract_feature_print.py %s %s %s %s/logs/%s"%(leng,idx,n_g,now_dir,exp_dir) + cmd=python_cmd + " extract_feature_print.py %s %s %s %s/logs/%s"%(leng,idx,n_g,now_dir,exp_dir) print(cmd) p = Popen(cmd, shell=True, cwd=now_dir)#, shell=True, stdin=PIPE, stdout=PIPE, stderr=PIPE, cwd=now_dir ps.append(p) @@ -305,8 +304,8 @@ def click_train(exp_dir1,sr2,if_f0_3,spk_id5,save_epoch10,total_epoch11,batch_si with open("%s/filelist.txt"%exp_dir,"w")as f:f.write("\n".join(opt)) print("write filelist done") #生成config#无需生成config - # cmd = "python train_nsf_sim_cache_sid_load_pretrain.py -e mi-test -sr 40k -f0 1 -bs 4 -g 0 -te 10 -se 5 -pg pretrained/f0G40k.pth -pd pretrained/f0D40k.pth -l 1 -c 0" - cmd = "python train_nsf_sim_cache_sid_load_pretrain.py -e %s -sr %s -f0 %s -bs %s -g %s -te %s -se %s -pg %s -pd %s -l %s -c %s" % (exp_dir1,sr2,1 if if_f0_3=="是"else 0,batch_size12,gpus16,total_epoch11,save_epoch10,pretrained_G14,pretrained_D15,1 if if_save_latest13=="是"else 0,1 if if_cache_gpu17=="是"else 0) + # cmd = python_cmd + " train_nsf_sim_cache_sid_load_pretrain.py -e mi-test -sr 40k -f0 1 -bs 4 -g 0 -te 10 -se 5 -pg pretrained/f0G40k.pth -pd pretrained/f0D40k.pth -l 1 -c 0" + cmd = python_cmd + " train_nsf_sim_cache_sid_load_pretrain.py -e %s -sr %s -f0 %s -bs %s -g %s -te %s -se %s -pg %s -pd %s -l %s -c %s" % (exp_dir1,sr2,1 if if_f0_3=="是"else 0,batch_size12,gpus16,total_epoch11,save_epoch10,pretrained_G14,pretrained_D15,1 if if_save_latest13=="是"else 0,1 if if_cache_gpu17=="是"else 0) print(cmd) p = Popen(cmd, shell=True, cwd=now_dir) p.wait() @@ -351,7 +350,7 @@ def train1key(exp_dir1, sr2, if_f0_3, trainset_dir4, spk_id5, gpus6, np7, f0meth os.makedirs("%s/logs/%s"%(now_dir,exp_dir1),exist_ok=True) #########step1:处理数据 open("%s/logs/%s/preprocess.log"%(now_dir,exp_dir1), "w").close() - cmd="python trainset_preprocess_pipeline_print.py %s %s %s %s/logs/%s"%(trainset_dir4,sr_dict[sr2],ncpu,now_dir,exp_dir1) + cmd=python_cmd + " trainset_preprocess_pipeline_print.py %s %s %s %s/logs/%s "%(trainset_dir4,sr_dict[sr2],ncpu,now_dir,exp_dir1)+str(noparallel) yield get_info_str("step1:正在处理数据") yield get_info_str(cmd) p = Popen(cmd, shell=True) @@ -361,7 +360,7 @@ def train1key(exp_dir1, sr2, if_f0_3, trainset_dir4, spk_id5, gpus6, np7, f0meth open("%s/logs/%s/extract_f0_feature.log" % (now_dir, exp_dir1), "w") if(if_f0_3=="是"): yield get_info_str("step2a:正在提取音高") - cmd="python extract_f0_print.py %s/logs/%s %s %s"%(now_dir,exp_dir1,np7,f0method8) + cmd=python_cmd + " extract_f0_print.py %s/logs/%s %s %s"%(now_dir,exp_dir1,np7,f0method8) yield get_info_str(cmd) p = Popen(cmd, shell=True,cwd=now_dir) p.wait() @@ -373,7 +372,7 @@ def train1key(exp_dir1, sr2, if_f0_3, trainset_dir4, spk_id5, gpus6, np7, f0meth leng=len(gpus) ps=[] for idx,n_g in enumerate(gpus): - cmd="python extract_feature_print.py %s %s %s %s/logs/%s"%(leng,idx,n_g,now_dir,exp_dir1) + cmd=python_cmd + " extract_feature_print.py %s %s %s %s/logs/%s"%(leng,idx,n_g,now_dir,exp_dir1) yield get_info_str(cmd) p = Popen(cmd, shell=True, cwd=now_dir)#, shell=True, stdin=PIPE, stdout=PIPE, stderr=PIPE, cwd=now_dir ps.append(p) @@ -399,7 +398,7 @@ def train1key(exp_dir1, sr2, if_f0_3, trainset_dir4, spk_id5, gpus6, np7, f0meth opt.append("%s/%s.wav|%s/%s.npy|%s"%(gt_wavs_dir.replace("\\","\\\\"),name,co256_dir.replace("\\","\\\\"),name,spk_id5)) with open("%s/filelist.txt"%exp_dir,"w")as f:f.write("\n".join(opt)) yield get_info_str("write filelist done") - cmd = "python train_nsf_sim_cache_sid_load_pretrain.py -e %s -sr %s -f0 %s -bs %s -g %s -te %s -se %s -pg %s -pd %s -l %s -c %s" % (exp_dir1,sr2,1 if if_f0_3=="是"else 0,batch_size12,gpus16,total_epoch11,save_epoch10,pretrained_G14,pretrained_D15,1 if if_save_latest13=="是"else 0,1 if if_cache_gpu17=="是"else 0) + cmd = python_cmd + " train_nsf_sim_cache_sid_load_pretrain.py -e %s -sr %s -f0 %s -bs %s -g %s -te %s -se %s -pg %s -pd %s -l %s -c %s" % (exp_dir1,sr2,1 if if_f0_3=="是"else 0,batch_size12,gpus16,total_epoch11,save_epoch10,pretrained_G14,pretrained_D15,1 if if_save_latest13=="是"else 0,1 if if_cache_gpu17=="是"else 0) yield get_info_str(cmd) p = Popen(cmd, shell=True, cwd=now_dir) p.wait() @@ -630,11 +629,7 @@ with gr.Blocks() as app: with gr.TabItem("点击查看交流、问题反馈群号"): gr.Markdown(value="""xxxxx""") - import argparse - parser = argparse.ArgumentParser() - parser.add_argument("--colab", action='store_true', help="Launch in colab") - cmd_opts = parser.parse_args() - if cmd_opts.colab: + if iscolab: app.queue(concurrency_count=511, max_size=1022).launch(share=True) else: - app.queue(concurrency_count=511, max_size=1022).launch(server_name="0.0.0.0",inbrowser=True,server_port=7865,quiet=True) + app.queue(concurrency_count=511, max_size=1022).launch(server_name="0.0.0.0",inbrowser=True,server_port=listen_port,quiet=True) diff --git a/my_utils.py b/my_utils.py index 71d4b1e..c9c3343 100644 --- a/my_utils.py +++ b/my_utils.py @@ -10,10 +10,7 @@ def load_audio(file,sr): .output("-", format="s16le", acodec="pcm_s16le", ac=1, ar=sr) .run(cmd=["ffmpeg", "-nostdin"], capture_stdout=True, capture_stderr=True) ) - except ffmpeg.Error as e: - raise RuntimeError(f"Failed to load audio: {e.stderr.decode()}") from e + except Exception as e: + raise RuntimeError(f"Failed to load audio: {e}") return np.frombuffer(out, np.int16).flatten().astype(np.float32) / 32768.0 - -if __name__=='__main__' : - print(load_audio(r"C:\CloudMusic\宮野幸子,森下唯 - 月夜に謳う君 -LUNA-.mp3",16000).shape) \ No newline at end of file diff --git a/slicer2.py b/slicer2.py index 84ea78c..a09f0de 100644 --- a/slicer2.py +++ b/slicer2.py @@ -4,7 +4,6 @@ import numpy as np # This function is obtained from librosa. def get_rms( y, - *, frame_length=2048, hop_length=512, pad_mode="constant", diff --git a/trainset_preprocess_pipeline_print.py b/trainset_preprocess_pipeline_print.py index e5c9d45..a5af367 100644 --- a/trainset_preprocess_pipeline_print.py +++ b/trainset_preprocess_pipeline_print.py @@ -1,4 +1,4 @@ -import sys,os,pdb,multiprocessing +import sys,os,multiprocessing now_dir=os.getcwd() sys.path.append(now_dir) @@ -6,20 +6,15 @@ inp_root = sys.argv[1] sr = int(sys.argv[2]) n_p = int(sys.argv[3]) exp_dir = sys.argv[4] -import numpy as np,ffmpeg,os,traceback +noparallel = sys.argv[5] == "True" +import numpy as np,os,traceback from slicer2 import Slicer -from joblib import Parallel, delayed import librosa,traceback from scipy.io import wavfile import multiprocessing from my_utils import load_audio -from time import sleep -f = open("%s/preprocess.log"%exp_dir, "a+") -def printt(strr): - print(strr) - f.write("%s\n" % strr) - f.flush() +mutex = multiprocessing.Lock() class PreProcess(): def __init__(self,sr,exp_dir): @@ -40,10 +35,18 @@ class PreProcess(): self.exp_dir=exp_dir self.gt_wavs_dir="%s/0_gt_wavs"%exp_dir self.wavs16k_dir="%s/1_16k_wavs"%exp_dir + self.f = open("%s/preprocess.log"%exp_dir, "a+") os.makedirs(self.exp_dir,exist_ok=True) os.makedirs(self.gt_wavs_dir,exist_ok=True) os.makedirs(self.wavs16k_dir,exist_ok=True) + def print(self, strr): + mutex.acquire() + print(strr) + self.f.write("%s\n" % strr) + self.f.flush() + mutex.release() + def norm_write(self,tmp_audio,idx0,idx1): tmp_audio = (tmp_audio / np.abs(tmp_audio).max() * (self.max * self.alpha)) + (1 - self.alpha) * tmp_audio wavfile.write("%s/%s_%s.wav" % (self.gt_wavs_dir, idx0, idx1), self.sr, (tmp_audio*32768).astype(np.int16)) @@ -67,9 +70,9 @@ class PreProcess(): tmp_audio = audio[start:] break self.norm_write(tmp_audio, idx0, idx1) - printt("%s->Suc."%path) + self.print("%s->Suc."%path) except: - printt("%s->%s"%(path,traceback.format_exc())) + self.print("%s->%s"%(path,traceback.format_exc())) def pipeline_mp(self,infos): for path, idx0 in infos: @@ -78,27 +81,24 @@ class PreProcess(): def pipeline_mp_inp_dir(self,inp_root,n_p): try: infos = [("%s/%s" % (inp_root, name), idx) for idx, name in enumerate(sorted(list(os.listdir(inp_root))))] - ps=[] - for i in range(n_p): - p=multiprocessing.Process(target=self.pipeline_mp,args=(infos[i::n_p],)) - p.start() - ps.append(p) - for p in ps:p.join() + if noparallel: + for i in range(n_p): self.pipeline_mp(infos[i::n_p]) + else: + ps=[] + for i in range(n_p): + p=multiprocessing.Process(target=self.pipeline_mp,args=(infos[i::n_p],)) + p.start() + ps.append(p) + for p in ps:p.join() except: - printt("Fail. %s"%traceback.format_exc()) + self.print("Fail. %s"%traceback.format_exc()) + +def preprocess_trainset(inp_root, sr, n_p, exp_dir): + pp=PreProcess(sr,exp_dir) + pp.print("start preprocess") + pp.print(sys.argv) + pp.pipeline_mp_inp_dir(inp_root,n_p) + pp.print("end preprocess") if __name__=='__main__': - # f = open("logs/log_preprocess.log", "w") - printt(sys.argv) - ###################################################### - # inp_root=r"E:\语音音频+标注\米津玄师\src" - # inp_root=r"E:\codes\py39\vits_vc_gpu_train\todo-songs" - # sr=40000 - # n_p = 6 - # exp_dir=r"E:\codes\py39\dataset\mi-test" - - ###################################################### - printt("start preprocess") - pp=PreProcess(sr,exp_dir) - pp.pipeline_mp_inp_dir(inp_root,n_p) - printt("end preprocess") + preprocess_trainset(inp_root, sr, n_p, exp_dir) diff --git a/使用需遵守的协议-LICENSE.txt b/使用需遵守的协议-LICENSE.txt index 37abffc..db2094b 100644 --- a/使用需遵守的协议-LICENSE.txt +++ b/使用需遵守的协议-LICENSE.txt @@ -1,6 +1,7 @@ MIT License Copyright (c) 2023 liujing04 +Copyright (c) 2023 源文雨 本软件及其相关代码以MIT协议开源,作者不对软件具备任何控制力,使用软件者、传播软件导出的声音者自负全责。 如不认可该条款,则不能使用或引用软件包内任何代码和文件。 From 3489b4f6da38830a4929593def74d9f64462913f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=BA=90=E6=96=87=E9=9B=A8?= <41315874+fumiama@users.noreply.github.com> Date: Sat, 1 Apr 2023 16:43:56 +0800 Subject: [PATCH 06/11] fix --- extract_feature_print.py | 2 -- 1 file changed, 2 deletions(-) diff --git a/extract_feature_print.py b/extract_feature_print.py index 7a0ff4d..8ee1122 100644 --- a/extract_feature_print.py +++ b/extract_feature_print.py @@ -9,9 +9,7 @@ import torch import torch.nn.functional as F import soundfile as sf import numpy as np -import joblib from fairseq import checkpoint_utils -import pdb device = torch.device("cuda" if torch.cuda.is_available() else "cpu") f = open("%s/extract_f0_feature.log"%exp_dir, "a+") From 9e5937531155ac334aab5fe3ac5490e32adb8a34 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=BA=90=E6=96=87=E9=9B=A8?= <41315874+fumiama@users.noreply.github.com> Date: Sat, 1 Apr 2023 17:01:51 +0800 Subject: [PATCH 07/11] fix: extract freture cannot run on pure cpu --- extract_feature_print.py | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/extract_feature_print.py b/extract_feature_print.py index 8ee1122..a92f272 100644 --- a/extract_feature_print.py +++ b/extract_feature_print.py @@ -1,9 +1,14 @@ import os,sys,traceback -n_part=int(sys.argv[1]) -i_part=int(sys.argv[2]) -i_gpu=sys.argv[3] -exp_dir=sys.argv[4] -os.environ["CUDA_VISIBLE_DEVICES"]=str(i_gpu) +if len(sys.argv) == 4: + n_part=int(sys.argv[1]) + i_part=int(sys.argv[2]) + exp_dir=sys.argv[3] +else: + n_part=int(sys.argv[1]) + i_part=int(sys.argv[2]) + i_gpu=sys.argv[3] + exp_dir=sys.argv[4] + os.environ["CUDA_VISIBLE_DEVICES"]=str(i_gpu) import torch import torch.nn.functional as F From f27a991794c3507d7760d6857fbddd70f403128f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=BA=90=E6=96=87=E9=9B=A8?= <41315874+fumiama@users.noreply.github.com> Date: Sat, 1 Apr 2023 17:05:48 +0800 Subject: [PATCH 08/11] fix: extract freture cannot run on pure cpu --- extract_feature_print.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/extract_feature_print.py b/extract_feature_print.py index a92f272..2e5eeb3 100644 --- a/extract_feature_print.py +++ b/extract_feature_print.py @@ -51,7 +51,8 @@ models, saved_cfg, task = checkpoint_utils.load_model_ensemble_and_task( ) model = models[0] model = model.to(device) -model = model.half() +if torch.cuda.is_available(): + model = model.half() model.eval() todo=sorted(list(os.listdir(wavPath)))[i_part::n_part] @@ -70,7 +71,7 @@ else: feats = readwave(wav_path, normalize=saved_cfg.task.normalize) padding_mask = torch.BoolTensor(feats.shape).fill_(False) inputs = { - "source": feats.half().to(device), + "source": feats.half().to(device) if torch.cuda.is_available() else feats.to(device), "padding_mask": padding_mask.to(device), "output_layer": 9, # layer 9 } From 8dc195bea78a9c60a114212a16b5f000bd6d2983 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=BA=90=E6=96=87=E9=9B=A8?= <41315874+fumiama@users.noreply.github.com> Date: Sat, 1 Apr 2023 17:29:14 +0800 Subject: [PATCH 09/11] fix --- infer-web.py | 11 ++++++-- train_nsf_sim_cache_sid_load_pretrain.py | 34 ++++++++++++++---------- 2 files changed, 29 insertions(+), 16 deletions(-) diff --git a/infer-web.py b/infer-web.py index c970f36..a810c41 100644 --- a/infer-web.py +++ b/infer-web.py @@ -305,7 +305,11 @@ def click_train(exp_dir1,sr2,if_f0_3,spk_id5,save_epoch10,total_epoch11,batch_si print("write filelist done") #生成config#无需生成config # cmd = python_cmd + " train_nsf_sim_cache_sid_load_pretrain.py -e mi-test -sr 40k -f0 1 -bs 4 -g 0 -te 10 -se 5 -pg pretrained/f0G40k.pth -pd pretrained/f0D40k.pth -l 1 -c 0" - cmd = python_cmd + " train_nsf_sim_cache_sid_load_pretrain.py -e %s -sr %s -f0 %s -bs %s -g %s -te %s -se %s -pg %s -pd %s -l %s -c %s" % (exp_dir1,sr2,1 if if_f0_3=="是"else 0,batch_size12,gpus16,total_epoch11,save_epoch10,pretrained_G14,pretrained_D15,1 if if_save_latest13=="是"else 0,1 if if_cache_gpu17=="是"else 0) + print("use gpus:",gpus16) + if gpus16: + cmd = python_cmd + " train_nsf_sim_cache_sid_load_pretrain.py -e %s -sr %s -f0 %s -bs %s -g %s -te %s -se %s -pg %s -pd %s -l %s -c %s" % (exp_dir1,sr2,1 if if_f0_3=="是"else 0,batch_size12,gpus16,total_epoch11,save_epoch10,pretrained_G14,pretrained_D15,1 if if_save_latest13=="是"else 0,1 if if_cache_gpu17=="是"else 0) + else: + cmd = python_cmd + " train_nsf_sim_cache_sid_load_pretrain.py -e %s -sr %s -f0 %s -bs %s -te %s -se %s -pg %s -pd %s -l %s -c %s" % (exp_dir1,sr2,1 if if_f0_3=="是"else 0,batch_size12,total_epoch11,save_epoch10,pretrained_G14,pretrained_D15,1 if if_save_latest13=="是"else 0,1 if if_cache_gpu17=="是"else 0) print(cmd) p = Popen(cmd, shell=True, cwd=now_dir) p.wait() @@ -398,7 +402,10 @@ def train1key(exp_dir1, sr2, if_f0_3, trainset_dir4, spk_id5, gpus6, np7, f0meth opt.append("%s/%s.wav|%s/%s.npy|%s"%(gt_wavs_dir.replace("\\","\\\\"),name,co256_dir.replace("\\","\\\\"),name,spk_id5)) with open("%s/filelist.txt"%exp_dir,"w")as f:f.write("\n".join(opt)) yield get_info_str("write filelist done") - cmd = python_cmd + " train_nsf_sim_cache_sid_load_pretrain.py -e %s -sr %s -f0 %s -bs %s -g %s -te %s -se %s -pg %s -pd %s -l %s -c %s" % (exp_dir1,sr2,1 if if_f0_3=="是"else 0,batch_size12,gpus16,total_epoch11,save_epoch10,pretrained_G14,pretrained_D15,1 if if_save_latest13=="是"else 0,1 if if_cache_gpu17=="是"else 0) + if gpus16: + cmd = python_cmd + " train_nsf_sim_cache_sid_load_pretrain.py -e %s -sr %s -f0 %s -bs %s -g %s -te %s -se %s -pg %s -pd %s -l %s -c %s" % (exp_dir1,sr2,1 if if_f0_3=="是"else 0,batch_size12,gpus16,total_epoch11,save_epoch10,pretrained_G14,pretrained_D15,1 if if_save_latest13=="是"else 0,1 if if_cache_gpu17=="是"else 0) + else: + cmd = python_cmd + " train_nsf_sim_cache_sid_load_pretrain.py -e %s -sr %s -f0 %s -bs %s -te %s -se %s -pg %s -pd %s -l %s -c %s" % (exp_dir1,sr2,1 if if_f0_3=="是"else 0,batch_size12,total_epoch11,save_epoch10,pretrained_G14,pretrained_D15,1 if if_save_latest13=="是"else 0,1 if if_cache_gpu17=="是"else 0) yield get_info_str(cmd) p = Popen(cmd, shell=True, cwd=now_dir) p.wait() diff --git a/train_nsf_sim_cache_sid_load_pretrain.py b/train_nsf_sim_cache_sid_load_pretrain.py index 3d84d8c..3fb341b 100644 --- a/train_nsf_sim_cache_sid_load_pretrain.py +++ b/train_nsf_sim_cache_sid_load_pretrain.py @@ -34,9 +34,6 @@ global_step = 0 def main(): - """Assume Single Node Multi GPUs Training Only""" - assert torch.cuda.is_available(), "CPU training is not allowed." - # n_gpus = torch.cuda.device_count() os.environ["MASTER_ADDR"] = "localhost" os.environ["MASTER_PORT"] = "5555" @@ -65,7 +62,7 @@ def run(rank, n_gpus, hps): backend="gloo", init_method="env://", world_size=n_gpus, rank=rank ) torch.manual_seed(hps.train.seed) - torch.cuda.set_device(rank) + if torch.cuda.is_available(): torch.cuda.set_device(rank) if (hps.if_f0 == 1):train_dataset = TextAudioLoaderMultiNSFsid(hps.data.training_files, hps.data) else:train_dataset = TextAudioLoader(hps.data.training_files, hps.data) @@ -92,9 +89,13 @@ def run(rank, n_gpus, hps): persistent_workers=True, prefetch_factor=8, ) - if(hps.if_f0==1):net_g = SynthesizerTrnMs256NSFsid(hps.data.filter_length // 2 + 1,hps.train.segment_size // hps.data.hop_length,**hps.model,is_half=hps.train.fp16_run,sr=hps.sample_rate).cuda(rank) - else:net_g = SynthesizerTrnMs256NSFsid_nono(hps.data.filter_length // 2 + 1,hps.train.segment_size // hps.data.hop_length,**hps.model,is_half=hps.train.fp16_run).cuda(rank) - net_d = MultiPeriodDiscriminator(hps.model.use_spectral_norm).cuda(rank) + if(hps.if_f0==1): + net_g = SynthesizerTrnMs256NSFsid(hps.data.filter_length // 2 + 1,hps.train.segment_size // hps.data.hop_length,**hps.model,is_half=hps.train.fp16_run,sr=hps.sample_rate) + else: + net_g = SynthesizerTrnMs256NSFsid_nono(hps.data.filter_length // 2 + 1,hps.train.segment_size // hps.data.hop_length,**hps.model,is_half=hps.train.fp16_run) + if torch.cuda.is_available(): net_g = net_g.cuda(rank) + net_d = MultiPeriodDiscriminator(hps.model.use_spectral_norm) + if torch.cuda.is_available(): net_d = net_d.cuda(rank) optim_g = torch.optim.AdamW( net_g.parameters(), hps.train.learning_rate, @@ -109,8 +110,12 @@ def run(rank, n_gpus, hps): ) # net_g = DDP(net_g, device_ids=[rank], find_unused_parameters=True) # net_d = DDP(net_d, device_ids=[rank], find_unused_parameters=True) - net_g = DDP(net_g, device_ids=[rank]) - net_d = DDP(net_d, device_ids=[rank]) + if torch.cuda.is_available(): + net_g = DDP(net_g, device_ids=[rank]) + net_d = DDP(net_d, device_ids=[rank]) + else: + net_g = DDP(net_g) + net_d = DDP(net_d) try:#如果能加载自动resume _, _, _, epoch_str = utils.load_checkpoint(utils.latest_checkpoint_path(hps.model_dir, "D_*.pth"), net_d, optim_d) # D多半加载没事 @@ -190,11 +195,12 @@ def train_and_evaluate( for batch_idx, info in enumerate(train_loader): if (hps.if_f0 == 1):phone,phone_lengths,pitch,pitchf,spec,spec_lengths,wave,wave_lengths,sid=info else:phone,phone_lengths,spec,spec_lengths,wave,wave_lengths,sid=info - phone, phone_lengths = phone.cuda(rank, non_blocking=True),phone_lengths.cuda(rank, non_blocking=True ) - if (hps.if_f0 == 1):pitch,pitchf = pitch.cuda(rank, non_blocking=True),pitchf.cuda(rank, non_blocking=True) - sid = sid.cuda(rank, non_blocking=True) - spec, spec_lengths = spec.cuda(rank, non_blocking=True), spec_lengths.cuda(rank, non_blocking=True) - wave, wave_lengths = wave.cuda(rank, non_blocking=True), wave_lengths.cuda(rank, non_blocking=True) + if torch.cuda.is_available(): + phone, phone_lengths = phone.cuda(rank, non_blocking=True), phone_lengths.cuda(rank, non_blocking=True ) + if (hps.if_f0 == 1):pitch,pitchf = pitch.cuda(rank, non_blocking=True),pitchf.cuda(rank, non_blocking=True) + sid = sid.cuda(rank, non_blocking=True) + spec, spec_lengths = spec.cuda(rank, non_blocking=True), spec_lengths.cuda(rank, non_blocking=True) + wave, wave_lengths = wave.cuda(rank, non_blocking=True), wave_lengths.cuda(rank, non_blocking=True) if(hps.if_cache_data_in_gpu==True): if (hps.if_f0 == 1):cache.append((batch_idx, (phone,phone_lengths,pitch,pitchf,spec,spec_lengths,wave,wave_lengths ,sid))) else:cache.append((batch_idx, (phone,phone_lengths,spec,spec_lengths,wave,wave_lengths ,sid))) From 11dccf840fd3fa783df119ede1cabaf272d5b0a9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=BA=90=E6=96=87=E9=9B=A8?= <41315874+fumiama@users.noreply.github.com> Date: Sat, 1 Apr 2023 19:10:26 +0800 Subject: [PATCH 10/11] fix names --- infer-web.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/infer-web.py b/infer-web.py index a810c41..db875a2 100644 --- a/infer-web.py +++ b/infer-web.py @@ -64,7 +64,7 @@ weight_root="weights" weight_uvr5_root="uvr5_weights" names=[] for name in os.listdir(weight_root): - if name.endswith(".pt"): names.append(name) + if name.endswith(".pth"): names.append(name) uvr5_names=[] for name in os.listdir(weight_uvr5_root): if name.endswith(".pth"): uvr5_names.append(name.replace(".pth","")) @@ -183,8 +183,8 @@ def get_vc(sid): def change_choices(): for name in os.listdir(weight_root): - if name.endswith(".pt"): names.append(name) - return {"choices": sorted(name), "__type__": "update"} + if name.endswith(".pth"): names.append(name) + return {"choices": sorted(names), "__type__": "update"} def clean():return {"value": "", "__type__": "update"} def change_f0(if_f0_3,sr2):#np7, f0method8,pretrained_G14,pretrained_D15 if(if_f0_3=="是"):return {"visible": True, "__type__": "update"},{"visible": True, "__type__": "update"},"pretrained/f0G%s.pth"%sr2,"pretrained/f0D%s.pth"%sr2 From 10b74d70a5ccba1bd42a55c15481c1b6f20423e6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=BA=90=E6=96=87=E9=9B=A8?= <41315874+fumiama@users.noreply.github.com> Date: Sat, 1 Apr 2023 19:58:33 +0800 Subject: [PATCH 11/11] add colab --- README.md | 2 + Retrieval_based_Voice_Conversion_WebUI.ipynb | 211 +++++++++++++++++++ infer-web.py | 1 + 3 files changed, 214 insertions(+) create mode 100644 Retrieval_based_Voice_Conversion_WebUI.ipynb diff --git a/README.md b/README.md index 98d576a..37cba22 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,7 @@ # Retrieval-based-Voice-Conversion-WebUI +[![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/liujing04/Retrieval-based-Voice-Conversion-WebUI/blob/main/Retrieval_based_Voice_Conversion_WebUI.ipynb) + 缺失的2个文件夹和2个文件: hubert_base.pt diff --git a/Retrieval_based_Voice_Conversion_WebUI.ipynb b/Retrieval_based_Voice_Conversion_WebUI.ipynb new file mode 100644 index 0000000..125beb1 --- /dev/null +++ b/Retrieval_based_Voice_Conversion_WebUI.ipynb @@ -0,0 +1,211 @@ +{ + "cells": [ + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "[![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/liujing04/Retrieval-based-Voice-Conversion-WebUI/blob/main/Retrieval_based_Voice_Conversion_WebUI.ipynb)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "id": "GmFP6bN9dvOq" + }, + "outputs": [], + "source": [ + "#@title 查看显卡\n", + "!nvidia-smi" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "id": "wjddIFr1oS3W" + }, + "outputs": [], + "source": [ + "#@title 安装依赖\n", + "!apt-get -y install build-essential python3-dev ffmpeg\n", + "!pip3 install --upgrade setuptools wheel\n", + "!pip3 install --upgrade pip\n", + "!pip3 install faiss-gpu fairseq gradio ffmpeg ffmpeg-python praat-parselmouth pyworld numpy==1.23.5 numba==0.56.4 librosa==0.9.2" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "id": "ge_97mfpgqTm" + }, + "outputs": [], + "source": [ + "#@title 克隆仓库\n", + "\n", + "!git clone --depth=1 https://github.com/fumiama/Retrieval-based-Voice-Conversion-WebUI\n", + "%cd /content/Retrieval-based-Voice-Conversion-WebUI\n", + "!mkdir -p pretrained uvr5_weights" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "id": "BLDEZADkvlw1" + }, + "outputs": [], + "source": [ + "#@title 更新仓库(一般无需执行)\n", + "!git pull" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "id": "UG3XpUwEomUz" + }, + "outputs": [], + "source": [ + "!apt -y install -qq aria2\n", + "!aria2c --console-log-level=error -c -x 16 -s 16 -k 1M https://huggingface.co/lj1995/VoiceConversionWebUI/resolve/main/pretrained/D32k.pth -d /content/Retrieval-based-Voice-Conversion-WebUI/pretrained -o D32k.pth\n", + "!aria2c --console-log-level=error -c -x 16 -s 16 -k 1M https://huggingface.co/lj1995/VoiceConversionWebUI/resolve/main/pretrained/D40k.pth -d /content/Retrieval-based-Voice-Conversion-WebUI/pretrained -o D40k.pth\n", + "!aria2c --console-log-level=error -c -x 16 -s 16 -k 1M https://huggingface.co/lj1995/VoiceConversionWebUI/resolve/main/pretrained/D48k.pth -d /content/Retrieval-based-Voice-Conversion-WebUI/pretrained -o D48k.pth\n", + "!aria2c --console-log-level=error -c -x 16 -s 16 -k 1M https://huggingface.co/lj1995/VoiceConversionWebUI/resolve/main/pretrained/G32k.pth -d /content/Retrieval-based-Voice-Conversion-WebUI/pretrained -o G32k.pth\n", + "!aria2c --console-log-level=error -c -x 16 -s 16 -k 1M https://huggingface.co/lj1995/VoiceConversionWebUI/resolve/main/pretrained/G40k.pth -d /content/Retrieval-based-Voice-Conversion-WebUI/pretrained -o G40k.pth\n", + "!aria2c --console-log-level=error -c -x 16 -s 16 -k 1M https://huggingface.co/lj1995/VoiceConversionWebUI/resolve/main/pretrained/G48k.pth -d /content/Retrieval-based-Voice-Conversion-WebUI/pretrained -o G48k.pth\n", + "!aria2c --console-log-level=error -c -x 16 -s 16 -k 1M https://huggingface.co/lj1995/VoiceConversionWebUI/resolve/main/pretrained/f0D32k.pth -d /content/Retrieval-based-Voice-Conversion-WebUI/pretrained -o f0D32k.pth\n", + "!aria2c --console-log-level=error -c -x 16 -s 16 -k 1M https://huggingface.co/lj1995/VoiceConversionWebUI/resolve/main/pretrained/f0D40k.pth -d /content/Retrieval-based-Voice-Conversion-WebUI/pretrained -o f0D40k.pth\n", + "!aria2c --console-log-level=error -c -x 16 -s 16 -k 1M https://huggingface.co/lj1995/VoiceConversionWebUI/resolve/main/pretrained/f0D48k.pth -d /content/Retrieval-based-Voice-Conversion-WebUI/pretrained -o f0D48k.pth\n", + "!aria2c --console-log-level=error -c -x 16 -s 16 -k 1M https://huggingface.co/lj1995/VoiceConversionWebUI/resolve/main/pretrained/f0G32k.pth -d /content/Retrieval-based-Voice-Conversion-WebUI/pretrained -o f0G32k.pth\n", + "!aria2c --console-log-level=error -c -x 16 -s 16 -k 1M https://huggingface.co/lj1995/VoiceConversionWebUI/resolve/main/pretrained/f0G40k.pth -d /content/Retrieval-based-Voice-Conversion-WebUI/pretrained -o f0G40k.pth\n", + "!aria2c --console-log-level=error -c -x 16 -s 16 -k 1M https://huggingface.co/lj1995/VoiceConversionWebUI/resolve/main/pretrained/f0G48k.pth -d /content/Retrieval-based-Voice-Conversion-WebUI/pretrained -o f0G48k.pth\n", + "\n", + "!aria2c --console-log-level=error -c -x 16 -s 16 -k 1M https://huggingface.co/lj1995/VoiceConversionWebUI/resolve/main/uvr5_weights/HP2-人声vocals+非人声instrumentals.pth -d /content/Retrieval-based-Voice-Conversion-WebUI/uvr5_weights -o HP2-人声vocals+非人声instrumentals.pth\n", + "!aria2c --console-log-level=error -c -x 16 -s 16 -k 1M https://huggingface.co/lj1995/VoiceConversionWebUI/resolve/main/uvr5_weights/HP5-主旋律人声vocals+其他instrumentals.pth -d /content/Retrieval-based-Voice-Conversion-WebUI/uvr5_weights -o HP5-主旋律人声vocals+其他instrumentals.pth\n", + "\n", + "!aria2c --console-log-level=error -c -x 16 -s 16 -k 1M https://huggingface.co/lj1995/VoiceConversionWebUI/resolve/main/hubert_base.pt -d /content/Retrieval-based-Voice-Conversion-WebUI -o hubert_base.pt" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "id": "Mwk7Q0Loqzjx" + }, + "outputs": [], + "source": [ + "#@title 从谷歌云盘加载打包好的数据集到/content/dataset\n", + "\n", + "#@markdown 数据集位置\n", + "DATASET = \"/content/drive/MyDrive/dataset/lulu20230327.zip\" #@param {type:\"string\"}\n", + "\n", + "from google.colab import drive\n", + "drive.mount('/content/drive')\n", + "!mkdir -p /content/dataset\n", + "!unzip -d /content/dataset {DATASET}" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "id": "7vh6vphDwO0b" + }, + "outputs": [], + "source": [ + "#@title 启动web\n", + "%cd /content/Retrieval-based-Voice-Conversion-WebUI\n", + "!python3 infer-web.py --colab --pycmd python3" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "id": "FgJuNeAwx5Y_" + }, + "outputs": [], + "source": [ + "#@title 手动将训练后的模型文件备份到谷歌云盘\n", + "#@markdown 需要自己查看logs文件夹下模型的文件名,手动修改下方命令末尾的文件名\n", + "\n", + "#@markdown 模型名\n", + "MODELNAME = \"lulu\" #@param {type:\"string\"}\n", + "#@markdown 模型epoch\n", + "MODELEPOCH = 3540 #@param {type:\"integer\"}\n", + "\n", + "!cp /content/Retrieval-based-Voice-Conversion-WebUI/logs/{MODELNAME}/G_{MODELEPOCH}.pth /content/drive/MyDrive/{MODELNAME}_D_{MODELEPOCH}.pth\n", + "!cp /content/Retrieval-based-Voice-Conversion-WebUI/logs/{MODELNAME}/D_{MODELEPOCH}.pth /content/drive/MyDrive/{MODELNAME}_G_{MODELEPOCH}.pth\n", + "!cp /content/Retrieval-based-Voice-Conversion-WebUI/logs/{MODELNAME}/added_*.index /content/drive/MyDrive/\n", + "!cp /content/Retrieval-based-Voice-Conversion-WebUI/logs/{MODELNAME}/total_*.npy /content/drive/MyDrive/\n", + "\n", + "!cp /content/Retrieval-based-Voice-Conversion-WebUI/weights/{MODELNAME}.pth /content/drive/MyDrive/{MODELNAME}{MODELEPOCH}.pth" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "id": "OVQoLQJXS7WX" + }, + "outputs": [], + "source": [ + "#@title 从谷歌云盘恢复pth\n", + "#@markdown 需要自己查看logs文件夹下模型的文件名,手动修改下方命令末尾的文件名\n", + "\n", + "#@markdown 模型名\n", + "MODELNAME = \"lulu\" #@param {type:\"string\"}\n", + "#@markdown 模型epoch\n", + "MODELEPOCH = 730 #@param {type:\"integer\"}\n", + "\n", + "!cp /content/drive/MyDrive/{MODELNAME}_D_{MODELEPOCH}.pth /content/Retrieval-based-Voice-Conversion-WebUI/logs/{MODELNAME}/G_{MODELEPOCH}.pth\n", + "!cp /content/drive/MyDrive/{MODELNAME}_G_{MODELEPOCH}.pth /content/Retrieval-based-Voice-Conversion-WebUI/logs/{MODELNAME}/D_{MODELEPOCH}.pth" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "id": "ZKAyuKb9J6dz" + }, + "outputs": [], + "source": [ + "#@title 手动训练(不推荐)\n", + "#@markdown 模型名\n", + "MODELNAME = \"lulu\" #@param {type:\"string\"}\n", + "\n", + "!python3 trainset_preprocess_pipeline_print.py /content/dataset 32000 8 logs/{MODELNAME} True\n", + "\n", + "!python3 extract_feature_print.py 1 0 0 logs/{MODELNAME}\n", + "\n", + "!python3 train_nsf_sim_cache_sid_load_pretrain.py -e lulu -sr 32k -f0 0 -g 0 -bs 4 -te 10 -se 5 -pg pretrained/G32k.pth -pd pretrained/D32k.pth -l 0 -c 0\n" + ] + } + ], + "metadata": { + "accelerator": "GPU", + "colab": { + "private_outputs": true, + "provenance": [] + }, + "gpuClass": "standard", + "kernelspec": { + "display_name": "Python 3", + "name": "python3" + }, + "language_info": { + "name": "python" + } + }, + "nbformat": 4, + "nbformat_minor": 0 +} diff --git a/infer-web.py b/infer-web.py index db875a2..403ac7c 100644 --- a/infer-web.py +++ b/infer-web.py @@ -182,6 +182,7 @@ def get_vc(sid): return {"visible": True,"maximum": n_spk, "__type__": "update"} def change_choices(): + names=[] for name in os.listdir(weight_root): if name.endswith(".pth"): names.append(name) return {"choices": sorted(names), "__type__": "update"}