README
上传用户:szhypcb168
上传日期:2007-01-06
资源大小:2187k
文件大小:9k
源码类别:

语音压缩

开发平台:

Unix_Linux

  1. Note*******
  2. For this PC release, no provision has been made, other than changing file
  3. names to fit within DOS filename constraints, to run on a DOS system.  This
  4. code was written to run on a Sun Workstation, and can be easily made to run
  5. on any UNIX based system.  A small amount of work is needed to make the
  6. code runable on a PC system.
  7. CELP Version 3.2 C code
  8. Beware, the speech generated by version 3.2 C code and 3.2 FORTRAN
  9. code does not match exactly.  However, this slight mismatch appears
  10. to be within the arithmetic precision difference expected between 
  11. compiled FORTRAN and C.
  12. INSTALLATION, EDITING FILES, COMPILATION and LINKING
  13. ----------------------------------------------------
  14.  This directory contains CELP Version 3.2 written in C.  All of the 
  15. code necessary to make CELP is in this directory.  There are a couple
  16. of things that need to be done before compiling the code.  First, you
  17. need to decide whether you wish to run the old version of calculating
  18. lsps and quantizing them or do you want to run a quicker version that 
  19. calculates the lsps and quantizes them in the same routine (Lionel 
  20. Wolovitz's code).  If you want to run the old version then all the code 
  21. is in place.  If you wish to use the quicker version (there is a slight  
  22. degradation in the speech quality with this version) then you need to:
  23. %cp celp_pctolsp3.c celp.c
  24. %cp specdist_pctolsp3.c specdist.c.
  25. ***Note for this release only one version of celp has been included.  The
  26.    other versions referred to here can be created with the code enclosed
  27.    and changing a few calls with respect to pc to lsp conversion.....
  28. Note:  The degradation incurred by using pctolsp3.c is due to a more
  29. coarse search (for zero crossings) than is used by pctolsp2.c.  Simply
  30. searching a grid formed by the quantized values is not sufficient
  31. for maintaining an accurate representation of spectral information.
  32. The minimal search we suggest is a grid of quantized values and 
  33. two interpolated values between each quantized value in order not
  34. to miss any zero crossings in the method of searching employed by 
  35. pctolsp3.c.
  36.  The second thing you need to do is find out whether your C library 
  37. contains the nint function for rounding floating point numbers to
  38. integers.  If your C library does contain nint then you need to do 
  39. nothing.  If your C library does not have a nint function then a  
  40. round function is provided with the C code.  All that has to be done 
  41. to implement the round function is to substitute round for nint in 
  42. the following files:
  43. FILE NUMBER OF OCCURENCES
  44. --------------------------------------
  45. celp.c 2
  46. cgain.c 7
  47. cli.c 3
  48. smoothcbgain.c 1
  49. smoothtau.c 1
  50.  The third option you have is whether to use the durbin routine 
  51. in the autohf.c file.  If you wish not to use the durbin routine
  52. you need to make sure the call to autohf in celp.c is correct.  
  53. The file celp_pctolsp2.c has the correct code for not using the 
  54. durbin routine.  You will also need to:
  55. %cp autohf_reg.c autohf.c
  56.  The fourth option is whether to use recursive/non-recursive delay
  57. routines.  If you choose to use the non-recursive routines you must 
  58. fix the calls/references in the following files:
  59. pitchvq.c 
  60. psearch.c
  61. makefile 
  62.  If you plan on using the makefile provided then you will have to 
  63. replace the pathname for the disk_io routine on the SGIO_LIB option
  64. and set whatever CFLAGS are necessary.  A couple of compilations 
  65. can be omitted depending on what round routine you are using and 
  66. which pctolsp routine you choose.  If you are using nint then 
  67. all references to round in the makefile may be deleted.  If you 
  68. are using the old version of pctolsp then all references to pctolsp3
  69. can be deleted from makefile.  If you choose to use the newer version
  70. then you can delete the references to pctolsp2 from the makefile
  71. (do not delete lsp34 - you need this).
  72.  At this point you can make celp.
  73. %make celp
  74. EXECUTION
  75. ---------
  76.                        CELP COMMAND
  77. NAME:
  78.      celp - execute the CELP coder
  79.      The celp command generates a code-excited-linear-prediction
  80.      processed output file from an input file.
  81. SYNOPSIS:
  82.      celp [-i ifile] [-o ofile] [-p pfile] [-q qfile] [-m mfile] [-l lfile]
  83.        or
  84.      celp [-c chan] [-o ofile]
  85. ARGUMENTS:
  86.      -i      Input file short data format (16-bit signed samples).
  87.              For defaults, see celp.c data statements.
  88.  
  89.      -o      Speech output file (.spd) short data format
  90.              (16-bit signed samples) and bit stream channel file (.chan).
  91.              For defaults, see celp.c data statements.
  92.      -p      Parameter file specifying celp characteristics.
  93.              For defaults, see celp.c data statements.
  94.              Parameters are stored in a ascii text file in the order below
  95.              with one number per line i.e.,:
  96.                512       [ncsize = Code book size]
  97.                60        [l      = Code word length]
  98.                240       [ll     = LPC analysis frame size]
  99.                10        [no     = LPC filter order]
  100.                60        [lp     = Pitch analysis frame size]
  101.                1         [np     = Pitch order]
  102.                0.8       [gamma  = Noise weighting factor]
  103.                1.0       [scale  = Input speech scaling factor]
  104.        1.0       [descale = Output speech scaling factor]
  105.                0.0       [ber    = % bit error rate]
  106.        1  [mxsw    = modified excitation logical switch]
  107.        0.0       [prewt   = prefilter logical switch]
  108.        hier      [pstype  = type of fractional pitch search]
  109.      -q      Quantization characteristics file.
  110.              For defaults, see celp.c data statements.
  111.              The file has 3 sections: cbgain, pitch, and spectrum.
  112.              Each section type is followed by a quantization type,
  113.              which can be one of the following:  "max", "uniform", "vq",
  114.              "log", "opt", or "none".  If the quantization type is not 
  115.              "none", then the next line is the bit allocation; i.e.:
  116.              cbgain
  117.              none                      [unquantized cbgain]
  118.              pitch
  119.              max                       [Max quantization]
  120.              8 6 5             [8 bit delay, 6 bit delta delay, 5 bit gain]
  121.              spectrum
  122.              kang                      [Kang's quantization]
  123.              3 4 4 4 4 3 3 3 3 3       [lsp1=3,...,lsp10=3]
  124.      -m      Mask file specifying bit protection when introducing bit
  125.              errors to the unpermuted bit stream.  (Note, this protection
  126.              is separate from the Hamming FEC.)  Each line of the mfile
  127.              corresponds to a bit (i.e., 144 lines) where each line is a
  128.              1 (protected) or 0 (not protected).
  129.              See description in biterror.c.  
  130.      -l      Log file output containing run time information.
  131.              Defaults to appending to a file called "celp.log".
  132.              If the file name "none" is specified, no log file
  133.              is generated.
  134.      -c      Input channel file (.chan) hexadecimal format.  Channel
  135.      files generated from previous analysis runs are used as
  136.      imputs to a "synthesis only" run.  During this mode, the
  137.      -i switch is invalid.
  138. EXAMPLES:
  139.      celp
  140.              This causes celp to process ifile.spd into ofile.spd (and a
  141.              nonpostfiltered output in ofilenpf.spd) using the defaults 
  142.              specified by the FORTRAN data statements in celp.c,
  143.              writes the bit stream file ofile.chan and generates a log
  144.              appended to the file "celp.log".  (If SUNGRAPH is enabled,
  145.              a set of files, with .sg_data extension, as defined in
  146.              sungraph_open.com is generated.)
  147.      celp -i speech/dam27 -o dam27.48 -p celp48.p -q celp48.q -l log
  148.              celp processes speech/dam27.spd into the normal, highpassed
  149.      and nonpostfiltered output, dam27.48.spd, dam27_48hpf.spd
  150.      and dam27_48npf.spd, respectively, writes the bit stream
  151.      file dam27_48.chan and appends log information to a file
  152.      called log.  The celp parameters specified by celp48.p and  
  153.      quantization characteristics of celp48.q are used.  (If  
  154.      SUNGRAPH is enabled, a set of files, with .sg_data extension, 
  155.              as defined in sungraph_open.com is generated.)
  156.      celp -c speech/512_dam27.chan -o 512_dam27b
  157.      celp synthesizes speech/512_dam27.chan channel file into 
  158.      the normal, highpassed and nonpostfiltered output, 
  159.      512_dam27b.spd, 512_dam27bhpf.spd and 512_dam27bnpf.spd,
  160.      respectively.
  161.  SEE ALSO
  162.         cli.c
  163. EXECUTION OF SEPARATE SYNTHESIZER
  164. ---------------------------------
  165.        In order to run the synthesizer only compile celp without
  166.        the -DANALY option in the makefile.  (Separate analysis is not 
  167.        provided since the combined analyzer and synthesizer generates a  
  168.        bit stream channel file.)  The celp command syntax for synthesis  
  169.        only is:
  170.        celp [-c chan] [-o ofile]
  171.        where: chan is input.chan ascii hex bit stream channel file
  172.               ofile is ofile.spd speech file (postfiltered)
  173.  SEE ALSO 
  174. makefile
  175.