|
import sys |
|
from pathlib import Path |
|
import wave |
|
from pydub import AudioSegment |
|
import loguru |
|
|
|
|
|
def is_audio_file(file: Path): |
|
return file.suffix.lower() in [".wav", ".mp3", ".ogg"] |
|
|
|
|
|
def get_audio_duration_ms(file_path): |
|
try: |
|
with wave.open(str(file_path), "r") as wav_file: |
|
return wav_file.getnframes() / wav_file.getframerate() * 1000 |
|
except wave.Error as e: |
|
audio = AudioSegment.from_file(file_path) |
|
return len(audio) |
|
except Exception as e: |
|
raise e |
|
|
|
|
|
logger = loguru.logger |
|
logger.remove() |
|
|
|
log_format = ( |
|
"<g>{time:MM-DD HH:mm:ss}</g> |<lvl>{level:^8}</lvl>| {file}:{line} | {message}" |
|
) |
|
logger.add(sys.stdout, format=log_format) |
|
|