OsmAnd supports pre-recorded speech packages as a fallback solution if TTS fails. You will have to download the pre-recorded package for your desired language first (you can do that in the map downloads section, just scroll down beyond the maps) to be able to select it as speech output for navigation.
Regarding TTS in LineageOS 16.0 …
I found this here … 9.0 pie - Default text-to-speech (TTS) engine in LineageOS 16.0? - Android Enthusiasts Stack Exchange … suggesting the formerly used Pico TTS would now be dead and would not return, and as an Open Source alternative there’s Flite TTS on F-Droid … https://f-droid.org/en/packages/edu.cmu.cs.speech.tts.flite/
But there’s more to it than just installing it, I found further (German) hints here … Kuketz IT-Security Forum ⋆ IT-Sicherheit | Datenschutz.
Apparently you have to activate the engine in Settings - Accessibility - Text-to-speech output and you can also select a language there.
For me OsmAnd does indeed TTS-talk this way in English, but the results are rather funny for German street names, and there seems to be no German Flite voice … the pre-recorded German speech package sounds much better for German.