How can I add text-to-speech to GoldenDict?
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:
-
Install espeak:
sudo apt-get install espeak
Open GoldenDict and hit F3 to bring up the Dictionaries window (or select Edit/Dictionaries menu).
On the Sources tab, select Programs tab.
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.Don't forget to check the Enabled box.
Click OK
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:
Edit -> Dictionaries -> Programs.
click on Add and choose "Audio" in type field .
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 -"
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)
- install simple google tts like that: http://tuxdiary.com/2014/09/29/google-text-to-speech-tts-linux/
or https://github.com/Glutanimate/simple-google-tts - Edit -> Dictionaries -> Programs.
- click on Add and choose "Audio" in type field .
-
in "Command Line" field copy and paste this command:
simple_google_tts en "%GDWORD%"
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.
Related videos on Youtube
mohammed
Updated on September 18, 2022Comments
-
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 about 10 yearsi 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 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 about 10 yearsno problem sir just notify me if you found a solution, thanks.
-
Mohammad Dehghan about 9 years@mohammed You can see my answer. It works fine.
-
Ali almost 9 yearschange 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 about 7 yearsmost people want to use
en-us
after -v so my command isespeak -v en-us %GDWORD%
to use the American accent. if you want more options such as speed, etc.espeak --help
tell every thing. -
Mostafa over 6 yearschange 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 almost 6 yearsDon't forget to install mpg123. By default, it may be not there.
-
cartoonist over 5 yearsIMO, 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 over 4 yearsYour are my hero, God Bless You. Worked for me, WoW.