|
|
import os |
|
|
import argparse |
|
|
import traceback |
|
|
|
|
|
from modelscope.pipelines import pipeline |
|
|
from modelscope.utils.constant import Tasks |
|
|
from tqdm import tqdm |
|
|
|
|
|
path_denoise = "tools/denoise-model/speech_frcrn_ans_cirm_16k" |
|
|
path_denoise = path_denoise if os.path.exists(path_denoise) else "damo/speech_frcrn_ans_cirm_16k" |
|
|
ans = pipeline(Tasks.acoustic_noise_suppression, model=path_denoise) |
|
|
|
|
|
|
|
|
def execute_denoise(input_folder, output_folder): |
|
|
os.makedirs(output_folder, exist_ok=True) |
|
|
|
|
|
|
|
|
for name in tqdm(os.listdir(input_folder)): |
|
|
try: |
|
|
ans("%s/%s" % (input_folder, name), output_path="%s/%s" % (output_folder, name)) |
|
|
except: |
|
|
traceback.print_exc() |
|
|
|
|
|
|
|
|
if __name__ == "__main__": |
|
|
parser = argparse.ArgumentParser() |
|
|
parser.add_argument( |
|
|
"-i", "--input_folder", type=str, required=True, help="Path to the folder containing WAV files." |
|
|
) |
|
|
parser.add_argument("-o", "--output_folder", type=str, required=True, help="Output folder to store transcriptions.") |
|
|
parser.add_argument( |
|
|
"-p", "--precision", type=str, default="float16", choices=["float16", "float32"], help="fp16 or fp32" |
|
|
) |
|
|
cmd = parser.parse_args() |
|
|
execute_denoise( |
|
|
input_folder=cmd.input_folder, |
|
|
output_folder=cmd.output_folder, |
|
|
) |
|
|
|