EasyAGC is an implementation of AGC(Automatic Gain Control). EasyAGC support
multiple channels concurrent. There is no
limit on concurrent channels and it can up to
thousands channels.
The binary library of EasyAGC only support
8kHz samples.
If you want to support samples
other than 8kHz, you need
buy the source code of EasyAGC.
EasyAGC specifications
Speech sampling rate(Hz) 8000
Samples in one Frame any
EasyAGC has a binary release version on
Windows and Linux. The source code of
EasyAGC is written by C/C++, so you can
easily port it to UNIX, PPC,DSP, Vxworks or
other operation system that support C/C++.
PACKAGE CONTENTS
EasyAGC.pdf This
document
EasyAGC.lib Win32 statically linkable
library of AGC for Pentium and
compatible processors.
libAGC.a Linux statically linkable
library of AGC for Pentium and
compatible processors.
EasyAGC.h API prototypes and
constants declarations required by the
sample programs.
test_agc directory Microsoft VC6.0 sample
application and Linux GCC sample
application.
Demonstrating how to use AGC API calls.
The input requires raw
16-bit mono PCM speech data sampled at 8000 Hz as input, i.e., without
any header information.
For every speech frame, consisting of any number samples
ALGORITHM COMPLEXITY
The complexity of AGC is
represented as percentage of CPU usage, and is as follows when
tested on an Intel 800 MHz
Celeron-MMX:
AGC less than 1% CPU time
ABOUT THE SAMPLE PROGRAMS
The sample programs under
test_agc
directory are
used to simulate the AGC and demonstrate
how to initialize and
call the AGC process. The program is run as follows (where infile and
outfile are raw 16 bit PCM files
sampled at 8 kHz):
test_agc infile outfile
To build the AGC sample
programs on Windows, you can open test_agc.dsw with VC6.0 or later
version. After compiler
and link, it will create the execute program of test_agc.exe, you can test it
with following command.
EasyAGC
Imtelephone.com 4
test_agc test.pcm test1.pcm
To build the AGC sample
programs on Linux, you only need rum make command. After you
successfully finished
make command, you can run make run to test AGC.
EasyAGC API FUNCTIONS
EasyAGC_init
Description Initializes the memory
needed by the AGC process. This function must be
called prior to opening
or re-opening a channel.
Syntax #include “EasyAGC.h”
AGC_HANDLE EasyAGC_init();
Arguments none
Returned value Return a handle that represent an AGC
channel, this value will used
at EasyAGC_convert and EasyAGC_release
EasyAGC_convert
Description Add automatic gain
control to a speech frame, the samples in speech frame can
be defined.
Syntax #include “EasyAGC.h”
bool EasyAGC_Convert(AGC_HANDLE hAGC,
short *input, short
*output, int numSamples);
Arguments hAGC The handle returned by EasyAGC_init
input Input speech buffer containing 16-bit PCM speech
data.
output Output speech buffer containing
16-bit PCM speech data which
after automatic gain
control.
numSamples The samples number in input speech.
Returned
value
Return true if successful, return false if
failed.
EasyAGC_release
Description release the memory
allocated by the AGC process. This function must be
called before you quit
your program. If not, it will cause the memory leak.
Syntax #include “EasyAGC.h”
EasyAGC
Imtelephone.com 5
bool EasyAGC_release(AGC_HANDLE hAGC);
Arguments hAGC The AGC handle returned by
EasyAGC_init
Returned value Return true if successful, return false if
failed.
FAQS
Here are some frequently
asked questions about the EasyAGC.
Q — What type of speech
input format is required?
A — Raw 16-bit mono PCM
sampled at 8000Hz. Do not use .WAV files. They contain a header
that will produce
distortion at the start of a decoded audio sample because the encoder
interprets
the header as speech
data.
Q — How can I convert my
.WAV files to raw 16 bit mono PCM sampled at 8000 Hz?
A — Use an audio editing
tool such as SoX - Sound eXchange. See
home.sprynet.com/~cbagwell/sox.html
for more
information
Q — Can I get link on
platforms other than Pentium or compatible?
A — The object code
provided in this package is Microsoft Win32 and Linux x86 compatible. It is
compiled for the Pentium
family of processors. If you want to use EasyAGC on other platforms,
you should buy the source
code of EasyAGC. Then you can compile and link.
Q — Is the EasyAGC able
to handle multiple channels?
A — Yes, It can handle
multiple channels. There is no limited.
Q — Is the EasyAGC codec
free to use?
A — No, The version you
get freely is a version only for test. If you want to use it in commercial,
release version, but It
can only run less than 6 hours continuously.
Q — How much does the
EasyAGC codec cost?
A — The object code of
Windows or Linux is $2000/year. The source code is $20000/year. You
can
buy it from www.imtelephone.com
Tidak ada komentar:
Posting Komentar