• 大小: 211KB
    文件类型: .zip
    金币: 2
    下载: 1 次
    发布日期: 2021-06-23
  • 语言: C/C++
  • 标签: AMR  Audio  

资源简介

3GPP AMR-NB C++算法,分享给需要的朋友

资源截图

代码片段和文件信息

/*
 * ===================================================================
 *  TS 26.104
 *  REL-5 V5.4.0 2004-03
 *  REL-6 V6.1.0 2004-03
 *  3GPP AMR Floating-point Speech Codec
 * ===================================================================
 *
 */

#include 
#include 
#include 
#include “interf_dec.h“
#include “sp_dec.h“
#include “typedef.h“

#ifndef ETSI
#ifndef IF2
#include 
#define AMR_MAGIC_NUMBER “#!AMR\n“
#endif
#endif

void Copyright(void){
fprintf (stderr
“===================================================================\n“
“ TS 26.104                                                         \n“
“ REL-5 V5.4.0 2004-03                                              \n“
“ REL-6 V6.1.0 2004-03                                              \n“
“ 3GPP AMR Floating-point Speech Decoder                            \n“
“===================================================================\n“
);
}
/*
 * main
 *
 *
 * Function:
 *    Speech decoder main program
 *
 *    Usage: decoder bitstream_file synthesis_file
 *
 *    Format for ETSI bitstream file:
 *       1 word (2-byte) for the TX frame type
 *       244 words (2-byte) containing 244 bits.
 *          Bit 0 = 0x0000 and Bit 1 = 0x0001
 *       1 word (2-byte) for the mode indication
 *       4 words for future use currently written as zero
 *
 *    Format for 3GPP bitstream file:
 *       Holds mode information and bits packed to octets.
 *       Size is from 1 byte to 31 bytes.
 *
 *    Format for synthesis_file:
 *       Speech is written to a 16 bit 8kHz file.
 *
 *    ETSI bitstream file format is defined using ETSI as preprocessor
 *    definition
 * Returns:
 *    0
 */
int main (int argc char * argv[]){

   FILE * file_speech *file_analysis;

   short synth[160];
   int frames = 0;
   int * destate;
   int read_size;
#ifndef ETSI
   unsigned char analysis[32];
   enum Mode dec_mode;
#ifdef IF2
   short block_size[16]={ 12 13 15 17 18 20 25 30 5 0 0 0 0 0 0 0 };
#else
   char magic[8];
   short block_size[16]={ 12 13 15 17 19 20 26 31 5 0 0 0 0 0 0 0 };
#endif
#else
   short analysis[250];
#endif

   /* Process command line options */
   if (argc == 3){

      file_speech = fopen(argv[2] “wb“);
      if (file_speech == NULL){
         fprintf ( stderr “%s%s%s\n““Use: “argv[0] “ input.file output.file “ );
         return 1;
      }

      file_analysis = fopen(argv[1] “rb“);
      if (file_analysis == NULL){
         fprintf ( stderr “%s%s%s\n““Use: “argv[0] “ input.file output.file “ );
         fclose(file_speech);
         return 1;
      }

   }
   else {
      fprintf ( stderr “%s%s%s\n““Use: “argv[0] “ input.file output.file “ );
      return 1;
   }
   Copyright();
   /* init decoder */
   destate = Decoder_Interface_init();

#ifndef ETSI
#ifndef IF2
   /* read and verify magic n

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     文件        3708  2012-09-12 22:37  readme.txt
     文件        4176  2004-03-05 00:00  c-code\decoder.c
     文件        6415  2004-03-05 00:00  c-code\encoder.c
     文件         925  2004-03-05 00:00  c-code\interf_dec.h
     文件        1036  2004-03-05 00:00  c-code\interf_enc.h
     文件       25343  2004-03-05 00:00  c-code\interf_rom.h
     文件        3665  2004-03-05 00:00  c-code\makefile.gcc
     文件        2508  2004-03-05 00:00  c-code\makefile.win32
     文件      143214  2004-03-05 00:00  c-code\rom_dec.h
     文件      223317  2004-03-05 00:00  c-code\rom_enc.h
     文件      160965  2004-03-05 00:00  c-code\sp_dec.c
     文件        1657  2004-03-05 00:00  c-code\sp_dec.h
     文件      322718  2004-03-05 00:00  c-code\sp_enc.c
     文件        1497  2004-03-05 00:00  c-code\sp_enc.h
     文件         494  2004-03-05 00:00  c-code\typedef.h
     目录           0  2004-03-22 07:00  c-code\
     文件       19797  2007-04-25 23:34  c-code\interf_dec.c
     文件       18109  2007-04-25 23:34  c-code\interf_enc.c

评论

共有 条评论