Fangjun Kuang
Committed by GitHub

Fix Python TTS examples for models using jieba. (#861)

@@ -11,7 +11,7 @@ while the model is still generating. @@ -11,7 +11,7 @@ while the model is still generating.
11 11
12 Usage: 12 Usage:
13 13
14 -Example (1/2) 14 +Example (1/3)
15 15
16 wget https://github.com/k2-fsa/sherpa-onnx/releases/download/tts-models/vits-piper-en_US-amy-low.tar.bz2 16 wget https://github.com/k2-fsa/sherpa-onnx/releases/download/tts-models/vits-piper-en_US-amy-low.tar.bz2
17 tar xf vits-piper-en_US-amy-low.tar.bz2 17 tar xf vits-piper-en_US-amy-low.tar.bz2
@@ -23,20 +23,37 @@ python3 ./python-api-examples/offline-tts-play.py \ @@ -23,20 +23,37 @@ python3 ./python-api-examples/offline-tts-play.py \
23 --output-filename=./generated.wav \ 23 --output-filename=./generated.wav \
24 "Today as always, men fall into two groups: slaves and free men. Whoever does not have two-thirds of his day for himself, is a slave, whatever he may be: a statesman, a businessman, an official, or a scholar." 24 "Today as always, men fall into two groups: slaves and free men. Whoever does not have two-thirds of his day for himself, is a slave, whatever he may be: a statesman, a businessman, an official, or a scholar."
25 25
26 -Example (2/2) 26 +Example (2/3)
27 27
28 wget https://github.com/k2-fsa/sherpa-onnx/releases/download/tts-models/vits-zh-aishell3.tar.bz2 28 wget https://github.com/k2-fsa/sherpa-onnx/releases/download/tts-models/vits-zh-aishell3.tar.bz2
29 tar xvf vits-zh-aishell3.tar.bz2 29 tar xvf vits-zh-aishell3.tar.bz2
30 30
31 python3 ./python-api-examples/offline-tts-play.py \ 31 python3 ./python-api-examples/offline-tts-play.py \
32 - --vits-model=./vits-aishell3.onnx \  
33 - --vits-lexicon=./lexicon.txt \  
34 - --vits-tokens=./tokens.txt \  
35 - --tts-rule-fsts=./rule.fst \ 32 + --vits-model=./vits-icefall-zh-aishell3/model.onnx \
  33 + --vits-lexicon=./vits-icefall-zh-aishell3/lexicon.txt \
  34 + --vits-tokens=./vits-icefall-zh-aishell3/tokens.txt \
  35 + --tts-rule-fsts='./vits-icefall-zh-aishell3/phone.fst,./vits-icefall-zh-aishell3/date.fst,./vits-icefall-zh-aishell3/number.fst' \
36 --sid=21 \ 36 --sid=21 \
37 --output-filename=./liubei-21.wav \ 37 --output-filename=./liubei-21.wav \
38 "勿以恶小而为之,勿以善小而不为。惟贤惟德,能服于人。122334" 38 "勿以恶小而为之,勿以善小而不为。惟贤惟德,能服于人。122334"
39 39
  40 +Example (3/3)
  41 +
  42 +wget https://github.com/k2-fsa/sherpa-onnx/releases/download/tts-models/sherpa-onnx-vits-zh-ll.tar.bz2
  43 +tar xvf sherpa-onnx-vits-zh-ll.tar.bz2
  44 +rm sherpa-onnx-vits-zh-ll.tar.bz2
  45 +
  46 +python3 ./python-api-examples/offline-tts-play.py \
  47 + --vits-model=./sherpa-onnx-vits-zh-ll/model.onnx \
  48 + --vits-lexicon=./sherpa-onnx-vits-zh-ll/lexicon.txt \
  49 + --vits-tokens=./sherpa-onnx-vits-zh-ll/tokens.txt \
  50 + --tts-rule-fsts='./sherpa-onnx-vits-zh-ll/phone.fst,./sherpa-onnx-vits-zh-ll/date.fst,./sherpa-onnx-vits-zh-ll/number.fst' \
  51 + --vits-dict-dir=./sherpa-onnx-vits-zh-ll/dict \
  52 + --sid=2 \
  53 + --output-filename=./test-2.wav \
  54 + "当夜幕降临,星光点点,伴随着微风拂面,我在静谧中感受着时光的流转,思念如涟漪荡漾,梦境如画卷展开,我与自然融为一体,沉静在这片宁静的美丽之中,感受着生命的奇迹与温柔。2024年5月11号,拨打110或者18920240511。123456块钱。"
  55 +
  56 +
40 You can find more models at 57 You can find more models at
41 https://github.com/k2-fsa/sherpa-onnx/releases/tag/tts-models 58 https://github.com/k2-fsa/sherpa-onnx/releases/tag/tts-models
42 59
@@ -96,11 +113,18 @@ def get_args(): @@ -96,11 +113,18 @@ def get_args():
96 "--vits-data-dir", 113 "--vits-data-dir",
97 type=str, 114 type=str,
98 default="", 115 default="",
99 - help="""Path to the dict director of espeak-ng. If it is specified, 116 + help="""Path to the dict directory of espeak-ng. If it is specified,
100 --vits-lexicon and --vits-tokens are ignored""", 117 --vits-lexicon and --vits-tokens are ignored""",
101 ) 118 )
102 119
103 parser.add_argument( 120 parser.add_argument(
  121 + "--vits-dict-dir",
  122 + type=str,
  123 + default="",
  124 + help="Path to the dict directory for models using jieba",
  125 + )
  126 +
  127 + parser.add_argument(
104 "--tts-rule-fsts", 128 "--tts-rule-fsts",
105 type=str, 129 type=str,
106 default="", 130 default="",
@@ -279,6 +303,7 @@ def main(): @@ -279,6 +303,7 @@ def main():
279 model=args.vits_model, 303 model=args.vits_model,
280 lexicon=args.vits_lexicon, 304 lexicon=args.vits_lexicon,
281 data_dir=args.vits_data_dir, 305 data_dir=args.vits_data_dir,
  306 + dict_dir=args.vits_dict_dir,
282 tokens=args.vits_tokens, 307 tokens=args.vits_tokens,
283 ), 308 ),
284 provider=args.provider, 309 provider=args.provider,
@@ -12,7 +12,7 @@ generated audio. @@ -12,7 +12,7 @@ generated audio.
12 12
13 Usage: 13 Usage:
14 14
15 -Example (1/2) 15 +Example (1/3)
16 16
17 wget https://github.com/k2-fsa/sherpa-onnx/releases/download/tts-models/vits-piper-en_US-amy-low.tar.bz2 17 wget https://github.com/k2-fsa/sherpa-onnx/releases/download/tts-models/vits-piper-en_US-amy-low.tar.bz2
18 tar xf vits-piper-en_US-amy-low.tar.bz2 18 tar xf vits-piper-en_US-amy-low.tar.bz2
@@ -24,20 +24,37 @@ python3 ./python-api-examples/offline-tts.py \ @@ -24,20 +24,37 @@ python3 ./python-api-examples/offline-tts.py \
24 --output-filename=./generated.wav \ 24 --output-filename=./generated.wav \
25 "Today as always, men fall into two groups: slaves and free men. Whoever does not have two-thirds of his day for himself, is a slave, whatever he may be: a statesman, a businessman, an official, or a scholar." 25 "Today as always, men fall into two groups: slaves and free men. Whoever does not have two-thirds of his day for himself, is a slave, whatever he may be: a statesman, a businessman, an official, or a scholar."
26 26
27 -Example (2/2) 27 +Example (2/3)
28 28
29 wget https://github.com/k2-fsa/sherpa-onnx/releases/download/tts-models/vits-icefall-zh-aishell3.tar.bz2 29 wget https://github.com/k2-fsa/sherpa-onnx/releases/download/tts-models/vits-icefall-zh-aishell3.tar.bz2
30 tar xvf vits-icefall-zh-aishell3.tar.bz2 30 tar xvf vits-icefall-zh-aishell3.tar.bz2
31 31
32 python3 ./python-api-examples/offline-tts.py \ 32 python3 ./python-api-examples/offline-tts.py \
33 - --vits-model=./model.onnx \  
34 - --vits-lexicon=./lexicon.txt \  
35 - --vits-tokens=./tokens.txt \  
36 - --tts-rule-fsts='./phone.fst,./date.fst,./number.fst' \ 33 + --vits-model=./vits-icefall-zh-aishell3/model.onnx \
  34 + --vits-lexicon=./vits-icefall-zh-aishell3/lexicon.txt \
  35 + --vits-tokens=./vits-icefall-zh-aishell3/tokens.txt \
  36 + --tts-rule-fsts='./vits-icefall-zh-aishell3/phone.fst,./vits-icefall-zh-aishell3/date.fst,./vits-icefall-zh-aishell3/number.fst' \
