Create a blubber file for Wikispeech_mary-tts
There might be a problem with running javac inside the Docker, so we should deploy with the compiled java binaries. (What JVM do we have on the docker image and what is required by Mary-TTS?)
Create a blubber file for Wikispeech_mary-tts
There might be a problem with running javac inside the Docker, so we should deploy with the compiled java binaries. (What JVM do we have on the docker image and what is required by Mary-TTS?)
Subject | Repo | Branch | Lines +/- | |
---|---|---|---|---|
Blubberize Mary TTS | mediawiki/services/wikispeech/mary-tts | master | +139 -0 |
Status | Subtype | Assigned | Task | ||
---|---|---|---|---|---|
Resolved | • kalle | T247399 ☂Blubberize Speechoid | |||
Resolved | • kalle | T247405 Blubberize mary-tts | |||
Resolved | None | T247948 Mary TTS STTS has a dependency to Mishkal running on startup |
Create a blubber file for Wikispeech_mary-tts
There might be a problem with running javac inside the Docker, so we should deploy with the compiled java binaries. (What JVM do we have on the docker image and what is required by Mary-TTS?)
The STTS fork will not start without a running copy of Mishkal on port 8080. They are running unit tests on startup and will not proceed if they fail.
It means that we have to wait for and make sure Mishkal is running before we proceed with starting up Mary TTS.
I'd really prefer to not be coupled this way to running services. That Mary just warns to the log that it's unable to communicate with Mishkal and keeps running.
MARY server 6.0-SNAPSHOT starting as an HTTP server...Arabic Postlex LOADING lexiconProperty: jar:/marytts/language/da/lexicon/da_nst_ok_lexicon.fst Loading da.secondary_lexicon: jar:/marytts/language/da/lexicon/da_nst_skipped_lexicon.dict lexiconProperty: jar:/marytts/language/no/lexicon/no_nst_ok_lexicon.fst lexiconProperty: jar:/marytts/language/sv/lexicon/sv_nst_ok_lexicon.fst Looking for number: اليوم Looking for number: الإثنين Looking for number: 25 FOUND NUMBER: 25 Expanding cardinal 25.0 using rule %spellout-numbering -> خمسة و عشرون makeNewTokens creating token خمسة makeNewTokens creating token و makeNewTokens creating token عشرون makeNewTokens adding token to mtu: خمسة makeNewTokens adding token to mtu: و makeNewTokens adding token to mtu: عشرون makeNewTokens returning mtu: [mtu: null] MTU: [[mtu: null]] set treewalker position:عشرون Looking for number: يناير Looking for number: 2016 FOUND NUMBER: 2016 Expanding cardinal 2016.0 using rule %spellout-numbering -> ألفين و ستة عشر makeNewTokens creating token ألفين makeNewTokens creating token و makeNewTokens creating token ستة makeNewTokens creating token عشر makeNewTokens adding token to mtu: ألفين makeNewTokens adding token to mtu: و makeNewTokens adding token to mtu: ستة makeNewTokens adding token to mtu: عشر makeNewTokens returning mtu: [mtu: null] MTU: [[mtu: null]] set treewalker position:عشر Looking for number: . Vocalise url: http://localhost:8080/ajaxGet?action=Tashkeel2&text=+%D8%A7%D9%84%D9%8A%D9%88%D9%85+%D8%A7%D9%84%D8%A5%D8%AB%D9%86%D9%8A%D9%86+%D8%AE%D9%85%D8%B3%D8%A9+%D9%88+%D8%B9%D8%B4%D8%B1%D9%88%D9%86+%D9%8A%D9%86%D8%A7%D9%8A%D8%B1+%D8%A3%D9%84%D9%81%D9%8A%D9%86+%D9%88+%D8%B3%D8%AA%D8%A9+%D8%B9%D8%B4%D8%B1+. Exception in thread "main" java.lang.Error: Module Preprocess: Power-on self test failed. at marytts.modules.InternalModule.powerOnSelfTest(InternalModule.java:147) at marytts.server.Mary.startModules(Mary.java:157) at marytts.server.Mary.startup(Mary.java:294) at marytts.server.Mary.startup(Mary.java:204) at marytts.server.Mary.main(Mary.java:510) Caused by: java.io.FileNotFoundException: http://localhost:8080/ajaxGet?action=Tashkeel2&text=+%D8%A7%D9%84%D9%8A%D9%88%D9%85+%D8%A7%D9%84%D8%A5%D8%AB%D9%86%D9%8A%D9%86+%D8%AE%D9%85%D8%B3%D8%A9+%D9%88+%D8%B9%D8%B4%D8%B1%D9%88%D9%86+%D9%8A%D9%86%D8%A7%D9%8A%D8%B1+%D8%A3%D9%84%D9%81%D9%8A%D9%86+%D9%88+%D8%B3%D8%AA%D8%A9+%D8%B9%D8%B4%D8%B1+. at sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1896) at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1498) at java.net.URL.openStream(URL.java:1068) at marytts.language.ar.Preprocess.vocaliseTextMishkal(Preprocess.java:141) at marytts.language.ar.Preprocess.vocaliseText(Preprocess.java:104) at marytts.language.ar.Preprocess.vocaliseDoc(Preprocess.java:82) at marytts.language.ar.Preprocess.process(Preprocess.java:64) at marytts.modules.InternalModule.powerOnSelfTest(InternalModule.java:142) ... 4 more Exception in thread "Thread-1" java.lang.IllegalStateException: MARY system is not running at marytts.server.Mary.shutdown(Mary.java:368) at marytts.server.Mary$3.run(Mary.java:287)
It took me quite a bit of time to figure out Blubber, but now I've got it.
https://github.com/karlwettin/blubberize-mary-tts-stts
Notice that Mary TTS depends on Mishkal on localhost, it is thus included in the same Docker image.
Gradle might need internet connection to download some stuff. Kalle will document this further in this task very soon.
Earlier we mentioned in this thread and in other documents that there might be problems with Gradle downloading files from the internet. I believe this has been solved by forcing the preparation of the Blubber (i.e. compiling java etc) to use the same major and minor release version of Java locally when preparing as when running Gradle in the container.
Change 594749 had a related patch set uploaded (by Karl Wettin (WMSE); owner: Karl Wettin (WMSE)):
[mediawiki/services/wikispeech/mary-tts@master] Blubberize Mary TTS
We need to be able to disable self tests of Mary on startup. There should be no dependency of a running Mishkal in order to startup. Also, if someone is running Speechoid on a single language such as Norwegian, there should be no dependency to an Arabic language service.
Change 594749 merged by Karl Wettin (WMSE):
[mediawiki/services/wikispeech/mary-tts@master] Blubberize Mary TTS