Sanskrit Text to Speech 1.0 - Java programmers and more wanted :)

196 views
Skip to first unread message

Martin मरुतिन्

unread,
Apr 10, 2016, 10:32:26 AM4/10/16
to sanskrit-programmers
Dear Friends,

Nice to met you all and I appreciate the work going on in this group!

We have been working on a Sanskrit text to speech engine based on MaryTTS (http://mary.dfki.de/).

The engine is live and working for a large number of words though is very much a beta:


Click the little ear icons next to a word of your choice to listen! Give it some time as it is running on a separate server running the MaryTTS engine.

We are looking for some able and willing Java developers who are fluent in Sanskrit phonetics and phonics who like to take this project til completion.

The next steps that would be are:

1.Helping open source and publish our efforts till date and document it so there can be active development of it till completion. Completion = 100% perfect pronunciation of classical Sanskrit. Vedic we do in version 1.1 with a parameter for accents depending on the chosen style as it varies region to region.
2.Working on the the existing pronunciation issues (we have documented the major ones) - this requires solid knowledge of Java.

If you are interested to take this forward and have the required enthusiasm and skills (Java + deep knowledge of Sanskrit) kindly drop me a line.

Kindest Wishes,

Martin

PS: We did the above effort as despite being told there had been prior Sanskrit TTS efforts (JNU and Bangalore much earlier ones in Melkote), we could not find any available and publicly accessible working models to use. We had heard of efforts done at JNU:


But despite it appearing to be published we were never able to verify it working and it is not in the public domain. 

MaryTTS is a very suitable platform and we had some good support from DFKI (German Research Center for Artificial Intelligence)

PPS: We had deeply explored before going with MaryTTS using GnuSpeech which uses an articulatory model of the human vocal tract for speech synthesis which we felt would marry very much with Sanskrit considering it had such a clear detail of articulation.This is still on the back burner and we've had contact with David Hill the author of GnuSpeech who has been very supportive so for those interested in this as a parallel (beware this is very very exciting and interesting and I don't think there is a better model for articulatory speech synthesis than Sanskrit!)

Shreevatsa R

unread,
Apr 10, 2016, 10:55:58 AM4/10/16
to sanskrit-programmers, Martin मरुतिन्
This is fantastic! 

I'm very pleased to see the wonderful work and direction taken by you (as seen on http://www.sanskritdictionary.com/ and the presentation that Vishvas pointed to in an earlier email) which is exactly what we need. You have anticipated the common difficulties of Sanskrit learners, and are developing work that will be highly useful.

This TTS has an excellent pronunciation of "padma" is excellent, though its "marakata" needs more work. I see there is more work to do but it is great to see this amount of progress. I hope you find some good developers to take it to completion.

Regards,
Shreevatsa

--
You received this message because you are subscribed to the Google Groups "sanskrit-programmers" group.
To unsubscribe from this group and stop receiving emails from it, send an email to sanskrit-program...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

विश्वासो वासुकिजः (Vishvas Vasuki)

unread,
Apr 10, 2016, 11:39:16 AM4/10/16
to sanskrit-programmers
साधु साधु भृशं साधु!​ ​Our shared dreams are slowly but surely coming true.

2016-04-10 7:32 GMT-07:00 Martin मरुतिन् <mar...@vedicsociety.org>:
1.Helping open source and publish our efforts till date​

​This is indeed step zero and extremely important for others to contribute to, use and extend your work.​ What help do you need here? My earnest suggestion is just do the following:
* Create a new organization for vedic society here: https://github.com/organizations/new , and add yourself to it.
* create new repositories for each project you've undertaken (such as Mary TTS adaption in this case)
* publish your code there with any appropriate license.

