DirectSoundバッファを含むメンテナンス作業を行っています。私は、バッファ内の要素をどのように解釈するか、つまりバッファ内の各値が何を表しているかを知ることを知りたいと思います。このデータはマイクからのものです。マイクキャプチャデバイスからのDirectSoundバッファ要素の解釈
この波フォーマットが使用されている:
WAVEFORMATEXTENSIBLE format = {
{ WAVE_FORMAT_EXTENSIBLE, 1, sample_rate, sample_rate * 4, 4, 32, 22 },
{ 32 }, 0, KSDATAFORMAT_SUBTYPE_IEEE_FLOAT
};
私の目標は、マイクの沈黙を検出することです。私は現在、各バッファ要素の強度が直接ボリュームに対応していると仮定して、バッファ内のすべての値がある閾値ボリューム値を超えないかどうかを単純に判断することによってこれを達成しています。
この私は現在しようとしています何:
bool is_mic_silent(float * data, unsigned int num_samples, float threshold)
{
float * max_iter = std::max_element(data, data + num_samples);
if(!max_iter) {
return true;
}
float max = *max_iter;
if(max < threshold) {
return true;
}
return false; // At least one value is sufficiently loud.
}