Skip to content

Commit

Permalink
Add proper FAQ page and TTS instructions
Browse files Browse the repository at this point in the history
Signed-off-by: meenbeese <[email protected]>

Create text-to-speech.md

Signed-off-by: meenbeese <[email protected]>

Update text-to-speech.md

Signed-off-by: meenbeese <[email protected]>

Add files via upload

Signed-off-by: meenbeese <[email protected]>

Update text-to-speech.md

Signed-off-by: meenbeese <[email protected]>

Added LineageOS instructions for tts

Signed-off-by: meenbeese <[email protected]>

Made small changes

Signed-off-by: meenbeese <[email protected]>

Update text-to-speech.md

Signed-off-by: meenbeese <[email protected]>

[WIP] Added text to speech instructions

Signed-off-by: meenbeese <[email protected]>

Add faq to top bar and use md

Signed-off-by: meenbeese <[email protected]>

Minor rewording and grammar fixes

Signed-off-by: meenbeese <[email protected]>

Add table with all languages

Signed-off-by: meenbeese <[email protected]>

Update eSpeak link

Signed-off-by: meenbeese <[email protected]>

Update and clarify instructions page

Signed-off-by: meenbeese <[email protected]>
  • Loading branch information
vachan-maker authored and meenbeese committed Sep 26, 2023
1 parent 028faa9 commit 45de45e
Show file tree
Hide file tree
Showing 8 changed files with 172 additions and 2 deletions.
2 changes: 2 additions & 0 deletions config.toml
Original file line number Diff line number Diff line change
Expand Up @@ -30,11 +30,13 @@ stripe = "https://donate.organicmaps.app/"
address = "Address"
back = "Back to News"
contact = "Contact Us"
engines = "Supported TTS Engines"
install-appgallery = "Install Organic Maps from Huawei AppGallery"
install-appstore = "Install Organic Maps from the AppStore"
install-googleplay = "Install Organic Maps from Google Play"
install-fdroid="Install Organic Maps from F-Droid"
language = "English"
const_lang = "Language"
name = "Name"
token = "Token"

Expand Down
2 changes: 1 addition & 1 deletion content/_index.md
Original file line number Diff line number Diff line change
Expand Up @@ -110,4 +110,4 @@ Organic Maps is an [open-source software][github] licensed under the Apache Lice

[fork]: https://en.wikipedia.org/wiki/Fork_(software_development)

{{ references() }}
{{ references() }}
76 changes: 76 additions & 0 deletions content/faq/index.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,76 @@
---
title: Text-to-Speech on Android
description: Guide on how to make TTS work on Android
weight: 100
extra:
menu_title: FAQ
---

TLDR:

Organic Maps uses the system text-to-speech (TTS) engine for voice instructions. The default engines vary by device. The choices can include Google Text-to Speech, device manufacturer's engine or a third-party one.

