How can I add a text to speech service or any other similar services to GoldenDict for offline use?

I am using Ubuntu 13.10 and I want to learn how to pronounce English words I don't know.


You can use the Programs tab to plug a text to speech software (espeak for example) into the GoldenDict.

Here are the steps:

  1. Install espeak:

    sudo apt-get install espeak
  2. Open GoldenDict and hit F3 to bring up the Dictionaries window (or select Edit/Dictionaries menu).

  3. On the Sources tab, select Programs tab.

  4. Click the Add button, select Audio for the Type column, enter espeak for the Name, and espeak -v en %GDWORD% for the Command Line column.

  5. Don't forget to check the Enabled box.

  6. Click OK

  7. Close the GoldenDict window and reopen it.

Now you have an item named espeak in your dictionaries and your translation results. Clicking the speaker icon in front of the word in espeak result, reads the word for you.

| improve this answer | |
  • 1
    most people want to use en-us after -v so my command is espeak -v en-us %GDWORD% to use the American accent. if you want more options such as speed, etc. espeak --help tell every thing. – Martin Apr 7 '17 at 16:41
  • IMO, it is worth to mention that for icon column you can use its original logo located at /usr/share/doc/espeak/docs/images/lips.png in Debian-based systems. – cartoonist Dec 28 '18 at 11:24

Recent versions of GoldenDict have a Programs tab in the settings menu where you can add custom commands to be run on your search term.

This forum post by wissam describes how to set up Google TTS with GoldenDict using the method described above:

if u want to use Google tts in GD u can do that following these steps:

  1. Edit -> Dictionaries -> Programs.

  2. click on Add and choose "Audio" in type field .

  3. in "Command Line" field copy and paste this command:

    bash -c "p=$(echo "%GDWORD%" |sed 's/ /+/g'); wget -q -U Mozilla -O - translate.google.com.vn/translate_tts?ie=UTF-8\&q=$p\&tl=en\&client=tw-ob | mpg123 -"
  4. click ok

    for languages other than english change tl=en in the command ,for example fr for french or es for spanish

Now this is online TTS of course and not necessarily what you are looking for but you can use the same method to add any type of TTS software to GoldenDict (e.g. espeak %GDWORD% as the command line).

Check this Q&A out for good TTS apps on Linux.

| improve this answer | |
  • i did as you said why it doesn't work i copied and paste the command to the command line and the speaker showed up and when i click on it nothing happens what the problem? – mohammed May 2 '14 at 21:53
  • @mohammed Yep, you're right. Not working for me, either. Strange thing is: It did work a few months ago when I first tried it out. An update might have broken it. Sorry :/ – Glutanimate May 3 '14 at 17:57
  • no problem sir just notify me if you found a solution, thanks. – mohammed May 6 '14 at 20:39
  • @mohammed You can see my answer. It works fine. – Mohammad Dehghan Apr 9 '15 at 19:27
  • 1
    change the command to this: bash -c "p=$(echo "%GDWORD%" |sed 's/ /+/g'); wget -q -U Mozilla -O - translate.google.com.vn/translate_tts?ie=UTF-8\&q=$p\&tl=en\&client=tw-ob | mpg123 -" – Mostafa Nov 27 '17 at 4:47

Google Text-To-Speech (TTS)

Don't forget make a symlink for simple_google_tts to your PATH (e.g. ~/bin or /usr/local/bin) to make it easier to access.

| improve this answer | |
bash -c "p=$(echo "%GDWORD%" |sed 's/ /+/g'); wget -q -U Mozilla -O - https://translate.google.com.vn/translate_tts?ie=UTF-8\&q=$p\&tl=en\&client=tw-ob | mpg123 -"

this worked for me.

Make sure you have installed mpg123: sudo apt install mpg123

| improve this answer | |
  • Your are my hero, God Bless You. Worked for me, WoW. – Indacochea Wachín Nov 3 '19 at 4:55

What worked for me:

  1. Install Crow Translate
  2. In GoldenDict, add crow -s en -u “%GDWORD%” to the "Programs" tab. The type should be "Audio". See figure below.

enter image description here

You can change the language of the TTS by changing the part -s en to another code like it for italian, fr for french, etc. See Crow translate documentation for details.

| improve this answer | |

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.