hoyoMusic / utils.py
admin
fix mscore dld url
d0e316a
raw
history blame
2.16 kB
import os
import sys
import time
import torch
import requests
import subprocess
from tqdm import tqdm
from modelscope import snapshot_download
TEYVAT = {
"蒙德 Mondstadt": "Mondstadt",
"璃月 Liyue": "Liyue",
"稻妻 Inazuma": "Inazuma",
"须弥 Sumeru": "Sumeru",
"枫丹 Fontaine": "Fontaine",
}
WEIGHTS_PATH = (
snapshot_download("MuGeminorum/hoyoMusic", cache_dir="./__pycache__")
+ "/weights.pth"
)
DEVICE = torch.device("cuda" if torch.cuda.is_available() else "cpu")
TEMP_DIR = "./flagged"
PATCH_LENGTH = 128 # Patch Length
PATCH_SIZE = 32 # Patch Size
PATCH_NUM_LAYERS = 9 # Number of layers in the encoder
CHAR_NUM_LAYERS = 3 # Number of layers in the decoder
# Batch size for patch during training, 0 for full context
PATCH_SAMPLING_BATCH_SIZE = 0
# Whether to share weights between the encoder and decoder
SHARE_WEIGHTS = False
def download(filename: str, url: str):
try:
response = requests.get(url, stream=True)
total_size = int(response.headers.get("content-length", 0))
chunk_size = 1024
with open(filename, "wb") as file, tqdm(
desc=f"Downloading {filename} from '{url}'...",
total=total_size,
unit="B",
unit_scale=True,
unit_divisor=1024,
) as bar:
for data in response.iter_content(chunk_size=chunk_size):
size = file.write(data)
bar.update(size)
except Exception as e:
print(f"Error: {e}, retrying...")
time.sleep(10)
download(filename, url)
if sys.platform.startswith("linux"):
apkname = "MuseScore.AppImage"
extra_dir = "squashfs-root"
download(
filename=apkname,
url="https://www.modelscope.cn/studio/MuGeminorum/piano_transcription/resolve/master/MuseScore.AppImage",
)
if not os.path.exists(extra_dir):
subprocess.run(["chmod", "+x", f"./{apkname}"])
subprocess.run([f"./{apkname}", "--appimage-extract"])
MSCORE = f"./{extra_dir}/AppRun"
os.environ["QT_QPA_PLATFORM"] = "offscreen"
else:
MSCORE = "D:/Program Files/MuseScore 3/bin/MuseScore3.exe"