Skip to content

Instantly share code, notes, and snippets.

@zahradil
Created April 5, 2012 13:56
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save zahradil/2311175 to your computer and use it in GitHub Desktop.
Save zahradil/2311175 to your computer and use it in GitHub Desktop.
Redukce ticha na začátku wav souboru
# -*- coding: utf-8 -*-
import wave, array
wi = wave.open('a.wav', 'rb')
wo = wave.open('a-reduced.wav', 'wb')
wo.setparams(wi.getparams())
def process_start(frms):
delta, threshold = 50, 250
for i in range(0, len(frms)):
if abs(frms[i])>=threshold:
mark = i-delta if i>delta else 0
return frms[mark:]
return frms
def make(frms):
arr = array.array("h")
arr.fromstring(frms)
return arr
def unmake(arr):
return arr.tostring()
buffer_length = 1000001
firstbatch = True
while True:
frms = wi.readframes(buffer_length)
print "Read %d frames" % (len(frms))
if firstbatch:
frms2 = unmake(process_start(make(frms)))
print "Processed %d -> %d" % (len(frms), len(frms2))
frms = frms2
firstbatch = False
if len(frms)<buffer_length:
wo.writeframes(frms)
break
else:
wo.writeframesraw(frms)
wi.close()
wo.close()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment