Spaces:
Sleeping
Sleeping
import gradio as gr | |
import random | |
from gtts import gTTS | |
import base64 | |
from io import BytesIO | |
from transformers import pipeline | |
#https://huggingface.co/facebook/opt-1.3b | |
generator = pipeline('text-generation', model="facebook/opt-1.3b") | |
def create_audio(input_str): | |
output_raw= generator(input_str) | |
"""print (output_raw)""" | |
output_str = output_raw[0]['generated_text'] | |
output_str = output_str.replace("\n", "") | |
output_str = output_str.replace(input_str, "") | |
# Convert the sentence to speech using gTTS | |
tts = gTTS(text=output_str, lang="en") | |
# Save the speech as a bytestring in memory | |
tts_io = BytesIO() | |
tts.write_to_fp(tts_io) | |
tts_io.seek(0) | |
tts_data = tts_io.read() | |
# Encode the speech data in base64 | |
tts_base64 = base64.b64encode(tts_data).decode("utf-8") | |
# Return the html code to play the audio | |
html = f"<audio src='data:audio/mpeg;base64,{tts_base64}' controls autoplay></audio>" | |
return (output_raw, html) | |
demo = gr.Interface( | |
fn=create_audio, | |
inputs="text", | |
outputs=["text","html"], | |
title="Random Audio Sentence Generator", | |
description="This interface generates a random audio sentence and plays it as a html output." | |
) | |
demo.launch() |