Skip to content

valdisvi/espeak-ng-jeditor

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

eSpeak NG Java Editor

This is an eSpeakNG Editor rewritten in Java.

Screenshot

Screenshot

This editor is not production ready yet! For latest development news look at commits. For production purposes you can use older snapshot of espeak-ng-editor!

Building

Building espeak-ng (optional)

There library built in this project already, which is located in lib folder. Following is description how to build library from eSpeakNG source files:

eSpeakNG Java Editor relies on libraries of eSpeakNG, which have to be recompiled with custom settings. Clone eSpeakNG project and solve dependencies:

(To be sure) install additional packages:

sudo apt-get install libwxgtk3.0 libportaudio2 sox libwxgtk3.0-dev libportaudio-dev

You need to install Mbrola to see Prosody tab, use this command:

sudo apt install mbrola mbrola-en1

When invoke building of espeak-ng project add additional -fPIC flags to compiler, e.g. by compiling in following way:

./autogen.sh
CFLAGS='-fPIC' ./configure --prefix=/usr
make -B

espeak-ng-jeditor

Clone espeak-ng-jeditor project. Note that espeak-ng and espeak-ng-jeditor projects should be subfolders of common folder!

Compile customized shared library by executing Bash script in espeak-ng-jeditor project folder:

./updateJNIchanges.sh

To rebuild Java classes, run Maven task:

mvn compile

Running

  • In IDE: select MainWindow.java class in org.espeakng.jeditor.gui package and run it as Java application.
  • In terminal ececute command: java -cp target/classes org.espeakng.jeditor.gui.MainWindow

Packaging

  • To package editor in single *.jar file, execute command:
mvn clean compile assembly:single
  • Then run archive located in target folder, by executing command:
java -jar eSpeakNG-jEditor.jar

(Note that libespeakservice.so file is copied to ../.lib folder from *.jar file for execution.)

Documentation

Licence

This software is licenced under GNU Lesser General Public License

TODOs

Project design

  • Figure out proper way to save phoneme data using JNI
  • Implement phoneme replay using JNI to espeak-ng API
  • Improved coverage of automated unit tests(76.1% Completed)
  • Autogenerated *.h file and Java proxy classes using SWIG or similar JNI integration library
  • Construct all MainWindow Objects according to Object Oriented Principles
  • Implement compile buttons using ESpeak API

Editor GUI

  • Implement process Lexicon menu correctly