Spaces:
Running
Running
import pytest | |
from voicevox_engine.tts_pipeline.phoneme import Phoneme | |
TRUE_NUM_PHONEME = 45 | |
def test_unknown_phoneme() -> None: | |
"""Unknown音素 `xx` のID取得を拒否する""" | |
# Inputs | |
unknown_phoneme = Phoneme("xx") | |
# Tests | |
with pytest.raises(ValueError): | |
unknown_phoneme.id | |
# list_idx 0 1 2 3 4 5 6 7 8 9 10 1 2 3 4 5 6 7 8 9 | |
hello_hiho = "sil k o N n i ch i w a pau h i h o d e s U sil".split() | |
ojt_hello_hiho = [Phoneme(s) for s in hello_hiho] | |
def test_const() -> None: | |
assert Phoneme._NUM_PHONEME == TRUE_NUM_PHONEME | |
assert Phoneme._PHONEME_LIST[1] == "A" | |
assert Phoneme._PHONEME_LIST[14] == "e" | |
assert Phoneme._PHONEME_LIST[26] == "m" | |
assert Phoneme._PHONEME_LIST[38] == "ts" | |
assert Phoneme._PHONEME_LIST[41] == "v" | |
def test_convert() -> None: | |
sil_phoneme = Phoneme("sil") | |
assert sil_phoneme._phoneme == "pau" | |
def test_phoneme_id() -> None: | |
ojt_str_hello_hiho = " ".join([str(p.id) for p in ojt_hello_hiho]) | |
assert ojt_str_hello_hiho == "0 23 30 4 28 21 10 21 42 7 0 19 21 19 30 12 14 35 6 0" | |
def test_onehot() -> None: | |
phoneme_id_list = [ | |
0, | |
23, | |
30, | |
4, | |
28, | |
21, | |
10, | |
21, | |
42, | |
7, | |
0, | |
19, | |
21, | |
19, | |
30, | |
12, | |
14, | |
35, | |
6, | |
0, | |
] | |
for i, phoneme in enumerate(ojt_hello_hiho): | |
for j in range(TRUE_NUM_PHONEME): | |
if phoneme_id_list[i] == j: | |
assert phoneme.onehot[j] == 1.0 | |
else: | |
assert phoneme.onehot[j] == 0.0 | |