Firebrat can turn a PDF into an audiobook entirely on your phone, with nothing leaving the device, or use a free cloud LLM key to convert much faster. You choose per book, and you can change your mind any time.
Many people care more about privacy than convenience, so the most private option needs no account, no server and no key. The cloud options below are always opt-in.
Free LLM providers may log prompts. Use the on-device model for anything confidential.

A cloud model is far faster than a phone and needs no multi-gigabyte model download. Several services give out free keys that work with Firebrat, because they all speak the same OpenAI-compatible protocol.
:free. You can also let the app list them for you (step 5).https://openrouter.ai/api/v1 as the LLM URL, paste your key, then tap Load models. Pick a free model from the list (type to search).Free-tier limits: OpenRouter allows 20 requests a minute on free models, and 50 requests a day until you have purchased at least 10 credits, after which the daily limit is 1,000. Long books need many requests, so a free key suits shorter books, or lets you convert a longer book over a few days. Free model lists change often; always check the current list.
Create a key at console.groq.com/keys. LLM URL: https://api.groq.com/openai/v1. Tap Load models to see what your account can use.
Create a key at aistudio.google.com. LLM URL: https://generativelanguage.googleapis.com/v1beta/openai/. Google offers a free tier with its own rate limits; check the current limits on their pricing page.
OpenAI, nano-gpt, a local server such as Ollama or LM Studio on your network, and many others work the same way: URL, key, model name. The URL usually ends in /v1.


Easy passages stay on the phone; only equations, figures and tables go to the cloud. A good balance for private-leaning users.
Fastest. Skips the local model entirely, but all of the book’s text goes to your provider.
Cloud helper off. Slowest, most private. Nothing leaves the phone after the one-time downloads.
Besides PDFs and ZIPs of chapter PDFs, Firebrat converts DRM-free EPUB, MOBI, AZW and AZW3 ebooks, on your phone or on a server. Ebooks are read as text in reading order, using the book’s chapter titles, which makes them a great fit for Novel mode with character voices.
Bigger models read hard passages better but need more memory and time. Listed from lightest to heaviest (approximate RAM while converting). The app now offers more, larger models than this table shows; see what’s new. If Android closes the app or conversion stalls, step down a size or set the GPU acceleration slider to 0.
| Model | RAM | Best for |
|---|---|---|
| Qwen3 0.6B | ~1 GB | Lightest and fastest. Safe on 4–6 GB phones. |
| Gemma 3 1B | ~1.5 GB | Compact, text-only. Good for low-memory phones. |
| SmolLM2 1.7B | ~1.7 GB | Small general model, fine on 6 GB and up. |
| Qwen3 1.7B (default) | ~2 GB | Balanced choice for 6–8 GB phones. Start here. |
| Llama 3.2 3B | ~3 GB | Better quality for 8 GB phones. |
| Qwen3 4B, Gemma 3 4B, Phi-4 Mini | ~3.8 GB | Highest quality and heaviest. May run out of memory on 8 GB phones, especially with GPU offload. |
Choose the book type in Conversion settings › Book type.
Keeps the original prose word for word, splits dialogue by speaker, and gives each named character their own delivery. Speakers are recognised from explicit tags such as Alice said or “Hello,” Bob replied. Anything uncertain is read by the narrator.
Beyond male and female, each character can have an age (child, young, adult, elder) and a temperament (calm, cheerful, stern, gruff, gentle, energetic, mysterious). Age and temperament change speed, pitch and expressiveness, and spread characters across the available voices.
Set them yourself in Character voice overrides, one per line:
Alice=child cheerful
Mad Hatter=Michael, elder, gruff
Queen of Hearts=female stern
Names match without regard to case, and a short name such as “Hatter” also matches “Mad Hatter”. Overrides that match nobody are reported in the conversion log, so typos are easy to spot.
Turn on Research characters online. Firebrat finds the book’s Wikipedia article and asks your LLM to describe each character’s age and temperament, then applies it. Only the title and character names are sent, never the book’s text. This needs an LLM URL, key and model (see above) or a server. Your own overrides always win over research, and any failure simply skips the step.
After a novel is converted, open Cast & voices (the people icon in the reader, or long-press the book in your library). It lists every speaker with their number of lines, shows what share of the book’s dialogue was attributed to a named character (the rest is read by the narrator), and shows each character’s age, temperament and voice, plus what the web research found and missed. A character appears only when the book tags their lines (“Elizabeth said”), so the percentage is the honest measure of coverage.
For textbooks, datasheets and papers: figures, tables and formulas stay on screen and highlighted exactly while they are being discussed, and Source page opens the original PDF page.



Keep your converted books safe and move them between devices through your own Google Drive.
Privacy: Firebrat asks only for access to files it creates itself (the “drive.file” permission). It cannot see or change anything else in your Drive. You can turn sync off at any time.

Recent additions. Items marked Not yet tried on a device are covered by unit tests and static analysis but have not been run on a phone.
Open Community from your library to browse the free, copyright-free library and choose Add to my library. Downloads come only from archive.org. The library is new and may have few books yet.
Focus (zoomed-in) mode now shows a figure or table linked to the whole section, not only one tied to the sentence being read, and thumbnails are shown uncropped on white. This was checked on a Pixel 9a with a book whose figures had been re-linked by their captions.
The language-model list grew to 13 models, grouped by tier: Light, Balanced, Powerful and Desktop-class. Each shows its size, an estimated minimum RAM and its licence, and the app recommends the largest one your phone should handle and warns when a choice looks too big. The RAM figures are estimates, and a very large model can still be closed by Android. Llama and Gemma models carry their own non-permissive licences, shown in the list.
The Kokoro voice has three variants: int8 (the default, the one that has been used on a phone), fp16 and fp32, plus five extra voices, for 11 voices in all. Only int8 has been run on a device.
Conversion settings has a choice for the speech engine. Auto uses the CPU for the default model. GPU / NPU asks Android’s accelerator interface first and falls back to the CPU automatically if it fails. CPU always uses the CPU. A Running on line shows what was actually used after a narration.
Please expect little gain. Kokoro GPU or NPU acceleration could not be verified: the available packages cannot reach a phone’s GPU or NPU for this model in a way we could confirm, and the Android interface does not handle the model’s changing input sizes well. In measurements on a Pixel 9a the accelerator request fell back to the CPU and was slower; CPU stays recommended. See the benchmarks.
At the bottom of Conversion settings, Download over lets you choose Wi-Fi only, Wi-Fi and cellular (the default) or Ask on cellular for downloads over 50 MB. When a download is not allowed it waits for Wi-Fi and resumes by itself. It covers model downloads, book downloads, Drive sync and Community downloads. The app cannot see Android’s metered-connection flag, so a metered hotspot looks like Wi-Fi.
If you run your own server with accounts turned on (see server administration), the app shows a setup screen for the first admin and, for admins, Server administration with Users, Models, Run pattern and Queue. Viewers see “Your account can only listen” and no upload button. The Expressive voices book type appears only when the server offers it and your role allows uploads.
Firebrat opens a short guide the first time you start it, and you can reopen it whenever you like.
Open the menu and choose App guide.
Tap the compass icon at the top right of the screen.
Tap Take the app tour under the import button.
/v1, for example https://openrouter.ai/api/v1.Still stuck? Open an issue.