הנה סקריפט שכתבתי עכשיו בסיוע chatGPT שמבצע הגברה לכל קבצי ה WAV שבתיקיה מסוימת ותתי התיקיות שלה ואז יוצר תיקיה בשם output בתיקיית השורש (היחסית) ובתוכה עץ התיקיות המקורי עם כל הקבצים החדשים בפנים
שים לב לכמה דברים:
א. יש להפעיל את הסקריפט מתוך התיקיה שבתוכה קבצי ה WAV
ב. הסקריפט משתמש בספריה בשם audioop שהיא ספריה bulid-in אבל היא תוסר בגרסה 3.13 של פייתון
ג. אם בעץ התיקיות המקורי היו קבצים שהם לא קבצים wav או קבצי wav פגומים או סתם כאלו שההגברה לא צלחה עליהם, הם לא יהיו בתיקיה החדשה שתיווצר (תיקיית ה output)
ד. אני מאמין שיש דרכים טובות יותר לעשות הגברה לקבצי שמע תוך מזעור הפגיעה באיכות
ה. הסקריפט מגביר פי 1.5, אפשר לשנות את הערך הזה בקוד של הסקריפט (המשתנה volume_factor) והתקייה שעליה הסקריפט רץ היא ה WD שלו (נמצא במשתנה input_folder בקוד)
import os
import wave
import audioop
def increase_volume(input_file, output_file, factor):
with wave.open(input_file, 'rb') as input_wav:
params = input_wav.getparams()
frames = input_wav.readframes(params.nframes)
increased_frames = audioop.mul(frames, params.sampwidth, factor)
with wave.open(output_file, 'wb') as output_wav:
output_wav.setparams(params)
output_wav.writeframes(increased_frames)
def process_files(input_folder, volume_factor):
for root, dirs, files in os.walk(input_folder):
for file in files:
if file.endswith('.wav'):
input_path = os.path.join(root, file)
output_path = os.path.join("output", root, file)
os.makedirs(os.path.dirname(output_path), exist_ok=True)
increase_volume(input_path, output_path, volume_factor)
input_folder = '.'
volume_factor = 1.5
process_files(input_folder, volume_factor)