Spaces:
Runtime error
Runtime error
import requests | |
import gradio as gr | |
import openai | |
from io import BytesIO | |
from pydub import AudioSegment | |
# Set up OpenAI API | |
openai.api_key = "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" | |
# Set up FPT API | |
tts = "IsZh7u8eHrjHgALqn0XS3M4vvouN331F" | |
tts_api_url = "https://api.fpt.ai/hmi/tts/v5" | |
def generate_presentation(topic): | |
prompt = f"Please explain {topic} in the most easy and attractive way possible." | |
# Set up OpenAI API parameters | |
model_engine = "text-davinci-002" | |
max_tokens = 1048 | |
temperature = 0.7 | |
# Generate the presentation content using OpenAI's GPT-3 API | |
response = openai.Completion.create( | |
engine=model_engine, | |
prompt=prompt, | |
max_tokens=max_tokens, | |
temperature=temperature | |
) | |
return response.choices[0].text | |
def generate_audio(text): | |
# Set up text-to-speech API parameters | |
voice = "banmai" | |
speed = "0" | |
# Send a request to the text-to-speech API | |
headers = { | |
"api-key": tts, | |
"voice": voice, | |
"speed": speed | |
} | |
data = {"text": text} | |
response = requests.post(tts_api_url, headers=headers, json=data) | |
# Convert the response audio to a playable format | |
audio_bytes = BytesIO(response.content) | |
audio_segment = AudioSegment.from_file(audio_bytes.getvalue(), format="mp3") | |
audio_segment.export("presentation_audio.mp3", format="mp3") | |
return audio_bytes | |
def generate_presentation_and_audio(topic): | |
presentation = generate_presentation(topic) | |
audio = generate_audio(presentation) | |
return presentation, audio | |
def main(): | |
title = "AICademy" | |
description = "Generate a presentation on any topic using GPT-3 and convert it to audio using FPT's text-to-speech API." | |
inputs = gr.inputs.Textbox(label="Enter the topic for your presentation:") | |
outputs = [ | |
gr.outputs.Audio(label="Presentation Audio", type="numpy"), | |
gr.outputs.Textbox(label="Presentation Text") | |
] | |
examples = [ | |
["What is artificial intelligence?"], | |
["How do black holes form?"], | |
["Explain the concept of quantum computing."], | |
] | |
iface = gr.Interface(fn=generate_presentation_and_audio, inputs=inputs, outputs=outputs, title=title, description=description, examples=examples) | |
iface.launch() | |
if __name__ == "__main__": | |
main() | |