Skip to content

Spectrogram

Spectrogram(backend='numpy', *args, **kwargs)

Factory function to create a spectrogram instance based on the specified backend.

Parameters:

Name Type Description Default
backend str

The backend to use. Supported options: ["numpy", "torch", "tensorflow"]. Defaults to "numpy".

'numpy'
*args Any

Additional positional arguments to pass to the segmenter.

()
**kwargs Any

Additional keyword arguments to pass to the segmenter.

{}

Returns:

Type Description
Any

An instance of the transform corresponding to the chosen backend.

Raises:

Type Description
ValueError

If an unsupported backend is specified.

NotImplementedError

If the backend is not implemented.

Source code in src/libsegmenter/transforms/Spectrogram.py
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
def Spectrogram(backend: str = "numpy", *args: Any, **kwargs: Any) -> Any:
    """
    Factory function to create a spectrogram instance based on the specified backend.

    Args:
        backend (str, optional): The backend to use. Supported options:
            ["numpy", "torch", "tensorflow"]. Defaults to "numpy".
        *args (Any): Additional positional arguments to pass to the segmenter.
        **kwargs (Any): Additional keyword arguments to pass to the segmenter.

    Returns:
        An instance of the transform corresponding to the chosen backend.

    Raises:
        ValueError: If an unsupported backend is specified.
        NotImplementedError: If the backend is not implemented.

    """
    if backend == "numpy":
        from libsegmenter.transforms.spectrogram.SpectrogramNumpy import (
            SpectrogramNumpy,
        )

        return SpectrogramNumpy(*args, **kwargs)

    if backend == "tensorflow":
        from libsegmenter.transforms.spectrogram.SpectrogramTensorFlow import (
            SpectrogramTensorFlow,
        )

        return SpectrogramTensorFlow(*args, **kwargs)

    if backend == "torch":
        from libsegmenter.transforms.spectrogram.SpectrogramTorch import (
            SpectrogramTorch,
        )

        return SpectrogramTorch(*args, **kwargs)

    raise ValueError(f"The '{backend}' backend is not known.")