MeloMind / app.py
amongusrickroll68's picture
Update app.py
67dff4f
raw
history blame
1.75 kB
import numpy as np
import tensorflow as tf
import librosa
git lfs install
git clone https://huggingface.co/amongusrickroll68/MeloMind
from diffusers import DiffusionPipeline
pipeline = DiffusionPipeline.from_pretrained("amongusrickroll68/MeloMind")
class TextToMusicGenerator:
def __init__(self):
self.model = tf.keras.models.load_model('path/to/model')
self.sampling_rate = 22050
def generate_music(self, prompt):
prompt_encoded = self._encode_prompt(prompt)
sequence = self._generate_sequence(prompt_encoded)
audio = self._sequence_to_audio(sequence)
return audio
def _encode_prompt(self, prompt):
# encode text prompt as input for the model
# ...
return prompt_encoded
def _generate_sequence(self, prompt_encoded):
# generate sequence of musical notes from encoded prompt
# ...
return sequence
def _sequence_to_audio(self, sequence):
# convert sequence to audio waveform
notes = self._sequence_to_notes(sequence)
audio = self._notes_to_audio(notes)
return audio
def _sequence_to_notes(self, sequence):
# convert sequence of musical notes to Note objects
# ...
return notes
def _notes_to_audio(self, notes):
# convert Note objects to audio waveform
# ...
return audio
generator = TextToMusicGenerator()
prompt = "Generate a cheerful and upbeat song in the key of C major with a tempo of 120 bpm"
audio = generator.generate_music(prompt)
librosa.output.write_wav('generated_music.wav', audio, sr=generator.sampling_rate)
import gradio as gr
gr.Interface.load("models/amongusrickroll68/MeloMind").launch()