Example #1
0
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
Example #2
0
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'
Example #4
0
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"
Example #5
0
def test_expand_numbers() -> None:
    assert phoneme_cleaners("-1") == "minus one"
    assert phoneme_cleaners("1") == "one"