ACE-Step Custom
Deploy ACE-Step Custom Edition with bug fixes
a602628
import os
from typing import Tuple
import torchaudio
from loguru import logger
def load_lyrics_file(audio_path: str) -> Tuple[str, bool]:
"""Load lyrics from a .txt file with the same name as the audio file."""
base_path = os.path.splitext(audio_path)[0]
lyrics_path = base_path + ".txt"
if os.path.exists(lyrics_path):
try:
with open(lyrics_path, "r", encoding="utf-8") as f:
lyrics_content = f.read().strip()
if lyrics_content:
logger.info(f"Loaded lyrics from {lyrics_path}")
return lyrics_content, True
logger.warning(f"Lyrics file is empty: {lyrics_path}")
return "", False
except Exception as e:
logger.warning(f"Failed to read lyrics file {lyrics_path}: {e}")
return "", False
return "", False
def get_audio_duration(audio_path: str) -> int:
"""Get the duration of an audio file in seconds."""
try:
info = torchaudio.info(audio_path)
return int(info.num_frames / info.sample_rate)
except Exception as e:
logger.warning(f"Failed to get duration for {audio_path}: {e}")
return 0