Add text-to-speech to Organic Maps / CoMaps on GrapheneOS

Add text-to-speech to Organic Maps / CoMaps on GrapheneOS
Who else remembers paper maps?

One of the first things I wanted to install on GrapheneOS was a navigation system. I didn't find anything in the App Store, but I did stumble upon another app store called Accrescent. I downloaded it, reviewed the list of available apps, and found Organic Maps, which downloads maps for offline use from OpenStreetMap.

The next day I took Organic Maps for a spin, and it was quite good, but I noticed that there was no text-to-speech (TTS) for directions. I checked Settings > Voice Instructions in Organic Maps, and while it appeared to be turned on, it was grayed out. I then went to the phone's Settings > System > Language & region > Speech and noticed there wasn't any text-to-speech there either.

Turns out, text-to-speech is not included and needs to be installed separately. After a bit of research, I found that I either need to install Google Play Services and get it from there, or try yet another app store. I opted for Droid-ify, which is a client for the F-Droid app store, from which you can download and install RHVoice, select your language, and then download various voices for TTS.

Install Droid-ify on GrapheneOS

From your phone, go to Droid-ify's latest release on GitHub and download app-release.apk toward the bottom of the page.

Depending on whether you open the download from Vanadium or Files, you'll have to give the respective app permission to install unknown apps. You'll be prompted to do so, but if you close that window, you can just:

  1. Go to Settings > Apps
  2. Find and click on the app
  3. Scroll down to Advanced
  4. Click on Install unknown apps
  5. Enable Allow from this source
  6. Open app-release.apk again

Install RHVoice and download voices

I first tried eSpeak, but I couldn't find an obvious way to get the voice files, so I ended up going with RHVoice.

  1. Open Droid-ify on your phone
  2. Make sure you're on the Explore tab
  3. Search for RHVoice, select it, and click install

Once installed, open it, find your language, preview the different voices with the play button, and click on the download button once you find a good one.

Configure TTS on GrapheneOS

  1. Go back to Settings > System > Language & region > Speech
  2. Click on Text-to-speech output
  3. Make sure RHVoice is selected as the Preferred engine

You can play with the speech rate and pitch, but I thought the default was fine. Click Play at the bottom to preview the voice.

Configure TTS in Organic Maps

  1. Open Organic Maps
  2. Go to Settings
  3. Scroll down to Navigation
  4. Click on Voice instructions
  5. Enable Voice Instructions
  6. Enable Announce Street Names (if you want)

When I tried Organic Maps again, it did announce the directions perfectly, but it wasn't reading out street names. I turned that option off and back on again, and then it worked.

It's not the best text-to-speech I ever heard, but if you value free and open-source, it's definitely something one can get used to.

As an aside, I later learned that there is an issue with Organic Maps:

Governance issues and community concerns not addressed by company shareholders stalled the development of Organic Maps for months.

Source: https://www.comaps.app/about-us/

Which led to a new Organic Maps fork (by former contributors) called CoMaps. Since CoMaps is available via Droid-ify, it was easy enough to make the switch.

I don't know what the future holds for Organic Maps, but figured I'd share this in case there are less frequent updates to Organic Maps moving forward.

Featured image by Etienne Girardet.