#!/usr/bin/env python3 # -*- coding: utf-8 -*- # Copyright 2022 Xiaomi Corp. (authors: Mingshuang Luo) # # See ../../../../LICENSE for clarification regarding multiple authors # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. """ This script takes as input "text_full", which includes all transcript files for a dataset: - text_full and generates the output file text_normalize which is implemented to normalize text: - text """ import argparse from tqdm import tqdm def get_parser(): parser = argparse.ArgumentParser( description="Normalizing for text", formatter_class=argparse.ArgumentDefaultsHelpFormatter, ) parser.add_argument( "--input", default="data/lang_char/text_full", type=str, help="the input text file", ) parser.add_argument( "--output", default="data/lang_char/text", type=str, help="the text implemented with normalizer", ) return parser def text_normalize(str_line: str): line = str_line.strip().rstrip("\n") line = line.replace("", "") line = line.replace("<%>", "") line = line.replace("<->", "") line = line.replace("<$>", "") line = line.replace("<#>", "") line = line.replace("<_>", "") line = line.replace("", "") line = line.replace("`", "") line = line.replace("'", "") line = line.replace("&", "") line = line.replace(",", "") line = line.replace("A", "A") line = line.replace("C", "C") line = line.replace("D", "D") line = line.replace("E", "E") line = line.replace("G", "G") line = line.replace("H", "H") line = line.replace("I", "I") line = line.replace("N", "N") line = line.replace("U", "U") line = line.replace("W", "W") line = line.replace("Y", "Y") line = line.replace("a", "A") line = line.replace("b", "B") line = line.replace("c", "C") line = line.replace("k", "K") line = line.replace("t", "T") line = line.replace(",", "") line = line.replace("丶", "") line = line.replace("。", "") line = line.replace("、", "") line = line.replace("?", "") line = line.replace("·", "") line = line.replace("*", "") line = line.replace("!", "") line = line.replace("$", "") line = line.replace("+", "") line = line.replace("-", "") line = line.replace("\\", "") line = line.replace("?", "") line = line.replace("¥", "") line = line.replace("%", "") line = line.replace(".", "") line = line.replace("<", "") line = line.replace("&", "") line = line.replace("~", "") line = line.replace("=", "") line = line.replace(":", "") line = line.replace("!", "") line = line.replace("/", "") line = line.replace("‘", "") line = line.replace("’", "") line = line.replace("“", "") line = line.replace("”", "") line = line.replace("[", "") line = line.replace("]", "") line = line.replace("@", "") line = line.replace("#", "") line = line.replace(":", "") line = line.replace(";", "") line = line.replace("…", "") line = line.replace("《", "") line = line.replace("》", "") line = line.upper() return line def main(): parser = get_parser() args = parser.parse_args() input_file = args.input output_file = args.output f = open(input_file, "r", encoding="utf-8") lines = f.readlines() new_lines = [] for i in tqdm(range(len(lines))): new_line = text_normalize(lines[i]) new_lines.append(new_line) f_new = open(output_file, "w", encoding="utf-8") for line in new_lines: f_new.write(line) f_new.write("\n") if __name__ == "__main__": main()