Spaces:
Running
on
T4
Running
on
T4
Fix short Melody used for longer duration generation
Browse files
audiocraft/utils/extend.py
CHANGED
|
@@ -25,7 +25,11 @@ def separate_audio_segments(audio, segment_duration=30, overlap=1):
|
|
| 25 |
|
| 26 |
segments = []
|
| 27 |
start_sample = 0
|
| 28 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
| 29 |
while total_samples >= segment_samples:
|
| 30 |
# Collect the segment
|
| 31 |
# the end sample is the start sample plus the segment samples,
|
|
@@ -41,7 +45,7 @@ def separate_audio_segments(audio, segment_duration=30, overlap=1):
|
|
| 41 |
if total_samples > 0:
|
| 42 |
segment = audio_data[-segment_samples:]
|
| 43 |
segments.append((sr, segment))
|
| 44 |
-
print(f"separate_audio_segments: {len(segments)} segments")
|
| 45 |
return segments
|
| 46 |
|
| 47 |
def generate_music_segments(text, melody, seed, MODEL, duration:int=10, overlap:int=1, segment_duration:int=30, prompt_index:int=0, harmony_only:bool= False):
|
|
|
|
| 25 |
|
| 26 |
segments = []
|
| 27 |
start_sample = 0
|
| 28 |
+
# handle the case where the audio is shorter than the segment duration
|
| 29 |
+
if total_samples == 0:
|
| 30 |
+
total_samples = 1
|
| 31 |
+
segment_samples = len(audio_data)
|
| 32 |
+
overlap_samples = 0
|
| 33 |
while total_samples >= segment_samples:
|
| 34 |
# Collect the segment
|
| 35 |
# the end sample is the start sample plus the segment samples,
|
|
|
|
| 45 |
if total_samples > 0:
|
| 46 |
segment = audio_data[-segment_samples:]
|
| 47 |
segments.append((sr, segment))
|
| 48 |
+
print(f"separate_audio_segments: {len(segments)} segments of length {segment_samples // sr} seconds")
|
| 49 |
return segments
|
| 50 |
|
| 51 |
def generate_music_segments(text, melody, seed, MODEL, duration:int=10, overlap:int=1, segment_duration:int=30, prompt_index:int=0, harmony_only:bool= False):
|