How to play Audio from an Audio file using anvil

This works. I’m just saving the mp3 and then reading it back in.

import anvil.server
from gtts import gTTS
from io import BytesIO
import os

@anvil.server.callable
def speak(audio_string):
    mp3_fp = BytesIO()
    tts = gTTS(audio_string, lang='en')
    tts.write_to_fp(mp3_fp)

    tts.save("my_file.mp3")

    with open('my_file.mp3', 'rb') as f:
        data=f.read()

    tts_blob = anvil.BlobMedia('audio/mpeg', data, name='audio.mp3')
    os.remove('my_file.mp3')

    return tts_blob
1 Like