ai-pronunciation-trainer / tests /models /test_rulebasedmodels.py
alessandro trinca tornidor
feat: port whisper and faster-whisper support from https://github.com/Thiagohgl/ai-pronunciation-trainer
85b7206
import unittest
import epitran
import RuleBasedModels
words_real = 'Ich habe sehr viel glück, am leben und gesund zu sein'
words_transcribed = 'Ic hab zeh viel guck am und gesund tu sein'
class TestPhonemConverter(unittest.TestCase):
def test_get_phonem_converter_de(self):
converter = RuleBasedModels.get_phonem_converter('de')
self.assertIsInstance(converter, RuleBasedModels.EpitranPhonemConverter)
def test_get_phonem_converter_en(self):
converter = RuleBasedModels.get_phonem_converter('en')
self.assertIsInstance(converter, RuleBasedModels.EngPhonemConverter)
def test_get_phonem_converter_invalid_language(self):
with self.assertRaises(ValueError):
try:
RuleBasedModels.get_phonem_converter('fr')
except ValueError as ve:
self.assertEqual(str(ve), 'Language not implemented')
raise ve
def test_converttophonem_de(self):
phonem_converter = RuleBasedModels.EngPhonemConverter()
output = phonem_converter.convertToPhonem('Hello, this is a test')
self.assertEqual(output, 'hɛˈloʊ, ðɪs ɪz ə tɛst')
def test_converttophonem_en(self):
deu_latn = epitran.Epitran('deu-Latn')
phonem_converter = RuleBasedModels.EpitranPhonemConverter(deu_latn)
output = phonem_converter.convertToPhonem('Hallo, das ist ein Test')
self.assertEqual(output, 'haloː, daːs ɪst aɪ̯n tɛst')
if __name__ == '__main__':
unittest.main()