Page 1 of 1

Improving Papagayo

Posted: Sat Aug 28, 2010 6:14 am
by netjunki
Hello,

I've been using Papagayo for about a month now to create lipsync data for a pilot project.

Now that it is over I'm now moving on to using Papagayo on a much larger scale and am encountering a variety of problems with making modifications, running it on my systems (Ubuntu amd64), and have decided to try and fix these issues.

I've started a Google code project for Papagayo to host the modifications. The new code is under the same license (GPL v2) as the original Papagayo sources. But adds a new dependency to pyaudio to provide audio playback in place of the lm module in the Lost Marble release.

https://code.google.com/p/papagayo/

The initial plan is to get the replaced version of the lm library stabilized and then to try and integrate the changes from PapagayoMod


And the extra language support posted by myles on the forum here.


For my own needs... I'm looking at making adding extra languages possible through a some sort of configuration file (per language) possibly managed in a similar way to how mouth sets handled now.

Long live Papagayo!

Ben

Very good!

Posted: Sun Aug 29, 2010 2:57 pm
by harrisyu
It's really a good news for me!!!
Thanks Ben!
Finally someone start to improve it,I mean replacing lm module give more chance for more people to do the modifications.
I try to do that before,it's not easy since lm module only works on old python version.

Thanks again Ben!

small issue

Posted: Sun Aug 29, 2010 5:03 pm
by harrisyu
Ok,I try to play with it under windows xp 32bit.

I got this warning at startup:"No handler found for image type",.
And the interface is mess up,if you resize,it become normal.

I do a little search,and made some change in MouthView.py:
after line 124:
nolog = wx.LogNull()
bitmaps[file.split('.')[0]] = wx.Bitmap(path, wx.BITMAP_TYPE_ANY)
del nolog

there is no warning anymore,but you need to resize the window to recover the interface,but it's ok ,not a big problem.

Re: small issue

Posted: Sun Aug 29, 2010 10:38 pm
by netjunki
harrisyu wrote:Ok,I try to play with it under windows xp 32bit.

I got this warning at startup:"No handler found for image type",.
And the interface is mess up,if you resize,it become normal.

I do a little search,and made some change in MouthView.py:
after line 124:
nolog = wx.LogNull()
bitmaps[file.split('.')[0]] = wx.Bitmap(path, wx.BITMAP_TYPE_ANY)
del nolog

there is no warning anymore,but you need to resize the window to recover the interface,but it's ok ,not a big problem.
I've applied your patch to the current code in SVN (r20). I suspect this might have something to do with the .svn directories. I was seeing this on the Linux side before and made a fix for it... maybe it wasn't sufficient. I'll try booting into Windows later (I need to start working on a Windows installer anyway) and see what I can do.

As for the resizing problem... I remember having to do something like this:

self.SetSize((800, 600))
self.CenterOnScreen()

At the end of my initialization in another program I wrote using wxPython... so maybe this needs that as well. I made a tentative patch for this issue (r21) if you want to give it a try. I also creating issues in the Google Code project to track these.

Thanks for the feedback.

Ben

Re: Very good!

Posted: Sun Aug 29, 2010 10:45 pm
by netjunki
harrisyu wrote:It's really a good news for me!!!
Thanks Ben!
Finally someone start to improve it,I mean replacing lm module give more chance for more people to do the modifications.
I try to do that before,it's not easy since lm module only works on old python version.

Thanks again Ben!
The lm module is what finally gave me a huge impetus to work on this more generally. I understand why Lost Marble did that since they already had a module that did what they need, but as the years have gone by and Python has continued to develop (and in the Linux world 64-bit machines have become extremely common) it was making it hard for people. (I should probably post replies to every post that was having the ELFCLASS32 errors so they know that there is now a version that will run on amd64 natively).

As it turns out... native python had everything needed to remove the lm module, except a mechanism to playback an audio segment. For my day job I'm the lead software engineer for an educational product and I'd just happened to be using pyaudio to rewrite a portion of our system late last year... so I was able to take that experience and use it here. But I'd had no idea that Python had an integrated Root Mean Square method before working on this project.

Python audioop

Re: small issue

Posted: Sun Aug 29, 2010 11:58 pm
by netjunki
harrisyu wrote:but you need to resize the window to recover the interface,but it's ok ,not a big problem.
http://code.google.com/p/papagayo/issues/detail?id=2#c1

Is this what you're seeing?

