Wolfgang Spraul wrote:
In statistical parametric synthesis, we use a computationally
expensive process called MLSA (cst_mlsa.c) with takes about 90% of
the time to synthesize.  It really needs about 800MHz (on an ARM) to
be real-time.

Interesting! How about breaking out some of this and let it
run on an fpga? Does that make any sense?
I'm working on a tool to program fpgas called fpgatools and
soon should get to the point that I need some real world
designs so fpgatools has something to do.
https://github.com/Wolfgang-Spraul/fpgatools

I will pick a softcore (either lm32 or openrisc), that's a
big target. So some smaller yet functional elements would
also be good for me to have, but it needs to be something
real that can run in a real application somewhere.

I found several versions of cst_mlsa.c on the web - what is
the URL of the most recent one or the one you are working on?
Can you point me to some small snippets/segments/functions
inside that are the most computation intensive - whether it
makes any sense at all to try this on an fpga I don't know
though... :-)

I have some reluctance in optimizing cst_mlsa.c as I'm not sure how long term we will be using it (though we have been using it for some 5 years already), but I do have a new PhD student working on alternatives (both better quality, and hopefully (and probably) less computationally expensive).

I did spend a lot of time optimizing the LPC reconstruction in flite many years ago and made a big different to the required computation, but although I did optimize the mlsa code a bit a few years ago, ultimately I'd like us to move to other parameterizations.

Although things like the nanonote are not our primary platform, the code we generate is usually much more stable (and efficient) because I have a tendency to ensure it all run wells on more interesting hardware.

To make the clustergen (parametric voices) in flite work well on the nanonote the most likely success route is reducing the number of parameters and sample rate (less work will be needed) and do some integer based optimization. A more rewarding (and general solution) is to use an LSP type parameterization for resynthesis (and some integer optimization). I might be able to convince a student to take this task on, or might have time myself.

The nanonote is an excellent platform for this, it is all self-contained (and I have a second one to lend to a student).

Alan


Cheers,
Wolfgang

_______________________________________________
Qi Hardware Discussion List
Mail to list (members only): [email protected]
Subscribe or Unsubscribe: 
http://lists.en.qi-hardware.com/mailman/listinfo/discussion


_______________________________________________
Qi Hardware Discussion List
Mail to list (members only): [email protected]
Subscribe or Unsubscribe: 
http://lists.en.qi-hardware.com/mailman/listinfo/discussion

Reply via email to