-
Notifications
You must be signed in to change notification settings - Fork 7
Open
Description
API version 0.1.0 proposes an API #31 that resembles Scaper but with the spatial functionalities added. Here is an example script:
import numpy as np
import spatialscaper as ss
import os
# Constants
NSCAPES = 25
FOREGROUND_DIR = "datasets/sound_event_datasets/FSD50K_FMA"
BACKGROUND_DIR = ""
RIR_DIR = "datasets/rir_datasets"
ROOM = "metu"
FORMAT = "mic"
MIN_EVENTS = 3
MAX_EVENTS = 8
DURATION = 60.0 # Duration in seconds
SR = 24000 # Sampling rate
OUTPUT_DIR = "output"
REF_DB = -65 # Reference decibel level
# Function to generate a soundscape
def generate_soundscape(index):
track_name = f"fold5_room1_mix00{index + 1}"
ssc = ss.Scaper(
DURATION, FOREGROUND_DIR, BACKGROUND_DIR, RIR_DIR, ROOM, FORMAT, SR
)
ssc.ref_db = REF_DB
# Add background
ssc.add_background()
# Add a random number of foreground events
n_events = np.random.randint(MIN_EVENTS, MAX_EVENTS + 1)
for _ in range(n_events):
ssc.add_event(event_position=("moving", ("uniform", None, None)))
audiofile = os.path.join(OUTPUT_DIR, FORMAT, track_name)
labelfile = os.path.join(OUTPUT_DIR, "labels", track_name)
ssc.generate(audiofile, labelfile)
# Main loop for generating soundscapes
for iscape in range(NSCAPES):
print(f"Generating soundscape: {iscape + 1}/{NSCAPES}")
generate_soundscape(iscape)
Metadata
Metadata
Assignees
Labels
No labels