Spaces:
Running
on
Zero
Running
on
Zero
File size: 825 Bytes
a602628 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
import random
from typing import List, Set
from .models import AudioSample
def select_genre_indices(samples: List[AudioSample], genre_ratio: int) -> Set[int]:
"""Select indices that should use genre, based on ratio."""
num_genre_samples = int(len(samples) * genre_ratio / 100)
random.seed(42)
all_indices = list(range(len(samples)))
random.shuffle(all_indices)
return set(all_indices[:num_genre_samples])
def build_metas_str(sample: AudioSample) -> str:
"""Construct metadata string for text prompt."""
return (
f"- bpm: {sample.bpm if sample.bpm else 'N/A'}\n"
f"- timesignature: {sample.timesignature if sample.timesignature else 'N/A'}\n"
f"- keyscale: {sample.keyscale if sample.keyscale else 'N/A'}\n"
f"- duration: {sample.duration} seconds\n"
)
|