Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Support text normalization via rule FST #407

Merged
merged 2 commits into from
Nov 5, 2023

Conversation

csukuangfj
Copy link
Collaborator

Usage

First, download moel files:

wget https://huggingface.co/csukuangfj/vits-zh-aishell3/resolve/main/vits-aishell3.onnx
wget https://huggingface.co/csukuangfj/vits-zh-aishell3/resolve/main/lexicon.txt
wget https://huggingface.co/csukuangfj/vits-zh-aishell3/resolve/main/tokens.txt
wget https://huggingface.co/csukuangfj/vits-zh-aishell3/resolve/main/rule.fst

After building sherpa-onnx, you can use

./build/bin/sherpa-onnx-offline-tts  \
  --vits-model=./vits-aishell3.onnx \
  --vits-lexicon=./lexicon.txt \
  --vits-tokens=./tokens.txt \
  --sid=99 \
  --debug=1 \
  --output-filename=./99.wav  \
  --tts-rule-fsts="./rule.fst" \
  "理科全省前7434名、文科全省前871名. 在传统高考地区中,文科考生想要考上中南大学,最低也要进入全省前2400名,理科生想考上中南大学,最低需要排进全省前21409名. 99.99"

The output is given below:

/Users/fangjun/open-source/sherpa-onnx/sherpa-onnx/csrc/offline-tts-vits-model.cc:Init:72 ---vits model---
punctuation=, . : ; ! ? , 。 : ; ! ? 、
add_blank=0
sample_rate=8000
language=Chinese
n_speakers=174
comment=aishell3
model_type=vits


/Users/fangjun/open-source/sherpa-onnx/sherpa-onnx/csrc/offline-tts-vits-impl.h:OfflineTtsVitsImpl:40 rule fst: ./rule.fst
/Users/fangjun/open-source/sherpa-onnx/sherpa-onnx/csrc/offline-tts-vits-impl.h:Generate:80 Raw text: 理科全省前7434名、文科全省前871名. 在传统高考地
区中,文科考生想要考上中南大学,最低也要进入全省前2400名,理科生想考上中南大学,最低需要排进全省前21409名. 99.99
/Users/fangjun/open-source/sherpa-onnx/sherpa-onnx/csrc/offline-tts-vits-impl.h:Generate:87 After normalizing: 理科全省前七千四百三十四名、文科全省前
八百七十一名. 在传统高考地区中,文科考生想要考上中南大学,最低也要进入全省前二千四百名,理科生想考上中南大学,最低需要排进全省前二万一千四百零九名. 九
十九点九九
Input text in string: 理科全省前七千四百三十四名、文科全省前八百七十一名. 在传统高考地区中,文科考生想要考上中南大学,最低也要进入全省前二千四百名,理
科生想考上中南大学,最低需要排进全省前二万一千四百零九名. 九十九点九九
Input text in bytes: e7 90 86 e7 a7 91 e5 85 a8 e7 9c 81 e5 89 8d e4 b8 83 e5 8d 83 e5 9b 9b e7 99 be e4 b8 89 e5 8d 81 e5 9b 9b e5 90 8d e3 80 81 e6
96 87 e7 a7 91 e5 85 a8 e7 9c 81 e5 89 8d e5 85 ab e7 99 be e4 b8 83 e5 8d 81 e4 b8 80 e5 90 8d 2e 20 e5 9c a8 e4 bc a0 e7 bb 9f e9 ab 98 e8 80 83 e5
9c b0 e5 8c ba e4 b8 ad ef bc 8c e6 96 87 e7 a7 91 e8 80 83 e7 94 9f e6 83 b3 e8 a6 81 e8 80 83 e4 b8 8a e4 b8 ad e5 8d 97 e5 a4 a7 e5 ad a6 ef bc 8c e6 9c 80 e4 bd 8e e4 b9 9f e8 a6 81 e8 bf 9b e5 85 a5 e5 85 a8 e7 9c 81 e5 89 8d e4 ba 8c e5 8d 83 e5 9b 9b e7 99 be e5 90 8d ef bc 8c e7 90 86 e7 a7
91 e7 94 9f e6 83 b3 e8 80 83 e4 b8 8a e4 b8 ad e5 8d 97 e5 a4 a7 e5 ad a6 ef bc 8c e6 9c 80 e4 bd 8e e9 9c 80 e8 a6 81 e6 8e 92 e8 bf 9b e5 85 a8 e7
9c 81 e5 89 8d e4 ba 8c e4 b8 87 e4 b8 80 e5 8d 83 e5 9b 9b e7 99 be e9 9b b6 e4 b9 9d e5 90 8d 2e 20 e4 b9 9d e5 8d 81 e4 b9 9d e7 82 b9 e4 b9 9d e4
b9 9d
After splitting to words: 理 科 全 省 前 七 千 四 百 三 十 四 名 、 文 科 全 省 前 八 百 七 十 一 名 . 在 传 统 高 考 地 区 中 , 文 科 考 生 想 要 考
 上 中 南 大 学 , 最 低 也 要 进 入 全 省 前 二 千 四 百 名 , 理 科 生 想 考 上 中 南 大 学 , 最 低 需 要 排 进 全 省 前 二 万 一 千 四 百 零 九 名 . 九 十 九 点 九 九
The text is: 理科全省前7434名、文科全省前871名. 在传统高考地区中,文科考生想要考上中南大学,最低也要进入全省前2400名,理科生想考上中南大学,最低需要排
进全省前21409名. 99.99. Speaker ID: 99
Saved to ./99.wav successfully!

@csukuangfj
Copy link
Collaborator Author

Will add scripts for creating rule.fst in separate PRs.

@csukuangfj csukuangfj merged commit d1a450b into k2-fsa:master Nov 5, 2023
136 of 145 checks passed
@csukuangfj csukuangfj deleted the text-normalization branch November 5, 2023 00:59
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant