---
title: "Troubleshoot"
output: rmarkdown::html_vignette
vignette: >
%\VignetteIndexEntry{Troubleshoot}
%\VignetteEngine{knitr::rmarkdown}
%\VignetteEncoding{UTF-8}
---
```{r, include = FALSE}
knitr::opts_chunk$set(
collapse = TRUE,
comment = "#>",
eval = FALSE
)
```
## Long Pause After Prediction
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:
- Processing long audio files (>20 minutes)
- Using low confidence thresholds that generate many predictions (`min_confidence < 0.1`)
- Working with memory-constrained environments
### Solution: Use `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.
```{r}
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](birdnetR.html) vignette.