birdnet.acoustic.inference package¶
Submodules¶
birdnet.acoustic.inference.benchmarking module¶
- birdnet.acoustic.inference.benchmarking.handle_statistics(session_id, config, strategy, specific_config, result, resources)¶
- Return type:
None
birdnet.acoustic.inference.configs module¶
- class birdnet.acoustic.inference.configs.EncodingConfig(emb_dim)¶
Bases:
SpecificConfigBase-
emb_dim:
int¶
-
emb_dim:
- class birdnet.acoustic.inference.configs.FilteringConfig(bandpass_fmin, bandpass_fmax)¶
Bases:
objectMethods
validate_bandpass_frequencies
-
bandpass_fmax:
int¶
-
bandpass_fmin:
int¶
- classmethod validate_bandpass_frequencies(bandpass_fmin, bandpass_fmax, supported_fmin, supported_fmax)¶
- Return type:
tuple[int,int]
-
bandpass_fmax:
- class birdnet.acoustic.inference.configs.InferenceConfig(model_conf, processing_conf, filtering_conf, output_conf)¶
Bases:
objectMethods
validate_input_audio
validate_input_data
validate_input_files
-
filtering_conf:
FilteringConfig¶
-
model_conf:
ModelConfig¶
-
output_conf:
OutputConfig¶
-
processing_conf:
ProcessingConfig¶
- classmethod validate_input_audio(input_audios)¶
- Return type:
list[tuple[TypeAliasType,int]]
- classmethod validate_input_data(input_data)¶
- Return type:
list[Path|tuple[TypeAliasType,int]]
- classmethod validate_input_files(input_files)¶
- Return type:
list[Path]
-
filtering_conf:
- class birdnet.acoustic.inference.configs.ModelConfig(species_list, path, version, segment_size_s, sample_rate, sig_fmin, sig_fmax, is_custom, backend_type, backend_kwargs)¶
Bases:
object- Attributes:
- n_species
- segment_size_samples
Methods
validate_backend_supports_embeddings
-
backend_kwargs:
dict[str,Any]¶
-
backend_type:
type[VersionedBackendProtocol]¶
-
is_custom:
bool¶
- property n_species: int¶
-
path:
Path¶
-
sample_rate:
int¶
-
segment_size_s:
float¶
- property segment_size_samples: int¶
-
sig_fmax:
int¶
-
sig_fmin:
int¶
-
species_list:
OrderedSet[str]¶
- classmethod validate_backend_supports_embeddings(backend)¶
- Return type:
None
-
version:
Literal['2.4','3.0']¶
- class birdnet.acoustic.inference.configs.OutputConfig(show_stats, progress_callback)¶
Bases:
objectMethods
validate_show_stats
-
progress_callback:
Callable[[AcousticProgressStats],None] |None¶
-
show_stats:
Optional[Literal['minimal','progress','benchmark']]¶
- classmethod validate_show_stats(show_stats)¶
- Return type:
Literal['minimal','progress','benchmark']
-
progress_callback:
- class birdnet.acoustic.inference.configs.PredictionConfig(top_k, default_confidence_threshold, custom_confidence_thresholds, custom_species_list, apply_sigmoid, sigmoid_sensitivity)¶
Bases:
SpecificConfigBaseMethods
validate_custom_confidence_thresholds
validate_custom_species_list
validate_default_confidence_threshold
validate_sigmoid_sensitivity
validate_top_k
-
apply_sigmoid:
bool¶
-
custom_confidence_thresholds:
dict[str,float] |None¶
-
custom_species_list:
set[str] |None¶
-
default_confidence_threshold:
float|None¶
-
sigmoid_sensitivity:
float|None¶
-
top_k:
int|None¶
- classmethod validate_custom_confidence_thresholds(custom_confidence_thresholds, model_species)¶
- Return type:
dict[str,float]
- classmethod validate_custom_species_list(custom_species_list, model_species)¶
- Return type:
set[str]
- classmethod validate_default_confidence_threshold(default_confidence_threshold)¶
- Return type:
float
- classmethod validate_sigmoid_sensitivity(sigmoid_sensitivity)¶
- Return type:
float
- classmethod validate_top_k(top_k, max_value)¶
- Return type:
int
-
apply_sigmoid:
- class birdnet.acoustic.inference.configs.ProcessingConfig(producers, workers, batch_size, prefetch_ratio, overlap_duration_s, speed, half_precision, max_audio_duration_min, device, max_n_files)¶
Bases:
object- Attributes:
- n_slots
Methods
validate_batch_size
validate_device
validate_half_precision
validate_max_audio_duration_min
validate_max_n_files
validate_n_producers
validate_n_workers
validate_overlap_duration
validate_prefetch_ratio
validate_speed
-
batch_size:
int¶
-
device:
str|list[str]¶
-
half_precision:
bool¶
-
max_audio_duration_min:
float|None¶
-
max_n_files:
int¶
- property n_slots: int¶
-
overlap_duration_s:
float¶
-
prefetch_ratio:
int¶
-
producers:
int¶
-
speed:
float¶
- classmethod validate_batch_size(batch_size)¶
- Return type:
int
- classmethod validate_device(device, workers)¶
- Return type:
str|list[str]
- classmethod validate_half_precision(half_precision)¶
- Return type:
bool
- classmethod validate_max_audio_duration_min(max_audio_duration_min)¶
- Return type:
float
- classmethod validate_max_n_files(max_n_files)¶
- Return type:
int
- classmethod validate_n_producers(n_producers)¶
- Return type:
int
- classmethod validate_n_workers(n_workers)¶
- Return type:
int
- classmethod validate_overlap_duration(overlap_duration_s, segment_size_s)¶
- Return type:
float
- classmethod validate_prefetch_ratio(prefetch_ratio)¶
- Return type:
int
- classmethod validate_speed(speed)¶
- Return type:
float
-
workers:
int¶
- class birdnet.acoustic.inference.configs.SpecificConfigBase¶
Bases:
object
birdnet.acoustic.inference.encoding_strategy module¶
- class birdnet.acoustic.inference.encoding_strategy.EncodingStrategy¶
Bases:
InferenceStrategyBase[AcousticEncodingResultBase,EncodingConfig,AcousticEncodingTensor]Methods
create_array_result
create_files_result
create_full_benchmark_meta
create_minimal_benchmark_meta
create_tensor
create_workers
get_benchmark_dir_name
save_results_extra
validate_config
- create_array_result(tensor, config, resources)¶
- Return type:
- create_files_result(tensor, config, resources, files)¶
- Return type:
- create_full_benchmark_meta(config, specific_config, resources, pred_result)¶
- Return type:
- create_minimal_benchmark_meta(config, specific_config, resources, pred_result)¶
- Return type:
- create_tensor(session_id, config, specific_config, resources, n_inputs)¶
- Return type:
- create_workers(session_id, config, specific_config, resources)¶
- Return type:
list[WorkerBase]
- get_benchmark_dir_name()¶
- Return type:
str
- save_results_extra(result, benchmark_run_out_dir, prepend)¶
- Return type:
list[Path]
- validate_config(config, specific_config)¶
- Return type:
None
birdnet.acoustic.inference.file_writer module¶
- class birdnet.acoustic.inference.file_writer.QueueFileWriter(session_id, log_queue, logging_level, log_file, cancel_event, stop_event, processing_finished_event)¶
Bases:
objectMethods
__call__()Call self as a function.
birdnet.acoustic.inference.prediction_strategy module¶
- class birdnet.acoustic.inference.prediction_strategy.PredictionStrategy¶
Bases:
InferenceStrategyBase[AcousticPredictionResultBase,PredictionConfig,AcousticPredictionTensor]Methods
create_array_result
create_files_result
create_full_benchmark_meta
create_minimal_benchmark_meta
create_tensor
create_workers
get_benchmark_dir_name
get_top_k
save_results_extra
validate_config
- create_array_result(tensor, config, resources)¶
- Return type:
- create_files_result(tensor, config, resources, files)¶
- Return type:
- create_full_benchmark_meta(config, specific_config, resources, pred_result)¶
- Return type:
- create_minimal_benchmark_meta(config, specific_config, resources, pred_result)¶
- Return type:
- create_tensor(session_id, config, specific_config, resources, n_inputs)¶
- Return type:
- create_workers(session_id, config, specific_config, resources)¶
- Return type:
list[WorkerBase]
- get_benchmark_dir_name()¶
- Return type:
str
- get_top_k(config, specific_config)¶
- Return type:
int
- save_results_extra(result, benchmark_run_out_dir, prepend)¶
- Return type:
list[Path]
- validate_config(config, specific_config)¶
- Return type:
None
- birdnet.acoustic.inference.prediction_strategy.create_species_blacklist(config, pred_config)¶
Setup species filtering logic
- Return type:
TypeAliasType
- birdnet.acoustic.inference.prediction_strategy.create_thresholds(config, pred_conf)¶
- Return type:
TypeAliasType
birdnet.acoustic.inference.process_manager module¶
- class birdnet.acoustic.inference.process_manager.ProcessManager(session_id, config, strategy, specific_config, resources)¶
Bases:
objectMethods
join
join_logging
run_consumer
start
start_file_analyzer_thread
start_file_logging_thread
start_performance_tracker_process
start_processing
start_producer_processes
start_progress_dispatcher_thread
start_worker_processes
wait_until_all_finished
- join()¶
- Return type:
None
- join_logging()¶
- Return type:
None
- run_consumer(result_tensor)¶
- Return type:
None
- start()¶
- Return type:
None
- start_file_analyzer_thread()¶
- Return type:
Thread
- start_file_logging_thread()¶
- Return type:
Thread
- start_performance_tracker_process()¶
- Return type:
Process
- start_processing(input_data)¶
- Return type:
None
- start_producer_processes()¶
- Return type:
list[Process]
- start_progress_dispatcher_thread()¶
- Return type:
Thread
- start_worker_processes()¶
- Return type:
list[Process]
- wait_until_all_finished()¶
- Return type:
None
birdnet.acoustic.inference.resources module¶
- class birdnet.acoustic.inference.resources.InputAnalyzerResources(input_queue, analyzer_queue, tot_n_segments_ptr, max_segment_idx_ptr, max_segment_idx_init_value, finished, start_signal, finish_signal, segments_dtype, _unprocessed_inputs=None, _input_durations=None)¶
Bases:
object- Attributes:
- input_durations
- unprocessed_inputs
Methods
collect_input_durations
create
reset
-
analyzer_queue:
Queue¶
- collect_input_durations()¶
- Return type:
None
- classmethod create(conf)¶
- Return type:
-
finish_signal:
Event¶
-
finished:
Event¶
- property input_durations: ndarray¶
-
input_queue:
Queue¶
-
max_segment_idx_init_value:
int¶
-
max_segment_idx_ptr:
RawValue¶
- reset()¶
- Return type:
None
-
segments_dtype:
dtype¶
-
start_signal:
Event¶
-
tot_n_segments_ptr:
RawValue¶
- property unprocessed_inputs: set[int]¶
- class birdnet.acoustic.inference.resources.LoggingResources(session_log_file, global_log_file, logging_level, logging_queue, queue_handler, stop_logging_event)¶
Bases:
objectMethods
create
reset
- classmethod create(session_id, stats_resources)¶
- Return type:
-
global_log_file:
Path¶
-
logging_level:
int¶
-
logging_queue:
Queue¶
-
queue_handler:
QueueHandler¶
- reset()¶
- Return type:
None
-
session_log_file:
Path¶
-
stop_logging_event:
Event¶
- class birdnet.acoustic.inference.resources.PipelineResources(stats_resources, logging_resources, processing_resources, analyzer_resources, producer_resources, worker_resources, ring_buffer_resources)¶
Bases:
objectMethods
reset
-
analyzer_resources:
InputAnalyzerResources¶
-
logging_resources:
LoggingResources¶
-
processing_resources:
ProcessingResources¶
-
producer_resources:
ProducerResources¶
- reset()¶
- Return type:
None
-
ring_buffer_resources:
RingBufferResources¶
-
stats_resources:
StatisticsResources¶
-
worker_resources:
WorkerResources¶
-
analyzer_resources:
- class birdnet.acoustic.inference.resources.ProcessingResources(processing_finished_event, cancel_event, end_event, current_run_nr)¶
Bases:
object- Attributes:
- is_first_run
- update_interval
Methods
create
increment_run_nr
reset
-
cancel_event:
Event¶
- classmethod create()¶
- Return type:
-
current_run_nr:
int¶
-
end_event:
Event¶
- increment_run_nr()¶
- Return type:
None
- property is_first_run: bool¶
-
processing_finished_event:
Event¶
- reset()¶
- Return type:
None
- property update_interval: float¶
- class birdnet.acoustic.inference.resources.ProducerResources(n_producers, n_finished_pointer, all_finished, ring_access_lock, input_queue, unprocessed_inputs_queue, start_signals, finish_signals, _unprocessed_inputs=None)¶
Bases:
object- Attributes:
- unprocessed_inputs
Methods
collect_unprocessed_inputs
create
reset
- all_finished: multiprocessing.synchronize.Event¶
- collect_unprocessed_inputs()¶
- Return type:
None
- classmethod create(conf)¶
- Return type:
- finish_signals: list[multiprocessing.synchronize.Event]¶
- input_queue: Queue¶
- n_finished_pointer: Synchronized[ctypes.c_uint8] | Synchronized[ctypes.c_uint16] | Synchronized[ctypes.c_uint32] | Synchronized[ctypes.c_uint64]¶
- n_producers: int¶
- reset()¶
- Return type:
None
- ring_access_lock: multiprocessing.synchronize.Lock¶
- start_signals: list[multiprocessing.synchronize.Event]¶
- property unprocessed_inputs: set[int]¶
- unprocessed_inputs_queue: Queue¶
- class birdnet.acoustic.inference.resources.ResourceManager(conf)¶
Bases:
object- Attributes:
- resources
Methods
create_resources
- create_resources(session_id, benchmark_dir_name)¶
- Return type:
- property resources: PipelineResources¶
- class birdnet.acoustic.inference.resources.RingBufferResources(rf_file_indices, rf_segment_indices, rf_audio_samples, rf_batch_sizes, rf_flags, sem_free_slots, sem_filled_slots, _rf_flags_memory=None)¶
Bases:
objectMethods
create
delete_ring_variables
reset
set_all_flags_writeable
shared_memory_context
- classmethod create(session_id, conf, analyzer_resources)¶
- Return type:
- delete_ring_variables()¶
- Return type:
None
- reset()¶
- Return type:
None
-
sem_filled_slots:
CountedSemaphore¶
-
sem_free_slots:
Semaphore¶
- set_all_flags_writeable()¶
- Return type:
None
- Return type:
Iterator[None]
- class birdnet.acoustic.inference.resources.StatisticsResources(start, start_time, start_timepoint, track_performance, wkr_stats_queue, prd_stats_queue, sem_active_workers, perf_res_queue, perf_res_start_signal, perf_res_finish_signal, use_callback, callback_fn, callback_queue, callback_start_signal, callback_finish_signal, benchmarking, benchmark_dir, benchmark_session_dir, benchmark_dir_name, _stop=None, _end_timepoint=None, _tracking_result=None)¶
Bases:
object- Attributes:
- end_timepoint
- start_iso_time
- stop
- tracking_result
Methods
collect_performance_results
create
reset
save_end_time
- benchmark_dir: Path | None¶
- benchmark_dir_name: str¶
- benchmark_session_dir: Path | None¶
- benchmarking: bool¶
- callback_finish_signal: threading.Event | None¶
- callback_fn: Callable[[AcousticProgressStats], None] | None¶
- callback_queue: Queue | None¶
- callback_start_signal: threading.Event | None¶
- collect_performance_results()¶
- Return type:
None
- classmethod create(session_id, conf, benchmark_dir_name)¶
- Return type:
- property end_timepoint: datetime | None¶
- perf_res_finish_signal: multiprocessing.synchronize.Event | None¶
- perf_res_queue: Queue | None¶
- perf_res_start_signal: multiprocessing.synchronize.Event | None¶
- prd_stats_queue: Queue | None¶
- reset()¶
- Return type:
None
- save_end_time()¶
- Return type:
None
- sem_active_workers: CountedSemaphore | None¶
- start: float¶
- property start_iso_time: str¶
- start_time: float¶
- start_timepoint: datetime¶
- property stop: float | None¶
- track_performance: bool¶
- property tracking_result: PerformanceTrackingResult | None¶
- use_callback: bool¶
- wkr_stats_queue: Queue | None¶
- class birdnet.acoustic.inference.resources.WorkerResources(results_queue, ring_access_lock, devices, backend_loader, start_signals, finish_signals)¶
Bases:
objectMethods
create
reset
-
backend_loader:
BackendLoader¶
- classmethod create(config)¶
- Return type:
-
devices:
list[str]¶
-
finish_signals:
list[Event]¶
- reset()¶
- Return type:
None
-
results_queue:
Queue¶
-
ring_access_lock:
Lock¶
-
start_signals:
list[Event]¶
-
backend_loader:
- birdnet.acoustic.inference.resources.get_iso_time(timepoint)¶
- Return type:
str
birdnet.acoustic.inference.session module¶
- class birdnet.acoustic.inference.session.AcousticEncodingSession(species_list, model_path, model_segment_size_s, model_sample_rate, model_is_custom, model_sig_fmin, model_sig_fmax, model_version, model_backend_type, model_backend_custom_kwargs, model_emb_dim, *, n_producers, n_workers, batch_size, prefetch_ratio, overlap_duration_s, speed, bandpass_fmin, bandpass_fmax, half_precision, max_audio_duration_min, show_stats, progress_callback, device, max_n_files)¶
Bases:
AcousticSessionBaseMethods
cancel
end
run
run_arrays
- run(inputs)¶
- Return type:
- run_arrays(inputs)¶
- Return type:
- class birdnet.acoustic.inference.session.AcousticPredictionSession(species_list, model_path, model_segment_size_s, model_sample_rate, model_is_custom, model_sig_fmin, model_sig_fmax, model_version, model_backend_type, model_backend_custom_kwargs, *, top_k, n_producers, n_workers, batch_size=1, prefetch_ratio=1, overlap_duration_s, speed, bandpass_fmin, bandpass_fmax, apply_sigmoid, sigmoid_sensitivity, default_confidence_threshold, custom_confidence_thresholds, custom_species_list, half_precision=True, max_audio_duration_min, show_stats, progress_callback, device, max_n_files)¶
Bases:
AcousticSessionBaseMethods
cancel
end
run
run_arrays
- run(inputs)¶
- Return type:
- run_arrays(inputs)¶
- Return type:
- class birdnet.acoustic.inference.session.AcousticSessionBase(conf, strategy, specific_config)¶
Bases:
Generic[ResultType,ConfigType,TensorType],SessionBase,ABCMethods
cancel
end
run
- cancel()¶
- Return type:
None
- end()¶
- Return type:
None
birdnet.acoustic.inference.strategy module¶
- class birdnet.acoustic.inference.strategy.InferenceStrategyBase¶
Bases:
Generic[ResultType,ConfigType,TensorType],ABCMethods
create_array_result
create_files_result
create_full_benchmark_meta
create_minimal_benchmark_meta
create_tensor
create_workers
get_benchmark_dir_name
save_results_extra
validate_config
- abstractmethod create_array_result(tensor, config, resources)¶
- Return type:
TypeVar(ResultType, bound= ResultBase)
- abstractmethod create_files_result(tensor, config, resources, files)¶
- Return type:
TypeVar(ResultType, bound= ResultBase)
- abstractmethod create_full_benchmark_meta(config, specific_config, resources, pred_result)¶
- Return type:
- abstractmethod create_minimal_benchmark_meta(config, specific_config, resources, pred_result)¶
- Return type:
- abstractmethod create_tensor(session_id, config, specific_config, resources, n_inputs)¶
- Return type:
TypeVar(TensorType, bound= AcousticTensorBase)
- abstractmethod create_workers(session_id, config, specific_config, resources)¶
- Return type:
list[WorkerBase]
- abstractmethod get_benchmark_dir_name()¶
- Return type:
str
- abstractmethod save_results_extra(result, benchmark_run_out_dir, prepend)¶
- Return type:
list[Path]
- abstractmethod validate_config(config, specific_config)¶
- Return type:
None