Spaces:
Running
Running
import gradio as gr | |
from gtts import gTTS | |
import numpy as np | |
import io | |
import base64 | |
import os | |
def text_to_speech(text, language='en'): | |
tts = gTTS(text=text, lang=language) | |
fp = io.BytesIO() | |
tts.write_to_fp(fp) | |
fp.seek(0) | |
return fp | |
def generate_sound(frequency, duration): | |
# Generate a simple sine wave | |
t = np.linspace(0, duration, int(44100 * duration), False) | |
audio = np.sin(2 * np.pi * frequency * t) | |
return (44100, audio.astype(np.float32)) | |
def generate_voiceover(text, language): | |
audio_fp = text_to_speech(text, language) | |
return audio_fp | |
def generate_sound_effect(frequency, duration): | |
return generate_sound(frequency, duration) | |
# Gradio interface | |
iface = gr.Interface( | |
fn=[generate_voiceover, generate_sound_effect], | |
inputs=[ | |
gr.Textbox(label="Enter text for speech generation"), | |
gr.Dropdown(choices=["en", "es", "fr", "de", "it"], label="Select Language", value="en"), | |
gr.Number(label="Frequency (Hz)", value=440), | |
gr.Number(label="Duration (seconds)", value=1) | |
], | |
outputs=[ | |
gr.Audio(label="Generated Speech"), | |
gr.Audio(label="Generated Sound Effect") | |
], | |
title="Simple Text-to-Speech and Sound Generation Tool", | |
description="Generate speech from text and create simple sound effects." | |
) | |
iface.launch() |