Spaces:
Runtime error
Runtime error
Update app.py
Browse files
app.py
CHANGED
@@ -33,17 +33,40 @@ def generate_animation(script, output_video_file="animated_script.mp4"):
|
|
33 |
|
34 |
return output_video_file
|
35 |
|
36 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
37 |
def generate_kids_music(theme, output_music_file="kids_music.wav"):
|
38 |
-
#
|
39 |
-
|
40 |
-
|
41 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
42 |
|
43 |
-
# Extend for more complexity, then export
|
44 |
-
music.export(output_music_file, format="wav")
|
45 |
return output_music_file
|
46 |
|
|
|
47 |
# Function to combine kids music with a simple animation
|
48 |
def generate_kids_animation_with_music(theme, output_video_file="kids_animation.mp4"):
|
49 |
# Step 1: Generate kids music
|
|
|
33 |
|
34 |
return output_video_file
|
35 |
|
36 |
+
import numpy as np
|
37 |
+
from scipy.io.wavfile import write
|
38 |
+
from pydub import AudioSegment
|
39 |
+
|
40 |
+
def generate_sine_wave(frequency, duration, sample_rate=44100, amplitude=0.5):
|
41 |
+
"""Generate a sine wave."""
|
42 |
+
t = np.linspace(0, duration, int(sample_rate * duration), False)
|
43 |
+
wave = amplitude * np.sin(2 * np.pi * frequency * t)
|
44 |
+
return wave
|
45 |
+
|
46 |
def generate_kids_music(theme, output_music_file="kids_music.wav"):
|
47 |
+
# Generate a sine wave for C4, D4, E4 notes
|
48 |
+
sample_rate = 44100
|
49 |
+
duration = 2 # 2 seconds per note
|
50 |
+
|
51 |
+
c4_wave = generate_sine_wave(261.63, duration) # C4
|
52 |
+
d4_wave = generate_sine_wave(293.66, duration) # D4
|
53 |
+
e4_wave = generate_sine_wave(329.63, duration) # E4
|
54 |
+
|
55 |
+
# Combine the waves
|
56 |
+
wave = np.concatenate([c4_wave, d4_wave, e4_wave])
|
57 |
+
|
58 |
+
# Normalize to 16-bit PCM format
|
59 |
+
audio_wave = np.int16(wave * 32767)
|
60 |
+
|
61 |
+
# Save as a wav file
|
62 |
+
write(output_music_file, sample_rate, audio_wave)
|
63 |
+
|
64 |
+
# Convert to AudioSegment (optional if you need to modify)
|
65 |
+
audio_segment = AudioSegment.from_wav(output_music_file)
|
66 |
|
|
|
|
|
67 |
return output_music_file
|
68 |
|
69 |
+
|
70 |
# Function to combine kids music with a simple animation
|
71 |
def generate_kids_animation_with_music(theme, output_video_file="kids_animation.mp4"):
|
72 |
# Step 1: Generate kids music
|