audtorch.utils¶
Utility functions.
flatten_list¶
-
audtorch.utils.
flatten_list
(nested_list)¶ Flatten an arbitrarily nested list.
Implemented without recursion to avoid stack overflows. Returns a new list, the original list is unchanged.
Example
>>> flatten_list([1, 2, 3, [4], [], [[[[[[[[[5]]]]]]]]]]) [1, 2, 3, 4, 5] >>> flatten_list([[1, 2], 3]) [1, 2, 3]
to_tuple¶
-
audtorch.utils.
to_tuple
(input, *, tuple_len=2)¶ Convert to tuple of given length.
This utility function is used to convert single-value arguments to tuples of appropriate length, e.g. for multi-dimensional inputs where each dimension requires the same value. If the argument is already an iterable it is returned as a tuple if its length matches the desired tuple length. Otherwise a ValueError is raised.
- Parameters
input (non-iterable or iterable) – argument to be converted to tuple
tuple_len (int) – required length of argument tuple. Default: 2
- Returns
tuple of desired length
- Return type
Example
>>> to_tuple(2) (2, 2)
energy¶
-
audtorch.utils.
energy
(signal)¶ Energy of input signal.
\[E = \sum_n |x_n|^2 \]- Parameters
signal (numpy.ndarray) – signal
- Returns
energy of signal
- Return type
Example
>>> a = np.array([[2, 2]]) >>> energy(a) 8
power¶
-
audtorch.utils.
power
(signal)¶ Power of input signal.
\[P = {1 \over N} \sum_n |x_n|^2 \]- Parameters
signal (numpy.ndarray) – signal
- Returns
power of signal
- Return type
Example
>>> a = np.array([[2, 2]]) >>> power(a) 4.0
run_worker_threads¶
-
audtorch.utils.
run_worker_threads
(num_workers, task_fun, params, *, progress_bar=False)¶ Run parallel tasks using worker threads.
- Parameters
num_workers (int) – number of worker threads
task_fun (Callable) – task function with one or more parameters, e.g. x, y, z, and optionally returning a value
params (list of tuples) – list of tuples holding parameters for each task, e.g. [(x1, y1, z1), (x2, y2, z2), …]
progress_bar (bool) – show a progress bar. Default: False
- Returns
result values in order of params
- Return type
Example
>>> power = lambda x, n: x ** n >>> params = [(2, n) for n in range(10)] >>> run_worker_threads(3, power, params) [1, 2, 4, 8, 16, 32, 64, 128, 256, 512]