Update: Since I posted that I've made a new fix that seems to solve the issue... it's a horrible hack (basically I "jiggle" the size of the window) but it seems to work. I've also started working on getting a py2exe based native version for Windows going (since I'm going to need that at my job). Though for hack value... I'm going to try and build the whole thing on Linux.

Ben

Posted: Mon Aug 30, 2010 1:43 am
by patricia3d
I wanted to download but

This project currently has no downloads.

Posted: Mon Aug 30, 2010 1:57 am
by netjunki
kkrawal wrote:I wanted to download but

This project currently has no downloads.
Sorry about that... currently there is only a source version of the software. I'm working on creating a Windows installable version at the moment. I'll probably have something working by tomorrow.

I'll add some installation instructions to the main project page in the meantime... sadly they'll require you to install a number of libraries and such.

Update: Installation From Source

Update2: The proper installer isn't done yet... but I've fixed the code issue that stood in the way of producing a nice binary for windows. This is now available from the downloads section of the project.
Ben

Windows Installer Now Available

Posted: Wed Sep 15, 2010 1:22 am
by netjunki
I finally got some time (since my employer requested it) to make a proper installer for my release of Papagayo. This is a prototype installer so if you find any problems feel free to report them on the Papagayo Google Code project page.

Depending on whether I can find the time in the next couple of weeks I plan to do a "1.0" release of this current system before I finish integrating the rest of the features found in Nassos Yiannopoulos's PapagayoMOD. Unfortunately I won't have quite as much time to work on Papagayo for the next few weeks as I had planned... so better to release earlier with a little bit less functionality.

myles' additional language support are integrated though. And one new export format to support my company's production pipeline.

Enjoy!

Ben

P.S. If you're a Python developer and would like to help feel free to send me patches and I'll try to get them reviewed and included in the current code. Please create a new issue with your patch.

Posted: Wed Sep 15, 2010 1:48 am
by funksmaname
Hi Ben,
Installation went smoothly, but the exe says 'not a valid win32 application'...

...uninstall also went smoothly :)

I've got PapagayoMod - other than the propriatory export format you included, what is the advantage of your mod over that one, considering you plan to integrate the rest of the features of papagayoMod, what is the advantage of using your version over it?

Thanks for the info!

Posted: Sun Sep 19, 2010 10:58 pm
by netjunki
funksmaname wrote:Hi Ben,
Installation went smoothly, but the exe says 'not a valid win32 application'...

...uninstall also went smoothly :)
Yeah... there was a small problem with my generation pipeline for the Windows binary and the installer. I got some time to work on this past Thursday (Sep 16 2010). So that should now be fixed. I didn't have a Windows box available to test with when I created the installer. :-)
funksmaname wrote: I've got PapagayoMod - other than the propriatory export format you included, what is the advantage of your mod over that one, considering you plan to integrate the rest of the features of papagayoMod, what is the advantage of using your version over it?

Thanks for the info!
From what I understand the developer of PapagayoMod is no longer creating updates so if there are bugs that need fixing they won't happen. For me the main motivation was to improve the work flow for how I use Papagayo at my work. The main features I needed were:

* export to my companies internal timing format
* support for loading arbitrary dictionaries - so it's now possible to have multiple dictionary based languages, before there was only support for one dictionary based language and all others had to be handled with breakdown classes. There's some work to do here still with relation to this to support having alternative phoneme sets in use (currently I cheat and switch between them when exporting... but I'd rather store my own phoneme set in the .pgo files).
* support on 64 bit systems. The old version wouldn't run on 64-bit linux and there have been some complaints of the forums about this... so I ended up ripping out the audio code and replacing it so Papagayo will work natively on these systems

There are some other things that I might be interested in doing, but for now I've actually got all of the features I need. So if I have time in the future I'll probably do some more updates... but it'll be a month or two (we haven't ramped up full production yet on lip sync, but as soon as we do I suspect there will be more things to fix and features to add).

Ben

Posted: Wed Nov 10, 2010 1:19 am
by jorgy
Thank you so much for doing this!! I was able to use your r30 version on Fedora 12 with no problems, whereas with the LM papagayo it had API mismatch errors. The only thing I noticed was that the "about" dialog wasn't working (very minor, but I just wanted to verify which version I was running).


Thank you again! I look forward to any enhancements you may make.

Posted: Thu Nov 11, 2010 10:45 am
by Imago
I downloaded it, but I don't understand how to use it!
Someone can explain me?