julius-speech / julius

Open-Source Large Vocabulary Continuous Speech Recognition Engine
BSD 3-Clause "New" or "Revised" License
1.83k stars 299 forks source link

Port visualizer to Gtk3 #41

Open GeorgesStavracas opened 8 years ago

GeorgesStavracas commented 8 years ago

Julius has an old builtin word trellis visualizer written for Gtk 1.2. Since Gtk 1.2 is not shipped by any major Unix-like system, it's sad that this module isn't ported to newer versions of Gtk+ 3.

The patches below are a tentative effort to modernize Julius word trellis visualizer.

GeorgesStavracas commented 8 years ago

This is how it looks now in my computer. I'm running on Arch Linux x86_64 and GNOME 3.20.

captura de tela de 2016-09-05 21-43-51

There are some missing bits here and there, and the drawing code is probably wrong. I can't say for certain, because I actually never saw Gtk 1.2 version :)

Also, I honestly don't understand what exactly should be displayed here. I see that it shows the best path found by the first pass, and there's the possibility to repeat the steps of the second pass. But the entirety of the code is a mistery to me yet.

@nitslp-ri what do you think? Are you willing to have this port in Julius? Your feedback is very welcomed, both about the code and about the whole idea as well.

LeeAkinobu commented 8 years ago

Hi, thanks for your contribution. The visualization code is an ancient one, totally out-of-date, so I'm glad to see it again in modern linux ;) It'll be good to incorporate the code into Julius so that some people may have fun with this, so I'm willing to merge your code.

I'm currently working to fixate other bugs in 4.4, so the merging may be late. I'll merge it later, perhaps within a week or so.

GeorgesStavracas commented 8 years ago

@nitslp-ri I saw that you use Ubuntu 14.04 LTS, and I think this distro's Gtk+ version is very behind the latest one (maybe 3.10?). These patches are made against Gtk+ 3.16, and I don't know how easy it'd be to reduce the GTK_MIN_VERSION to 3.10.

If you happen to review the code, please review the code as carefully as you possibly can. I'm very uncertain about it, and I'm pretty sure it has very wrong codes all around.

GeorgesStavracas commented 8 years ago

Ok, I happened to have some free time and managed to improve the rendering code a little bit. Here's how it looks now:

captura de tela de 2016-09-06 15-57-36

So basically I added:

Now the whole graph makes much more sense to me :)

GeorgesStavracas commented 7 years ago

Any progress on the review of this work?

GeorgesStavracas commented 7 years ago

After 8 months without a response, I'm assuming that there is no interest in merging this feature back to the Julius repository.

I'll keep working on other changes and fixups on Julius codebase, specially in the build architecture that is currently somewhat confusing. I'll do everything in my repository (GeorgesStavracas/julius) so if professor Lee has any interest, feel free to just merge my changes without prior advice.

I'm leaving this issue opened until explicit request for closing it.

palles77 commented 7 years ago

George - I created a new version of Julius where I significantly modified the codebase for a more modern multithreaded approach plus working version of Julius as a DLL and fixed working DNN. Would you be interested in cooperation? I know Julius really well after working with it for 10 years. Maybe we could have a modified version of Julius which is actively developed?

GeorgesStavracas commented 7 years ago

@palles77 I appreciate you getting in touch, and yes, I'm obviously interested in cooperation :)

As a free-software contributor, my guts scream loud that we should try everything at our hands to get those improvements upstream first. I'll like to try a bit more and push these features in Julius, before adopting the fork n' hack approach.

Let's see how far we go