testchatbot / app.py
zmbfeng's picture
the real thing
94aba93
raw
history blame
1.18 kB
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()