VoiceOversV3 / app.py
capradeepgujaran's picture
Update app.py
a4db718 verified
raw
history blame
1.34 kB
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()