Performance Tuning¶
Transcription performance¶
Achew is designed around minimizing the amount of audio that needs to be transcribed, but if you're working with hundreds of chapters then transcription can certainly take a while. Here are some suggestions for speeding things up:
- On Apple Silicon, switch to the Parakeet MLX or Whisper MLX service. These use hardware acceleration and are dramatically faster.
- Use a smaller Whisper variant (
tinyorsmallinstead ofmedium/large). - Enable the Trim Segments option to cut out unwanted audio.
- Reduce the Transcription length under advanced settings.
Smart Detect performance¶
- Audio analysis is generally CPU-bound, but can become I/O-bound if Achew is running from a spinning disk. If that is the case, consider switching to an SSD. If you're running Achew via Docker and have plenty of system memory to spare (4GB+ free), you can also consider mapping the
/tmp/achewDocker directory to/dev/shm/achewon your system so temporary files are stored in RAM instead of on disk. Seedocker-compose.ymland Storage and Backup. -
Running Smart Detect with the Dramatized option enabled takes roughly 5-10x longer than standard detection. If your book does not have music or sound effects, it is recommended to keep this option disabled.
If you know your book only has music/sfx in a few places, and you know where those places are (e.g. music only plays during the intro and outro), you can start by using standard detection for the initial pass and then later, in the editor, run dramatized detection for those specific sections using the Add Chapter Dialog.
-
Long books simply take longer. For a 20-hour book on a mid-range laptop, expect Smart Detect to take several minutes. Enable the completion chime, then stand up, get some air, and make a sandwich or something.
Tuning the worker count¶
Achew runs part of its audio processing in parallel using multiple workers. By default it picks a worker count based on available CPU cores and memory. This should work well for most hosts, but in some cases you may wish to set this count manually.
To use a specific worker count:
Setting the worker count to 1 disables parallelism entirely, which is the slowest but safest option for memory-constrained devices. On the other hand, feel free to raise the value if you feel your system is being underutilized.