2014-08-05 02:25:14

Hello all,
i've been messing with this for a few days and thought I'd release it to the public. As I say in the release notes, I'm planning to make this a dll for quick integration into games. Please do give me any suggestions/bug reports/any other feedback you can.
https://dl.dropboxusercontent.com/u/568 … pt_0.1.zip

A fight we cannot lose.
An enemy we cannot defeat.
A destiny we cannot escape.
Follow me on twitter @guilevi2000

2014-08-05 02:58:11

Hi.
This g speak synth could you make it an addon for nvda to?
We are always looking for more synths

2014-08-05 03:05:04

I try to run the bgt, but result in the following rather impressive runtime:

A runtime error occurred.
In function: void main()
Description: Index out of bounds

Deep in the human unconscious is a pervasive need for a logical universe that makes sense. But the real universe is always one step beyond logic.

2014-08-05 09:02:27

Guilevi, I'd be curious to know what are your plans, if any, to port this new synth to Mac, Linux, and other non-Windows platforms. Have you thought about that yet?

Sincerely,
Thomas Ward
USA Games Interactive
http://www.usagamesinteractive.com

2014-08-05 11:40:04

Hi,
@tward: I doubt it as it's currently programmed in bgt, which is windows only. Although, if pure basic comes into play at some point here, then cross platform will rock. Same with Python.

2014-08-05 12:04:24

Aaron, I am aware the present version was written with BGT, and that is a Windows only technology. However, he did mention making a Pure Basic version, and that is why I asked if he had any cross-platform plans in the works since I know Pure Basic can be used to develop cross-platform applications etc.

Sincerely,
Thomas Ward
USA Games Interactive
http://www.usagamesinteractive.com

2014-08-05 16:16:02

uh stewie, that's because you have to run it from the command line.

I like to sleep, Sleep is good,
This is how I do it: Lie on a nice warm cozy bed, and dream dreams about how to rule the world!
Follow @TheGreatAthlon5 on twitter for humorous facts and game updates!
If you like my posts, thumb me up!

2014-08-05 16:21:19

Hello Key,
How to run it from the command line? I actually don't have an idea how to do that. I also didn't understand the readme... Can someone explain?

Team rocket's blasting off again!

2014-08-05 16:24:57

If youa re using a version later than windows xp, find the place where you extracted your gspeak.exe file, go up one level so that you are foxcussed on the foldr, and hit shift-applications to open an extended context menu. Then you can choose open command window here. Thnn you can run the command in the readme file, so like you would type
gspeak.exe dh.100-e.100-s.100-e.100-z.100-uh.100-t.100-eh.100-s.100-t.100-uh.100-v.100-dh.100-uh.100-j.100-iy.100-s.100-p.100-iy.100-k.100-s.100-p.100-iy.100-ch.100-s.100-e.100-n.100-th.100-uh.100-s.100-aa.100-e.100-z.100-rh.100-f.100-iy.100-m.100-e.100-iy.100-ll.100-v.100-oh.105-e.105-s.105-_.100-s.100-p.100-iy.100-k.100-e.100-n.100-gg.100-dh.100-uh.100-iy.100-n.100-gg.100-ll.100-e.100-sh.100-ll.100-ae.100-n.100-gg.100-uw.95-e.95-j.95
then press enter.
After testing this it reminds me of an echo synthesizer. It's just a female version. It's pretty retro!

I like to sleep, Sleep is good,
This is how I do it: Lie on a nice warm cozy bed, and dream dreams about how to rule the world!
Follow @TheGreatAthlon5 on twitter for humorous facts and game updates!
If you like my posts, thumb me up!

2014-08-05 16:38:08 (edited by Kenzon Yeoh 2014-08-05 16:39:47)

Nope, it didn't work. It said:
BGT runtime error: a runtime error occured. In function: void main() Description: index out of bounds. Would you like to copy the stack trace text to your clipboard?
Yes.
No.

This is the so called stack trace text:
Call stack size: 1

Function: void main()

Team rocket's blasting off again!

2014-08-05 18:46:56

Hello,
Thanks a lot for your comments guys! I can barely remember who said what in this thread and I don't really feel like reading it all over again so I'll just go over the most important points:
@tward: The reason why I used bgt is because I'm not sure how to capture an undefined number of groups using RegEx. I'm trying to find that out, and once I do, I will port this to PureBasic, which will probably result on GSpeak going cross-platform.
To the people getting the runtime error: the reason for this behavior is that you are not supplying correct arguments. If you run the executable by itself, it cannot find any phoneme entries so it tries to make the synthesizer speak an empty chunk of text, which I haven't really prevented in this release. Go to the directory where gspeak.exe is located using the command line and type gspeak.exe followed by your input. Do not press enter inbetween gspeak.exe and your input or you will run the script with no arguments, which is what explorer does, which is what makes it crash.
To the one who related this to the Echo speech synthesizer, actually, there is a test line in the readme file which makes it sound a bit like an echo using the pitch functionality. I tried to design this synthesizer to make it flexible, easy to implement into applications and small, although bgt disallows me to make that last part possible.
Again, thanks a lot to all of you.

