音声データでバッファのボリュームを増やしたい。ポイントは、私は DirectSound を使用しており、1 つのプライマリ バッファーと 1 つのセカンダリ バッファーを持っているということです。すべてのストリームのミキシングは手動で行われます。ボイス チャットでは、すべての参加者が個別の音量レベルを持つことができます。各ストリーム データに値を掛けて (ゲイン)、1 つのバッファーに合計します。すべて正常に動作しますが、データに 1.0f より大きい値を掛けようとすると、クリッピングなどの音が聞こえます。
Audacity エフェクト コンプレッサーを使用してみましたが、これは奇妙なノイズを減らすのに役立ちません。
おそらく、他の方法でゲインを変更する必要がありますか?それとも、別の後処理アルゴリズムを使用しますか?
更新: うわー、私は興味深いことを発見しました! 音量を上げる前とその直後にオーディオをダンプしました。
これが写真です
品質については申し訳ありません-それがサウンドの表示方法だと思います(私は自分で赤い線を引きました)。値がサンプル データ型を超えているように見えます。しかし、私はなぜ理解できませんか?私のサンプルバッファは BYTE ですが、短いポインタを介してのみアクセスします。署名されていますが、*ptr が約 15 ~ 20,000 の場合でもクリッピングが発生します。