o
    
j                     @   sN  d dl Z d dlZd dlZd dlZd dlZd dlZd dlmZ d dlmZm	Z	 e
d dd Zdd Zed	kre jd
dZejddeddd ejddeddd ejdddddd ejddeddd  ejd!d"edd#d  ejd$d%edd&d  ejd'edd(d  ejd)edd*d  e Zejdkreje_eejejd+Ze  dS dS ),    N)tqdm)get_vad_model_and_utilsremove_silence   c                 C   sv   |  tjtjdtjtjd}tj|rtjs|dfS t	
|jjddd tt| |tjtjd\}}||fS )N FT)parentsexist_ok)trim_just_beginning_and_enduse_cuda)replaceospathjoinargs	input_dir
output_direxistsforcepathlibPathparentmkdirr   model_and_utilsr	   r
   )
audio_pathoutput_path	is_speech r   S/home/kuhnn/.local/lib/python3.10/site-packages/TTS/bin/remove_silence_using_vad.pyadjust_path_and_remove_silence   s   $
r   c                  C   s`  t tjtjtjtjdd} tdt|  tj	std tj
r&td ntd g }| rtjdkrhtjtjd}tt|t| t| d	d
}W d    n1 sTw   Y  |D ]\}}|sf|| q[nt| D ]}t|\}}|s{|| qlttjtjdddd}|D ]}|t|d  qW d    d S 1 sw   Y  d S td d S )NT)	recursivez> Number of files: z<> Ignoring files that already exist in the output idrectory.z?> Trimming just the beginning and the end with nonspeech parts.z> Trimming all nonspeech parts.r   )	processeszProcessing audio files)totaldesczfiltered_files.txtwzutf-8)encoding
z> No files Found !)sortedglobr   r   r   r   r   printlenr   r	   num_processesmultiprocessingPoollistr   imap_unorderedr   appendopenr   writestr)filesfiltered_filespoolresultsr   r   ffiler   r   r   preprocess_audios"   sF    




"r9   __main__zpython TTS/bin/remove_silence_using_vad.py -i=VCTK-Corpus/ -o=VCTK-Corpus-removed-silence/ -g=wav48_silence_trimmed/*/*_mic1.flac --trim_just_beginning_and_end True)descriptionz-iz--input_dirzDataset root dirT)typehelprequiredz-oz--output_dirzOutput Dataset dirr   )r<   r=   defaultz-fz--forceF
store_truez!Force the replace of exists files)r?   actionr=   z-gz--globz**/*.wavzDpath in glob format for acess wavs from input_dir. ex: wav48/*/*.wav)r<   r?   r=   z-tz--trim_just_beginning_and_endzIf True this script will trim just the beginning and end nonspeech parts. If False all nonspeech parts will be trim. Default Truez-cz
--use_cudazIf True use cudaz
--use_onnxzIf True use onnxz--num_processeszNumber of processes to use)r
   use_onnx)argparser'   r+   r   r   torchr   TTS.utils.vadr   r   set_num_threadsr   r9   __name__ArgumentParserparseradd_argumentr2   boolint
parse_argsr   r   r   r
   rB   r   r   r   r   r   <module>   sr    
+

