用什么方法,模型 ,可以知道,这是一条平线,没有数据。请高手,指点一二。

解决方案 »

  1.   

    按理说只有用音频的频率可以判断是否有说话音,但谁知道音频数据包内音频的频率是多少呢?应该不会是一条直线。你看你的处理对不对,你从录音设备中采样到的所有数据包内的数据都完全一样,我想不可能吧。看看WAVEFORMAT设置对不对
    typedef struct gsm610waveformat_tag{
    WAVEFORMATEX    wfx;
    WORD wSamplesPerBlock;
    }GSM610WAVEFORMAT;
    m_WaveFormat.wfx.cbSize = 2;
    m_WaveFormat.wfx.nChannels = 1;
    m_WaveFormat.wfx.wFormatTag = WAVE_FORMAT_GSM610;
    m_WaveFormat.wfx.nSamplesPerSec = 8000; //32000;
    m_WaveFormat.wfx.wBitsPerSample = 0;
    m_WaveFormat.wfx.nBlockAlign = 65;
    m_WaveFormat.wfx.nAvgBytesPerSec =  1625; //6500;
    m_WaveFormat.wSamplesPerBlock = 320;
      

  2.   

    yongdu()
    晕死了,这和结构有什么关系MS的支持,都死哪儿去了。。高手们,快现身了。
      

  3.   

    就象 NETMEETING 一样,进行无声测试 。。
      

  4.   

    注意,QQ 和 NETMEETING 的语音测试。
    还用 DIRCTXBOX 也可以。
      

  5.   

    晕死,这还不简单,先转为PCM,看看声音抖动是不是在一定范围内,如果是就是静音,如果不是就是说话了,完全准确的肯定不可能的嘛,至少目前的技术是不行的,我想微软也做不到的,但一般准确总是可以的吧
      

  6.   

    就是读取你的char*型缓冲区里边儿的每一个值,然后把它们转换成int型,然后在比较大小。
      

  7.   

    我也想问一个问题:PCM中的采样数据到底是什么类型?int还是float?
      

  8.   

    采样数据就是量化间隔,根据精度可使用8bit,16bit的,是int型的
      

  9.   

    http://www.codeguru.com/multimedia/gene_output_sound_class.shtml
    下载这个看看吧,我现在也在搞,可以找我谈谈
    http://expert.csdn.net/Expert/topic/2073/2073809.xml?temp=.273739