39 lines
869 B
Python
39 lines
869 B
Python
#!/usr/bin/env python3
|
|
# -*- coding: utf-8 -*-
|
|
"""
|
|
Author: C0ffymachyne
|
|
License: GPLv3
|
|
Version: 1.0.0
|
|
|
|
Description:
|
|
Loudness node
|
|
"""
|
|
|
|
import torch
|
|
from typing import Tuple, Dict, Any, Union
|
|
|
|
from ..core.io import audio_from_comfy_2d
|
|
from ..core.loudness import get_loudness
|
|
|
|
|
|
class SignalProcessingLoudness:
|
|
@classmethod
|
|
def INPUT_TYPES(cls) -> Dict[str, Any]:
|
|
return {
|
|
"required": {
|
|
"audio_input": ("AUDIO",),
|
|
},
|
|
}
|
|
|
|
RETURN_TYPES = ("FLOAT",)
|
|
RETURN_NAMES = ("loudness",)
|
|
CATEGORY = "Signal Processing"
|
|
FUNCTION = "process"
|
|
|
|
def process(self, audio_input: Dict[str, Union[torch.Tensor, int]]) -> Tuple[float]:
|
|
waveform, sample_rate = audio_from_comfy_2d(audio_input, try_gpu=True)
|
|
|
|
loudness: float = get_loudness(waveform, sample_rate)
|
|
|
|
return (loudness,)
|