Could you please help me to install voices from here, I read the manual But I don't know how can 'Get the en1'.
-
I've seen ways to play with espeak with sox post-filters if you just want to modify a voice, use swift from cepstral to use more human sounding voices, or plug cepstral voices in to festival for use with IVRs. I haven't seen a way to plug more human voices in to espeak though.– RobotHumansCommented Nov 29, 2014 at 21:58
6 Answers
- Download: http://www.tcts.fpms.ac.be/synthesis/mbrola/bin/pclinux/mbr301h.zip
Copy text to run in terminal line by line:
cd Downloads unzip mbr301h.zip sudo cp mbrola-linux-i386 /usr/bin/mbrola
Download: http://www.tcts.fpms.ac.be/synthesis/mbrola/dba/en1/en1-980910.zip
Copy text to run in terminal line by line:
unzip en1-980910.zip cp en1/en1 /usr/share/mbrola/en1
Now run espeak, with options
espeak -v mb-en1 "Hello world"
Nice, but it seems he is reading too fast, try:
espeak -v mb-en1 -s 120 "Hello world"
-
Thank you so much, Do you know any other way to improve voice quality and pronunciation? Commented Dec 2, 2014 at 8:02
-
2@Daniyal : You can generate phonems with
espeak
and process them through mbrola :espeak -v mb-en1 -s 120 "Hello world" --pho|mbrola /usr/share/mbrola/en1 output.wav
(note the addition of--pho
option toespeak
). Commented Sep 7, 2015 at 13:56 -
@SkippyleGrandGourou No I can't, got this error:
FATAL ERROR : cannot find file /usr/share/mbrola/en1 ! mbrola: FATAL ERROR : cannot find file /usr/share/mbrola/voices/en1 ! mbrowrap error: mbrola exited with status 216 mbrola voice not found
I don't know what you want but may be you can use of itespeak -v mb-us2 -s 120 "Hello world" -w output.wav --pho
Commented Sep 8, 2015 at 15:24 -
5It's down for me but I managed to find it on the wayback machine: web.archive.org/web/20180627172600/http://www.tcts.fpms.ac.be/…– 0x777CCommented Oct 27, 2018 at 16:21
-
4Here's the second file on the wayback maching - web.archive.org/web/20160706052143/http://www.tcts.fpms.ac.be/…– CampbelnCommented Mar 16, 2019 at 8:43
you can install embrola voices executing the following command:
sudo apt-get install mbrola mbrola-en1
for more information visit the offical repo from github
-
This doesn't appear to be available on mine. Is it in the non-free repositories? Commented Oct 1, 2022 at 3:07
-
1@Brōtsyorfuzthrāx i got the server of united states, actually really i dont know if its free or non-free, in the command
apt-cache show mbrola
it appears that this is the official repository github.com/numediart/MBROLA Commented Oct 4, 2022 at 16:41
This process works on 20.04.2 LTS (Focal Fossa):
Find your voice
Find the desired mbrola voice by visiting the github:
https://github.com/numediart/MBROLA-voices
Locate and document the desired voice. For this example, I'm going to use British English, which is "en1".
Get dependencies
Install the dependent applicatons:
sudo apt install -y espeak mbrola mbrola-en1 speech-dispatcher speech-dispatcher-espeak-ng
Edit speech-dispatcher/speechd.conf
To keep it simple, we'll paste our config at the top of speechd.conf and comment-out one setting in speechd.conf.
So open speechd.conf:
sudo nano /etc/speech-dispatcher/speechd.conf
Paste the following at the top of the document:
# Enable British English "en1"
AddModule "espeak-mbrola-generic" "sd_generic" "espeak-mbrola-generic.conf"
DefaultModule espeak-mbrola-generic
LanguageDefaultModule "en1" "espeak-mbrola-generic"
Now search using "Ctrl+W" and copy/paste:
DefaultModule espeak-ng
Now comment it out by adding a hash at the beginning, like this:
#DefaultModule espeak-ng
Now save speechd.conf in nano:
- Press Ctrl+X
- Press "Y" to overwrite
- Press Enter to save and close nano
Start the speech-dispatcher daemon
Start the daemon paste in the command:
sudo speech-dispatcher -d
This should start the speech daemon.
Testing mbrola? I don't know how.
Testing the new British English voice in espeak will not produce your changes; it will be the default espeak voice, not the "en1", British English voice you're now using for mbrola.
I don't know how to test mbrola, so I will just continue on with my implementation of mobrola-en1.
Speak Text for Okular
If you're interested in using a PDF Reader that has a "text to speech" feature, install Okular:
sudo apt install okular
Now, open a PDF and:
- Press "Ctrl+3" to set tool to "Area Selection"
- Click & drag a box over a section of text you want Okular to read
- After the context menu appears, select "Speak Text"
Success!
You've now successfully setup text to speech, using speech-dispatcher, espeak, mbrola, and mbrola-en1 using Okular through the Ubuntu Package Repository.
Adjust the speed of reading
By default, mbrola-en1 reads rather quickly. To "slow down" the speed, espeak--mbrola-generic config.
sudo nano /etc/speech-dispatcher/modules/espeak-mbrola-generic.conf
With the config open in nano,
- Press "Ctrl+W"
- Paste "GenericRateAdd" and enter
Set GenericRateAdd to a number between 80 and 320
GenericRateAdd 200
Adjust pitch
Below GenericRateAdd, you can also adjust Pitch:
GenericPitchAdd 80
Now save espeak-mbrola-generic.conf in nano:
- Press Ctrl+X
- Press "Y" to overwrite
- Press Enter to save and close nano
Adjust the word gap speed
espeak provides an easy way to adjust the time between words that text is read. To adjust said gap, open your module config file:
sudo nano /etc/speech-dispatcher/modules/espeak-mbrola-generic.conf
One of the first uncommented lines looks like this:
"echo \'$DATA\' | espeak -v mb-$VOICE -s $RATE -p $PITCH $PUNCT -q --stdin>
Add in an argument after espeak, "-g 15" to set the word gap time to 15ms (default is 10ms):
"echo \'$DATA\' | espeak -g 15 -v mb-$VOICE -s $RATE -p $PITCH $PUNCT -q --stdin>
If you saved a bad config...
Skip this if you've saved & successfully run a good speechd config.
If you manage to screw up and save your config file, refer to Jeremy Bicha's response.
First remove the speechd.conf
sudo rm -rf /etc/speech-dispatcher/speechd.conf
Reinstall speech-dispatcher and regenerate config
sudo apt install --reinstall -o Dpkg::Options::="--force-confask,confnew,confmiss" speech-dispatcher
Here is a copy of Mateo's answer as a single command and cleanup.
You will need sudo
privileges to copy to /usr/bin/
.
mkdir tmp_mbrola
cd tmp_mbrola
wget http://www.tcts.fpms.ac.be/synthesis/mbrola/bin/pclinux/mbr301h.zip
unzip mbr301h.zip
sudo cp mbrola-linux-i386 /usr/bin/mbrola
wget http://www.tcts.fpms.ac.be/synthesis/mbrola/dba/en1/en1-980910.zip
unzip en1-980910.zip
sudo mkdir /usr/share/mbrola
sudo cp en1/en1 /usr/share/mbrola/en1
cd ..
sudo rm -Rf ./tmp_mbrola/
espeak -v mb-en1 -s 160 "Hello world"
I am getting this error when text is read but it seems to work:
*** Error in `mbrola': free(): invalid pointer: 0x08af1dd8 ***
If anyone knows what is causing this error please let me know in the comments.
Gespeaker on Ubuntu 18.04
Hi all, I have been looking for ways to improve the espeak user experience including modifying/adding new voices and came across this article regarding Gespeaker which is a graphical interface for espeak. It's easier to use especially for bits of text which you can cut and paste from a webpage and have read. To expand the text window to accommodate large chunks of texts click on the "advanced settings" button (see image).
There is an option for variant in the voice section (where you have male and female - which work). I don't know how to make use of this to add a variant (of a voice?). I will update this if I find a way.
To install Gespeaker, open Terminal and
$ sudo apt-get install gespeaker
You also need to install python-dbus
$ sudo apt-get install python-dbus
Update. I managed to add additional mbrola voices that can be used with Gespeaker.
This how. First install the mbrola text-to-speech engine. Open Terminal and enter $ sudo apt install mbrola followed by pressing the return key.
You should see something this if the install ran okay "MBROLA 3.01h - speech synthesizer Author : Thierry Dutoit with help of AC/DC adaptator Vincent Pagel Copyright (c) 95 Faculte Polytechnique de Mons (TCTS lab) - T.Dutoit...etc"
Next install a mbrola voice. You can view a list of available voice packages here: http://www.muflone.com/gespeaker/english/mbrola_voices/ubuntu1610 The last updates were for Ubuntu 16.10. I haven't found newer versions.
Install a voice package.For example to install the US english female voice run
$ sudo apt install mbrola-us1
Restart Gespeaker.
You should see the voice appear amongst the existing espeak voices in the language bar of Gespeaker. See the image below.
I still don't know how to employ the "Variant" option.
Credits: https://vitux.com/convert-text-to-voice-with-espeak-on-ubuntu/
This answer is an updated version of Mateo's accepted answer. Since the ISIA Lab (formerly known as TCTS) is not hosting its website any more, we must download them from GitHub directly. Disclaimer, I am currently working in this lab, but not on that project.
Install the needed dependencies (see MBROLA GitHub repository for the details):
sudo apt update sudo apt install espeak make gcc git -y
Download, compile and install MBROLA:
git clone https://github.com/numediart/MBROLA.git cd MBROLA make cp Bin/mbrola /usr/bin/mbrola
Download the desired voice from the MBROLA-voices GitHub repository (you can do it manually):
mkdir /usr/share/mbrola/en1 curl -L -o /usr/share/mbrola/us1/us1 https://github.com/numediart/MBROLA-voices/blob/master/data/en1/en1?raw=true
Note:
/usr/share/mbrola/en1
is a folder, while your file's path will be/usr/share/mbrola/en1/en1
. Don't forget to changeen1
with whatever voice you wish to use (also in the commands hereunder).Now you can run
espeak
:espeak -v mb-en1 "Hello world"
Mateo said the voice was reading too fast and proposed to set the speed using
-s 120
:espeak -v mb-en1 -s 120 "Hello world"
Bonus! If, like me, you have installed
MBROLA
andespeak
on a remote headless server, you may prefer to generate a.wav
file and usescp
to download it to your local machine.Generate the file on the remote machine:
ssh user@remote_machine_ip 'espeak -v mb-us1 -s 120 "Nice hat" --stdout > /tmp/file.wav && exit'
Download the generated file:
scp user@remote_machine_ip:/tmp/file.wav /local_machine/path/to/file.wav
-
I followed your instruction, I get follwing error and audio is not clear
$ espeak-ng -v mb-us1 "Hello world"
Erroe:mbrola: Warning: w-r= unknown, replaced with _-_
,mbrola: Warning: r=-l unknown, replaced with _-_
Commented Jan 5 at 19:06 -
@Porcupine you should ask your question on MBROLA repository (github.com/numediart/MBROLA). Commented Jan 9 at 14:07