Spaces:
Sleeping
Sleeping
Update app.py
Browse files
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 |
-
|
| 19 |
-
|
| 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 |
|