cnph001 commited on
Commit
2d5b8e4
·
verified ·
1 Parent(s): 5e0c245

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +11 -4
app.py CHANGED
@@ -1,4 +1,4 @@
1
- ##fix overlap
2
 
3
  import spaces
4
  import gradio as gr
@@ -11,14 +11,21 @@ from pathlib import Path
11
  from pydub.silence import detect_nonsilent
12
  from pydub import AudioSegment
13
 
14
- def strip_silence(audio: AudioSegment, silence_thresh=-40, min_silence_len=100):
15
  from pydub.silence import detect_nonsilent
 
16
  nonsilent = detect_nonsilent(audio, min_silence_len=min_silence_len, silence_thresh=silence_thresh)
 
17
  if not nonsilent:
18
- # No speech found; return empty or silence
19
- return AudioSegment.silent(duration=0)
20
  start_trim = nonsilent[0][0]
21
  end_trim = nonsilent[-1][1]
 
 
 
 
 
22
  return audio[start_trim:end_trim]
23
 
24
 
 
1
+ ##fix overlap, remove silence, leave a tiny bit of silence
2
 
3
  import spaces
4
  import gradio as gr
 
11
  from pydub.silence import detect_nonsilent
12
  from pydub import AudioSegment
13
 
14
+ def strip_silence(audio: AudioSegment, silence_thresh=-40, min_silence_len=100, silence_padding_ms=100):
15
  from pydub.silence import detect_nonsilent
16
+ # Detect non-silent regions
17
  nonsilent = detect_nonsilent(audio, min_silence_len=min_silence_len, silence_thresh=silence_thresh)
18
+ # If no speech is detected, return a small silent audio (not totally empty)
19
  if not nonsilent:
20
+ return AudioSegment.silent(duration=silence_padding_ms)
21
+ # Start and end of the first and last non-silent segments
22
  start_trim = nonsilent[0][0]
23
  end_trim = nonsilent[-1][1]
24
+ # Add padding before and after the trimmed audio
25
+ # Ensure the padding doesn't exceed the trimmed boundaries
26
+ start_trim = max(0, start_trim - silence_padding_ms) # Ensure no negative start
27
+ end_trim = min(len(audio), end_trim + silence_padding_ms) # Ensure end doesn't go past audio length
28
+ # Return the trimmed and padded audio
29
  return audio[start_trim:end_trim]
30
 
31