mirror of
https://github.com/k2-fsa/icefall.git
synced 2025-08-08 09:32:20 +00:00
* add pruned transducer stateless5 recipe for tal_csasr * do some changes for merging * change for conformer.py * add wer and cer for Chinese and English respectively * fix a error for conformer.py
148 lines
4.2 KiB
Python
Executable File
148 lines
4.2 KiB
Python
Executable File
#!/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("<sil>", "")
|
||
line = line.replace("<%>", "")
|
||
line = line.replace("<->", "")
|
||
line = line.replace("<$>", "")
|
||
line = line.replace("<#>", "")
|
||
line = line.replace("<_>", "")
|
||
line = line.replace("<space>", "")
|
||
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()
|