【问题标题】:Using Naudio to amplify Microphone Input使用 Naudio 放大麦克风输入
【发布时间】:2013-05-07 23:29:38
【问题描述】:

我玩过 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”演示中,但它被忽略了——这意味着我将值放入 Volume 中,但没有任何变化。

是否可以放大来自麦克风的音频?而且,如果是这样,有人可以显示示例代码sn-p吗?我在网上查过,好像没找到。

【问题讨论】:

    标签: c# audio-recording naudio


    【解决方案1】:

    要利用 SampleChannel 修改样本的能力,您实际上需要通过 SampleChannel 提取音频。为此,您可以将录制的音频放入 BufferedWaveProvider,然后将其放入 SampleChannel。然后,您需要确保从 SampleChannel 中提取了足够的音频并进入 WaveFileWriter,这样它就不会被填满。如果您想要 16 位 WAV 文件,您可能还想使用 SampleToWaveProvider16。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-02-07
      相关资源
      最近更新 更多