ageraustine commited on
Commit
cafc551
1 Parent(s): 5badcc6

use scipy for mixups

Browse files
Files changed (1) hide show
  1. app.py +16 -15
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
- audio_segment = audio_segment.pan(-0.5).overlay(audio_segment.pan(0.5))
 
 
 
87
 
88
  if reverse:
89
- audio_segment = audio_segment.reverse()
 
90
 
91
  if change_speed:
92
- audio_segment = audio_segment.speedup(playback_speed=speed_factor)
 
 
93
 
94
  if pitch_shift:
95
- audio_segment = audio_segment._spawn(audio_segment.raw_data, overrides={
96
- "frame_rate": int(audio_segment.frame_rate * (2 ** (pitch_semitones / 12.0)))
97
- })
98
 
99
  if add_reverb:
100
- audio_segment = audio_segment.reverb(reverberance=reverb_room_scale,
101
- damping=reverb_damping,
102
- wet_only=reverb_wet_only,
103
- room_scale=100)
104
 
105
  # Play the processed audio
106
- st.audio(audio_segment.raw_data, format="audio/wav", start_time=0)
 
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)