hjimjim commited on
Commit
b672e6e
·
1 Parent(s): b78b541

upload model

Browse files
Files changed (2) hide show
  1. app.py +13 -11
  2. requirements.txt +0 -1
app.py CHANGED
@@ -2,11 +2,14 @@ import streamlit as st
2
  import torch
3
  import numpy as np
4
  import matplotlib.pyplot as plt
5
- from pydub import AudioSegment
6
  import pretty_midi as pm
 
7
  from VAE import VAE
8
- from midi2audio import FluidSynth
9
  import pretty_midi as pm
 
 
10
 
11
 
12
  # Define device
@@ -70,25 +73,23 @@ def reconstruct(right, left, model):
70
  input_tensor = torch.cat([right_tensor, left_tensor], dim=0)
71
  input_tensor = input_tensor.unsqueeze(0)
72
 
73
- print(input_tensor.shape)
74
  with torch.no_grad():
75
  recon_data, _, _, _ = model(input_tensor)
76
 
77
  return recon_data.squeeze(0).cpu().numpy()
78
 
79
 
 
 
 
80
 
81
- def midi_to_wav(midi_file, wav_file="output.wav", sound_font_path="soundfont.sf2", volume_increase_db=17):
82
- fs = FluidSynth(sound_font_path)
83
- fs.midi_to_audio(midi_file, wav_file)
84
 
85
- audio = AudioSegment.from_wav(wav_file)
86
- louder_audio = audio + volume_increase_db
87
-
88
- louder_audio.export(wav_file, format="wav")
89
-
90
  return wav_file
91
 
 
92
  # Create a MIDI stream from piano roll data
93
  def create_midi_from_piano_roll(right_hand, left_hand, fs=8):
94
  pm_obj = pm.PrettyMIDI()
@@ -142,6 +143,7 @@ def convert_to_midi(right_hand, left_hand, file_name="output.mid", fs=8):
142
  # Streamlit interface
143
  st.title("GRU-VAE Reconstruction Demo")
144
  model = load_model()
 
145
 
146
  # File upload
147
  uploaded_file = st.file_uploader("Upload a MIDI file", type=["mid", "midi"])
 
2
  import torch
3
  import numpy as np
4
  import matplotlib.pyplot as plt
5
+
6
  import pretty_midi as pm
7
+
8
  from VAE import VAE
9
+
10
  import pretty_midi as pm
11
+ from scipy.io.wavfile import write
12
+
13
 
14
 
15
  # Define device
 
73
  input_tensor = torch.cat([right_tensor, left_tensor], dim=0)
74
  input_tensor = input_tensor.unsqueeze(0)
75
 
76
+
77
  with torch.no_grad():
78
  recon_data, _, _, _ = model(input_tensor)
79
 
80
  return recon_data.squeeze(0).cpu().numpy()
81
 
82
 
83
+ def midi_to_wav(midi_file, wav_file="output.wav", volume_increase_db=17):
84
+ midi_data = pm.PrettyMIDI(midi_file)
85
+ audio_data = midi_data.synthesize(fs=44100)
86
 
87
+ audio_data = np.int16(audio_data / np.max(np.abs(audio_data)) * 32767 * 0.9)
 
 
88
 
89
+ write(wav_file, 44100, audio_data)
 
 
 
 
90
  return wav_file
91
 
92
+
93
  # Create a MIDI stream from piano roll data
94
  def create_midi_from_piano_roll(right_hand, left_hand, fs=8):
95
  pm_obj = pm.PrettyMIDI()
 
143
  # Streamlit interface
144
  st.title("GRU-VAE Reconstruction Demo")
145
  model = load_model()
146
+
147
 
148
  # File upload
149
  uploaded_file = st.file_uploader("Upload a MIDI file", type=["mid", "midi"])
requirements.txt CHANGED
@@ -1,6 +1,5 @@
1
  streamlit==1.16.0
2
  torch==1.11.0
3
  pretty_midi
4
- midi2audio
5
  scipy
6
  pydub
 
1
  streamlit==1.16.0
2
  torch==1.11.0
3
  pretty_midi
 
4
  scipy
5
  pydub