linux.conf.au 2014

Perth, Western Australia - 6th to 10th January 2014

linux.conf.au


<-- Back to schedule

Embedding Codec 2: open source speech coding on a low-cost microcontroller

Project: Codec 2

Codec 2 is the worlds only open source speech codec that compresses speech to 2000 bit/s and below. Codec 2 is now part of the FreeDV open source digital voice GUI package. Thousands of Ham Radio operators are using FreeDV every day for world-wide two-way HF radio contacts. FreeDV supports compressed digital speech over HF radio at 1600 bits/s using just 1100Hz of analog bandwidth and signal to noise ratios as low as 2dB.

FreeDV operates as a GUI program on a laptop or desktop PC. We are now porting Codec 2 and it's companion modem to an embedded processor. This will enable Codec 2 to be embedded into hand held and mobile two way radios and greatly expand the use of FOSS digital speech in HF and VHF radio applications.

This presentation will describe how Codec 2 and it's companion modem were embedded onto a low cost ARM 4 micro-controller. The software operates on "bare metal" - there is no operating system. The talk will describe how we verified the port at each stage and hacked gdb so that stdio functions (printf/fread/fwrite) running on the micro-controller could access the Host PCs peripherals. This made developing on the micro-controller similar to debugging a command line console program. The talk will also discuss how we implemented speech and modem analog I/O using the micro-controllers built-in ADC and DAC peripherals to build a low cost, turn key, open source digital voice solution on a single chip.

David Rowe

David Rowe is a part time open source software and hardware developer and full time Dad. He has worked on projects in VOIP, developing world communications, echo cancellation, speech compression, and digital voice over HF radio.

Prior to becoming an open source developer David worked for the dark side as an engineering manager and has 25 years experience in the development of DSP-based telephony and sat-com hardware/software. Somewhere along the way he picked up a wide mix of skills including software, hardware, project and business management, and a PhD in DSP theory.

David has spoken at every linux.conf.au since 2008 and in 2012 was voted the most popular speaker for his talk on Codec 2. David's other interests include his popular blog (http://rowetel.com), bike riding, electric vehicles, energy efficiency, amateur radio, and swanning around Adelaide drinking lattes.