From 206989819004102b392e11b94d9b87fbf136d530 Mon Sep 17 00:00:00 2001 From: marcsello Date: Wed, 24 Nov 2021 20:01:56 +0100 Subject: [PATCH] Added big chop --- .gitignore | 10 ++++++++++ big_chop.py | 33 +++++++++++++++++++++++++++++++++ 2 files changed, 43 insertions(+) create mode 100644 .gitignore create mode 100644 big_chop.py diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..d3861ed --- /dev/null +++ b/.gitignore @@ -0,0 +1,10 @@ +*.swp +venv +*.pyc +__pycache__/* +__pycache__ +*.wpr +*.log +.idea +*.wav +big_chop_output/ \ No newline at end of file diff --git a/big_chop.py b/big_chop.py new file mode 100644 index 0000000..19b6d7a --- /dev/null +++ b/big_chop.py @@ -0,0 +1,33 @@ +#!/usr/bin/env python3 +# This script chops up any file to one sec segments +import wave +import os +import os.path +import sys + + +def main(): + infile = sys.argv[1] + wavefile = wave.open(infile, "rb") + os.makedirs("big_chop_output", exist_ok=True) + + samples_per_slice = wavefile.getframerate() + + i = 0 + while True: + filename = os.path.join("big_chop_output", f"{i}.wav") + + sound_data = wavefile.readframes(samples_per_slice) + if len(sound_data) < samples_per_slice: + break + + with wave.open(filename, "wb") as f: + f.setnchannels(wavefile.getnchannels()) + f.setframerate(wavefile.getframerate()) + f.setsampwidth(wavefile.getsampwidth()) + f.writeframes(sound_data) + + i += 1 + +if __name__ == '__main__': + main()