# WeTextProcessing **Repository Path**: ruby11dog/WeTextProcessing ## Basic Information - **Project Name**: WeTextProcessing - **Description**: No description available - **Primary Language**: Unknown - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2024-03-15 - **Last Updated**: 2024-03-15 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ## Text Normalization & Inverse Text Normalization ### 0. Brief Introduction ```diff - **Must Read Doc** (In Chinese): https://mp.weixin.qq.com/s/q_11lck78qcjylHCi6wVsQ ``` [WeTextProcessing: Production First & Production Ready Text Processing Toolkit](https://mp.weixin.qq.com/s/q_11lck78qcjylHCi6wVsQ) #### 0.1 Text Normalization
Cover
#### 0.2 Inverse Text Normalization
Cover
### 1. How To Use #### 1.1 Quick Start: ```bash # install pip install WeTextProcessing ``` Command-usage: ```bash wetn --text "2.5平方电线" weitn --text "二点五平方电线" ``` Python usage: ```py # tn usage >>> from tn.chinese.normalizer import Normalizer >>> normalizer = Normalizer() >>> normalizer.normalize("2.5平方电线") # itn usage >>> from itn.chinese.inverse_normalizer import InverseNormalizer >>> invnormalizer = InverseNormalizer() >>> invnormalizer.normalize("二点五平方电线") ``` #### 1.2 Advanced Usage: DIY your own rules && Deploy WeTextProcessing with cpp runtime !! For users who want modifications and adapt tn/itn rules to fix badcase, please try: ``` bash git clone https://github.com/wenet-e2e/WeTextProcessing.git cd WeTextProcessing pip install -r requirements.txt pre-commit install # for clean and tidy code # `overwrite_cache` will rebuild all rules according to # your modifications on tn/chinese/rules/xx.py (itn/chinese/rules/xx.py). # After rebuild, you can find new far files at `$PWD/tn` and `$PWD/itn`. python -m tn --text "2.5平方电线" --overwrite_cache python -m itn --text "二点五平方电线" --overwrite_cache ``` Once you successfully rebuild your rules, you can deploy them either with your installed pypi packages: ```py # tn usage >>> from tn.chinese.normalizer import Normalizer >>> normalizer = Normalizer(cache_dir="PATH_TO_GIT_CLONED_WETEXTPROCESSING/tn") >>> normalizer.normalize("2.5平方电线") # itn usage >>> from itn.chinese.inverse_normalizer import InverseNormalizer >>> invnormalizer = InverseNormalizer(cache_dir="PATH_TO_GIT_CLONED_WETEXTPROCESSING/itn") >>> invnormalizer.normalize("二点五平方电线") ``` Or with cpp runtime: ```bash cmake -B build -S runtime -DCMAKE_BUILD_TYPE=Release cmake --build build # tn usage cache_dir=PATH_TO_GIT_CLONED_WETEXTPROCESSING/tn ./build/processor_main --tagger $cache_dir/zh_tn_tagger.fst --verbalizer $cache_dir/zh_tn_verbalizer.fst --text "2.5平方电线" # itn usage cache_dir=PATH_TO_GIT_CLONED_WETEXTPROCESSING/itn ./build/processor_main --tagger $cache_dir/zh_itn_tagger.fst --verbalizer $cache_dir/zh_itn_verbalizer.fst --text "二点五平方电线" ``` ### 2. TN Pipeline Please refer to [TN.README](tn/README.md) ### 3. ITN Pipeline Please refer to [ITN.README](itn/README.md) ## Discussion & Communication For Chinese users, you can aslo scan the QR code on the left to follow our offical account of WeNet. We created a WeChat group for better discussion and quicker response. Please scan the personal QR code on the right, and the guy is responsible for inviting you to the chat group. | | | | ---- | ---- | Or you can directly discuss on [Github Issues](https://github.com/wenet-e2e/WeTextProcessing/issues). ## Acknowledge 1. Thank the authors of foundational libraries like [OpenFst](https://www.openfst.org/twiki/bin/view/FST/WebHome) & [Pynini](https://www.openfst.org/twiki/bin/view/GRM/Pynini). 3. Thank [NeMo](https://github.com/NVIDIA/NeMo) team & NeMo open-source community. 2. Thank [Zhenxiang Ma](https://github.com/mzxcpp), [Jiayu Du](https://github.com/dophist), and [SpeechColab](https://github.com/SpeechColab) organization. 3. Referred [Pynini](https://github.com/kylebgorman/pynini) for reading the FAR, and printing the shortest path of a lattice in the C++ runtime. 4. Referred [TN of NeMo](https://github.com/NVIDIA/NeMo/tree/main/nemo_text_processing/text_normalization/zh) for the data to build the tagger graph. 5. Referred [ITN of chinese_text_normalization](https://github.com/speechio/chinese_text_normalization/tree/master/thrax/src/cn) for the data to build the tagger graph.