The official recommendation from Organic Maps is [RHVoice](https://rhvoice.org/), which is a free and open source speech engine that can be downloaded from [Google Play](https://play.google.com/store/apps/details?id=com.github.olga_yakovleva.rhvoice.android) and [F-Droid](https://f-droid.org/en/packages/com.github.olga_yakovleva.rhvoice.android/).

## Instructions

- Open the Settings app on your Android device.
- Select Additional Settings and then select Accessibility.
- Choose your preferred engine, speech rate and pitch.

If you cannot find the relevant setting, open the settings app and search for Text-to-speech.

P.S: Do note that these steps will vary based on the phone brand you are using.

Said options may not appear if you don't have a TTS already installed on your device. Please refer to the table below to install any one of them that supports your native language.

## Screenshots

| | | |
| ----------- | ----------- | ----------- |
| <img src='/images/screenshots/tts_config_1.jpg' width='400' alt='Screenshot 1'> | <img src='/images/screenshots/tts_config_2.jpg' width='400' alt='Screenshot 2'> | <img src='/images/screenshots/tts_config_3.jpg' width='400' alt='Screenshot 3'> |

## Engines

Below is a comprehensive list showing several engines and the languages they support (download links can be found after the table):

{{ tts_table() }}

## Downloads

- [Acapela Voices TTS](https://play.google.com/store/apps/details?id=com.acapelagroup.android.tts)
- [Amazon Ivona TTS](https://apkpure.com/ivona-text-to-speech-hq/com.ivona.tts/download)
- [eSpeak TTS](https://f-droid.org/en/packages/com.reecedunn.espeak/)
- [Google Speech Services](https://play.google.com/store/apps/details?id=com.google.android.tts)
- [RHVoice TTS (Recommended)](https://play.google.com/store/apps/details?id=com.github.olga_yakovleva.rhvoice.android)
- [Vocalizer (Code Factory)](https://play.google.com/store/apps/details?id=es.codefactory.vocalizertts)
- [Vocalizer 2 (Nuance)](https://nvda.ru/sintezatory-rechi-vocalizer-expressive2-dlja-nvda#)
- [Yandex SpeechKit TTS](https://4pda.to/forum/index.php?showtopic=200728&st=4200#download)

## Workarounds

If you’re having trouble initializing the RHVoice TTS engine on LineageOS or other custom ROMs, try this workaround. RHVoice may not initialize properly and the app may crash, especially if you haven’t used any TTS engine on your phone before (e.g., new installation, factory reset, etc.). If you’re using a custom ROM like LineageOS <ins>without Google Play services and Speech Services by Google</ins>, and you want to use RHVoice as your preferred TTS engine, follow the instructions below as a workaround:

- Install the [eSpeak TTS engine](https://f-droid.org/en/packages/com.reecedunn.espeak) available on F-Droid

- Set it as the preferred system engine

- Go to LineageOS main **Settings**.

- Scroll down to **Accessibility**.

- Select **text-to-speech output** and **Preferred engine** (left side) and make sure **eSpeak** is selected.

- Go back and press **play** to see if it is working

- Install [RHVoice](https://f-droid.org/en/packages/com.github.olga_yakovleva.rhvoice.android/) available on F-droid.

- Open it, select the language you want to use, tap on the cloud icon (far left) to download voices.

- Press play button to verify if it is working

- Set **RHVoice** as preferred engine (see step 2)

- Now, you should be able to use RHVoice without any problems

*In order to hear voice instructions you have to actually start a navigation to receive any voice output, Organic Maps will not give you any voice instructions while you're standing still.*
Binary file added static/images/screenshots/tts_config_1.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added static/images/screenshots/tts_config_2.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added static/images/screenshots/tts_config_3.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
91 changes: 91 additions & 0 deletions templates/shortcodes/tts_table.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,91 @@
<p id="tts-table" />

{{ trans(key='const_lang', lang=lang) }} | &emsp; {{ trans(key='engines', lang=lang) }}
:------------------|:----------------------------------------------------------
Afrikaans | &emsp; eSpeak
Albanian | &emsp; RHVoice, eSpeak
Arabic | &emsp; Vocalizer, Acapela, Nuance
Aragonese | &emsp; eSpeak
Armenian | &emsp; eSpeak
Basque | &emsp; Vocalizer, Nuance
Bengal | &emsp; Vocalizer, Google, Nuance
Bhojpuri | &emsp; Vocalizer, Nuance
Bulgarian | &emsp; Vocalizer, Nuance, eSpeak
Cantonese | &emsp; Vocalizer, Google, Nuance, eSpeak
Catalan | &emsp; Vocalizer, Acapela, Nuance, eSpeak
Croatian | &emsp; Vocalizer, Nuance, eSpeak
Czech | &emsp; Vocalizer, Acapela, Nuance, eSpeak
Danish | &emsp; Vocalizer, Google, Acapela, Ivona, Nuance, eSpeak
Dongbei | &emsp; Vocalizer
Dutch (BE) | &emsp; Vocalizer, Nuance
Dutch (NL) | &emsp; Vocalizer, Google, Acapela, Ivona, Nuance
English (AU) | &emsp; Vocalizer, Google, Acapela, Nuance, RHVoice
English (IE) | &emsp; Vocalizer, Nuance
English (IN) | &emsp; Vocalizer, Google, Acapela, Nuance
English (SCT) | &emsp; Vocalizer, Nuance, RHVoice
English (UK) | &emsp; Vocalizer, Google, Acapela, Yandex, RHVoice, eSpeak
English (US) | &emsp; Vocalizer, Google, Acapela, Ivona, Yandex, Nuance, RHVoice, eSpeak
English (ZA) | &emsp; Vocalizer, Nuance
Esperanto | &emsp; RHVoice, eSpeak
Estonian | &emsp; eSpeak
Faroese | &emsp; Acapela
Farsi | &emsp; Vocalizer, Nuance, eSpeak
Finnish | &emsp; Vocalizer, Google, Acapela, Nuance, eSpeak
French (BE) | &emsp; Vocalizer
French (CA) | &emsp; Vocalizer, Nuance
French (FR) | &emsp; Vocalizer, Google, Acapela, Ivona, Nuance, eSpeak
Galician | &emsp; Vocalizer, Nuance
Georgian | &emsp; RHVoice, eSpeak
German | &emsp; Vocalizer, Google, Acapela, Ivona, Nuance, eSpeak
Greek | &emsp; Vocalizer, Acapela, Nuance, eSpeak
Hebrew | &emsp; Vocalizer, Nuance
Hindi | &emsp; Vocalizer, Nuance, eSpeak
Hungarian | &emsp; Vocalizer, Google, Nuance, eSpeak
Icelandic | &emsp; eSpeak
Indonesian | &emsp; Vocalizer, Google, Nuance, eSpeak
Irish | &emsp; eSpeak
Italian | &emsp; Vocalizer, Google, Acapela, Ivona, Nuance, eSpeak
Japanese | &emsp; Vocalizer, Google, Acapela, Nuance
Kannada | &emsp; Vocalizer, Nuance, eSpeak
Korean | &emsp; Vocalizer, Google, Acapela, Nuance
Kurdish | &emsp; eSpeak
Kyrgyz | &emsp; RHVoice
Latvian | &emsp; eSpeak
Lithuanian | &emsp; eSpeak
Lojban | &emsp; eSpeak
Macedonian | &emsp; RHVoice, eSpeak
Malay | &emsp; Vocalizer, Nuance, eSpeak
Malayalam | &emsp; eSpeak
Mandarin (CN) | &emsp; Vocalizer, Acapela, eSpeak
Mandarin (TW) | &emsp; Vocalizer, Google, Nuance
Marathi | &emsp; Vocalizer, Nuance
Nepalese | &emsp; eSpeak
Norwegian | &emsp; Vocalizer, Google, Acapela, Ivona, Nuance, eSpeak
Polish | &emsp; Vocalizer, Google, Acapela, Ivona, Nuance, RHVoice, eSpeak
Portuguese (BR) | &emsp; Vocalizer, RHVoice
Portuguese (PT) | &emsp; Vocalizer, Google, Acapela, Ivona, Nuance, eSpeak
Punjabi | &emsp; eSpeak
Romanian | &emsp; Vocalizer, Ivona, Nuance, eSpeak
Russian | &emsp; Vocalizer, Google, Acapela, Ivona, Yandex, RHVoice, eSpeak
Serbian | &emsp; eSpeak
Shaanxi | &emsp; Vocalizer
Shanghainese | &emsp; Vocalizer
Sichuanese | &emsp; Vocalizer
Slovak | &emsp; Vocalizer, Nuance, eSpeak
Slovenian | &emsp; Vocalizer
Spanish (AR) | &emsp; Vocalizer, Nuance
Spanish (CL) | &emsp; Vocalizer, Nuance
Spanish (CO) | &emsp; Vocalizer
Spanish (ES) | &emsp; Vocalizer, Google, Acapela, Ivona, Nuance, eSpeak
Spanish (MX) | &emsp; Vocalizer
Swahili | &emsp; eSpeak
Swedish | &emsp; Vocalizer, Ivona, Nuance, eSpeak
Tamil | &emsp; Vocalizer, Nuance, eSpeak
Telugu | &emsp; Vocalizer
Tatar | &emsp; RHVoice
Thai | &emsp; Vocalizer, Google, Nuance
Turkish | &emsp; Vocalizer, Google, Acapela, Ivona, Yandex, Nuance, eSpeak
Ukrainian | &emsp; Vocalizer, Nuance, RHVoice
Valencian | &emsp; Vocalizer
Vietnamese | &emsp; Vocalizer, Nuance, eSpeak
Welsh | &emsp; eSpeak
3 changes: 2 additions & 1 deletion templates/top_menu.html
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,8 @@
{% for page in [
get_section(path="news/_index.md"),
get_page(path="donate/index.md"),
get_page(path="support-us/index.md")
get_page(path="support-us/index.md"),
get_page(path="faq/index.md")
] %}
{% set translated = page.translations | filter(attribute='lang', value=lang) | first %}
{% if translated %}
Expand Down

0 comments on commit 45de45e

Please sign in to comment.