Spaces:
Running
Running
| import os | |
| import argparse | |
| from tqdm import tqdm | |
| from pydub import AudioSegment | |
| from pydub.silence import split_on_silence | |
| from pydub import effects | |
| # this file is for VCTK, use after CDC | |
| def trim_silence(iWave, oWave): | |
| try: | |
| audio = AudioSegment.from_wav(iWave) | |
| # audio = effects.normalize(audio, 6)# max - 6dB | |
| audio_chunks = split_on_silence( | |
| audio, | |
| min_silence_len=200, | |
| silence_thresh=-45, | |
| keep_silence=200, | |
| ) | |
| for chunk in audio_chunks[1:]: | |
| audio_chunks[0] += chunk | |
| audio_chunks[0].export(oWave, format="wav") | |
| except Exception as e: | |
| print(str(e)) | |
| print(iWave) | |
| if __name__ == "__main__": | |
| parser = argparse.ArgumentParser() | |
| parser.add_argument("-i", help="input path", dest="inPath", required=True) | |
| parser.add_argument("-o", help="output path", dest="outPath", required=True) | |
| args = parser.parse_args() | |
| print(args.inPath) | |
| print(args.outPath) | |
| os.makedirs(args.outPath, exist_ok=True) | |
| rootPath = args.inPath | |
| outPath = args.outPath | |
| for spks in os.listdir(rootPath): | |
| if (os.path.isdir(f"./{rootPath}/{spks}")): | |
| os.makedirs(f"./{outPath}/{spks}", exist_ok=True) | |
| files = [f for f in os.listdir(f"./{rootPath}/{spks}") if f.endswith(".wav")] | |
| for file in tqdm(files, desc=f'Processing sil {spks}'): | |
| iWave = f"./{rootPath}/{spks}/{file}" | |
| oWave = f"./{outPath}/{spks}/{file}" | |
| trim_silence(iWave, oWave) | |