espeak-phonemizer/tests/test_phonemizer.py
2021-08-25 17:17:46 -04:00

53 lines
1.9 KiB
Python
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#!/usr/bin/env python3
"""Tests for Phonemizer class"""
import unittest
from espeak_phonemizer import Phonemizer
class PhonemizerTestCase(unittest.TestCase):
"""Test cases for Phonemizer"""
def test_en(self):
"""Test basic English"""
phonemizer = Phonemizer(default_voice="en-us")
phonemes = phonemizer.phonemize("test")
self.assertEqual(phonemes, "tˈɛst")
def test_no_stress(self):
"""Test stress removal"""
phonemizer = Phonemizer(default_voice="en-us")
phonemes = phonemizer.phonemize("test", no_stress=True)
self.assertEqual(phonemes, "tɛst")
def test_phoneme_separator(self):
"""Test with phoneme separator"""
phonemizer = Phonemizer(default_voice="en-us")
phonemes = phonemizer.phonemize("test", phoneme_separator="_")
self.assertEqual(phonemes, "t_ˈɛ_s_t")
def test_word_phoneme_separators(self):
"""Test with word and phoneme separators"""
phonemizer = Phonemizer(default_voice="en-us")
phonemes = phonemizer.phonemize(
"test 1", phoneme_separator="_", word_separator="#"
)
self.assertEqual(phonemes, "t_ˈɛ_s_t#w_ˈʌ_n")
def test_keep_clause_breakers(self):
"""Test keeping punctuation characters that break apart clauses"""
phonemizer = Phonemizer(default_voice="en-us")
phonemes = phonemizer.phonemize("test: 1, 2, 3!", keep_clause_breakers=True)
self.assertEqual(phonemes, "tˈɛst: wˈʌn, tˈuː, θɹˈiː!")
def test_keep_language_flags(self):
"""Test keeping language-switching flags"""
phonemizer = Phonemizer(default_voice="fr")
# Without language flags
phonemes = phonemizer.phonemize("library")
self.assertEqual(phonemes, "lˈaɪbɹəɹi")
# With language flags
phonemes = phonemizer.phonemize("library", keep_language_flags=True)
self.assertEqual(phonemes, "(en)lˈaɪbɹəɹi(fr)")