A fight we cannot lose.
An enemy we cannot defeat.
A destiny we cannot escape.
Follow me on twitter @guilevi2000

2014-08-06 08:19:41

How does this sound, in comparison to eloquence or espeak?

2014-08-06 12:01:45 (edited by Kenzon Yeoh 2014-08-06 12:16:19)

Ah, no wonder. I pressed enter between gspeak.exe and the phonemes... Thank you for clearifying. Now for my questions and suggestions: will you possibly add more voices to this synthesizer? Also will you try to make it more natural-sounding, like Eloquence, or even the at&T natural voices do? Because in this virsion, as you said, the synthesizer still has no inflections. Also, in the future version, can you possibly make something so we can type normally instead of using phonemes? Like if we type "This is a test" and ask the synth to speak, it'll say it correctly? Also, do you plan to make this available to SAPI5 because most sgames use SAPI. Just wondering.

Team rocket's blasting off again!

2014-08-06 17:40:06

Hello, this sounds cool.
are there any plans to release a sapi compatible version?
because that would be useful for not just games but also anything else supporting sapi, screen readers in particular.
a shame though the command line app is both buggy as hell and only opporates on phonemes ATM, kinda like dectalk's singing code.

be a hero and stop Coppa now!
https://docs.google.com/document/d/1Dkm … DkWZ8/edit
-id software, 1995

2014-08-07 01:55:43

