1
0
forked from cgvr/DeltaVR
Files
DeltaVR3DModelGeneration/3d-generation-pipeline/generate_voiceline_amplitude_curves.py

52 lines
1.2 KiB
Python

import os
import librosa
import numpy as np
# === CONFIG ===
FRAME_DURATION = 0.02 # 20 ms windows
GAIN = 1.0 # multiply RMS values (set to e.g. 30.0 if you want larger values)
EXTENSION = ".txt" # output file extension
def process_wav(filepath):
print(f"Processing: {filepath}")
# Load audio
audio, sr = librosa.load(filepath, mono=True)
# Frame size in samples
frame_len = int(FRAME_DURATION * sr)
hop_len = frame_len
# Compute RMS
rms = librosa.feature.rms(
y=audio,
frame_length=frame_len,
hop_length=hop_len
)[0]
# Apply optional gain
rms = rms * GAIN
# Save to .txt
out_path = os.path.splitext(filepath)[0] + EXTENSION
np.savetxt(out_path, rms, fmt="%.8f")
print(f"Saved RMS → {out_path}")
def process_folder(folder_path):
print(f"Scanning folder: {folder_path}")
for filename in os.listdir(folder_path):
if filename.lower().endswith(".wav"):
filepath = os.path.join(folder_path, filename)
process_wav(filepath)
print("Done!")
# === Run script ===
if __name__ == "__main__":
folder = input("Enter folder path: ").strip()
process_folder(folder)