feat: start adding server code

This commit is contained in:
2024-07-20 17:09:22 +01:00
parent c969a5280a
commit 074d96b76d
5 changed files with 93 additions and 21 deletions

View File

@@ -1,13 +1,10 @@
import torchaudio
import time
from audiocraft.models.musicgen import MusicGen
from audiocraft.data.audio import audio_write
MODEL_NAME = "facebook/musicgen-large"
MUSIC_DURATION_SECONDS = 60
print(f"getting {MODEL_NAME}...")
model = MusicGen.get_pretrained(MODEL_NAME)
model.set_generation_params(duration=MUSIC_DURATION_SECONDS)
descriptions = [
@@ -15,25 +12,20 @@ descriptions = [
"calm, piano lo-fi beats to help with studying and focusing",
"gentle lo-fi hip-hop to relax to",
"gentle, quiet synthwave lo-fi beats",
"morning lo-fi beats"
"morning lo-fi beats",
]
print("model obtained. generating wav files...")
a = time.time()
def generate(offset=0):
wav = model.generate(descriptions)
wav = model.generate(descriptions)
b = time.time()
print(f"{len(wav)} generated. took {b - a} seconds.")
for idx, one_wav in enumerate(wav):
# Will save under {idx}.wav, with loudness normalization at -14 db LUFS.
audio_write(
f"{idx}",
one_wav.cpu(),
model.sample_rate,
strategy="loudness",
loudness_compressor=True,
)
for idx, one_wav in enumerate(wav):
# Will save under {idx}.wav, with loudness normalization at -14 db LUFS.
audio_write(
f"{idx + offset}",
one_wav.cpu(),
model.sample_rate,
format="mp3",
strategy="loudness",
loudness_compressor=True,
)

38
generate_manual.py Normal file
View File

@@ -0,0 +1,38 @@
import torchaudio
import time
from audiocraft.models.musicgen import MusicGen
from audiocraft.data.audio import audio_write
MODEL_NAME = "facebook/musicgen-large"
MUSIC_DURATION_SECONDS = 60
print("obtaining model...")
model = MusicGen.get_pretrained(MODEL_NAME)
model.set_generation_params(duration=MUSIC_DURATION_SECONDS)
descriptions = [
"gentle, calming lo-fi beats that helps with studying and focusing",
"calm, piano lo-fi beats to help with studying and focusing",
"gentle lo-fi hip-hop to relax to",
"gentle, quiet synthwave lo-fi beats",
"morning lo-fi beats",
]
print("model obtained. generating audio...")
a = time.time()
wav = model.generate(descriptions)
b = time.time()
print(f"audio generated. took {b - a} seconds.")
for idx, one_wav in enumerate(wav):
# Will save under {idx}.wav, with loudness normalization at -14 db LUFS.
audio_write(
f"{idx}",
one_wav.cpu(),
model.sample_rate,
format="mp3",
strategy="loudness",
loudness_compressor=True,
)

30
server.py Normal file
View File

@@ -0,0 +1,30 @@
import threading
from .generate import generate
from fastapi import FastAPI
from fastapi.responses import FileResponse
from fastapi.staticfiles import StaticFiles
app = FastAPI()
current_index = 0
app.mount("/", StaticFiles(directory="web", html=True), name="web")
def advance():
global current_index
# if current_index == 0:
# generate(offset=5)
# elif current_index == 5:
# generate(offset=0)
if current_index == 9:
current_index = 0
else:
current_index = current_index + 1
t = threading.Timer(60, advance)
t.start()
advance()

12
web/index.html Normal file
View File

@@ -0,0 +1,12 @@
<!doctype html>
<html>
<head>
<title>infinifi</title>
</head>
<body>
<main>
<p>test</p>
</main>
<script type="text/javascript" src="/script.js"></script>
</body>
</html>

0
web/script.js Normal file
View File