birdnet.acoustic.models.v3_0 package¶
Submodules¶
birdnet.acoustic.models.v3_0.model module¶
- class birdnet.acoustic.models.v3_0.model.AcousticDownloaderBaseV3_0¶
Bases:
object-
AVAILABLE_LANGUAGES:
OrderedSet[str] = OrderedSet(['bg', 'ca', 'cs', 'cy', 'da', 'de', 'en_us', 'es', 'es_ec', 'es_es', 'es_mx', 'fa', 'fi', 'fr', 'hr', 'ja', 'lt', 'nl', 'no', 'pl', 'pt', 'pt_pt', 'ru', 'sk', 'sr', 'sv', 'tr', 'uk', 'zh'])¶
- classmethod ensure_labels_available()¶
- Return type:
None
- classmethod get_lang_file(lang)¶
- Return type:
Path
-
AVAILABLE_LANGUAGES:
- class birdnet.acoustic.models.v3_0.model.AcousticModelV3_0(model_path, species_list, is_custom_model, backend_type, backend_kwargs)¶
Bases:
AcousticModelBase- encode(inp, /, *, n_producers=1, n_workers=None, batch_size=1, prefetch_ratio=1, overlap_duration_s=0, speed=1.0, bandpass_fmin=0, bandpass_fmax=15000, half_precision=False, max_audio_duration_min=None, show_stats=None, progress_callback=None, device='CPU', segment_size_s=3.0, on_file_complete=None)¶
- Return type:
- encode_arrays(inp, /, *, n_producers=1, n_workers=None, batch_size=1, prefetch_ratio=1, overlap_duration_s=0, speed=1.0, bandpass_fmin=0, bandpass_fmax=15000, half_precision=False, max_audio_duration_min=None, show_stats=None, progress_callback=None, device='CPU', segment_size_s=3.0)¶
- Return type:
- encode_session(*, n_producers=1, n_workers=None, batch_size=1, prefetch_ratio=1, overlap_duration_s=0, speed=1.0, bandpass_fmin=0, bandpass_fmax=15000, half_precision=False, max_audio_duration_min=None, show_stats=None, progress_callback=None, device='CPU', max_n_files=65536, segment_size_s=3.0, on_file_complete=None)¶
- Return type:
- final classmethod get_embeddings_dim()¶
- Return type:
int
- final classmethod get_sample_rate()¶
- Return type:
int
- final classmethod get_segment_size_s()¶
- Return type:
float
- final classmethod get_segment_size_samples()¶
- Return type:
int
- final classmethod get_sig_fmax()¶
- Return type:
int
- final classmethod get_sig_fmin()¶
- Return type:
int
- final classmethod get_version()¶
Return the string label that identifies the acoustic model version.
- Return type:
Literal['2.4','3.0']- Returns:
Registered enum constant for the supported version.
- Return type:
ACOUSTIC_MODEL_VERSIONS
- classmethod load(model_path, species_list, backend_type, backend_kwargs)¶
- Return type:
- classmethod load_custom(model_path, species_list, backend_type, backend_kwargs, check_validity)¶
- Return type:
- predict(inp, /, *, top_k=5, n_producers=1, n_workers=None, batch_size=1, prefetch_ratio=1, overlap_duration_s=0, bandpass_fmin=0, bandpass_fmax=15000, speed=1.0, apply_sigmoid=True, apply_softmax=False, sigmoid_sensitivity=1.0, default_confidence_threshold=0.1, custom_confidence_thresholds=None, custom_species_list=None, half_precision=False, max_audio_duration_min=None, device='CPU', show_stats=None, progress_callback=None, segment_size_s=3.0, on_file_complete=None)¶
Run prediction with the BirdNET 3.0 model on files or paths.
Scores are probabilities as the model emits them: the V3.0 exports apply the sigmoid inside the model graph.
apply_sigmoid=True(the default) returns them unchanged andapply_sigmoid=Falsereturns the identical raw model output, so confidence thresholds are probabilities either way.sigmoid_sensitivityvalues other than1.0andapply_softmax=Trueraise aValueError, because both need the logits the exports do not expose. Custom V3.0 models are expected to output probabilities as well.n_workerssets the number of inference worker processes. Its default value,None, uses the number of physical CPU cores. Pass a fixed integer to meet a scheduler or container process limit. Each worker holds its own copy of the model, so a high count raises peak memory use. On Linux and macOS, a worker killed by the operating system to reclaim memory while processing a batch deadlocks the run: the killed process never releases the lock it was holding, so the remaining workers wait on it forever and the call never returns (see issue #73). Loweringn_workersorbatch_sizereduces peak memory and with it how likely such a kill is, but cannot rule it out.This method creates one prediction session for the call. That session shuts down its producer and worker processes before this method returns, including when inference raises an exception.
- Return type:
- predict_arrays(inp, /, *, top_k=5, n_producers=1, n_workers=None, batch_size=1, prefetch_ratio=1, overlap_duration_s=0, bandpass_fmin=0, bandpass_fmax=15000, speed=1.0, apply_sigmoid=True, apply_softmax=False, sigmoid_sensitivity=1.0, default_confidence_threshold=0.1, custom_confidence_thresholds=None, custom_species_list=None, half_precision=False, max_audio_duration_min=None, device='CPU', show_stats=None, progress_callback=None, segment_size_s=3.0)¶
- Return type:
- predict_session(*, top_k=5, n_producers=1, n_workers=None, batch_size=1, prefetch_ratio=1, overlap_duration_s=0, speed=1.0, bandpass_fmin=0, bandpass_fmax=15000, apply_sigmoid=True, apply_softmax=False, sigmoid_sensitivity=1.0, default_confidence_threshold=0.1, custom_confidence_thresholds=None, custom_species_list=None, half_precision=False, max_audio_duration_min=None, show_stats=None, progress_callback=None, device='CPU', max_n_files=65536, segment_size_s=3.0, on_file_complete=None)¶
Create a prediction session for the BirdNET 3.0 model.
Scores: every V3.0 export (tf, pb, pt, onnx — official and custom alike) applies the sigmoid inside the model graph, so scores leave the model as probabilities.
apply_sigmoid=True(the default) returns them unchanged — no second sigmoid is applied — andapply_sigmoid=Falsereturns the identical raw model output. Because the model does not expose logits,sigmoid_sensitivityvalues other than1.0andapply_softmax=Trueraise aValueError.- Return type:
birdnet.acoustic.models.v3_0.pb module¶
- class birdnet.acoustic.models.v3_0.pb.AcousticPBBackendFP32V3_0(model_path, device_name, half_precision, **kwargs)¶
Bases:
PBBackend,VersionedAcousticBackendProtocol- classmethod encoding_key()¶
- Return type:
str|None
- classmethod encoding_signature_name()¶
- Return type:
str|None
- classmethod input_key()¶
- Return type:
str
- classmethod precision()¶
- Return type:
Literal['int8','fp16','fp32']
- classmethod prediction_key()¶
- Return type:
str
- classmethod prediction_signature_name()¶
- Return type:
str
- classmethod supports_encoding()¶
- Return type:
bool
- class birdnet.acoustic.models.v3_0.pb.AcousticPBDownloaderV3_0¶
Bases:
AcousticDownloaderBaseV3_0- classmethod get_model_path_and_labels(lang)¶
- Return type:
tuple[Path,OrderedSet[str]]
birdnet.acoustic.models.v3_0.tf module¶
- class birdnet.acoustic.models.v3_0.tf.AcousticTFBackendFP16V3_0(model_path, device_name, half_precision, **kwargs)¶
Bases:
TFBackend,VersionedAcousticBackendProtocol- classmethod encoding_out_idx()¶
- Return type:
int|None
- classmethod in_idx()¶
- Return type:
int
- classmethod precision()¶
- Return type:
Literal['int8','fp16','fp32']
- classmethod prediction_out_idx()¶
- Return type:
int
- classmethod probe_input_size_samples()¶
- Return type:
int
- classmethod supports_encoding()¶
- Return type:
bool
- class birdnet.acoustic.models.v3_0.tf.AcousticTFBackendFP32V3_0(model_path, device_name, half_precision, **kwargs)¶
Bases:
TFBackend,VersionedAcousticBackendProtocol- classmethod encoding_out_idx()¶
- Return type:
int|None
- classmethod in_idx()¶
- Return type:
int
- classmethod precision()¶
- Return type:
Literal['int8','fp16','fp32']
- classmethod prediction_out_idx()¶
- Return type:
int
- classmethod probe_input_size_samples()¶
- Return type:
int
- classmethod supports_encoding()¶
- Return type:
bool
- class birdnet.acoustic.models.v3_0.tf.AcousticTFDownloaderV3_0¶
Bases:
AcousticDownloaderBaseV3_0- classmethod get_model_path_and_labels(lang, precision)¶
- Return type:
tuple[Path,OrderedSet[str]]
birdnet.acoustic.models.v3_0.pt module¶
- class birdnet.acoustic.models.v3_0.pt.AcousticPTBackendFP32V3_0(model_path, device_name, half_precision, **kwargs)¶
Bases:
TorchBackend,VersionedAcousticBackendProtocol- classmethod encoding_out_idx()¶
- Return type:
int|None
- classmethod precision()¶
- Return type:
Literal['int8','fp16','fp32']
- classmethod prediction_out_idx()¶
- Return type:
int
- classmethod probe_input_size_samples()¶
- Return type:
int
- classmethod supports_encoding()¶
- Return type:
bool
- class birdnet.acoustic.models.v3_0.pt.AcousticPTDownloaderV3_0¶
Bases:
AcousticDownloaderBaseV3_0- classmethod get_model_path_and_labels(lang, precision)¶
- Return type:
tuple[Path,OrderedSet[str]]
birdnet.acoustic.models.v3_0.onnx module¶
- class birdnet.acoustic.models.v3_0.onnx.AcousticOnnxBackendFP16V3_0(model_path, device_name, half_precision, **kwargs)¶
Bases:
OnnxBackend,VersionedAcousticBackendProtocol- classmethod encoding_out_idx()¶
- Return type:
int|None
- classmethod precision()¶
- Return type:
Literal['int8','fp16','fp32']
- classmethod prediction_out_idx()¶
- Return type:
int
- classmethod probe_input_size_samples()¶
- Return type:
int
- classmethod supports_encoding()¶
- Return type:
bool
- class birdnet.acoustic.models.v3_0.onnx.AcousticOnnxBackendFP32V3_0(model_path, device_name, half_precision, **kwargs)¶
Bases:
OnnxBackend,VersionedAcousticBackendProtocol- classmethod encoding_out_idx()¶
- Return type:
int|None
- classmethod precision()¶
- Return type:
Literal['int8','fp16','fp32']
- classmethod prediction_out_idx()¶
- Return type:
int
- classmethod probe_input_size_samples()¶
- Return type:
int
- classmethod supports_encoding()¶
- Return type:
bool
- class birdnet.acoustic.models.v3_0.onnx.AcousticOnnxDownloaderV3_0¶
Bases:
AcousticDownloaderBaseV3_0- classmethod get_model_path_and_labels(lang, precision)¶
- Return type:
tuple[Path,OrderedSet[str]]