Flavor¶
- class audb.Flavor(*, bit_depth=None, channels=None, format=None, mixdown=False, sampling_rate=None)[source]¶
Database flavor.
Helper class used by
audb.load()to convert media files to the desired format. It stores the meta information about a flavor and offers a convenient way to convert files to it.As the following example shows, it can also be used to convert files that are not part of a database:
original_file = "/org/path/file.flac" converted_file = "/new/path/file.wav" # convert file to 16 kHz flavor = Flavor(sampling_rate=16000) flavor(original_file, converted_file)
- Parameters:
bit_depth (
int) – sample precision, one of16,24,32channels (
int|Sequence[int]) – channel selection, seeaudresample.remix()format (
str) – file format, one of'flac','wav'mixdown (
bool) – apply mono mix-down on selectionsampling_rate (
int) – sampling rate in Hz, one of8000,16000,22050,24000,44100,48000
- Raises:
ValueError – if a non-supported
bit_depth,format, orsampling_rateis requested
__call__()¶
- Flavor.__call__(src_path, dst_path, *, src_bit_depth=None, src_channels=None, src_sampling_rate=None)[source]¶
Convert file to flavor.
If
bit_depth,channelsorsampling_rateof source signal are known, they can be provided. Otherwise, they will be computed usingaudiofile.- Parameters:
- Raises:
ValueError – if extension of output file does not match the format of the flavor
RuntimeError – if a conversion is requested, but no output format is specified, and the input format is not WAV or FLAC
__eq__()¶
arguments¶
- Flavor.arguments¶
Returns arguments that are serialized.
- Returns:
Dictionary of arguments and their values.
- Raises:
RuntimeError – if arguments are found that are not assigned to attributes of the same name
Examples
>>> import audobject.testing >>> o = audobject.testing.TestObject("test", point=(1, 1)) >>> o.arguments {'name': 'test', 'point': (1, 1)}
bit_depth¶
- Flavor.bit_depth¶
Sample precision.
borrowed_arguments¶
- Flavor.borrowed_arguments¶
Returns borrowed arguments.
- Returns:
Dictionary with borrowed arguments.
channels¶
- Flavor.channels¶
Selected channels.
destination()¶
format¶
- Flavor.format¶
File format.
from_dict()¶
from_yaml()¶
from_yaml_s()¶
id¶
- Flavor.id¶
Object identifier.
The ID of an object ID is created from its non-hidden arguments.
- Returns:
object identifier
Examples
>>> class Foo(Object): ... def __init__(self, bar: str): ... self.bar = bar >>> foo1 = Foo("I am unique!") >>> foo1.id '893df240-babe-d796-cdf1-c436171b7a96' >>> foo2 = Foo("I am different!") >>> foo2.id '9303f2a5-bfc9-e5ff-0ffa-a9846e2d2190' >>> foo3 = Foo("I am unique!") >>> foo1.id == foo3.id True
is_loaded_from_dict¶
- Flavor.is_loaded_from_dict¶
Check if object was loaded from a dictionary.
Returns
Trueif object was initialized from a dictionary, e.g. after loading it from a YAML file.- Returns:
Trueif object was loaded from a dictionary,otherwise
False
mixdown¶
- Flavor.mixdown¶
Apply mixdown.
path()¶
resolvers¶
- Flavor.resolvers¶
Return resolvers.
- Returns:
Dictionary with resolvers.
sampling_rate¶
- Flavor.sampling_rate¶
Sampling rate in Hz.
short_id¶
- Flavor.short_id¶
Short flavor ID.
This just truncates the ID to its last eight characters.
to_dict()¶
- Flavor.to_dict(*, include_version=True, flatten=False, root=None)¶
Converts object to a dictionary.
Includes items from
audobject.Object.arguments. If an argument has a resolver, its value is encoded. Usually, the object can be re-instantiated usingaudobject.Object.from_dict(). However, ifflatten=True, this is not possible.- Parameters:
- Return type:
Mapping[str,Union[bool,datetime,dict,float,int,list,None,str]]- Returns:
dictionary that represent the object
Examples
>>> import audobject.testing >>> o = audobject.testing.TestObject("test", point=(1, 1)) >>> o.to_dict(include_version=False) {'$audobject.core.testing.TestObject': {'name': 'test', 'point': [1, 1]}} >>> o.to_dict(flatten=True) {'name': 'test', 'point.0': 1, 'point.1': 1}
to_yaml()¶
to_yaml_s()¶
- Flavor.to_yaml_s(*, include_version=True)¶
Convert object to YAML string.
- Parameters:
include_version (
bool) – add version to class name- Return type:
- Returns:
YAML string
Examples
>>> import audobject.testing >>> o = audobject.testing.TestObject("test", point=(1, 1)) >>> print(o.to_yaml_s(include_version=False)) $audobject.core.testing.TestObject: name: test point: - 1 - 1