Spaces:
Running
Running
ageraustine
commited on
Commit
•
cafc551
1
Parent(s):
5badcc6
use scipy for mixups
Browse files
app.py
CHANGED
@@ -2,7 +2,6 @@ import streamlit as st
|
|
2 |
import requests
|
3 |
import numpy as np
|
4 |
import os
|
5 |
-
from pydub import AudioSegment
|
6 |
|
7 |
# Try to get API_URL from environment variables, if not found set to a default value
|
8 |
try:
|
@@ -78,29 +77,31 @@ if add_reverb:
|
|
78 |
if apply_stereo or reverse or change_speed or pitch_shift or add_reverb:
|
79 |
st.text("Applying post-processing...")
|
80 |
|
81 |
-
# Convert audio to pydub AudioSegment
|
82 |
-
audio_segment = AudioSegment(audio.tobytes(), frame_rate=sample_rate, sample_width=audio.itemsize, channels=1)
|
83 |
-
|
84 |
# Apply selected post-processing
|
85 |
if apply_stereo:
|
86 |
-
|
|
|
|
|
|
|
87 |
|
88 |
if reverse:
|
89 |
-
|
|
|
90 |
|
91 |
if change_speed:
|
92 |
-
|
|
|
|
|
93 |
|
94 |
if pitch_shift:
|
95 |
-
|
96 |
-
|
97 |
-
|
98 |
|
99 |
if add_reverb:
|
100 |
-
|
101 |
-
|
102 |
-
|
103 |
-
room_scale=100)
|
104 |
|
105 |
# Play the processed audio
|
106 |
-
st.audio(
|
|
|
2 |
import requests
|
3 |
import numpy as np
|
4 |
import os
|
|
|
5 |
|
6 |
# Try to get API_URL from environment variables, if not found set to a default value
|
7 |
try:
|
|
|
77 |
if apply_stereo or reverse or change_speed or pitch_shift or add_reverb:
|
78 |
st.text("Applying post-processing...")
|
79 |
|
|
|
|
|
|
|
80 |
# Apply selected post-processing
|
81 |
if apply_stereo:
|
82 |
+
# Create a stereo effect by duplicating the audio and panning left and right
|
83 |
+
audio_left = audio
|
84 |
+
audio_right = audio
|
85 |
+
audio = np.stack([audio_left, audio_right], axis=-1)
|
86 |
|
87 |
if reverse:
|
88 |
+
# Reverse the audio array
|
89 |
+
audio = np.flip(audio)
|
90 |
|
91 |
if change_speed:
|
92 |
+
# Change the speed by resampling the audio
|
93 |
+
new_sample_rate = int(sample_rate * speed_factor)
|
94 |
+
audio = scipy.signal.resample(audio, int(len(audio) * speed_factor))
|
95 |
|
96 |
if pitch_shift:
|
97 |
+
# Pitch shift using the Fourier shift method
|
98 |
+
pitch_shift_factor = 2 ** (pitch_semitones / 12)
|
99 |
+
audio = scipy.signal.resample(audio, int(len(audio) / pitch_shift_factor))
|
100 |
|
101 |
if add_reverb:
|
102 |
+
# Apply reverb using the convolution method
|
103 |
+
reverb_ir = scipy.signal.exponential(reverb_room_scale, reverb_damping, reverb_wet_only)
|
104 |
+
audio = scipy.signal.fftconvolve(audio, reverb_ir)
|
|
|
105 |
|
106 |
# Play the processed audio
|
107 |
+
st.audio(audio, format="audio/wav", sample_rate=sample_rate, start_time=0)
|