首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >梳理2个wav文件后得到的wav的采样率

梳理2个wav文件后得到的wav的采样率
EN

Stack Overflow用户
提问于 2012-02-14 04:31:32
回答 1查看 668关注 0票数 0

我在VS2010中手动执行以下操作。1.读入2个wave文件,分别为"1.wav“和"2.wav”。2.在1.wav中间插入2.wav。3.将结果波流写入输出文件"out.wav“。

我现在可以使用下面的结构成功地读入wave文件

代码语言:javascript
复制
typedef struct {
    char ChunkID[4];        /* RIFF Header      */ //Magic header
    unsigned long ChunkSize;      /* RIFF Chunk Size  */
    char Format[4];        /* WAVE Header      */
    char Subchunk1ID[4];         /* FMT header       */
    unsigned long Subchunk1Size;  /* Size of the fmt chunk                                */
    unsigned short AudioFormat;    /* Audio format 1=PCM,6=mulaw,7=alaw, 257=IBM Mu-Law, 258=IBM A-Law, 259=ADPCM */
    unsigned short NumChannels;      /* Number of channels 1=Mono 2=Sterio                   */
    unsigned long SampleRate;  /* Sampling Frequency in Hz                             */
    unsigned long ByteRate;    /* bytes per second */
    unsigned short BlockAlign;     /* 2=16-bit mono, 4=16-bit stereo */
    unsigned short BitsPerSample;  /* Number of bits per sample      */
    char Subchunk2ID[4]; /* "data"  string   */
    unsigned long Subchunk2Size;  /* Sampled data length    */
    BYTE Data[18000];
} WavFile;

但两个wave文件的某些参数并不相同。例如1.wav的SampleRate是8000,2.wav的SampleRate是44100,那么out.wav的SampleRate是多少?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-02-14 04:42:33

out.wav的采样率是您必须明确定义的。在您的示例中,您可以选择out.wav为44100,这是两个值中较好的一个,但您需要通过插值或在其间添加零来对1.wav进行上采样。或者,您可以将其保持在8000,并通过低通滤波器对其进行下采样2.wav,以过滤出比奈奎斯特更高的频率(新采样率的一半),然后将样本放在中间。无论哪种方式,你都必须明确决定你想要做什么。

更多信息- https://ccrma.stanford.edu/~jos/resample/

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9267568

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档