BroadVoice® Speech Codec Open Source C Code

Overview

BroadVoice® is a family of speech coding algorithms created by Broadcom and standardized by CableLabs®, SCTE®, and ANSI for Voice over IP applications in cable telephony. BroadVoice is also part of the ITU-T Recommendations J.161 and J.361. To encourage wide-spread use of BroadVoice in diverse speech compression applications, Broadcom is providing both the floating-point and fixed-point C source code of BroadVoice on a royalty-free basis under the GNU Lesser General Public License (LGPL), version 2.1, as published by the Free Software Foundation.

Technology

BroadVoice is based on Two-Stage Noise Feedback Coding (TSNFC) rather than the popular Code-Excited Linear Prediction (CELP) coding paradigm. BroadVoice has two variants: a 16 kb/s version called BroadVoice16 (BV16) for narrowband telephone-bandwidth speech sampled at 8 kHz, and a 32 kb/s version called BroadVoice32 (BV32) for wideband speech sampled at 16 kHz. BV16 is a standard codec in the following standards: PacketCable™ 1.5, PacketCable 2.0, ANSI/SCTE 24-21 2006, and ITU-T Recommendation J.161. BV32 is a standard codec in PacketCable 2.0, ANSI/SCTE 24-23 2007, and ITU-T Recommendation J.361. The RTP payload formats for BV16 and BV32 are specified in RFC4298. BV16 and BV32 have very similar codec structures and share most of the algorithm modules, so if the two are implemented together, substantial code sharing and memory reduction can be achieved.

BroadVoice was designed from the ground up to be optimized for voice transmission over IP networks. The main design goal of BroadVoice was to make the coding delay and codec complexity as low as possible while maintaining output speech quality as close to transparent as possible. The following list summarizes the attributes of BroadVoice16 and BroadVoice32:

  • Low Delay (Latency): algorithmic buffering delay of merely 5 ms (compared with 15 to 40 ms of most competing codecs)
  • Low Complexity: much lower MIPS requirements than most competing codecs (typically 1/3 to 1/2 of comparable ITU-T G.72x codecs), also lower memory requirement than most competing codecs
  • High Quality: equivalent or better speech quality than most competing codecs in PESQ comparisons and in extensive formal subjective MOS listening tests conducted by AT&T Labs, COMSAT Labs, and Dynastat, Inc
  • Moderate Bit-Rate: at 2 bits/sample, coding efficiency is higher than G.711, G.726, and G.722 and comparable to many other codecs
  • Availability: Broadcom is providing both the floating-point and fixed-point C source code of BroadVoice16 and BroadVoice 32 under an open source license and on a royalty-free basis

The BroadVoice open source C software programs downloadable from this website are implementations conforming to the BV16 and BV32 codecs standardized in PacketCable, ANSI/SCTE, and ITU-T J.161/J.361 standards and thus are bit-stream compatible (inter-operable) with the BV16 and BV32 standards.

Legal Notice

The BroadVoice open source software is provided under the GNU Lesser General Public License, version 2.1, as published by the Free Software Foundation ("LGPL"). This software is distributed in the hope that it will be useful, but WITHOUT ANY SUPPORT OR WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the LGPL for more details. A copy of the LGPL is available at http://www.broadcom.com/licenses/LGPLv2.1.php or by writing to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. Portions of the software are contributed by Professor Peter Kabal as specified in the source code file.

The trademarks, logos, and other marks (collectively the "Trademarks") displayed on this site are the property of Broadcom Corporation or third party owner. No rights or licenses are granted by implication, estoppel, or otherwise to the Trademarks.

Video