37 --sid=21 \ 37 --sid=21 \
38 --output-filename=./liubei-21.wav \ 38 --output-filename=./liubei-21.wav \
39 "勿以恶小而为之,勿以善小而不为。惟贤惟德,能服于人。122334" 39 "勿以恶小而为之,勿以善小而不为。惟贤惟德,能服于人。122334"
40 40
  41 +Example (3/3)
  42 +
  43 +wget https://github.com/k2-fsa/sherpa-onnx/releases/download/tts-models/sherpa-onnx-vits-zh-ll.tar.bz2
  44 +tar xvf sherpa-onnx-vits-zh-ll.tar.bz2
  45 +rm sherpa-onnx-vits-zh-ll.tar.bz2
  46 +
  47 +python3 ./python-api-examples/offline-tts.py \
  48 + --vits-model=./sherpa-onnx-vits-zh-ll/model.onnx \
  49 + --vits-lexicon=./sherpa-onnx-vits-zh-ll/lexicon.txt \
  50 + --vits-tokens=./sherpa-onnx-vits-zh-ll/tokens.txt \
  51 + --tts-rule-fsts='./sherpa-onnx-vits-zh-ll/phone.fst,./sherpa-onnx-vits-zh-ll/date.fst,./sherpa-onnx-vits-zh-ll/number.fst' \
  52 + --vits-dict-dir=./sherpa-onnx-vits-zh-ll/dict \
  53 + --sid=2 \
  54 + --output-filename=./test-2.wav \
  55 + "当夜幕降临,星光点点,伴随着微风拂面,我在静谧中感受着时光的流转,思念如涟漪荡漾,梦境如画卷展开,我与自然融为一体,沉静在这片宁静的美丽之中,感受着生命的奇迹与温柔。2024年5月11号,拨打110或者18920240511。123456块钱。"
  56 +
  57 +
