Skip to content

Commit cb04833

Browse files
committed
remove extra tokens
1 parent e774912 commit cb04833

File tree

3 files changed

+20
-32
lines changed

3 files changed

+20
-32
lines changed

egs/ljspeech/TTS/local/prepare_token_file.py

+3-16
Original file line numberDiff line numberDiff line change
@@ -43,23 +43,10 @@ def get_args():
4343

4444
def get_token2id(filename: Path) -> Dict[str, int]:
4545
"""Get a dict that maps token to IDs, and save it to the given filename."""
46-
extra_tokens = [
47-
"<blk>", # 0 for blank
48-
"<sos>", # 1 for sos
49-
"<eos>", # 2 for eos
50-
"<unk>", # 3 for OOV
51-
]
52-
53-
all_tokens = list(get_espeak_map().keys())
54-
55-
for t in extra_tokens:
56-
assert t not in all_tokens, t
57-
58-
all_tokens = extra_tokens + all_tokens
59-
46+
all_tokens = get_espeak_map()
6047
with open(filename, "w", encoding="utf-8") as f:
61-
for i, token in enumerate(all_tokens):
62-
f.write(f"{token} {i}\n")
48+
for token, token_id in all_tokens.items():
49+
f.write(f"{token} {token_id[0]}\n")
6350

6451

6552
if __name__ == "__main__":

egs/ljspeech/TTS/prepare.sh

+4-2
Original file line numberDiff line numberDiff line change
@@ -82,7 +82,8 @@ if [ $stage -le 3 ] && [ $stop_stage -ge 3 ]; then
8282
log "Stage 3: Prepare phoneme tokens for LJSpeech"
8383
# We assume you have installed piper_phonemize and espnet_tts_frontend.
8484
# If not, please install them with:
85-
# - piper_phonemize: refer to https://github.com/rhasspy/piper-phonemize
85+
# - piper_phonemize: refer to https://github.com/rhasspy/piper-phonemize,
86+
# could install the pre-built wheels from https://github.com/csukuangfj/piper-phonemize/releases/tag/2023.12.5
8687
# - espnet_tts_frontend, `pip install espnet_tts_frontend`, refer to https://github.com/espnet/espnet_tts_frontend/
8788
if [ ! -e data/spectrogram/.ljspeech_with_token.done ]; then
8889
./local/prepare_tokens_ljspeech.py
@@ -119,7 +120,8 @@ if [ $stage -le 5 ] && [ $stop_stage -ge 5 ]; then
119120
log "Stage 5: Generate token file"
120121
# We assume you have installed piper_phonemize and espnet_tts_frontend.
121122
# If not, please install them with:
122-
# - piper_phonemize: refer to https://github.com/rhasspy/piper-phonemize
123+
# - piper_phonemize: refer to https://github.com/rhasspy/piper-phonemize,
124+
# could install the pre-built wheels from https://github.com/csukuangfj/piper-phonemize/releases/tag/2023.12.5
123125
# - espnet_tts_frontend, `pip install espnet_tts_frontend`, refer to https://github.com/espnet/espnet_tts_frontend/
124126
if [ ! -e data/tokens.txt ]; then
125127
./local/prepare_token_file.py --tokens data/tokens.txt

egs/ljspeech/TTS/vits/tokenizer.py

+13-14
Original file line numberDiff line numberDiff line change
@@ -38,12 +38,15 @@ def __init__(self, tokens: str):
3838
id = int(info[0])
3939
else:
4040
token, id = info[0], int(info[1])
41+
assert token not in self.token2id, token
4142
self.token2id[token] = id
4243

43-
self.blank_id = self.token2id["<blk>"]
44-
self.sos_id = self.token2id["<sos>"]
45-
self.eos_id = self.token2id["<eos>"]
46-
self.oov_id = self.token2id["<unk>"]
44+
# Refer to https://github.com/rhasspy/piper/blob/master/TRAINING.md
45+
self.pad_id = self.token2id["_"] # padding
46+
self.sos_id = self.token2id["^"] # beginning of an utterance (bos)
47+
self.eos_id = self.token2id["$"] # end of an utterance (eos)
48+
self.space_id = self.token2id[" "] # word separator (whitespace)
49+
4750
self.vocab_size = len(self.token2id)
4851

4952
def texts_to_token_ids(
@@ -80,13 +83,11 @@ def texts_to_token_ids(
8083

8184
token_ids = []
8285
for t in tokens:
83-
if t in self.token2id:
84-
token_ids.append(self.token2id[t])
85-
else:
86-
token_ids.append(self.oov_id)
86+
assert t in self.token2id, t
87+
token_ids.append(self.token2id[t])
8788

8889
if intersperse_blank:
89-
token_ids = intersperse(token_ids, self.blank_id)
90+
token_ids = intersperse(token_ids, self.pad_id)
9091
if add_sos:
9192
token_ids = [self.sos_id] + token_ids
9293
if add_eos:
@@ -122,13 +123,11 @@ def tokens_to_token_ids(
122123
for tokens in tokens_list:
123124
token_ids = []
124125
for t in tokens:
125-
if t in self.token2id:
126-
token_ids.append(self.token2id[t])
127-
else:
128-
token_ids.append(self.oov_id)
126+
assert t in self.token2id, t
127+
token_ids.append(self.token2id[t])
129128

130129
if intersperse_blank:
131-
token_ids = intersperse(token_ids, self.blank_id)
130+
token_ids = intersperse(token_ids, self.pad_id)
132131
if add_sos:
133132
token_ids = [self.sos_id] + token_ids
134133
if add_eos:

0 commit comments

Comments
 (0)