(an example organization, with its repos is https://github.com/sanskrit-coders.) ​Let us know if you have further questions.​

--
--
Vishvas /विश्वासः

dhaval patel

unread,
Apr 10, 2016, 10:52:41 PM4/10/16
to sanskrit-p...@googlegroups.com
I don't code Java, but would be interested in the algorithm.
Please document the efforts so far, publish the code in github repo and raise issues.
I will definitely try to help in the endeavour.
JNU code would never be open souce.
That will remain closed for time immemorial.
If we have some TTS which is going to be open source, I would definitely chip in.

Dr. Dhaval Patel

Martin Gluckman

unread,
Apr 12, 2016, 1:29:07 PM4/12/16
to sanskrit-p...@googlegroups.com
Dear Friends,

Here goes:


It was done last year June/July. 

It should be fine, if any issues let me know. 

I will circulate with the MaryTTS community and if those who know Java programmers with a love for Sanskrit please ask them to take this further. It should not be a giant leap to get it 100% perfect with Sanskrit.

We are here for any support and questions.

Kindest Wishes,

Martin

--
You received this message because you are subscribed to a topic in the Google Groups "sanskrit-programmers" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/sanskrit-programmers/wQPuOT2Lbkc/unsubscribe.
To unsubscribe from this group and all its topics, send an email to sanskrit-program...@googlegroups.com.

विश्वासो वासुकिजः (Vishvas Vasuki)

unread,
Apr 13, 2016, 2:17:01 PM4/13/16
to sanskrit-programmers
Dear martin,

Great! I see some code in sa. But we are as lost in a forest without a map. The next things one would need to attract contribution and usage would be to:
* Add an end to end test, where one inputs "पद्म" and gets a sound file produced by the TTS as a result.
* Provide some idea as to how the code is organized and what it does.


--
You received this message because you are subscribed to the Google Groups "sanskrit-programmers" group.
To unsubscribe from this group and stop receiving emails from it, send an email to sanskrit-program...@googlegroups.com.

For more options, visit https://groups.google.com/d/optout.

Martin मरुतिन्

unread,
Apr 14, 2016, 2:43:55 AM4/14/16
to sanskrit-programmers
Dear Vishwas,

To test it compile the project and run it. Guidelines and ample documentation on MaryTTS site.

service marytts start

Then browse to localhost:59125

You will get the MaryTTS server (see attached).

You can enter a string in Devanāgarī and select the appropriate voice and then select Audio

You can then listen to the tests.

A lot of fundamental work needs to be done to get this perfect (perhaps a weeks solid work for a senior Java developer who understands Sanskrit sounding).

Am happy to guide anyone sincerely wanting to do this.

Kindest Wishes,

Martin
screenshot.png

Shreevatsa R

unread,
Apr 18, 2016, 10:04:38 PM4/18/16
to sanskrit-programmers
Hi Martin,

I have been able to get this far (you mentioned that there is documentation on the MaryTTS site; I was able to find https://github.com/marytts/marytts/wiki/New-Language-Support and tried to follow it):

# Install Maven
brew install maven

# Install marytts
git clone https://github.com/marytts/marytts.git && cd marytts && mvn install
# Downloads a large number of tiny files.

# Install marytts-lang-sa inside the marytts-languages directory
cd marytts-languages && git clone https://github.com/vedicsociety/marytts-lang-sa.git && cd marytts-lang-sa && mvn install

# Return to the marytts root directory and edit relevant files
cd ..
# Edit marytts-languages/pom.xml and add marytts-lang-sa
vim marytts-languages/pom.xml
# Edit marytts-assembly/assembly-runtime/pom.xml and add marytts-lang-sa
vim marytts-assembly/assembly-runtime/pom.xml

# Install marytts again
mvn install

# Start the marytts server
./target/marytts-5.2-SNAPSHOT/bin/marytts-server

This fails with

% ./target/marytts-5.2-SNAPSHOT/bin/marytts-server
java version "1.8.0_45"
Java(TM) SE Runtime Environment (build 1.8.0_45-b14)
Java HotSpot(TM) 64-Bit Server VM (build 25.45-b02, mixed mode)

MARY server 5.2-SNAPSHOT starting as a HTTP server...Exception in thread "main" marytts.exceptions.MaryConfigurationException: Cannot instantiate object from 'marytts.modules.JPhonemiser(sa.)': For property 'sa.lexicon', no classpath resource available at '/marytts/language/sa/lexicon/sa_lexicon.fst'
at marytts.util.MaryRuntimeUtils.instantiateObject(MaryRuntimeUtils.java:130)
at marytts.modules.ModuleRegistry.instantiateModule(ModuleRegistry.java:88)
at marytts.server.Mary.startModules(Mary.java:131)
at marytts.server.Mary.startup(Mary.java:297)
at marytts.server.Mary.startup(Mary.java:204)
at marytts.server.Mary.main(Mary.java:513)
Caused by: java.lang.reflect.InvocationTargetException
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:422)
at marytts.util.MaryRuntimeUtils.instantiateObject(MaryRuntimeUtils.java:124)
... 5 more
Caused by: marytts.exceptions.MaryConfigurationException: For property 'sa.lexicon', no classpath resource available at '/marytts/language/sa/lexicon/sa_lexicon.fst'
at marytts.server.MaryProperties.getStream(MaryProperties.java:436)
at marytts.server.MaryProperties.needStream(MaryProperties.java:412)
at marytts.modules.JPhonemiser.<init>(JPhonemiser.java:143)
at marytts.modules.JPhonemiser.<init>(JPhonemiser.java:74)
... 10 more
Exception in thread "Thread-1" java.lang.IllegalStateException: MARY system is not running
at marytts.server.Mary.shutdown(Mary.java:371)
at marytts.server.Mary$2.run(Mary.java:290)


What might be the right way to get this server running? (Note: without adding "sa" I was able to start the server as above, navigate to http://localhost:59125/ and have it read out some text in the en_US voice)

I also tried simply 
java -jar target/marytts-lang-sa-5.2-SNAPSHOT.jar 
from within the marytts-lang-sa directory, but it fails with:
 no main manifest attribute, in target/marytts-lang-sa-5.2-SNAPSHOT.jar


--
Reply all
Reply to author
Forward
0 new messages