freeswitch/libs/libcodec2
Anthony Minessale efd3744a21 FS-7122: Working with william to find a better way 2015-02-16 16:25:35 -06:00
..
asterisk git status -u, learn something new every day. 2012-12-20 20:17:20 -06:00
doc Working codec2 support 2010-09-21 12:35:41 -05:00
fltk git status -u, learn something new every day. 2012-12-20 20:17:20 -06:00
octave git status -u, learn something new every day. 2012-12-20 20:17:20 -06:00
pitch Working codec2 support 2010-09-21 12:35:41 -05:00
portaudio git status -u, learn something new every day. 2012-12-20 20:17:20 -06:00
raw git status -u, learn something new every day. 2012-12-20 20:17:20 -06:00
script i've tested, now you can too 2012-12-20 20:08:42 -06:00
src FS-7122: Working with william to find a better way 2015-02-16 16:25:35 -06:00
unittest FS-7122: Working with william to find a better way 2015-02-16 16:25:35 -06:00
voicing git status -u, learn something new every day. 2012-12-20 20:17:20 -06:00
wav Working codec2 support 2010-09-21 12:35:41 -05:00
.gitignore remove generated file from tree 2014-04-30 10:34:08 -04:00
.update Working codec2 support 2010-09-21 12:35:41 -05:00
AUTHORS Working codec2 support 2010-09-21 12:35:41 -05:00
COPYING i've tested, now you can too 2012-12-20 20:08:42 -06:00
ChangeLog Working codec2 support 2010-09-21 12:35:41 -05:00
INSTALL i've tested, now you can too 2012-12-20 20:08:42 -06:00
Makefile.am FS-7122: Working with william to find a better way 2015-02-16 16:25:35 -06:00
NEWS Working codec2 support 2010-09-21 12:35:41 -05:00
README i've tested, now you can too 2012-12-20 20:08:42 -06:00
README_fdmdv.txt git status -u, learn something new every day. 2012-12-20 20:17:20 -06:00
configure.ac clean up some bootstrap warnings 2014-03-07 18:36:26 -05:00
configure.gnu Working codec2 support 2010-09-21 12:35:41 -05:00

README

Codec 2 README
--------------

Codec 2 is an open source (LGPL licensed) speech codec for 2400 bit/s
and below.  For more information please see:

    http://rowetel.com/codec2.html

Also included is a FDMDV modem, see README_fdmdv.txt

Quickstart
----------

1/ Listen to Codec 2:

   $ ./configure && make
   $ cd src
   $ ./c2demo ../raw/hts1a.raw hts1a_c2.raw
   $ ../script/menu.sh ../raw/hts1a.raw hts1a_c2.raw

   NOTE: For playback testing, menu.sh requires either the 'play',
   'aplay' or 'ossplay' programs to be installed (see
   http://sox.sourceforge.net/, http://www.alsa-project.org/, or
   http://www.opensound.com/ respectively).

2/ Compress and Decompress a file:

   $ ./c2enc 2400 ../raw/hts1a.raw hts1a_c2.bit
   $ ./c2dec 2400 hts1a_c2.bit hts1a_c2.raw 

3/ Same thing with pipes:

   $ ./c2enc 1400 ../raw/hts1a.raw - | ./c2dec 1400 - - | play -t raw -r 8000 -s -2 -

Programs
--------
 
1/ c2demo encodes a file of speech samples, then decodes them and
saves the result.

2/ c2enc encodes a file of speech samples to a compressed file of
encoded bits.

3/ c2dec decodes a compressed file of bits to a file of speech
samples.

4/ c2sim is a simulation/development version of Codec 2.  It allows
selective use of the various Codec 2 algorithms.  For example
switching phase modelling or LSP quantisation on and off.

Debugging
---------

1/ For dump file support:

  $ cd codec2
  $ CFLAGS=-DDUMP ./configure
  $ make clean && make

2/ To use gdb:

  $ libtool --mode=execute gdb c2sim

Directories
-----------

  fltk      - FLTK GUI programs(s)
  octave    - Octave scripts used for visualising internal signals 
              during development
  portaudio - Portaudio test programs
  script    - shell scripts for playing and converting raw files
  src       - C source code
  raw       - speech files in raw format (16 bits signed linear 8 kHz)
  unittest  - unit test source code
  voicing   - hand-estimated voicing files, used for development
  wav       - speech files in wave file format
  win32     - Support for building Windows DLL version of Codec 2 and FDMDV libraries

TODO
----

[ ] Get win32/Makefile integrated into Automake system, such that if
    i586-mingw32msvc exists the Win32 code gets automatically built.
[ ] Same for fltk & portaudio, build these conditionally if libs exist