|
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): |
|
|
|
|
|
return prompt_encoded |
|
|
|
def _generate_sequence(self, prompt_encoded): |
|
|
|
|
|
return sequence |
|
|
|
def _sequence_to_audio(self, sequence): |
|
|
|
notes = self._sequence_to_notes(sequence) |
|
audio = self._notes_to_audio(notes) |
|
return audio |
|
|
|
def _sequence_to_notes(self, sequence): |
|
|
|
|
|
return notes |
|
|
|
def _notes_to_audio(self, notes): |
|
|
|
|
|
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() |