2019-03-27 13:56:40 +00:00
import unittest
import torch as T
2019-08-29 09:49:53 +00:00
from TTS . utils . text import *
2019-03-27 13:56:40 +00:00
def test_phoneme_to_sequence ( ) :
text = " Recent research at Harvard has shown meditating for as little as 8 weeks can actually increase, the grey matter in the parts of the brain responsible for emotional regulation and learning! "
text_cleaner = [ " phoneme_cleaners " ]
lang = " en-us "
sequence = phoneme_to_sequence ( text , text_cleaner , lang )
text_hat = sequence_to_phoneme ( sequence )
2019-04-12 14:12:15 +00:00
gt = " ɹiː sənt ɹɪ sɜː tʃ æt hɑ ː ɹvɚd hɐz ʃoʊn mɛdᵻteɪ ɾɪ ŋ fɔː ɹ æz lɪ ɾəl æz eɪ t wiː ks kæn æktʃuː əli ɪ nkɹiː s, ðə ɡ ɹeɪ mæɾɚɹ ɪ nðə pɑ ː ɹts ʌvðə bɹeɪ n ɹɪ spɑ ː nsəbəl fɔː ɹ ɪ moʊʃənəl ɹɛɡ juː leɪ ʃən ænd lɜː nɪ ŋ! "
2019-03-27 13:56:40 +00:00
assert text_hat == gt
2019-03-29 14:42:46 +00:00
# multiple punctuations
text = " Be a voice, not an! echo? "
sequence = phoneme_to_sequence ( text , text_cleaner , lang )
text_hat = sequence_to_phoneme ( sequence )
2019-04-12 14:12:15 +00:00
gt = " biː ɐ vɔɪ s, nɑ ː t ɐn! ɛkoʊ? "
2019-03-29 14:42:46 +00:00
print ( text_hat )
print ( len ( sequence ) )
assert text_hat == gt
# not ending with punctuation
text = " Be a voice, not an! echo "
sequence = phoneme_to_sequence ( text , text_cleaner , lang )
text_hat = sequence_to_phoneme ( sequence )
2019-04-12 14:12:15 +00:00
gt = " biː ɐ vɔɪ s, nɑ ː t ɐn! ɛkoʊ "
2019-03-29 14:42:46 +00:00
print ( text_hat )
print ( len ( sequence ) )
assert text_hat == gt
# original
text = " Be a voice, not an echo! "
sequence = phoneme_to_sequence ( text , text_cleaner , lang )
text_hat = sequence_to_phoneme ( sequence )
2019-04-12 14:12:15 +00:00
gt = " biː ɐ vɔɪ s, nɑ ː t ɐn ɛkoʊ! "
2019-03-29 14:42:46 +00:00
print ( text_hat )
print ( len ( sequence ) )
assert text_hat == gt
# extra space after the sentence
text = " Be a voice, not an! echo. "
sequence = phoneme_to_sequence ( text , text_cleaner , lang )
text_hat = sequence_to_phoneme ( sequence )
2019-04-12 14:12:15 +00:00
gt = " biː ɐ vɔɪ s, nɑ ː t ɐn! ɛkoʊ. "
print ( text_hat )
print ( len ( sequence ) )
assert text_hat == gt
# extra space after the sentence
text = " Be a voice, not an! echo. "
sequence = phoneme_to_sequence ( text , text_cleaner , lang , True )
text_hat = sequence_to_phoneme ( sequence )
gt = " ^biː ɐ vɔɪ s, nɑ ː t ɐn! ɛkoʊ.~ "
2019-03-29 14:42:46 +00:00
print ( text_hat )
print ( len ( sequence ) )
assert text_hat == gt
2019-05-17 14:15:43 +00:00
# padding char
text = " _Be a _voice, not an! echo_ "
sequence = phoneme_to_sequence ( text , text_cleaner , lang )
text_hat = sequence_to_phoneme ( sequence )
gt = " biː ɐ vɔɪ s, nɑ ː t ɐn! ɛkoʊ "
print ( text_hat )
print ( len ( sequence ) )
assert text_hat == gt
2019-03-27 13:56:40 +00:00
def test_text2phone ( ) :
text = " Recent research at Harvard has shown meditating for as little as 8 weeks can actually increase, the grey matter in the parts of the brain responsible for emotional regulation and learning! "
2020-02-12 11:21:53 +00:00
gt = " ɹ|iː |s|ə|n|t| |ɹ|ɪ |s|ɜː|tʃ| |æ|t| |h|ɑːɹ|v|ɚ|d| |h|ɐ|z| |ʃ|oʊ|n| |m|ɛ|d|ᵻ|t|eɪ |ɾ|ɪ |ŋ| |f|ɔː|ɹ| |æ|z| |l|ɪ |ɾ|əl| |æ|z| |eɪ |t| |w|iː |k|s| |k|æ|n| |æ|k|tʃ|uː |əl|i| |ɪ |n|k|ɹ|iː |s|,| |ð|ə| |ɡ |ɹ|eɪ | |m|æ|ɾ|ɚ|ɹ| |ɪ |n|ð|ə| |p|ɑːɹ|t|s| |ʌ|v|ð|ə| |b|ɹ|eɪ |n| |ɹ|ɪ |s|p|ɑ ː |n|s|ə|b|əl| |f|ɔː|ɹ| |ɪ |m|oʊ|ʃ|ə|n|əl| |ɹ|ɛ|ɡ |j|uː |l|eɪ |ʃ|ə|n| |æ|n|d| |l|ɜː|n|ɪ |ŋ|! "
2019-03-27 13:56:40 +00:00
lang = " en-us "
2020-02-13 16:23:37 +00:00
ph = text2phone ( text , lang )
assert gt == ph , f " \n { phonemes } \n vs \n { gt } "