如何将 2 个 wav 文件混合在一起?

2023-12-13

我正在尝试录制输入并将其与歌曲合并在一起(不是连接)。我有一把在听歌曲时录制的吉他,我想将吉他放在歌曲中(如 audcaity)。 有什么办法可以做到吗?如果无法进行实时混音 - 是否可以在录制后合并它们?就像我录制吉他后,现在它是一个 wav 文件,我想将 2 个 wav 文件混合在一起。 这就是输入设备:

 private void Capture()
    {
        input = new WasapiCapture((MMDevice)inputCombo.SelectedItem);
        bufferedWaveProvider = new BufferedWaveProvider(input.WaveFormat);
        input.DataAvailable += WaveInOnDataAvailable;
        input.StartRecording();
        write = new WaveFileWriter(System.IO.Path.GetTempFileName(), input.WaveFormat);
    }

 private void WaveInOnDataAvailable(object sender, WaveInEventArgs e)
    {
        bufferedWaveProvider.AddSamples(e.Buffer, 0, e.BytesRecorded);
        write.Write(e.Buffer, 0, e.BytesRecorded);
        write.Flush();
    }

我不想将其写入空白文件,而是想将其写入已存在的 wav 文件,而不是覆盖它。 MixingSampleProvider 可能吗?


这应该可以通过WaveMixerStream32,例如像这样

var mixer = new WaveMixerStream32 { AutoStop = true};

var wav1 = new WaveFileReader(@"c:\...\1.wav");
var wav2 = new WaveFileReader(@"c:\...\2.wav");

mixer.AddInputStream(new WaveChannel32(wav1));
mixer.AddInputStream(new WaveChannel32(wav2));
WaveFileWriter.CreateWaveFile("mixed.wav", new Wave32To16Stream(mixer));
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何将 2 个 wav 文件混合在一起? 的相关文章

