If you notice a significant pause after BirdNET has finished
processing your audio file but before returning the results, this is
likely due to data conversion overhead between Python and R when calling
as.data.frame(). This is particularly noticeable when:
min_confidence < 0.1)write_predictions()For large prediction results, prefer write_predictions()
to write results directly from Python to a file (CSV, Parquet, or NumPy)
without crossing the R boundary. This avoids the memory overhead of
converting large result sets to R data frames.
model <- load_birdnet()
predictions <- predict(model, audio_path)
# Write directly from Python - no R conversion needed
write_predictions(predictions, "results.csv")For tips on processing many files efficiently, see the Get started with birdnetR vignette.