
    ]i                     j    S SK Jr  S SKrS SKrS SKrS SKrS SKrS SKJ	r	  S SKJ
r
  S SKJr  S SKrS rg)    )PathN)utils)predict)datac                     [         R                  " SS[         R                  S9n U R                  S[        SSS9  U R                  SS	[        S
S9  U R                  SS[        SS9  U R                  S[        SS9  U R                  S[        SSS9  U R                  S[
        SSS9  U R                  S[
        SS9  U R                  SSSSS9  U R                  S [        S!S9  U R                  S"[        S#S$S9  U R                  S%[        S&S'S9  U R                  S([        S S)S9  U R                  S*[        S S+S9  U R                  S,[        S-S.S9  U R                  S/SSS0S9  U R                  5       nUR                  S1:w  a-  UR                  b   [        R                  " UR                  5        UR                  (       + =(       a    [        R                  R                  5       n[        R                  " U(       a  S2OS35      nUR                   (       a  [#        S4U5        UR$                  c  S O[&        R(                  " UR$                  5      n[*        R,                  " UR.                  UR0                  UR2                  UR4                  UR6                  USUR8                  S59nUR;                  5         UR=                  U5        UR                  S1:X  a   S6S Kn[D        RD                  " URF                  5       GH  nUR                  S1:X  aX  WRI                  UURJ                  URL                  URN                  [P        RR                  S89u  p[        RT                  " U5      nO+[V        RX                  " XqRJ                  URL                  S99u  p[Z        R\                  " UU	UUUS:9n
UR^                  (       d  [a        UR.                  5      nURc                  5       (       d/  [a        [a        U5      Rd                  S;-   UR.                  -   5      nOZ[a        [a        U5      Rd                  S;-   URd                  -   5      nO+[a        UR^                  5      [a        U5      Rd                  -  nURg                  SSS<9  UR                  S1:X  a  [	        U[a        S=5      Ri                  URj                  5      -  5      n0 nU
Rm                  5        HR  u  nn[        Rn                  " U5      Rq                  5       Rs                  5       Ru                  5       Rv                  X'   MT     WRy                  UUURN                  UR{                  SU	S>9S?9  GMX  U
Rm                  5        Hy  u  nn[	        U[a        U5      Ri                  URj                  5      -  5      n[        R|                  " U[        Rn                  " U5      R=                  S35      URN                  S@9  M{     GM     g ! [@         a    [C        S75      ef = f)ANzUMX InferenceT)descriptionadd_helpformatter_classinput+z List of paths to wav/flac files.)typenargshelpz--modelumxlzCpath to mode base directory of pretrained models, defaults to UMX-L)defaultr   r   z	--targetsz^provide targets to be processed.               If none, all available targets will be computed)r   r   r   z--outdirz6Results path where audio evaluation results are stored)r   r   z--extz.wavz,Output extension which sets the audio format)r   r   r   z--startg        zAudio chunk start in secondsz
--durationz@Audio chunk duration in seconds, negative values load full trackz	--no-cuda
store_trueFzdisables CUDA inference)actionr   r   z--audio-backendzSets audio backend. Default to torchaudio's default backend: See https://pytorch.org/audio/stable/backend.html(`sox_io`, `sox`, `soundfile` or `stempeg`)z--niter   z*number of iterations for refining results.z--wiener-win-leni,  z:Number of frames on which to apply filtering independentlyz
--residualzSif provided, build a source with given name for the mix minus all estimated targetsz--aggregatezif provided, must be a string containing a valid expression for a dictionary, with keys as output target names, and values a list of targets that are used to build it. For instance: '{"vocals":["vocals"], "accompaniment":["drums","bass","other"]}'z--filterbanktorchzfilterbank implementation method. Supported: `['torch', 'asteroid']`. `torch` is ~30%% faster compared to `asteroid` on large FFT sizes such as 4096. However asteroids stft can be exported to onnx, which makes is practical for deployment.z	--verbosezEnable log messagesstempegcudacpuzUsing )model_str_or_pathtargetsniterresidualwiener_win_lendevice
pretrained
filterbankr   z$Please install pip package `stempeg`)startdurationsample_ratedtype)r!   dur)audiorateaggregate_dict	separatorr   _)exist_okparentstarget)multiprocessoutput_sample_rate)r#   writer)r#   )?argparseArgumentParserRawDescriptionHelpFormatteradd_argumentstrfloatint
parse_argsaudio_backend
torchaudioset_audio_backendno_cudar   r   is_availabler   verboseprint	aggregatejsonloadsr   load_separatormodelr   r   r   r   r    freezetor   ImportErrorRuntimeErrortqdmr   
read_stemsr!   r"   r#   npfloat32tensorr   
load_audior   separateoutdirr   existsstemmkdirwith_suffixextitemssqueezedetachr   numpyTwrite_stemsFilesWritersave)parserargsuse_cudar   r(   r)   r   
input_filer&   r'   	estimates
model_pathrP   target_pathestimates_numpyr-   estimates                    J/mnt/rpi/tmp/demucs-venv-sys/lib/python3.13/site-packages/openunmix/cli.pyrO   rO      s   $$# <<F c;]^
R	   ?	   E   ;	   	sA_`
O   L%Ngh
6   9	   I	   e	   	  	 	  	 "	   DY&4+=+=+I$$T%7%78<<=EJJ$;$;$=H\\H&%8F||h!^^3TDNN9SN $$**jj**??	I LLY&	G
 ii

+
*!,,jj%11jj - KE LL'E//*JJDMMZKE$$)
	 {{djj)J$$&&d:.33c9DJJFGd:.33c9JOOKL$++&j)9)>)>>FdD1 *ftH~'A'A$(('KKLK O$-OO$5 */--*A*H*H*J*N*N*P*V*V*X*Z*Z' %6 %11**QU*V	    %.OO$5 !&4<+C+CDHH+M"MNMM(+..u5 ) 5 5 %6Y ,	  	GEFF	Gs   W* *X )pathlibr   r   r:   rA   rY   rK   rI   	openunmixr   r   r   r1   rO        rg   <module>rl      s)             {rk   