Spaces:
Running
Running
import unittest | |
import epitran | |
from aip_trainer import pronunciationTrainer | |
from aip_trainer.models import RuleBasedModels | |
class TestPhonemConverter(unittest.TestCase): | |
def test_english_ok(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_german_ok(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') | |
trainer_SST_lambda = {'de': pronunciationTrainer.getTrainer("de")} | |
class TestScore(unittest.TestCase): | |
def test_exact_transcription(self): | |
words_real = 'Ich habe sehr viel glück, am leben und gesund zu sein' | |
real_and_transcribed_words, _, _ = trainer_SST_lambda['de'].matchSampleAndRecordedWords( | |
words_real, words_real) | |
pronunciation_accuracy, _ = trainer_SST_lambda['de'].getPronunciationAccuracy( | |
real_and_transcribed_words) | |
self.assertEqual(int(pronunciation_accuracy), 100) | |
def test_incorrect_transcription(self): | |
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' | |
real_and_transcribed_words, _, _ = trainer_SST_lambda['de'].matchSampleAndRecordedWords( | |
words_real, words_transcribed) | |
pronunciation_accuracy, _ = trainer_SST_lambda['de'].getPronunciationAccuracy( | |
real_and_transcribed_words) | |
self.assertEqual(int(pronunciation_accuracy), 71) | |
if __name__ == '__main__': | |
unittest.main() | |