o
    
ja                     @   sD   d dl Z d dlZdd Zdd ZdddZdd	d
Z	dddZdS )    Nc                 C   s8   t | \}}|ddkr|jddd}|d|fS )Nr      T)dimkeepdim)
torchaudioloadsizemeansqueeze)pathwavsr r   @/home/kuhnn/.local/lib/python3.10/site-packages/TTS/utils/vad.py
read_audio   s   r   c                 C   s,   |  d} tjj||d}|| } | dS )Nr   )	orig_freqnew_freq)	unsqueezer   
transformsResampler	   )r   r   new_sr	transformr   r   r   resample_wav   s   

r   Fc                 C   s   ||  }g }|r&|r&t |d d | t |d d | d}|| |S |D ]}t |d | t |d | d}|| q(|S )Nr   startend)r   r   )intappend)vad_srr   
timestampsjust_begging_endfactornew_timestampsnew_dicttsr   r   r   map_timestamps_to_new_sr   s   *
"r$   c                 C   s@   t jjddd|dd\}}| r| }|\}}}}}||||fS )Nzsnakers4/silero-vad
silero_vadT)repo_or_dirmodelforce_reloadonnxforce_onnx_cpu)torchhubr   cuda)use_cudause_onnxr'   utilsget_speech_timestamps
save_audio_collect_chunksr   r   r   get_vad_model_and_utils%   s   

r5   @  Tc                 C   s   | \}}}}	zt |\}
}W n   td|  Y dS ||kr't|
||}n|
}|r/| }||||dd}t||||}|rH|	||
}
d}n
td| d d}t||
d d d f | ||fS )	Nu   > ❗ Failed to read )NFi   )sampling_ratewindow_size_samplesTz> The file z1 probably does not have speech please check it !!F)r   printr   r-   r$   r   save)model_and_utils
audio_pathout_pathvad_sample_ratetrim_just_beginning_and_endr.   r'   r1   r3   r4   r   gt_sample_ratewav_vadspeech_timestampsnew_speech_timestamps	is_speechr   r   r   remove_silence0   s,   
rE   )F)FF)r6   TF)r+   r   r   r   r$   r5   rE   r   r   r   r   <module>   s    	

