Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Decoding EVRC speech codec

I want to decode the EVRC speech codec. I have checked the ffmpeg library but it seems like, EVRC is not being currently supported by ffmpeg.

Is there any alternate library which can be used to decode EVRC data?

Or if anybody have some algorithm or decoding mechanism or code snippet to do so, please let me know.

Thanks Nitin

like image 441
NitinG Avatar asked Apr 30 '12 08:04

NitinG


2 Answers

There are some files claimed to be EVRC code here (on chinese sites): http://www.codeforge.com/article/67387

Same file on pudn.com: http://en.pudn.com/downloads95/sourcecode/comm/voice_compress/detail389385_en.html

It can be not so easy to download full 0.5 MB archive (registration required), but it looks like working EVRC codec (it is free to view any source file from this archive).

And for something more official than chinese site, there are some huge (0.5 GB) files on 3gpp2.org's ftp: http://www.mmnt.net/db/0/0/ftp.3gpp2.org/TSGC/Incoming/SWG11/Software_Published_in_TIA/evrc_rel-B_mps_software

There are so3 and so68 implementations in the archive ftp://ftp.3gpp2.org/TSGC/Incoming/SWG11/Software_Published_in_TIA/evrc_rel-B_mps_software/Software_Distribution_vB-1.0_for_C.S0018-B_v1.0_EVRC_MPS.zip

so3 sources look similar to some files from evrc.rar:

/*     Enhanced Variable Rate Codec - Master C code Specification       */
/*     Copyright (C) 1997-1998 Telecommunications Industry Association. */

and so68 (EVRCB_FX) is for EVRC-B (both encoder and decoder):

EVRC-B vocoder fixed point c-simulation can be compiled using the standard GNU 
c++ compile tools like g++, make, etc.

/*  EVRC-B - Enhanced Variable Rate Coder - B Speech Service Option for  */
/*  Wideband Spread Spectrum Digital System                             */
/*  C Source Code Simulation                                            */

This archive is so large because it includes many sound samples, both encoded and raw.

According to http://wiki.multimedia.cx/index.php?title=EVRC there is the URL for spec and reference codecs: http://www.3gpp2.org/Public_html/specs/tsgc.cfm

Some recent and small (1.8MB) distribution: http://www.3gpp2.org/Public_html/specs/C.R0014-D_v1.0_EVRC-D_SoftwareDistribution_100125.zip

like image 86
osgx Avatar answered Nov 18 '22 08:11

osgx


If it is fine for you to get a commercial library, you can try CouthIT's EVRC-B.

Seems like this suits your requirement! From their website:

CODEC OVERVIEW

Enhanced Variable Rate Codec B (EVRC-B) was standardized by 3GPP2 in 2006. The EVRC codec operates on each 20ms frame of 16-bit speech signals sampled at 8 KHz and generates compressed bit-streams with bit-rates of 8.3, 7.57, 6.64, 6.18, 5.82, 5.45, 5.08, and 4.0 kbps (source encoding rates) respectively. EVRC-B is based on the Code Excited Linear Prediction (CELP), Prototype Pitch Period (PPP), and Noise Excited Linear Prediction (NELP) coding algorithms. It makes greater use of the intermediate coding rates through increased awareness of the nature of the individual speech samples. This more sophisticated coding approach allows EVRC-B to offer a voice quality equivalent to EVRC-A (IS-127), but at significantly lower average coding bit rates. The codec was primarily developed to replace the existing EVRC-A codec used in CDMA networks.

Another thing is EVRC-B and EVRC-WB 4GV™ Vocoders (Commercial):

Compandent Inc. intends to offer high-quality EVRC-B package as soon as at the beginning of 2008 and EVRC-WB package during the first half of 2008. The software package will include highly professional and optimized DSP codes with reduced complexity and improved quality for selected platforms. Compandent has been porting EVRC-B and EVRC-WB vocoders to various DSPs by Texas Instruments such as TMS320c54xx, TMS320c55xx, TMS320c64xx, OMAP, and DaVinci, and additional platforms are under consideration.

like image 2
Praveen Kumar Purushothaman Avatar answered Nov 18 '22 08:11

Praveen Kumar Purushothaman