0

私は Naudio の例で遊んで、「WaveFileStream」関数を使用して開かれた WAV ファイルを増幅することができました。(コード例: AudioPlaybackPanel) これは正常に動作します:

後でチャネルにアクセスできるように、変数宣言を追加します。

    SampleChannel waveFromFile;

そして、既存の関数では、次のように設定しました。

     private ISampleProvider CreateInputStream(string fileName)
      {
        ...
        this.fileWaveStream = plugin.CreateWaveStream(fileName);
        var waveChannel =  new SampleChannel(this.fileWaveStream, true);
        waveFromFile = waveChannel;
        ...
    }

次に、AMPLIFY ボタンを追加すると、期待どおりに動作します。

    float ampFactor = 1.0f;
    private void ampButton_Click(object sender, EventArgs e)
    {
        ampFactor += 2;
        if (ampFactor >= 9.0f)
            ampFactor = 1.0f;
        waveFromFile.Volume = ampFactor;
    }

しかし、入力が WAV ファイルではなくマイクである場合、どうすればよいでしょうか?

NAudio の例を見て、このコードを "RecordingPanel" デモに追加しようとすると、無視されます。つまり、ボリュームに値を入れても変化はありません。

マイクから入ってくる音声を増幅することはできますか? もしそうなら、誰かがサンプルコードスニペットを見せてもらえますか? 私はオンラインで見ましたが、私はそれを見つけることができないようです。

4

1 に答える 1

1

サンプルを変更する SampleChannel の機能を利用するには、SampleChannel を介して実際にオーディオをプルする必要があります。これを行うには、録音したオーディオを BufferedWaveProvider に入れ、それを SampleChannel に入れることができます。次に、満杯にならないように、SampleChannel から WaveFileWriter に十分な数のオーディオを引き戻す必要があります。16 ビットの WAV ファイルが必要な場合は、SampleToWaveProvider16 を使用することもできます。

于 2013-05-07T15:29:38.810 に答える