Hi,
First and formost, well done! Even I wouldn't have the patients to do this, and I think you are a true dev for trying this.
Its actually extremely well put together for a concept. When you consider espeak could litterally say two words, hello, and test, when it was first introduced, this is a lot better than many, many of the synthesiser concepts out there. Also consider the fact he took the time to sit down, with bgt, which is a language primarily for the scripting of audio games, and write a fully fledged synthesiser that can speak? That's pritty dam impressive. Most of these things are written in c, c++ and delfi (yes delfi). He wants to write it in PureBasic? That's totally amaising!
Observations:
Instead of an out of range error, I think it might be an idea to put some sort of alert box into a final release (but that's purely nice eyecandy as it were). I know it won't stay a command line app though, and as a dll, it does need the ability to speak strings literals instead of phonetics. My advice would be, start researching this right now, or you're going to be spending more time than nessisary when it comes to creating a dll. However, keeping a phonetic approach, at least internally, sounds good. You can use minimal audio files, thus making the dll smaller. As for SAPI compliants, that's almost impossible these days. Consider the fact he's written the synth from the ground up, instead of using something like FLight or festivle. Its not impossible to get your product into SAPI compliants, though. I'm sure there are guides somewhere, I just haven't looked.
To sum up, then, all in all its a good first concept and I'm amaised at its flexibility. The phonemes are well thought out, and I'd estimate you're actually able to create most english words with them if you are clever enough. The cmd app isn't that buggy; You just have to know what you're doing with it.

Underworld Tech.
Accessibility from us, to you.
Visit us

2014-08-07 11:36:29

Hello,
Thanks for your comments again, all of you!
For all I know, PureBasic cannot really mess with SAPI5, at least not in the way i'd need it to. We most probably won't have a SAPI5 version unless someone volunteers to write a wrapper for GSpeak in C which makes it work on that engine.
In other news, though, the DLL version of the actual synthesizer is ready for releasing, and for the most part, so is the sp2gspeak library which converts spanish text to GSpeak  input. We MIGHT also have an NVDA addon for the synthesizer soon, although it will only have support for spanish. The reason why I'm concentrating on Spanish right now is because I have to write the parser myself. English is seriously complicated, and I doubt I would even know where to begin. For the moment I'm looking for an English to phoneme parser to see if I can make anything out of that, which is somewhere where you guys could help if you wanted to.
I'm not planning to enhance the sound of the synthesizer, at least not this prototype. This will most probably end up sounding something like Syntalk 1.6, if any of you know what that is.
@victorious, in comparison to those two, ridiculously horrible. Also keep in mind eloquence and eSpeak use formant synthesis, which I haven't looked into. GSpeak uses a very primitive form of concatenative synthesis.
Adding more voices will probably be done. Since this system is really basic, and thanks to a few changes I've made to the new PureBasic build, it's very easy to add a new voice. I might add a new build of my voice if I decide to re-record all the phonemes.
If any of you guys have a decent mic and want to make a voice database for GSpeak, contact me on any of the methods I give in the readme or PM me here. You will need to record a few takes of about 35 phonemes in one file and I'll cut them out and pack them for use in the GSpeak library.

A fight we cannot lose.
An enemy we cannot defeat.
A destiny we cannot escape.
Follow me on twitter @guilevi2000

2014-08-07 15:20:50

Hello guys,
Is it possible to write a batch file for the synthesizer to speak something? I know we can use the command line, but can we instead write a .bat file for it? Its easier like this, imo, because you can copy-and-paste the phonemes and save it into a .bat, then launch the file and the synth will speak. Anyone can help?

Team rocket's blasting off again!

2014-08-07 17:28:34 (edited by ammericandad2005 2014-08-07 17:30:02)

making this only Spanish will probably prevent a lot of the forum goers from using it. most audio games are only in English, save for the ones marked as Japanese games.
I don't even know about syntalk.
You could just use the same research that john (creator of e speak) did when making Spanish support. it will essentially be espeak in reverse: while g speak, as you said, is going to support Spanish first and English later, espeak has always supported English since it's original risk OS release in the late 90s, and the Spanish support was added sometime after it went cross-platform.
I would advise you to add English support before making the NVDA add-on, because otherwise the NVDA developers will not get any use out of it because they are not native Spanish speakers.

be a hero and stop Coppa now!
https://docs.google.com/document/d/1Dkm … DkWZ8/edit
-id software, 1995

2014-08-07 17:53:05

Greetings. It would, in the interest of time, be somewhat easier to make a script that the executable can refer to that will launch the file. Or, one could whip up a batch file with the commands necessary to run the synth.

2014-08-07 21:15:25

Hello,
@americandad2005 I am aware of the language issue. I will try not to make this only Spanish. The reason why I'm making spanish first is because, as I said, I have to write the parser myself. English is way more complex and I don't have a parser for that. I can't find any, either. This is why I asked for your help a few posts ago. I will keep looking though, of course. I don't plan on having GSpeak in any official add-on list.

A fight we cannot lose.
An enemy we cannot defeat.
A destiny we cannot escape.
Follow me on twitter @guilevi2000

2014-08-07 22:02:21

I'd like to help, but most of the time, I'm with other people, who don't want me saying just random stuff.

be a hero and stop Coppa now!
https://docs.google.com/document/d/1Dkm … DkWZ8/edit
-id software, 1995

2014-08-10 22:02:28

Hi, I just couldn't figüre this out. Can you please write a batch file so we can at least hear how it sounds?

I post sounds I record to freesound. Click here to visit my freesound page
I usually post game recordings to anyaudio. Click here to visit my anyaudio page

2014-08-11 09:39:45

Hello,
Why does the synth sound wierd? In the readme, i used the echo" sample, but instead of sounding like "I can also sound like an echo speech synthesizer", it sounds like "Ee caan also sund jlike an ekong speech synthesizer"? If you need a batch file that i did with the synth using both the samples, just tell me and i'll try to upload it, or if i can't, i'll paste the contents of the batch file here. Anyways can you fix it or something?

Team rocket's blasting off again!

2014-08-11 20:55:18

You must have messed up some of the phonemes in the file. I admit, the synth does sound weird as hell, but not that weird. big_smile

A fight we cannot lose.
An enemy we cannot defeat.
A destiny we cannot escape.
Follow me on twitter @guilevi2000

2014-08-12 11:24:55

Well, I am pretty certain I made the batch file with exactly the same text as the samples in the readme, since I copy-and-pasted them... Just in case, here are the batch files i made using the samples in the readme: (I can only copy-and-paste here because my dropbox doesn't seem to let me upload this. Just open notepad, copy-and-paste this, save it as a .bat file, put this into your gspeak folder and run it.).

The female test sample:
gspeak.exe Female test: dh.100-e.100-s.100-e.100-z.100-uh.100-t.100-eh.100-s.100-t.100-uh.100-v.100-dh.100-uh.100-j.100-iy.100-s.100-p.100-iy.100-k.100-s.100-p.100-iy.100-ch.100-s.100-e.100-n.100-th.100-uh.100-s.100-aa.100-e.100-z.100-rh.100-f.100-iy.100-m.100-e.100-iy.100-ll.100-v.100-oh.105-e.105-s.105-_.100-s.100-p.100-iy.100-k.100-e.100-n.100-gg.100-dh.100-uh.100-iy.100-n.100-gg.100-ll.100-e.100-sh.100-ll.100-ae.100-n.100-gg.100-uw.95-e.95-j.95
Exit

The echo sample:
gspeak.exe Echo: aa.105-e.105-k.95-ae.95-n.95-o.105-l.105-s.95-oh.95-uw.95-s.105-ae.105-uw.105-n.105-d.105-l.95-aa.95-e.95-k.95-aa.95-n.95-eh.105-k.105-oh.95-uw.95-s.95-p.95-iy.105-ch.105-s.95-e.95-n.95-iy.95-eh.95-s.95-aa.95-e.95-s.95-rh.90
Exit

Hope you can check it out and tell me what I did wrong. Thanks.

Team rocket's blasting off again!