File size: 2,520 Bytes
864affd
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
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
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
"""Module to change the configuration of libsox, which is used by I/O functions like

:py:mod:`~torchaudio.backend.sox_io_backend` and :py:mod:`~torchaudio.sox_effects`.

"""

from typing import Dict, List

import torchaudio

sox_ext = torchaudio._extension.lazy_import_sox_ext()


def set_seed(seed: int):
    """Set libsox's PRNG



    Args:

        seed (int): seed value. valid range is int32.



    See Also:

        http://sox.sourceforge.net/sox.html

    """
    sox_ext.set_seed(seed)


def set_verbosity(verbosity: int):
    """Set libsox's verbosity



    Args:

        verbosity (int): Set verbosity level of libsox.



            * ``1`` failure messages

            * ``2`` warnings

            * ``3`` details of processing

            * ``4``-``6`` increasing levels of debug messages



    See Also:

        http://sox.sourceforge.net/sox.html

    """
    sox_ext.set_verbosity(verbosity)


def set_buffer_size(buffer_size: int):
    """Set buffer size for sox effect chain



    Args:

        buffer_size (int): Set the size in bytes of the buffers used for processing audio.



    See Also:

        http://sox.sourceforge.net/sox.html

    """
    sox_ext.set_buffer_size(buffer_size)


def set_use_threads(use_threads: bool):
    """Set multithread option for sox effect chain



    Args:

        use_threads (bool): When ``True``, enables ``libsox``'s parallel effects channels processing.

            To use mutlithread, the underlying ``libsox`` has to be compiled with OpenMP support.



    See Also:

        http://sox.sourceforge.net/sox.html

    """
    sox_ext.set_use_threads(use_threads)


def list_effects() -> Dict[str, str]:
    """List the available sox effect names



    Returns:

        Dict[str, str]: Mapping from ``effect name`` to ``usage``

    """
    return dict(sox_ext.list_effects())


def list_read_formats() -> List[str]:
    """List the supported audio formats for read



    Returns:

        List[str]: List of supported audio formats

    """
    return sox_ext.list_read_formats()


def list_write_formats() -> List[str]:
    """List the supported audio formats for write



    Returns:

        List[str]: List of supported audio formats

    """
    return sox_ext.list_write_formats()


def get_buffer_size() -> int:
    """Get buffer size for sox effect chain



    Returns:

        int: size in bytes of buffers used for processing audio.

    """
    return sox_ext.get_buffer_size()