Jirat Jaturanpinyo
Upload voicevox_engine
edc06cb verified
raw
history blame
1.63 kB
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