Spaces:
Runtime error
Runtime error
File size: 2,413 Bytes
0d07348 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 |
import random
from pydub import AudioSegment
def generate_kids_music(theme):
# Create a simple melody based on themes
notes = {
"birthday": ["C4", "E4", "G4", "C5"],
"ocean": ["C4", "D4", "E4", "F4"],
"adventure": ["E4", "G4", "A4", "C5"]
}
selected_notes = notes.get(theme, ["C4", "E4", "G4"]) # Default notes if theme not found
music = AudioSegment.silent(duration=1000) # Start with 1 second of silence
for note in selected_notes:
# Generate a simple sine wave for each note
frequency = 261.63 if note == "C4" else 329.63 if note == "E4" else 392.00 if note == "G4" else 523.25
sine_wave = AudioSegment.sine(frequency=frequency, duration=500) # 0.5 second for each note
music += sine_wave
# Export the generated music
output_file = f"{theme}_kids_music.wav"
music.export(output_file, format="wav")
return output_file
from transformers import pipeline
# Load the GPT-2 model for text generation
comedy_generator = pipeline('text-generation', model='gpt2')
def generate_comedy_script(prompt):
result = comedy_generator(prompt, max_length=150, num_return_sequences=1)
return result[0]['generated_text']
from gtts import gTTS
def script_to_audio(script):
tts = gTTS(script, lang='en')
audio_file = "comedy_script.mp3"
tts.save(audio_file)
return audio_file
import gradio as gr
def generate_music_and_comedy(theme, prompt):
# Generate music
music_file = generate_kids_music(theme)
# Generate comedy script
comedy_script = generate_comedy_script(prompt)
# Convert the comedy script to audio
audio_file = script_to_audio(comedy_script)
return music_file, comedy_script, audio_file
# Gradio Interface
iface = gr.Interface(
fn=generate_music_and_comedy,
inputs=[
gr.Dropdown(choices=["birthday", "ocean", "adventure"], label="Select Theme for Kids' Music"),
gr.Textbox(lines=2, placeholder="Enter a prompt for comedy...", label="Comedy Prompt")
],
outputs=[
gr.Audio(label="Generated Kids' Music"),
gr.Textbox(label="Generated Comedy Script"),
gr.Audio(label="Comedy Audio")
],
title="AI Music and Comedy Generator",
description="Generate unique music for kids based on themes and comedic scripts from your prompts."
)
# Launch the app
iface.launch()
|