Spaces:
Running
Running
alessandro trinca tornidor
feat: port whisper and faster-whisper support from https://github.com/Thiagohgl/ai-pronunciation-trainer
85b7206
import os | |
import unittest | |
import lambdaTTS | |
from constants import app_logger | |
from tests import utilities | |
def exec_test_lambda_tts(cls, text, language, expected_hash_list): | |
import random | |
cls.maxDiff = None | |
tmp_rnd = str(random.random()) | |
tmp_prefix = f"test_lambdaTTS_{language}_ok_{tmp_rnd}_" | |
tmp_suffix = ".wav" | |
output = lambdaTTS.get_tts( | |
text, language, tmp_prefix=tmp_prefix, tmp_suffix=tmp_suffix | |
) | |
assert tmp_prefix in output | |
assert tmp_suffix in output | |
assert os.path.exists(output) and os.path.isfile(output) | |
output_hash = utilities.hash_calculate(output, is_file=True, read_mode="rb") | |
app_logger.info(f"output_hash '{text}', '{language}' => {output_hash}") | |
cls.assertIn(output_hash, expected_hash_list) | |
os.unlink(output) | |
def assert_raises_get_tts(cls, real_text, language, exc, error_message): | |
with cls.assertRaises(exc): | |
try: | |
lambdaTTS.get_tts(real_text, language) | |
except exc as e: | |
cls.assertEqual(str(e), error_message) | |
raise e | |
class TestLambdaTTS(unittest.TestCase): | |
def test_lambdaTTS_en_ok(self): | |
exec_test_lambda_tts( | |
self, | |
"Hi there, how are you?", | |
"en", | |
[ | |
b'6rZkDkF/Jc/7S5aTBlyNvntMng1+N81Flndx3WM5U0g=', | |
b'lb3j7epbN0DuP1xKWBRIewB8A7lYZQDi6HoZdxk12Ic=', | |
b'S7ADQbzBhmtBhYy1lLTQysv9ScAy2A0WUhG3RtWwvws=' | |
] | |
) | |
def test_lambdaTTS_de_ok(self): | |
exec_test_lambda_tts( | |
self, | |
"Ich bin Alex!", | |
"de", | |
[ | |
b'vNsDzs4ULJI2Ml0qyIrVaegI+7jK79btoq+O5FjuMEo=', | |
b'4CCWiz7DOOHSmyYcS8KTBvk2E3zHtaX5umtksVln5VA=', | |
b'h1qqA9SK04nt7HYbb8Co+jxeV2vo0G7bnRhGktRIXaE=' | |
] | |
) | |
def test_lambdaTTS_empty_text(self): | |
assert_raises_get_tts(self, "", "fake language", ValueError, "cannot read an empty/None text: ''...") | |
def test_lambdaTTS_empty_language(self): | |
assert_raises_get_tts(self, "fake text", "", NotImplementedError, "Not tested/supported with '' language...") | |
if __name__ == "__main__": | |
unittest.main() | |