CoolFace
Apppublic

sourav-das/stem-separator

sourceHugging Facemitupdated 6mo agoView on Hugging Face
3likes
separator.cpython-313.pyc115 linesDownload Raw Back to __pycache__
1�

2?��i�$�3�N�SSKrSSKrSSKJr SSKrSSKrSSKrSSK	r	SSK4r5SSKJr SSK
Jr SSKJr \R""\5r\R("\R*R-5(aSOS5r\R1S\35 \R2S:Xai\R4"5=(d S	r\R6"\5 \R8"\"S	\S6-55 \R1S\S\"S	\S7-535 S
rSrSr Sr!/SQr"SSSSSSS.r#"SS5r$g)�N)�Callable)�AudioSegment)�hf_hub_download)�8BSRoformer�cuda�cpuzUsing device: ��zCPU mode: set torch threads=z9, interop=zjarredou/BS-ROFO-SW-FixedzBS-Rofo-SW-Fixed.ckptzBS-Rofo-SW-Fixed.yamlz/tmp/models)�bass�drums�other�vocals�guitar�piano�Bass�Drums�Other�Vocals�Guitar�Pianoc��^�\rSrSrSrSrU4SjrSrS\RS\R4Sjr10S	\S11\S\\S\S
\
\\/S4S\\\44SjrS\S\R$S\4SjrSrU=r$)�StemSeparatorService�*NFc�^>�URc[TU]	U5UlUR$)N)�	_instance�super�__new__)�cls�	__class__s ��backend\separator.pyr�StemSeparatorService.__new__.s'����=�=� �!�G�O�C�0�C�M��}�}��c���UR(ag[R"[SS9 [RS[35 [[[[S9 [[[[S9 [[RR[[55n[R"U[RS9nSSS5 WSnUR!S05nUR!S05nUR!S	S125UlUR!SS5UlUR!S
S5Ul[(R*S:Hn[-S<0SUS_SUS_SUR!SS5_SUR!SS5_SUR!SS5_SUR!SS5_SUR!SS5_S[/US5_SUR!SS5_SUR!SS5_SUR!SS 5_S!UR!S!S 5_S"U_S#UR!S#S$5_S%UR!S%S&5_S'UR!S'S(5_S)UR!S)S&5_S*UR!S*S+5_S,UR!S,S5_S-UR!S-S.5_S/[/UR!S/S055_S1UR!S1S25_S3UR!S3S+5_S4UR!S4S55_S6UR!S6S+5_S7UR!S7S+5_6Ul[RR[[5n[2R"U[(SS89n[7U[85(aS:U;aUS:nO [7U[85(aSU;aUSnUR0R;U5 UR0R=[(5 UR0R?5 [RS;[(35 SUlg!,(df   GNc=f![4a [2R"U[(S99nN�f=f)=NT)�exist_okzDownloading model from HF Hub: )�repo_id�filename�	local_dir)�Loader�model�audio�	inference�sample_rateiD��13chunk_sizei��num_overlapr14r�dim�depth�stereo�	num_stems��time_transformer_depthr	�freq_transformer_depth�linear_transformer_depthr�freqs_per_bands�dim_head�@�heads��attn_dropoutg�������?�15ff_dropout�16flash_attn�dim_freqs_ini�17stft_n_fft��stft_hop_length��stft_win_length�stft_normalizedF�mask_estimator_depth�!multi_stft_resolution_loss_weight��?�#multi_stft_resolutions_window_sizes)irAirC��multi_stft_hop_size��multi_stft_normalized�mlp_expansion_factor��use_torch_checkpoint�skip_connection)�map_location�weights_only)rR�18state_dictz)BS-RoFormer model loaded successfully on �) �
_model_loaded�os�makedirs�	MODEL_DIR�logger�info�19MODEL_REPOr�MODEL_FILENAME�MODEL_CONFIG�open�path�join�yaml�load�20FullLoader�getr,r-r.�DEVICE�typer�tupler)�torch�	TypeError�21isinstance�dict�load_state_dict�to�eval)	�self�f�config�	model_cfg�	audio_cfg�
inference_cfg�	use_flash�	ckpt_pathrTs	         r �22load_model�StemSeparatorService.load_model3s������23���I��-����5�j�\�B�C��24�^�y�Y��25�\�Y�W��"�'�'�,�,�y�,�7�
8�A��Y�Y�q����9�F�9��7�O�	��J�J�w��+�	��26�27�;��3�
�$�=�=���>���#�-�-��f�=���(�,�,�]�A�>����K�K�6�)�	� �28��%� �29��G�$�30��=�=��4�0�31� �m�m�K��3�	32�33$-�=�=�1I�1�#M�34�$-�=�=�1I�1�#M�
35�&/�]�]�3M�q�%Q�36�"�)�,=�">�?�37��]�]�:�r�2�38��-�-���+�39�#���~�s�;�40�!�}�}�\�3�7�41�!�42�#���~�t�<�43�!�}�}�\�4�8�44� &�M�M�*;�S�A�!45�"&�M�M�*;�T�B�#46�$&�M�M�*;�U�C�%47�&"+���/E�q�!I�'48�(/8�m�m�<_�ad�.e�)49�*16��
�
�C�Ea�b�1�+50�0!*�
�
�.C�S� I�151�2#,�-�-�0G��"O�352�4"+���/E�q�!I�553�6"+���/E�u�!M�754�8&�M�M�*;�U�C�955��56�@�G�G�L�L��N�;�	�	D����I�F�QU�V�J��j�$�'�'�L�J�,F�#�L�1�J�
�57�D�
)�
)�g��.C�#�G�,�J��58�59�"�"�:�.��60�61�
�
�f���62�63�������?��x�H�I�!���9�
8��d�	D����I�F�C�J�	D�s�'$P'�P9�'64P6�9#Q�Q�audio_tensor�returnc�j�URnX0R-nURupVSn[SX6-655nXc:�aXc-66U-n	U	S:waXI-67nUS:�a,[R68RRUSU45nURSn69UR[5n[R"XuU705n[R"U715n[R"U[S9n
[[SX�-72S-U55n[U5n[U5H�unnUSS2UUU-24n[R "5 UR#UR%S55nSSS5 WR'S5nUR)5nU
R)5nUSS2SS2UUU-24==UU--
ss'UUUU-===U-
sss&US-U-nU"SSUS--5 M� X�R+S	S739R%S5R%S5-nUSS2SS2SU24$!,(df   N�=f)z,Run inference with chunking and overlap-add.r3rr	)�deviceN�74separatingg�������?gffffff�?g:�0�yE>)�min)r-r.�shape�maxri�nn�75functional�padrnrf�zeros�hann_window�list�range�len�	enumerate�no_gradr)�	unsqueeze�squeezer�clamp)rprz�progress_callbackr-�step�channels�
total_samplesr2�76pad_needed�	remainder�77padded_len�result�weight�window�starts�total_chunks�i�start�chunk�output�78output_cpu�79window_cpu�fracs                       r �_process_audio�#StemSeparatorService._process_audios"���_�_�80��-�-�-��".�"4�"4����	���J�6�7�81��%�&�3�t�;�I��A�~�!�-�82���>� �8�8�.�.�2�2�<�!�Z��Q�L�!�'�'��*�83�$���v�.�����Y�*�=�����Z�(���"�"�:�f�=���e�A�z�6��:�D�A�B���6�{��!�&�)�H�A�u� ��E�E�J�,>�$>�!>�?�E��������E�O�O�A�$6�7��!��^�^�A�&�F� ����J�����J��1�a����!3�3�3�4�84�Z�8O�O�4��5�5�:�-�.�*�<�.���E�\�)�D��l�C�$��*�,<�=�!*�&�,�,�4�,�0�:�:�1�=�G�G��J�J���a��N�]�N�*�+�+�'!��s�!H$�$85H2	�86input_path�87output_dir�stems�
output_formatr�c��U"SS5 UR5 U"SS5 [R"U5upgURS:Xa[R88"Xf/SS9n[R"UR[RS9nXpR:wa1[RRXpR5n	U	"U5nURX�5n89U"SS	5 0n[[ 5H�up�["U
nX�;dMX�R%5Rn[R&"US90S5nUSU3n[(R*R-UU5nUR/UX�5 UX�'M� U"S
S5 U$)N�
loading_modelg�������?r~g333333�?r	)�axis)�dtype�91finalizinggq=92ףp�?g�rH�.�done)rx�sf�read�ndim�np�stackri�tensor�T�float32r,�93torchaudio�94transforms�Resampler�r��95STEM_ORDER�
STEM_NAME_MAP�numpy�cliprWr`ra�
_write_output)rpr�r�r�r�r�r*�srrz�	resampler�	separatedr�r��stem_key�	canonical�96stem_audio�97clean_name�out_paths                  r �separate�StemSeparatorService.separate�sV��	�/�4�0������,��-��G�G�J�'�	���:�:��?��H�H�e�^�!�4�E��|�|�E�G�G�5�=�=�A���!�!�!�"�-�-�6�6�r�;K�;K�L�I�$�\�2�L��'�'��H�	��,��-�"$��$�Z�0�K�A�%�h�/�I��!�&�\�/�/�1�3�3�98��W�W�Z��s�;�99� )�{�!�M�?�;�100��7�7�<�<�101�J�?���"�"�8�Z�G�$.��!�1�	�&�#�&��
r"�output_pathr�c�t�US:Xa![R"XURSS9 gUS-R[R1025n[
UR5SURURS:�aURSOSS9nUS:XaSOS	nS103U0nUS;aSUS
'UR"U40UD6 g)N�wav�FLOAT)�subtypeg���@r104r	)�data�sample_width�105frame_rater��mp3�adts�format>�aacr��192k�bitrate)r��writer,�astyper��int16r�tobytesr�r��export)rpr�r�r��pcm�segment�
export_format�
export_kwargss        r r��"StemSeparatorService._write_output�s����E�!��H�H�[�d�.>�.>��P���G�#�+�+�B�H�H�5���������'�'�%(�X�X��\�S�Y�Y�q�\�q�	106��"/�%�!7��V�
�!�=�1�
��N�*�'-�M�)�$����{�4�m�4r")rVr-r)r.r,)�__name__�107__module__�__qualname__�__firstlineno__rrVrrxri�Tensorr��strr�r�floatrlr�r��ndarrayr��__static_attributes__�
__classcell__)rs@r rr*s�����I��M��108J"�X8,�5�<�<�8,�u�|�|�8,�t,��,��,��C�y�	,�109�,�$�S�%�L�$�$6�7�
,�110�c�3�h��,�\5��5�"�*�*�5�UX�5�5r"r)%�loggingrW�typingrr�r��	soundfiler�rir�rb�pydubr�huggingface_hubr�9audio_separator.separator.uvr_lib_v5.roformer.bs_roformerr�	getLoggerr�rZr}r�is_availablerfr[rg�	cpu_count�set_num_threads�set_num_interop_threadsr�r\r]r^rYr�r�rrUr"r �<module>r�s���	��������+�P�	�	�	�8�	$��	����111�112� 7� 7� 9� 9�f�u�	E�����n�V�H�%�&�	�;�;�%������#�!�I�	���)�$�	�!�!�#�a��a��"8�9�113�K�K�.�y�k��C��9�XY�>�DZ�C[�\�]�
(�114�(��&���	�E�115��
�
���
�
�
�N5�N5r"