All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- Added:
audinterface.Segment.process_table()
, that segments a dataframe or series and expands its row values to the new segments - Added: support for
numpy
2.0 - Changed: depend on
audmath>=1.4.1
- Changed: default value of
process_func_applies_sliding_window
argument ofaudinterface.Feature
fromTrue
toFalse
- Fixed:
multiprocessing
foraudinterface.Feature
,audinterface.Process
,audinterface.ProcessWithContext
,audinterface.Segment
- Removed: deprecated
unit
argument fromaudinterface.Feature
- Added:
process_func_args
argument toaudinterface.Feature.process_file()
,audinterface.Feature.process_files()
,audinterface.Feature.process_folder()
,audinterface.Feature.process_index()
,audinterface.Feature.process_signal()
,audinterface.Feature.process_signal_from_index()
,audinterface.Process.process_file()
,audinterface.Process.process_files()
,audinterface.Process.process_folder()
,audinterface.Process.process_index()
,audinterface.Process.process_signal()
,audinterface.Process.process_signal_from_index()
,audinterface.ProcessWithContext.process_index()
,audinterface.ProcessWithContext.process_signal_from_index()
,audinterface.Segment.process_file()
,audinterface.Segment.process_files()
,audinterface.Segment.process_folder()
,audinterface.Segment.process_index()
,audinterface.Segment.process_signal()
,audinterface.Segment.process_signal_from_index()
. It allows to temporarily overwrite theprocess_func_args
argument used when instantiating an interface - Changed: depend on
audeer>=1.18.0
- Fixed: avoid deprecation warning
by replacing
pkg_resources
internally withimportlib.metadata
- Added:
include_root
argument toaudinterface.Feature.process_folder()
,audinterface.Process.process_folder()
,audinterface.Segment.process_folder()
. Returns relative file path in index if set toFalse
. Default value isTrue
- Changed: when
audinterface.Feature
is instantiated with anaudinterface.Segment
object that returns an empty index,audinterface.Feature.process_*()
no longer returnIndex([], dtype="object")
butMultiIndex([], names=["file", "start", "end"])
- Fixed: preserve order of
start
andend
values as returned by the segmentation callable in the index returned byaudinterface.Segment
processing functions - Fixed: precision of
audinterface.utils.to_timedelta()
forpd.Timedelta
objects as input, e.g.to_timedelta(pd.Timedelta("0 days 00:00:35.511437999"))
now returnsTimedelta("0 days 00:00:35.511437999")
instead ofTimedelta("0 days 00:00:35.511437")
. This also affects the output ofaudinterface.utils.signal_index()
- Fixed: preserve requested
start
andend
values inprocess_file()
,process_files()
,process_folder()
methods ofaudinterface.Process
andaudinterface.Feature()
. Before they were rounded to the next sample in the returned index
- Changed: require
audmath>=1.3.0
- Changed: require
audiofile>=1.3.0
- Changed: always evenly round
start
andend
to samples inaudinterface.utils.read_signal()
- Fixed: process functions
that work on segments
are now always processing the identical signal
independent if they get the signal as input,
like
audinterface.Process.process_signal()
, or a file, likeaudinterface.Process.process_file()
- Added:
cache_root
argument toaudinterface.Segment.process_index()
- Added: support for Python 3.11
- Changed: require
audformat>=1.0.1
- Fixed:
*.process_index()
keeps precision ofend
values when a segmented index is returned
- Fixed: do not truncate strings
in values returned by process methods of
audinterface.Feature
- Added:
preserve_index
argument toaudinterface.Process.process_index()
andaudinterface.Feature.process_index()
- Added: support for Python 3.10
- Changed: speed up processing methods
dealing with multiple files/segments in
audinterface.Feature
,audinterface.Process
,audinterface.ProcessWithContext
, andaudinterface.Segment
- Removed: deprecated
kwargs
argument fromaudinterface.Feature
,audinterface.Process
,audinterface.ProcessWithContext
, andaudinterface.Segment
; use theprocess_func_args
argument instead
- Fixed: require
sphinx-audeering-theme>=1.2.1
to ensure the correct theme is used for the public documentation
- Changed: split API documentation into sub-pages for each function
- Fixed: typo in multi-channel usage example in the documentation
- Changed:
audinterface.Feature
uses multi-level column format and names columns after channel ID when result has more than one channel
- Changed: require
audformat>=0.15.3
- Fixed: segmented indices are returned
with
file
level as dtypestring
as introduced withaudformat
0.15.0 - Removed: support for Python 3.7
- Changed: support special arguments
idx
,file
,root
in processing function
- Added:
auinterface.utils.sliding_window()
- Added:
auinterface.utils.to_timedelta()
- Added: argument
process_func_applies_sliding_window
toaudinterface.Feature
- Added: arguments
win_dur
andhop_dur
toaudinterface.Process
- Added: arguments
min_signal_dur
andmax_signal_dur
toaudinterface.Feature
,audinterface.Process
,audinterface.Segment
- Added: argument
cache_root
toaudinterface.Feature.process_index()
,audinterface.Process.process_index()
- Changed: extend documentation with docstring examples and usage section
- Deprecated:
unit
argument ofaudinterface.Feature
, instead specify unit directly when providing duration arguments, compareaudinterface.utils.to_timedelta()
- Fixed:
audinterface.ProcessWithContext
requires one output for every segment
- Added:
audinterface.Feature
does support specification of single feature as string in addition to list - Changed: depend on
audresample>=1.1
- Fixed: handle empty and non-existing folder
in
process_folder()
methods
- Added: Python 3.9 support
- Added:
process_func_args
argument to process methods - Deprecated:
**kwargs
in process methods, useprocess_func_args
argument instead - Removed: deprecated
process_unified_format_index()
methods - Removed: Python 3.6 support
- Changed:
Feature.process_func()
supports more shapes, namely(features)
(channels, features)
(features, frames)
(channels, features, frames)
- Changed:
Feature.process_func()
supports more types (e.g. scalars, lists, strings, etc.) - Fixed:
Feature.__call__()
always returns(channels, features, frames)
- Fixed: CHANGELOG
- Added:
utils.signal_index()
to create a segmented index without file level - Changed: use keyword argument with
pandas.MultiIndex.set_levels()
- Fixed: raise error if multiple frames are returned but
win_dur
is not set - Fixed: remove
num_channels
fromFeature
docstring
- Added: tests on Windows and macOC
- Added:
root
argument to all functions processing file input
- Fixed: avoid using 'sec' as unit in
pd.to_timedelta()
for backward compatibility
- Fixed: empty API section in documentation
- Added: open source release on Github
- Changed: switch to MIT license
- Fixed:
Process
,Feature
: do not apply segmentation twice whensegment
object is given
- Added:
invert
argument toSegment
- Added:
Segment.process_index()
andSegment.process_signal_from_index()
- Changed:
Process.process_index()
andProcess.process_signal_from_index()
do not ignore segment object - Changed:
Feature.process_index()
andFeature.process_signal_from_index()
do not ignore segment object
- Fixed: PyPI publishing pipeline
- Changed: use new tokenizer in CI pipeline
- Added: support for providing
start
andend
time values in the same format as done inaudformat
, e.g. as integer, floats, orpandas.Timedelta
- Changed: improve speed of CI pipelines
- Fixed:
audinterface.Feature
handles empty index
- Changed: rename
audinterface.Feature.process_unified_format_index
,audinterface.Process.process_unified_format_index
,audinterface.ProcessWithContext.process_unified_format_index
toaudinterface.Feature.process_index
,audinterface.Process.process_index
,audinterface.ProcessWithContext.process_index
- Fixed:
audinterface.Feature
allowwin_dur=None
withunit="samples"
- Changed: store
Process.channels
always as a list - Changed: keep
Feature.win_dur
andFeature.hop_dur
in original format
- Added: arguments
channels
andmixdown
toaudinterface.Process
,audinterface.ProcessWithContext
,audinterface.Feature
,audinterface.Segment
- Removed:
channel
argument from allprocess_*
functions
- Fixed:
audinterface.Feature.__call__
always returnsnumpy.ndarray
- Changed:
audinterface.Process.process_unified_format_index
andaudinterface.Feature.process_unified_format_index
support filewise index
- Added:
process_func_is_mono
argument toaudinterface.Feature
,audinterface.Process
- Fixed: avoid nested progress bars
- Changed: make
audinterface.Feature
,audinterface.Process
,audinterface.ProcessWithContext
,audinterface.Segment
, callable - Changed: use
name
andparams
arguments inaudinterface.Feature
- Changed: switch to
audeer.run_tasks
- Changed: cut signal before resampling is applied
- Fixed:
audinterface.Feature
raises an due to missing sampling rate now only ifwin_dur
is given
- Changed: switch to
audsp
>=0.9.2, which fixes a critical resampling issue and introduces a new keyword arg name
- Fixed: description and keywords of package in
setup.cfg
- Fixed: syntax error in CHANGELOG
- Fixed:
audinterface.Process.process_file
was changing end times when process a segmented index
- Changed:
utils.check_index
ignoresdatetime
- Added:
segment
argument toaudinterface.Process
andaudinterface.Feature
- Removed:
name
argument fromaudinterface.Feature
- Added: initial release