Requests for additional extensions (?)
Moderator: Moderators
sorry I don't have anything but linux. but if your trying to make it multiplatform then it may be better to use the hts_engineRado1 wrote:I'm aware of these TTS systems/libraries but all of them seems to be large, or at least their voice files are large comparing to built-in Windows TTS. Anyway, Carver413 are you able to compile flite on Windows and maybe also on Android? I was not able, there are missing some files in src distribution for v.2.0.0.Carver413 wrote:there is also festival, flite and open mary tts that work in linux. using shell scripts you can create sound files. not as good as an api but it works. flite is my favorite at the moment its small and there are 11 voices you can get for it. open mary has some nice sounding female voices but can be a bit buggy at times.
http://hts-engine.sourceforge.net/
As Carver413 suggested, I tried to use Flite library for TTS. After some complications with compilation (the source distribution does not provide working VC project files) I produces DLLs for Flite library and cmu_us_rms voice.
Attached, you will find a ZGE demo project using Flite TTS.
Pros:
- Flite is a multi-platform, stand-alone library, so for several platforms ZGE would have the same API.
- Flite provides mostly a simple C API based on basic types, so there is no need to implement a wraper library, just a ZExternalLibrary component in ZGE.
- Produced voice is quite good.
Cons:
- DLLs are quite large - 780KB for fliteDll.dll, 3.1MB for language dll.
- Compilation of DLLs tells about some warnings which may cause problems in runtime; so implementation of Flite 2.0.0 is not too reliable (?).
- Synthesis does not run in a separate thread, so it blocks ZGE execution. However, thanks to Thread component it is not a big problem.
Remark 1: I did not study too much how to load voices to Flite, because their documentation is quite extensive. At the moment, I compile lang files to the form of dll and load it to ZGE as external library. I saw that there are also some voices available in the form of .flitevox files. Carver413, others, maybe you are experienced with this, what to do with .flitevox files, cannot be they loaded to Flite directly, e.g. by flite_voice_load() function? All my trials to use .flitevox files failed.
Remark 2: Ville, I also observed that if a thread with running flite_text_to_speech() function is stopped by the Stop button, ZGE crashes (VS debugger tells that it is caused by access violation). I'm not sure it is problem of ZGE or Flite implementation.
Attached, you will find a ZGE demo project using Flite TTS.
Pros:
- Flite is a multi-platform, stand-alone library, so for several platforms ZGE would have the same API.
- Flite provides mostly a simple C API based on basic types, so there is no need to implement a wraper library, just a ZExternalLibrary component in ZGE.
- Produced voice is quite good.
Cons:
- DLLs are quite large - 780KB for fliteDll.dll, 3.1MB for language dll.
- Compilation of DLLs tells about some warnings which may cause problems in runtime; so implementation of Flite 2.0.0 is not too reliable (?).
- Synthesis does not run in a separate thread, so it blocks ZGE execution. However, thanks to Thread component it is not a big problem.
Remark 1: I did not study too much how to load voices to Flite, because their documentation is quite extensive. At the moment, I compile lang files to the form of dll and load it to ZGE as external library. I saw that there are also some voices available in the form of .flitevox files. Carver413, others, maybe you are experienced with this, what to do with .flitevox files, cannot be they loaded to Flite directly, e.g. by flite_voice_load() function? All my trials to use .flitevox files failed.
Remark 2: Ville, I also observed that if a thread with running flite_text_to_speech() function is stopped by the Stop button, ZGE crashes (VS debugger tells that it is caused by access violation). I'm not sure it is problem of ZGE or Flite implementation.
- Attachments
-
- flite_demo.zip
- Flite TTS demo
- (2.91 MiB) Downloaded 980 times
I'm glad it can work in Wine; thanks Imerion for reporting that. I do not use Linux, but I saw on web that (maybe using some tricks) it is possible to run SAPI 5/4 in Wine; if so, then maybe also ZgeSpeak library could work on Linux. (?)Imerion wrote:Just tried this, running in Wine, and it works great! Thanks!
I suppose it would be possible but most people would not want to go that route. I,ve been playing around with the hts lib tring to get it running with pascal but so far no luck. the header file is such crap. (a point to a pointer to a pointer) who does that? no wonder I don't program in C.Rado1 wrote:I'm glad it can work in Wine; thanks Imerion for reporting that. I do not use Linux, but I saw on web that (maybe using some tricks) it is possible to run SAPI 5/4 in Wine; if so, then maybe also ZgeSpeak library could work on Linux. (?)Imerion wrote:Just tried this, running in Wine, and it works great! Thanks!
Ha ha, I know that frustration all too well . Indeed, C-headers tend to have mindbogglingly strange (and unnecessarily complicated) things in them sometimes.Carver413 wrote:I,ve been playing around with the hts lib tring to get it running with pascal but so far no luck. the header file is such crap. (a point to a pointer to a pointer) who does that? no wonder I don't program in C.
Not sure if this has been mentioned, but the GameJolt score API would be cool to have a ZGE implementation of. This sort of came up since Im planning on joining the latest GameJolt game-jam.
http://jams.gamejolt.io/indiesvsgamers/api
Seems it can be used through the web as well though, so I should be able to do that otherwise.
http://jams.gamejolt.io/indiesvsgamers/api
Seems it can be used through the web as well though, so I should be able to do that otherwise.
Hi Imerion,
K
This probably doesn't need a ZExternalLibrary though. From the looks of it ( the Game Jolt Game API documentation ) you could build a solution using a ( regular ) ZLibrary & WebOpen component.Imerion wrote:Not sure if this has been mentioned, but the GameJolt score API would be cool to have a ZGE implementation of.
K
Hi Imerion, Kjell is right, the GameJolt API is HTTP-based so you do not need DLL. However, I could imagine some effort to write wrapping functions to ZLibrary. I would do it by myself, but fortunately I have already started vacation without PC, so I cannot help now. But if you, or somebody else, will do it, I will be happy to use it. Rado1
Hi Imerion, what's the progress with GameJolt API implementation? I'm asking because I just returned from vacation so I could find some time for it, if you want. I want to finish optimizations of BallZ2 first, but then, ca. later next week I could have a look at GameJolt API library... Are there some parts of the API you are especially interesting in?Imerion wrote:Then I should be able to manage! I'll try and report back if I get it to work!