Rockbox.org home
release
dev builds
extras
themes manual
wiki
device status forums
mailing lists
IRC bugs
patches
dev guide



Rockbox mail archive

Subject: [TTS-In-Core] Status report

[TTS-In-Core] Status report

From: Delyan Kratunov <delyan.kratunov_at_gmail.com>
Date: Tue, 8 Jun 2010 13:57:18 +0100

Right, sorry about the delay.

Current status: I'm .. stuck, for lack of a better word.

Deheapifying flite has proven almost impossible. Long story short, I traced
every malloc call and have a pretty good idea which ones can be grouped
together and moved to the stack (at the cost of some wasted memory).
However, the majority of the malloc calls cannot be removed. I was convinced
it was a peculiarity of the implementation but it looks like it's a
fundamental requirement of the engine. Not only will the lack of malloc
break encapsulation (a HUGE number of extern globals would have to be
introduced) but it would actually require much more memory than the heap
version. So the question here is whether malloc in core (even as a loadable
component) is an absolute no-do. I'm not going to try and hide the ugly
truth - the memory fragmentation is MASSIVE, even with something like tlsf.

I've converted most of the synthesis process into fixed-point, however the
speedup is negligible still.

I'm starting to see why Google chose eSpeak for Android. :(
Received on 2010-06-08


Page was last modified "Jan 10 2012" The Rockbox Crew
aaa