File size: 1,526 Bytes
4cafb0a
 
 
85b7206
4cafb0a
 
 
 
 
 
 
85b7206
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
4cafb0a
 
 
 
85b7206
4cafb0a
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
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()