📄 readme
字号:
Included in this distribution is the lpc.c module, a header file for the
routines in it called lpc.h, and a small test program which illustrates a
typical set of calls to it called lpctest.c.
To compile lpctest.c, you need to link it with lpc.o and the math library.
It will take sound samples from stdin, compress & decompress them with LPC,
and output the resulting samples to stdout.
The subroutines in lpc.c are as follows:
The lpc_init routine specifies the length of a single frame to be processed by
the other LPC subroutines. This number is expressed in samples, and lpc_init
should be called before anything else. It also resets all other state kept
between frames, and can be called again when there's a break in what it being
encoded or decoded (such as between talk spurts):
int lpc_init(int framelen);
The lpc_analyze routine is used to convert a group of samples into an LPC
frame. State is kept between calls to smooth out transitions between frames, so
this routine should be called with frames in order:
void lpc_analyze(unsigned char *buf, lpcparams_t *params);
The lpc_synthesize routine is used to convert an LPC frame back into a group of
samples. Also, a speed parameter may be specified to speed up or slow down the
speech (without altering the pitch). The length of the buffer returned depends
on the speed. If speed==1.0, it will be the same as the length passed to the
lpc_init call. If speed==2.0, it will be half that. The call to lpc_synthesize
returns this length. Note that the speed parameter is a float -- passing an
integer will cause unpredictable results:
int lpc_synthesize(lpcparams_t *params, float speed, unsigned char *buf);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -