How To Configure Espeak On Linux Mint 20.2
To Configure Espeak On Linux Mint 20.2
Introduction :
The Espeak speech synthesizer uses a format synthesis method to provide a speech in many languages in a compact size, allowing it to run on Linux, Windows, and other platforms. Most of the programming for Espeaking's language support is done with rule files and feedback from native speakers.
Step 1 : Check the OS Version by using the below command
root@linuxhelp:~# lsb_release -a
No LSB modules are available.
Distributor ID: Linuxmint
Description: Linux Mint 20.2
Release: 20.2
Codename: uma
Step 2 : Checking the git dependency package by using the below command
root@linuxhelp:~# apt list --installed | grep git
WARNING: apt does not have a stable CLI interface. Use with caution in scripts.
git-man/focal-updates,focal-updates,focal-security,focal-security,now 1:2.25.1-1ubuntu3.2 all [installed,automatic]
git/focal-updates,focal-security,now 1:2.25.1-1ubuntu3.2 amd64 [installed]
ifuse/focal,now 1.1.4~git20181007.3b00243-1 amd64 [installed]
kerneloops/focal,now 0.12+git20140509-6ubuntu2 amd64 [installed]
libimobiledevice-utils/focal,now 1.2.1~git20191129.9f79242-1build1 amd64 [installed]
libimobiledevice6/focal,now 1.2.1~git20191129.9f79242-1build1 amd64 [installed]
libmusicbrainz5-2/focal,now 5.1.0+git20150707-9build1 amd64 [installed]
libmusicbrainz5cc2v5/focal,now 5.1.0+git20150707-9build1 amd64 [installed]
librtmp1/focal,now 2.4+20151223.gitfa8646d.1-2build1 amd64 [installed]
libtiff5/focal-updates,focal-security,now 4.1.0+git191117-2ubuntu0.20.04.2 amd64 [installed]
libx264-155/focal,now 2:0.155.2917+git0a84d98-2 amd64 [installed]
net-tools/focal,now 1.60+git20180626.aebd88e-1ubuntu1 amd64 [installed]
qt5-gtk2-platformtheme/focal,now 5.0.0+git23.g335dbec-3ubuntu4 amd64 [installed]
qt5-data-style-plugin-cleanlooks/focal,now 5.0.0+git23.g335dbec-3ubuntu4 amd64 [installed]
qt5-data-style-plugin-motif/focal,now 5.0.0+git23.g335dbec-3ubuntu4 amd64 [installed]
qt5-data-style-plugin-plastique/focal,now 5.0.0+git23.g335dbec-3ubuntu4 amd64 [installed]
qt5-data-style-plugins/focal,now 5.0.0+git23.g335dbec-3ubuntu4 amd64 [installed]
syslinux-common/focal,focal,now 3:6.04~git20190206.bf6db5b4+dfsg1-2 all [installed]
syslinux-utils/focal,now 3:6.04~git20190206.bf6db5b4+dfsg1-2 amd64 [installed]
syslinux/focal,now 3:6.04~git20190206.bf6db5b4+dfsg1-2 amd64 [installed]
usbmuxd/focal,now 1.1.1~git20191130.9af2b12-1 amd64 [installed]
xserver-xorg-video-intel/focal,now 2:2.99.917+git20200226-1 amd64 [installed]
xserver-xorg-video-qxl/focal,now 0.1.5+git20200331-1 amd64 [installed]
Step 3 : Check the make dependency packages by using the below command
root@linuxhelp:~# apt list --installed | grep make
WARNING: apt does not have a stable CLI interface. Use with caution in scripts.
libpagemaker-0.0-0/focal,now 0.0.4-1build1 amd64 [installed]
make/focal,now 4.2.1-1.2 amd64 [installed]
makedev/focal,focal,now 2.3.1-94 all [installed]
Step 4 : Clone the espeak repository by using the below command
root@linuxhelp:~# git clone https://github.com/espeak-ng/espeak-ng.git
Cloning into 'espeak-ng'...
remote: Enumerating objects: 44072, done.
remote: Counting objects: 100% (1510/1510), done.
remote: Compressing objects: 100% (588/588), done.
remote: Total 44072 (delta 961), reused 1385 (delta 902), pack-reused 42562
Receiving objects: 100% (44072/44072), 51.31 MiB | 2.99 MiB/s, done.
Resolving deltas: 100% (30342/30342), done.
Step 5 : Install the auto configuration packages by using the below command
root@linuxhelp:~# apt install autoconf automake pkg-config libgtk-3-dev dh-autoreconf
Reading package lists... Done
Building dependency tree
Reading state information... Done
pkg-config is already the newest version (0.29.1-0ubuntu4).
The following additional packages will be installed:
autopoint autotools-dev debhelper dh-strip-nondeterminism dwz gir1.2-harfbuzz-0.0 icu-devtools libarchive-cpio-perl
libatk-bridge2.0-dev libatk1.0-dev libatspi2.0-dev libblkid-dev libc-dev-bin libc6-dev libcairo-script-interpreter2 libcairo2-dev
libcrypt-dev libdatrie-dev libdbus-1-dev libdebhelper-perl libegl-dev libegl1-mesa-dev libepoxy-dev libexpat1-dev libffi-dev
libfile-stripnondeterminism-perl libfontconfig1-dev libfreetype-dev libfreetype6-dev libfribidi-dev libgdk-pixbuf2.0-dev libgl-dev
libgl1-mesa-dev libgles-dev libgles1 libglib2.0-dev libglib2.0-dev-bin libglvnd-dev libglx-dev libgraphite2-dev libharfbuzz-dev
libharfbuzz-gobject0 libice-dev libicu-dev libltdl-dev libmail-sendmail-perl libmount-dev libopengl-dev libopengl0 libpango1.0-dev
libpcre16-3 libpcre2-dev libpcre2-posix2 libpcre3-dev libpcre32-3 libpcrecpp0v5 libpixman-1-dev libpng-dev libpng-tools
libpthread-stubs0-dev libselinux1-dev libsepol1-dev libsm-dev libsub-override-perl libsys-hostname-long-perl libthai-dev libtool
libwayland-bin libwayland-dev libx11-dev libxau-dev libxcb-render0-dev libxcb-shm0-dev libxcb1-dev libxcomposite-dev libxcursor-dev
libxdamage-dev libxdmcp-dev libxext-dev libxfixes-dev libxft-dev libxi-dev libxinerama-dev libxkbcommon-dev libxrandr-dev
libxrender-dev libxtst-dev pango1.0-tools po-debconf python3-distutils python3-lib2to3 uuid-dev wayland-protocols x11proto-core-dev
x11proto-dev x11proto-input-dev x11proto-randr-dev x11proto-record-dev x11proto-xext-dev x11proto-xinerama-dev xorg-sgml-doctools
xtrans-dev zlib1g-dev
Suggested packages:
autoconf-archive gnu-standards autoconf-doc dh-make glibc-doc libcairo2-doc libdatrie-doc freetype2-doc libgirepository1.0-dev
libglib2.0-doc libxml2-utils libgraphite2-utils libgtk-3-doc libice-doc icu-doc libtool-doc imagemagick libpango1.0-doc libsm-doc
libthai-doc gfortran | fortran95-compiler gcj-jdk libwayland-doc libx11-doc libxcb-doc libxext-doc libmail-box-perl
The following NEW packages will be installed:
autoconf automake autopoint autotools-dev debhelper dh-autoreconf dh-strip-nondeterminism dwz gir1.2-harfbuzz-0.0 icu-devtools
libarchive-cpio-perl libatk-bridge2.0-dev libatk1.0-dev libatspi2.0-dev libblkid-dev libc-dev-bin libc6-dev
libcairo-script-interpreter2 libcairo2-dev libcrypt-dev libdatrie-dev libdbus-1-dev libdebhelper-perl libegl-dev libegl1-mesa-dev
libepoxy-dev libexpat1-dev libffi-dev libfile-stripnondeterminism-perl libfontconfig1-dev libfreetype-dev libfreetype6-dev
libfribidi-dev libgdk-pixbuf2.0-dev libgl-dev libgl1-mesa-dev libgles-dev libgles1 libglib2.0-dev libglib2.0-dev-bin libglvnd-dev
libglx-dev libgraphite2-dev libgtk-3-dev libharfbuzz-dev libharfbuzz-gobject0 libice-dev libicu-dev libltdl-dev
libmail-sendmail-perl libmount-dev libopengl-dev libopengl0 libpango1.0-dev libpcre16-3 libpcre2-dev libpcre2-posix2 libpcre3-dev
libpcre32-3 libpcrecpp0v5 libpixman-1-dev libpng-dev libpng-tools libpthread-stubs0-dev libselinux1-dev libsepol1-dev libsm-dev
libsub-override-perl libsys-hostname-long-perl libthai-dev libtool libwayland-bin libwayland-dev libx11-dev libxau-dev
libxcb-render0-dev libxcb-shm0-dev libxcb1-dev libxcomposite-dev libxcursor-dev libxdamage-dev libxdmcp-dev libxext-dev
libxfixes-dev libxft-dev libxi-dev libxinerama-dev libxkbcommon-dev libxrandr-dev libxrender-dev libxtst-dev pango1.0-tools
po-debconf python3-distutils python3-lib2to3 uuid-dev wayland-protocols x11proto-core-dev x11proto-dev x11proto-input-dev
x11proto-randr-dev x11proto-record-dev x11proto-xext-dev x11proto-xinerama-dev xorg-sgml-doctools xtrans-dev zlib1g-dev
0 upgraded, 107 newly installed, 0 to remove and 16 not upgraded.
Need to get 27.1 MB of archives.
After this operation, 146 MB of additional disk space will be used.
Do you want to continue? [Y/n] y
Get:1 http://archive.ubuntu.com/ubuntu focal/main amd64 autoconf all 2.69-11.1 [321 kB]
Get:2 http://archive.ubuntu.com/ubuntu focal/main amd64 autotools-dev all 20180224.1 [39.6 kB]
Get:3 http://archive.ubuntu.com/ubuntu focal/main amd64 automake all 1:1.16.1-4ubuntu6 [522 kB]
Get:4 http://archive.ubuntu.com/ubuntu focal/main amd64 autopoint all 0.19.8.1-10build1 [412 kB]
Get:5 http://archive.ubuntu.com/ubuntu focal-updates/main amd64 libc-dev-bin amd64 2.31-0ubuntu9.2 [71.8 kB]
Get:6 http://archive.ubuntu.com/ubuntu focal/main amd64 libcrypt-dev amd64 1:4.4.10-10ubuntu4 [104 kB]
Get:7 http://archive.ubuntu.com/ubuntu focal-updates/main amd64 libc6-dev amd64 2.31-0ubuntu9.2 [2,520 kB]
Get:8 http://archive.ubuntu.com/ubuntu focal/main amd64 libtool all 2.4.6-14 [161 kB]
Get:9 http://archive.ubuntu.com/ubuntu focal/main amd64 dh-autoreconf all 19 [16.1 kB]
Get:10 http://archive.ubuntu.com/ubuntu focal/main amd64 libdebhelper-perl all 12.10ubuntu1 [62.1 kB]
Get:11 http://archive.ubuntu.com/ubuntu focal/main amd64 libsub-override-perl all 0.09-2 [9,532 B]
Get:12 http://archive.ubuntu.com/ubuntu focal/main amd64 libfile-stripnondeterminism-perl all 1.7.0-1 [15.9 kB]
Get:13 http://archive.ubuntu.com/ubuntu focal/main amd64 dh-strip-nondeterminism all 1.7.0-1 [5,228 B]
Get:14 http://archive.ubuntu.com/ubuntu focal/main amd64 dwz amd64 0.13-5 [151 kB]
Get:15 http://archive.ubuntu.com/ubuntu focal/main amd64 po-debconf all 1.0.21 [233 kB]
Get:16 http://archive.ubuntu.com/ubuntu focal/main amd64 debhelper all 12.10ubuntu1 [877 kB]
Get:17 http://archive.ubuntu.com/ubuntu focal/main amd64 gir1.2-harfbuzz-0.0 amd64 2.6.4-1ubuntu4 [26.3 kB]
Get:18 http://archive.ubuntu.com/ubuntu focal-updates/main amd64 icu-devtools amd64 66.1-
Setting up libgl1-mesa-dev:amd64 (21.0.3-0ubuntu0.3~20.04.5) ...
Setting up libegl1-mesa-dev:amd64 (21.0.3-0ubuntu0.3~20.04.5) ...
Setting up libepoxy-dev:amd64 (1.5.4-1) ...
Setting up libgtk-3-dev:amd64 (3.24.20-0ubuntu1) ...
Step 6 : change the directory to espeak by using the below command
root@linuxhelp:~# cd espeak-ng/
Step 7 : Running the Autogen script
root@linuxhelp:~/espeak-ng# ./autogen.sh
libtoolize: putting auxiliary files in '.'.
libtoolize: copying file './ltmain.sh'
libtoolize: putting macros in AC_CONFIG_MACRO_DIRS, 'm4'.
configure.ac:4: installing './compile'
configure.ac:4: installing './config.guess'
configure.ac:4: installing './config.sub'
configure.ac:3: installing './install-sh'
configure.ac:3: installing './missing'
Makefile.am:487: warning: '%'-data-style pattern rules are a GNU make extension
Makefile.am:498: warning: '%'-data-style pattern rules are a GNU make extension
Makefile.am:509: warning: '%'-data-style pattern rules are a GNU make extension
Makefile.am:512: warning: *F: non-POSIX variable name
Makefile.am:1056: warning: '%'-data-style pattern rules are a GNU make extension
Makefile.am: installing './INSTALL'
Makefile.am: installing './depcomp'
Step 8 : Configure the packages by using the below command
root@linuxhelp:~/espeak-ng# ./configure --prefix=/usr
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for a thread-safe mkdir -p... /usr/bin/mkdir -p
checking for gawk... gawk
checking whether make sets $(MAKE)... yes
checking whether make supports nested variables... yes
checking build system type... x86_64-pc-linux-gnu
checking host system type... x86_64-pc-linux-gnu
checking how to print strings... printf
checking whether make supports the include directive... yes (GNU data-style)
Configuration for eSpeak NG complete.
Source code location: .
C99 Compiler: gcc
C99 Compiler flags: -Wunused-parameter -Wunused -Wuninitialized -Wreturn-type -Wmissing-prototypes -Wint-conversion -Wimplicit -g -O2 -std=c99
Sonic: no
PCAudioLib: no
gradle (Android): gradle
ndk-build (Android):
Klatt: yes
speechPlayer: yes
MBROLA: yes
Async: yes
Extended Dictionaries:
Russian: no
Chinese (Mandarin): no
Chinese (Cantonese): no
Step 9 : Execute the make files by using the below command
root@linuxhelp:~/espeak-ng# make
make all-am
make[1]: Entering directory '/root/espeak-ng'
CC src/speak-ng.o
In file included from src/speak-ng.c:23:
src/espeak-ng.c: In function ‘main’:
src/espeak-ng.c:744:3: warning: ignoring return value of ‘fread’, declared with attribute warn_unused_result [-Wunused-result]
744 | fread(p_text, 1, filesize, f_text);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
CC src/ucd-tools/src/libespeak_ng_la-case.lo
CC src/ucd-tools/src/libespeak_ng_la-categories.lo
CC src/ucd-tools/src/libespeak_ng_la-ctype.lo
CC src/ucd-tools/src/libespeak_ng_la-proplist.lo
CC src/ucd-tools/src/libespeak_ng_la-scripts.lo
CC src/ucd-tools/src/libespeak_ng_la-tostring.lo
CC src/libespeak-ng/la-compiledata.lo
src/libespeak-ng/compiledata.c: In function ‘LoadDataFile.part.0’:
src/libespeak-ng/compiledata.c:1239:56: warning: ‘%s’ directive writing up to 99 bytes into a region of size between 54 and 382 [-Wformat-overflow=]
1239 | sprintf(command, "sox \"%s/%s.wav\" -r %d -c1 -t wav %s\n", phsrc, fname2, samplerate_native, fname_temp);
| ^~ ~~~~~~~~~~
In file included from /usr/include/stdio.h:867,
from src/include/compat/stdio.h:30,
from src/libespeak-ng/compiledata.c:27:
/usr/include/x86_64-linux-gnu/bits/stdio2.h:36:10: note: ‘__builtin___sprintf_chk’ output between 30 and 457 bytes into a destination of size 410
36 | return __builtin___sprintf_chk (__s, __USE_FORTIFY_LEVEL - 1,
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
37 | __bos (__s), __fmt, __va_arg_pack ());
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/libespeak-ng/compiledata.c:1034:40: warning: ‘%s’ directive output may be truncated writing up to 199 bytes into a region of size 180 [-Wformat-truncation=]
1034 | snprintf(filename, sizeof(filename), "%s/%s", phsrc, path);
| ^~ ~~~~~
In file included from /usr/include/stdio.h:867,
from src/include/compat/stdio.h:30,
from src/libespeak-ng/compiledata.c:27:
/usr/include/x86_64-linux-gnu/bits/stdio2.h:67:10: note: ‘__builtin___snprintf_chk’ output 2 or more bytes (assuming 201) into a destination of size 180
67 | return __builtin___snprintf_chk (__s, __n, __USE_FORTIFY_LEVEL - 1,
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
68 | __bos (__s), __fmt, __va_arg_pack ());
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/libespeak-ng/compiledata.c: In function ‘CompilePhoneme’:
src/libespeak-ng/compiledata.c:2003:29: warning: ‘__builtin___sprintf_chk’ may write a terminating nul past the end of the destination [-Wformat-overflow=]
/usr/include/x86_64-linux-gnu/bits/stdio2.h:36:10: note: ‘__builtin___sprintf_chk’ output between 1 and 211 bytes into a destination of size 190
36 | return __builtin___sprintf_chk (__s, __USE_FORTIFY_LEVEL - 1,
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
37 | __bos (__s), __fmt, __va_arg_pack ());
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/libespeak-ng/voices.c:574:20: warning: ‘%s’ directive writing up to 39 bytes into a region of size between 19 and 190 [-Wformat-overflow=]
574 | sprintf(buf, "%s%s", path_voices, voicename); // look in the main languages directory
| ^~ ~~~~~~~~~
In file included from /usr/include/stdio.h:867,
from src/include/compat/stdio.h:30,
from src/libespeak-ng/voices.c:26:
/usr/include/x86_64-linux-gnu/bits/stdio2.h:36:10: note: ‘__builtin___sprintf_chk’ output between 1 and 211 bytes into a destination of size 190
36 | return __builtin___sprintf_chk (__s, __USE_FORTIFY_LEVEL - 1,
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
37 | __bos (__s), __fmt, __va_arg_pack ());
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
CC src/libespeak-ng/la-wavegen.lo
CC src/libespeak-ng/la-klatt.lo
CC src/libespeak-ng/la-sPlayer.lo
CXX src/speechPlayer/src/frame.lo
Step 10 : Run the below command to change the text into Audio
root@linuxhelp:~/espeak-ng# espeak-ng -v en-us --stdout "Subscribe to Linuxhelp" -s 100 > /home/linuxhelp/Music/Linuxhelp.mp3
Conclusion:
We have reached the end of this article. In this guide, we have walked you through the steps required to configure Espeak on Linux Mint 20.2, Your feedback is much welcome.