Spaces:
Running
on
Zero
Running
on
Zero
| 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" | |
| ) | |