After a long hiatus, work has begun again on my HawkVoice library, and there will be a change in focus and direction. But before explaining the changes, I need to quickly review how HawkVoice began in the first place, because I never planned to become an ‘expert’ in open source speech compression. It began all about networking with HawkNL.
I began HawkNL back in 2000 with the goal to produce a cross platform, and easy to use, alternative to Microsoft’s DirectPlay. Developers liked it, but some asked about DirectPlaySound, which allowed a speech channel to be added to a DirectPlay connection. So, within months, I was searching for free and open source speech codecs. The high level API, HawkVoice, was to be dependent on HawkNLU, which was to be built on top of HawkNL. In order for people to directly use the HawkVoice codecs I created HawkVoiceDI (Direct Interface), which has been used in dozens of projects.
Now, here we are, DirectPlay is deprecated, and most people are using their own frameworks for network communications, so HawkVoiceDI will now become HawkVoice, and it will simply be an easy to use speech compression library with a few helper functions to help add voice chat to applications. The larger goal of integration with HawkNLU is now history.
Now the main focus of HawkVoice will be the codecs, with a little work on helper functions. I am looking at improving the current codecs, and adding some more. For example, years ago when I added GSM I was more worried about the total cycles per second for encoding/deciding, and if the sound quality was not noticeably degraded it was OK. I will start off fresh with reference GSM code and improve it ONLY WHILE THE OUTPUT IS STILL BIT EXACT. The same goes for LPC-10, and perhaps others.
I am also seeing that more people want to use wide-band codecs (16 kHz sample rate) rather than narrow band (8 kHz sample rate), and I have two codecs I am checking right now that look promising. Of course, hand held devices are really taking off, so all new codecs will be fixed point to run on ARM CPUs.
I will be updated the HawkVoice web pages soon with more details.