[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
LPC10 and CELP implementations
I'm working on implementing both of the above on Mac platforms, on an
unofficial basis (I work for Apple.)
The CELP decoder ran in realtime on a IIci (030) class Mac by recoding
everything in integer instead of FP, but the encoder was too CPU intensive.
Making the decoder even run was a big chore, involving a lot of rewrite
and some assembly language in the worst parts. So I've set aside CELP
for the time being, and will later see if it runs well on PowerPC.
The LPC10 algorithm posted on super.org (along with CELP3.2a) is, like
CELP, floating point intensive. I'm going to get both running on
PowerPC native first, then recode LPC10 in integer and see if it will
run in full-duplex on an '030 or '040 later. On a IIfx (fast '030),
LPC10 requires about 7x realtime to process prerecorded sample speech.
That's encouraging, because on CELP the changeover to integer sped up
processing by about a factor of 7.
The source code for LPC10 is clearly marked "NSA", which would make
it especially ironic :) if someone happens to use my port in a secure voice
application, subject to what Apple wants to do with my work.
CELP at 4800 bits/second sounds very reasonable, and LPC10 at 2400
is quite passably intelligible although a bit robotic. I could improve
LPC10's intelligibility with a little redesign but not without blowing
off bitstream compatibility. If I built an improved speech coder (at
9600 or 14.4k bit/second) I'd have to find volunteers to port it to
DOS & Windows boxes, or keep it proprietary to Apple.
If anyone here is working on a secure voice application, may I suggest
background file transfer capabilities. LPC10 leaves a lot of unused
bandwidth on a 14.4k baud modem!
Anyone interested in collaborating, or getting a current-status report
at any time is welcome to write to me. I promise to keep it technical
and avoid ranting & raving about Dorothy Denning :)
Joe Campbell hasn't yet returned my recent message commenting on bugs
and asking clarification on commercial use of the source. If Apple
doesn't get clear rights to use it in system software I'll probably
just post the improved versions to an ftp site somewhere and let it
go at that.
---------------------------------------------------------------------------
"UN-altered REPRODUCTION and DISSEMINATION of this
IMPORTANT Information is ENCOURAGED." - R. McElwaine