41 You can find more models at 58 You can find more models at
42 https://github.com/k2-fsa/sherpa-onnx/releases/tag/tts-models 59 https://github.com/k2-fsa/sherpa-onnx/releases/tag/tts-models
43 60
@@ -83,11 +100,18 @@ def get_args(): @@ -83,11 +100,18 @@ def get_args():
83 "--vits-data-dir", 100 "--vits-data-dir",
84 type=str, 101 type=str,
85 default="", 102 default="",
86 - help="""Path to the dict director of espeak-ng. If it is specified, 103 + help="""Path to the dict directory of espeak-ng. If it is specified,
87 --vits-lexicon and --vits-tokens are ignored""", 104 --vits-lexicon and --vits-tokens are ignored""",
88 ) 105 )
89 106
90 parser.add_argument( 107 parser.add_argument(
  108 + "--vits-dict-dir",
  109 + type=str,
  110 + default="",
  111 + help="Path to the dict directory for models using jieba",
  112 + )
  113 +
  114 + parser.add_argument(
91 "--tts-rule-fsts", 115 "--tts-rule-fsts",
92 type=str, 116 type=str,
93 default="", 117 default="",
@@ -169,6 +193,7 @@ def main(): @@ -169,6 +193,7 @@ def main():
169 model=args.vits_model, 193 model=args.vits_model,
170 lexicon=args.vits_lexicon, 194 lexicon=args.vits_lexicon,
171 data_dir=args.vits_data_dir, 195 data_dir=args.vits_data_dir,
  196 + dict_dir=args.vits_dict_dir,
172 tokens=args.vits_tokens, 197 tokens=args.vits_tokens,
173 ), 198 ),
174 provider=args.provider, 199 provider=args.provider,