async def synthesize_text(sentence: Text) -> Text: """ Synthesizes a text sentence into audio Parameters ---------- sentence : str sentence to be synthesized Returns ------- str base64 encoded string with audio """ if sentence is None: return None sentence = re.sub(r'Protocolo: \w{8}-\w{4}-\w{4}-\w{4}-\w{12}', ' ', sentence) fp = re.sub(r'\W', '', sentence.lower()) if not fp: return None fp = hashlib.sha1(str.encode(fp)).hexdigest() fp = output_dir / '{}.ogg'.format(fp) if fp not in output_dir.glob('*.ogg'): if not LIVE_TTS: return None sentence = phoneme_cleaners(sentence) tts(fp, sentence) with open(fp, 'rb') as audio_file: encoded_bytes = base64.b64encode(audio_file.read()) encoded_string = encoded_bytes.decode() return encoded_string
def test_expand_numbers() -> None: assert "minus one" == phoneme_cleaners("-1") assert "one" == phoneme_cleaners("1")
def test_expand_numbers() -> None: assert phoneme_cleaners("-1") == 'minus one' assert phoneme_cleaners("1") == 'one'
def test_currency() -> None: assert phoneme_cleaners("It's $10.50") == "It's ten dollars fifty cents" assert phoneme_cleaners("£1.1") == "one pound sterling one penny" assert phoneme_cleaners("¥1") == "one yen"
def test_expand_numbers() -> None: assert phoneme_cleaners("-1") == "minus one" assert phoneme_cleaners("1") == "one"