Emanuele Lapponi commited on
Commit
5284dba
Β·
1 Parent(s): 1eca6b6

remove leading silence

Browse files
Files changed (1) hide show
  1. app.py +22 -6
app.py CHANGED
@@ -6,6 +6,18 @@ from audio_recorder_streamlit import audio_recorder
6
 
7
  import pedalboard as pb
8
 
 
 
 
 
 
 
 
 
 
 
 
 
9
  st.title("πŸ‘Ή Voice Refuckulator")
10
 
11
  audio_bytes = audio_recorder()
@@ -14,13 +26,17 @@ board = pb.Pedalboard([pb.Reverb(room_size=0.100), pb.Gain(-10)])
14
  if audio_bytes:
15
  # data must be transposed, maybe before processing?
16
  wave, sr = sf.read(io.BytesIO(audio_bytes))
17
- effected = board(wave, sr, reset=False)
 
 
 
 
18
  cols = st.columns(5)
19
- stretch_factor = cols[0].slider("🧌 Trollizer", 1, 32, 16)
20
- chunk_factor = cols[1].slider("πŸ•‹ Chunkinator", 1, 16, 8)
21
- chunk_dividend = cols[2].slider("πŸ«€ Dechunkizer", 1, 32, 16)
22
- shuffle = cols[3].slider("🀑 Impredictidiblize", 1, 32, 16)
23
- sr_factor = cols[4].slider("πŸƒβ€β™€οΈ Chirpidize", 1, 16, 8)
24
  stretched = []
25
  for chunk in np.array_split(effected, chunk_dividend):
26
  for i in range(chunk_factor):
 
6
 
7
  import pedalboard as pb
8
 
9
+ @st.cache
10
+ def remove_leading_silence(wave, threshold=0.001):
11
+ clean = np.array([])
12
+ for i, samples in enumerate(wave):
13
+ if abs(samples[0]) > threshold or abs(samples[1]) > threshold:
14
+ clean = wave[i:]
15
+ break
16
+ if clean.any():
17
+ return clean
18
+ else:
19
+ return wave
20
+
21
  st.title("πŸ‘Ή Voice Refuckulator")
22
 
23
  audio_bytes = audio_recorder()
 
26
  if audio_bytes:
27
  # data must be transposed, maybe before processing?
28
  wave, sr = sf.read(io.BytesIO(audio_bytes))
29
+ wave = remove_leading_silence(wave)
30
+ try:
31
+ effected = board(wave, sr, reset=False)
32
+ except:
33
+ effected = wave
34
  cols = st.columns(5)
35
+ stretch_factor = cols[0].slider("🧌 Trollizer", 1, 32, 1)
36
+ chunk_factor = cols[1].slider("πŸ•‹ Chunkinator", 1, 16, 1)
37
+ chunk_dividend = cols[2].slider("πŸ«€ Dechunkizer", 1, 32, 1)
38
+ shuffle = cols[3].slider("🀑 Impredictidiblize", 1, 32, 1)
39
+ sr_factor = cols[4].slider("πŸƒβ€β™€οΈ Chirpidize", 1, 16, 1)
40
  stretched = []
41
  for chunk in np.array_split(effected, chunk_dividend):
42
  for i in range(chunk_factor):