Shubhamjain007 / openhab

Automatically exported from code.google.com/p/openhab
0 stars 0 forks source link

Mary based TTS Service #50

Closed GoogleCodeExporter closed 8 years ago

GoogleCodeExporter commented 8 years ago
Mary based implementation of the openhab TTS Service

Mary Homepage http://mary.dfki.de/

Original issue reported on code.google.com by Wolfgang...@googlemail.com on 28 Nov 2011 at 8:31

GoogleCodeExporter commented 8 years ago
First version (Bundle org.openhab.io.multimedia.tts.mary) is available in my 
repository (mailings-openhab-rep / branch 0.8.0-vdr)

Original comment by Wolfgang...@googlemail.com on 28 Nov 2011 at 8:33

GoogleCodeExporter commented 8 years ago
I have just tried this out - I am getting this error:

Marry TTS error: Cannot connect either to a HTTP nor to a Socket MARY server at 
default location

I am currently behind a firewall that allows only HTTP traffic on port 80 (or 
443). Do you know the exact connectivity requirements of Mary?

Another question: It seems you have included Mary 4.3.0, while there is already 
a 4.3.1. Would it make sense to upgrade to the latest right away?

Original comment by kai.openhab on 21 Dec 2011 at 5:15

GoogleCodeExporter commented 8 years ago
Hi Wolfgang, Any news on this front?

Original comment by kai.openhab on 2 Feb 2012 at 9:35

GoogleCodeExporter commented 8 years ago
Since 1.0 is coming close, Wolfgang ... any news?

Original comment by teichsta on 26 Jul 2012 at 1:59

GoogleCodeExporter commented 8 years ago
As I am in need o a german TTS-Engine I developed a bundle for the Mary TTS 
engine myself. In Version 5.0 Mary can be embedded, so no extra server has to 
be installed.
A functional version can be found in my clone  (tbraeutigam-openhab). Maybe 
someone can review and test it. Currently there are two german voices (male + 
female) and a male english voice available. There do exist more voices for 
Mary, but including them all would dramatically increase the size of the bundle.

Original comment by TBraeuti...@gmail.com on 21 Oct 2012 at 9:36

GoogleCodeExporter commented 8 years ago
Thanks, this sounds great! Wolfgang, would you volunteer to test it?
As soon as I find time, I will do a code review and push it to the main repo, 
if everything looks good.

Original comment by kai.openhab on 21 Oct 2012 at 4:16

GoogleCodeExporter commented 8 years ago
The size of the libs folder is indeed a bit of a problem - I would not want to 
take this in the normal repo as it will bloat it quite a lot. So I might 
actually create a dedicated repo for it, but that would mean that I also 
require a dedicated build plan...

Well, I will take care of this (and also about testing it, if Wolfgang is not 
available), but only after Devoxx as I am very busy before that conference.

Original comment by kai.openhab on 1 Nov 2012 at 9:50

GoogleCodeExporter commented 8 years ago

Original comment by kai.openhab on 22 Nov 2012 at 9:44

GoogleCodeExporter commented 8 years ago
The binding is ready to be reviewed. Its working fine for me. Because the 
binding specific code consists of only one file, the review should be easy.

Original comment by TBraeuti...@gmail.com on 29 Nov 2012 at 8:21

GoogleCodeExporter commented 8 years ago
As Wolfgang is not answering, I take over this task to finish it in time for 
1.1.

Original comment by kai.openhab on 29 Nov 2012 at 8:28

GoogleCodeExporter commented 8 years ago
i would propose to move the german (and all other) language files to their own 
OSGi fragment bundles to reduce the tts.marytts bundles file size.

From what i understood from the marytts webseite the lib is now modularized so 
such splittings are now possible.

What is about the different voice-files (voice-bits1-hsmm, voice-bits3-hsmm). 
Are both archives required?

Original comment by teichsta on 29 Nov 2012 at 10:54

GoogleCodeExporter commented 8 years ago
voice-bits1-hsmm = german, female
voice-bits3-hsmm = german, male

Original comment by TBraeuti...@gmail.com on 29 Nov 2012 at 11:09

