def test_language_switch(): text = '\n'.join([ "j'aime l'anglais", "j'aime le football", "football", "surtout le real madrid", "n'utilise pas google" ]) backend = EspeakBackend('fr-fr', language_switch='keep-flags') out = backend._phonemize_aux(text, separator.Separator(), True) assert out == [ 'ʒɛm lɑ̃ɡlɛ', 'ʒɛm lə- (en)fʊtbɔːl(fr)', '(en)fʊtbɔːl(fr)', 'syʁtu lə- (en)ɹiəl(fr) madʁid', 'nytiliz pa (en)ɡuːɡəl(fr)' ] # default behavior is to keep the flags backend = EspeakBackend('fr-fr') out = backend._phonemize_aux(text, separator.Separator(), True) assert out == [ 'ʒɛm lɑ̃ɡlɛ', 'ʒɛm lə- (en)fʊtbɔːl(fr)', '(en)fʊtbɔːl(fr)', 'syʁtu lə- (en)ɹiəl(fr) madʁid', 'nytiliz pa (en)ɡuːɡəl(fr)' ] backend = EspeakBackend('fr-fr', language_switch='remove-flags') out = backend._phonemize_aux(text, separator.Separator(), True) assert out == [ 'ʒɛm lɑ̃ɡlɛ', 'ʒɛm lə- fʊtbɔːl', 'fʊtbɔːl', 'syʁtu lə- ɹiəl madʁid', 'nytiliz pa ɡuːɡəl' ] backend = EspeakBackend('fr-fr', language_switch='remove-utterance') out = backend._phonemize_aux(text, separator.Separator(), True) assert out == ['ʒɛm lɑ̃ɡlɛ'] with pytest.raises(RuntimeError): backend = EspeakBackend('fr-fr', language_switch='foo')
def test_stress(): backend = EspeakBackend('en-us', with_stress=False) assert u'həloʊ wɜːld' == backend._phonemize_aux( u'hello world', separator.default_separator, True)[0] backend = EspeakBackend('en-us', with_stress=True) assert u'həlˈoʊ wˈɜːld' == backend._phonemize_aux( u'hello world', separator.default_separator, True)[0]
def test_french(): backend = EspeakBackend('fr-fr') text = u'bonjour le monde' sep = separator.Separator(word=';eword ', syllable=None, phone=' ') expected = [u'b ɔ̃ ʒ u ʁ ;eword l ə ;eword m ɔ̃ d ;eword '] out = backend._phonemize_aux(text, sep, False) assert out == expected
def test_french(): backend = EspeakBackend('fr-fr') text = u'bonjour le monde' sep = separator.Separator(word=';eword ', syllable=None, phone=' ') expected = [u'b ɔ̃ ʒ u ʁ ;eword l ə- ;eword m ɔ̃ d ;eword '] out = backend._phonemize_aux(text, sep, False) assert out == expected
def test_arabic(): backend = EspeakBackend('ar') text = u'السلام عليكم' sep = separator.Separator() # Arabic seems to have changed starting at espeak-ng-1.49.3 if tuple(EspeakBackend.version().split('.')) >= ('1', '49', '3'): expected = [u'ʔassalaːm ʕliːkm '] else: expected = [u'ʔassalaam ʕaliijkum '] out = backend._phonemize_aux(text, sep, False) assert out == expected
def test_english(): backend = EspeakBackend('en-us') text = u'hello world\ngoodbye\nthird line\nyet another' out = '\n'.join(backend._phonemize_aux( text, separator.default_separator, True)) assert out == u'həloʊ wɜːld\nɡʊdbaɪ\nθɜːd laɪn\njɛt ɐnʌðɚ'