How can I add text-to-speech to GoldenDict?

12,624

Solution 1

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.

Solution 2

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.

Solution 3

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.

Solution 4

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

Solution 5

  • Install translate-shell (https://github.com/soimort/translate-shell) with sudo apt install translate-shell
  • Go to goldendict program section and use bash trans -b -p :en %GDWORD% in the command section, type audio.

This will translate anything that you search to English and then speak the English translation. You can change the en in the code to say it in another language. Internet conection is required to work propearly.

Share:
12,624

Related videos on Youtube

mohammed
Author by

mohammed

Updated on September 18, 2022

Comments

  • mohammed
    mohammed almost 2 years

    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.

  • mohammed
    mohammed about 10 years
    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?
  • Glutanimate
    Glutanimate about 10 years
    @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 :/
  • mohammed
    mohammed about 10 years
    no problem sir just notify me if you found a solution, thanks.
  • Mohammad Dehghan
    Mohammad Dehghan about 9 years
    @mohammed You can see my answer. It works fine.
  • Ali
    Ali almost 9 years
    change the command to this: bash -c "p=$(echo "%GDWORD%" |sed 's/ /+/g'); wget -q -U Mozilla -O - translate.google.com/translate_tts?tl=en\&q=$p | mpg123 -" also be sure mpg123 is installed.
  • Hossein Amiri
    Hossein Amiri about 7 years
    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.
  • Mostafa
    Mostafa over 6 years
    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 -"
  • Karioki
    Karioki almost 6 years
    Don't forget to install mpg123. By default, it may be not there.
  • cartoonist
    cartoonist over 5 years
    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.
  • Indacochea Wachín
    Indacochea Wachín over 4 years
    Your are my hero, God Bless You. Worked for me, WoW.