随机推荐

  • 使用文件对话框获取客户端文件的完整文件路径

    我正在尝试允许用户将图片上传到服务器 我正在尝试创建一个与任何具有 附加 文件或 上传图像 功能的网站类似的系统 我需要的只是获取文件对话框选择的文件的完整路径 我尝试将其用于文件对话框 但没有成功
  • 如果 JavaScript 中某些键和值匹配,如何合并对象?

    如果 fname 和地址相同 我想合并最后一个键 这些键可以是数组中所有对象的任意随机字符串 为了提供更多上下文 我需要这种格式来绘制带有图表的图表 const data fname adam address us key1 12 fnam
  • LSF 中的混合 MPI/OpenMP

    我正在将 OpenMP 并行化的程序移至集群 该集群使用 Lava 1 0 作为调度程序 每个节点有 8 个核心 我在作业脚本中使用 MPI 包装器来进行多主机并行 这是作业脚本 BSUB q queue name BSUB x BSUB
  • fopen(file,w+) 会先截断文件,然后才能检查文件是否已被算法lock()锁定

    我有一个函数 它接收文件名和 json 对象以写入文本文件 该对象已更新 需要完全替换文件的当前内容 每个站点访问者都有自己的文件 多次快速更改会造成文件被截断的情况fopen file w 然后不会被写入 因为它已被锁定 最终结果是空文件
  • 如何使用 doxygen 从 C++ 源代码创建 UML 类图

    我一直在寻找一些描述如何使用 doxygen 生成简单类图的材料 但找不到 有人可以帮忙吗 I need to create diagrams as shown below from a set of C files 如果有更好的工具可以更
  • 如何在 Spark 中创建一组 ngram?

    我使用 Scala 从 Spark 2 2 数据帧列中提取 Ngram 因此 本例中为三元组 val ngram new NGram setN 3 setInputCol incol setOutputCol outcol 如何创建包含全部
  • 使用基于 sed/awk 的 Linux 中替换字符串

    我想更换这个 usr bin env bash 有了这个 bin bash 我尝试了两种方法 方法一 original str usr bin env bash replace str bin bash sed s original str
  • 在简单的多层 FFNN 中,只有 ReLU 激活函数不收敛

    我正在学习张量流 深度学习并尝试各种激活函数 我为 MNIST 问题创建了一个多层 FFNN 大部分基于tensorflow官方网站的教程 只是添加了3个隐藏层 我实验过的激活函数有 tf sigmoid tf nn tanh tf nn
  • 如何使用 android volley 库将位图图像上传到服务器?

    如何使用 android volley 库将位图图像上传到服务器 我正在尝试使用 android volley 将图像上传到服务器 如果 android volley 中没有这样的选项 您能否建议我使网络操作更快的最佳方法 欢迎您向我发送与
  • DefaultTreeModel 和 Wicket Tree:setAsksAllowsChildren 不起作用

    I m using Wicket s Tree component in a web app But empty folders are shown in a file way Just like this 下面是我使用 DefaultTr
  • 为什么不在中断内使用互斥体

    我已经通过了这个帖子我注意到在克利福德的回答中他说我们不应该在中断中使用互斥体 我知道在中断中我们必须避免太多的指令和延迟分机 但我不太清楚原因有人可以澄清吗我出于什么原因必须避免这种情况 如果我们想要在两个中断驱动线程之间建立同步通信 如
  • Perl if 块中的“-s”有什么作用?

    我有这样的代码块 if s fh more code 我只需要知道 s 是什么意思 s fh检查文件大小 fh so s fh测试文件大小的长度是否为零 或者不存在这样的文件 fh可以是文件名或文件句柄 检查perldoc f X 请注意
  • 将列表中的所有数据框保存到单独的 .csv 文件中

    我有一个数据框列表 我想将其保存到独立的 csv 文件中 目前我为每个数据框都有一个新行 write csv lst df1 C Users df1 write csv lst df2 C Users df2 ad nauseam 显然这并
  • 竹子:如何制作maven神器

    我已经设置了一个 Bamboo 服务器并使用 Maven 构建任务制作了一个测试项目和计划 但这个任务不会产生任何工件 也许除了测试结果 我没有检查过 我希望将所有 Maven 工件附加到构建结果中 就像在 Hudson 中所做的那样 怎么
  • Dataclip 错误 ERROR:无法在只读事务中执行 INSERT [重复]

    这个问题在这里已经有答案了 我想在 Heroku 中插入数据 但我无法执行此操作 因为它的错误是 Dataclip Error ERROR cannot execute INSERT in a read only transaction 赫
  • 如何为每一行将日期时间列增加一秒?

    假设我有这个时间值 09 00 00 我有一个包含 时间 列的表 其中有三个记录 我想用那个时间更新这 3 条记录 但时间值每次增加一秒 对于每条记录 像这样的东西 ColumnA ColumnB 1 09 00 00 2 09 00 01
  • 在 async.series 中调用 async.series 会产生不可预测的输出

    使用 caolan 的 Node js 异步库 我一直在尝试调用一个使用async series在另一个使用 async series 的函数内 但我仍然无法让函数以正确的顺序运行 如下所示 终端输出显示第二个函数在第一个函数之前被调用 没
  • 从广播接收器关闭应用程序

    我是 Android 编程新手 我尝试在活动中注册广播接收器 但当应用程序暂停时我的接收器无法工作 所以我发现我需要在清单中注册我的接收器 我的目标是在用户关闭 Wifi 后关闭我的应用程序一段时间 这是我的代码 但它不起作用 public
  • 使用 Java 5 运行 JAXB 编组异常 javax.xml.stream.FactoryConfigurationError

    我正在 JUnit 测试类中尝试简单的 JAXB 封送处理 并且使用的是 Java 5 运行测试时出现此错误 javax xml stream FactoryConfigurationError 未找到提供程序 com bea xml st
  • 如何将 2 个 wav 文件混合在一起?

    我正在尝试录制输入并将其与歌曲合并在一起 不是连接 我有一把在听歌曲时录制的吉他 我想将吉他放在歌曲中 如 audcaity 有什么办法可以做到吗 如果无法进行实时混音 是否可以在录制后合并它们 就像我录制吉他后 现在它是一个 wav 文件