GoogleCodeExporter commented 8 years ago
Thomas, please note what I wrote in Comment 7 - we should find a way to provide 
all the libs as a separate download as they are too big for the main repo - so 
please do not pull them into it.

Original comment by kai.openhab on 29 Nov 2012 at 12:36

GoogleCodeExporter commented 8 years ago
thanks for clarifying this!

Original comment by teichsta on 29 Nov 2012 at 1:07

GoogleCodeExporter commented 8 years ago
I have just tested it and it is a really high quality voice - very nice.
What I wonder about is the size of the mary-server jar file itself - Tobias, do 
you have any idea if the full jar is really required? I had hoped that if it is 
only Java classes, it should be much less than the actual 8MB in size. I am not 
yet sure what to do with it as I think that this I do not like this big 
aggreated jar which contains a log of duplicate classes (e.g. Commons libs etc.)
I have seen that there are also more detailed dependencies defined in 
https://github.com/marytts/marytts/blob/master/marytts-dependencies/pom.xml.
Could it be an option to include these smaller packages? If yes, I could 
possibly add a process step in the build to automatically get them from a Maven 
repo and put them in the bundle libs folder, so that we would not have to 
include them in the openHAB repo at all.

Original comment by kai.openhab on 11 Dec 2012 at 11:08

GoogleCodeExporter commented 8 years ago
As far as I remember, I tried to split up the the jar in order to seperate it 
from the dependencies. My goal was to skip libs that are already part of 
openhab to decrease the bundle size. But the result was an even bigger bundle 
because there weren´t that many libs I could skip because they are already 
part of the openhab (I´m not shure, but as far as I remamber the commons lib 
was the only one) and I guess the overhead of the different libs used more 
space than the removed libs.
So long story short: I didn´t reach my goal to decrease the bundle size and 
therefore preferred the easy way to include the complete openmary lib with 
dependecies included.

But with your suggestion to add the dependencies in the build process the split 
up makes sense again.

So what can I do to help you to prepare this step. Is splitting up the 
depencies again enough?

Original comment by TBraeuti...@gmail.com on 12 Dec 2012 at 12:05

GoogleCodeExporter commented 8 years ago
Can you confirm that it also worked correctly with the individual dependencies? 
If so, you could help me by providing the suitable list of Maven dependencies. 
I would then try to get that working in the build. It would also be 
interesting, which of those dependencies are relevant for compiling your code 
and which are only transitive dependencies (which the Mary server code requires 
at runtime), as I might have to handle these two types of dependencies in a 
different way.

Original comment by kai.openhab on 13 Dec 2012 at 4:41

GoogleCodeExporter commented 8 years ago
I just changed the bundle to use individual dependencies and it works so far. 
You can find the sources in my clone 
http://code.google.com/r/tbraeutigam-openhab/ in the 1.1.0-openmary branch. 
There you can find all the required libs. But I did not check which of these 
libs are available in a maven repository. At least the two opennlp libs are 
available, according to this page: 
http://opennlp.apache.org/maven-dependency.html

The libs which are required for compiling my code are:
marytts-common
marytts-runtime
marytts-server
marytts-signalproc

So the rest should be transitive.

Also, as you may notice the openmary libs in my sources are versioned as 
5.1-SNAPSHOT. This is due to the fact that I found no place where I can 
download them separately, so I compiled them myself from the openmary sources.

I hope this is of any help to you.

Original comment by TBraeuti...@gmail.com on 14 Dec 2012 at 12:43

GoogleCodeExporter commented 8 years ago
Thanks, this helps a lot. I hope I can finish the build parts of it by tomorrow.

Original comment by kai.openhab on 14 Dec 2012 at 10:40

GoogleCodeExporter commented 8 years ago
I have now put all libraries that are not relevant for compilation in a 
separate repository: 
http://code.google.com/p/openhab/source/browse/?repo=marytts
The build automatically picks them up from there and adds them to the bundle.

Tobias, thanks for this nice feature!

Original comment by kai.openhab on 15 Dec 2012 at 11:53