Skip to content

Instantly share code, notes, and snippets.

@dmitriykovalev
Last active February 20, 2024 21:33
Show Gist options
  • Select an option

  • Save dmitriykovalev/818b3add93315c31757362c1fa12ec63 to your computer and use it in GitHub Desktop.

Select an option

Save dmitriykovalev/818b3add93315c31757362c1fa12ec63 to your computer and use it in GitHub Desktop.
import argparse
import wave
def crop(src_filename, dst_filename, num_frames):
with wave.open(src_filename, 'rb') as src:
with wave.open(dst_filename, 'wb') as dst:
dst.setnchannels(src.getnchannels())
dst.setsampwidth(src.getsampwidth())
dst.setframerate(src.getframerate())
frames = src.readframes(src.getnframes())
dst.writeframes(frames[:num_frames * src.getsampwidth()])
def main():
parser = argparse.ArgumentParser()
parser.add_argument('--input', required=True)
parser.add_argument('--output', required=True)
parser.add_argument('--num_frames', type=int, required=True)
args = parser.parse_args()
crop(args.input, args.output, args.num_frames)
if __name__ == '__main__':
main()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment