⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 tw2wav.txt

📁 非常好用的pcm格式语音文件转换成wav格式
💻 TXT
字号:
                  TW2WAV格式转换程序说明

    TW2WAV.C程序由main()、pcm_wav()和p_w()三个函数组成。

一、pcm_wav() 函数实现将8位的PCM 码转换成8位的语音线性码,转换是按照A 
    律PCM 编码算法进行的。其转换算法是:
  1.先将PCM 码进行55异或,得到变换码,并把PCM 码的符号位保留。
  2.将变换码按下表进行变换,得到8位的线性码。

            变换码                      8位线性码  
           
    M7 M6 M5 M4 M3 M2 M1 M0  ---  D7 D6 D5 D4 D3 D2 D1 D0

    x  0  0  0  0  0  0  0        x  0  0  0  0  0  0  0
    x  0  0  1  0  0  0  0        x  0  0  0  0  0  0  1   
    x  0  1  0  w  0  0  0        x  0  0  0  0  0  1  w
    x  0  1  1  w  x  0  0        x  0  0  0  0  1  w  x   
    x  1  0  0  w  x  y  0        x  0  0  0  1  w  x  y
    x  1  0  1  w  x  y  z        x  0  0  1  w  x  y  z   
    x  1  1  0  w  x  y  z        x  0  1  w  x  y  z  1
    x  1  1  1  w  x  y  z        x  1  w  x  y  z  1  1   

  3.将保留的PCM 码符号位置于D7,即得到转换后的8位线性码。

二、pcm_wav() 函数将PCM 格式文件转换成8 位的、采样频率为11.025KHz、单声道
    的WAVE格式文件,其步骤是:
  1.读取被转换文件的文件长度。
  2.设定WAVE文件的采样频率、声道数、采样位数、放音速率和数据存放的偏移量等
    参数,并根据被转换的PCM 文件的长度,算出转换后的WAVE文件的放音时长和语
    音数据的长度,形成WAVE文件的文件头。WAVE文件的文件头用下列的三个数据结
    构来写入。
        typedef struct {
                unsigned long   ckID;           /"RIFF"/
                unsigned long   filesize;       /WAVE文件总长度/
                unsigned long   ckwv;           /"WAVE"/
                unsigned long   ckft;           /"fmt "/
                unsigned long   fmtsize;        /WAVE文件格式部分长度/
        } FH;

        typedef struct waveformat_tag {
                int      wFormatTag;
                int      nChannels;
                long int nSamplesPerSec;
                long int nAvgBytesPerSec;
                int      nBlockAlign;
        }WAVEFORMAT;

        typedef struct pcmwave_format_tag {
                WAVEFORMAT wf;
                int        wBitsPerSample;
        } PCMWAVEFORMAT;

  3.读取PCM 文件语音数据,调p_w() 函数转换成线性码,按照采样频率的对应关系
    确定转换后的增加点。
  4.将转换好的线性码存入WAVE文件的data部分。

三、main()函数完成文件名的输入等操作。


                                
                                Oct 16,1995

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -