【问题标题】:Combine 2 wav files as one simultaneous song将 2 个 wav 文件合并为一首同步歌曲
【发布时间】:2020-07-04 07:24:44
【问题描述】:

我有一个程序可以在播放音乐时记录来自麦克风的输入。完成后,声音将保存为 wav 文件。我想将该 wav 文件与录制期间播放的 wav 文件歌曲结合起来。示例:song1.wav 在人唱歌时在背景中播放。那个人唱歌的录音现在是recording1.wav。我想将song1.wav和recording1.wav结合起来同时播放,成为一首歌曲录制finalsong1.wav。我是 Java 的初学者,还没有找到解决方案,甚至还没有找到如何连接它们的起点,这与我想做的相反。

【问题讨论】:

标签: java javasound


【解决方案1】:

我将列出所涉及的步骤。这些步骤已被多次介绍,应该很容易研究。

  • 对于两个 wav 文件,使用 AudioInputStream 读入。

  • 当数据到达时,将字节转换为有符号的 PCM。如果格式为 16 位,则 PCM 可以是有符号的短裤,或缩放/标准化为 -1 到 1 范围内的浮点数。

  • 使用加法来组合相应的数据(例如,第 1 帧右声道语音与第 1 帧右声道音乐)。如果信号太“热”,则可能需要强制执行 min 和 max 函数以防止数据超出范围的界限,因为这听起来真的很糟糕。

  • 根据音频格式将求和、签名的 PCM 数据转换回字节。

  • 写入wav 文件。

我知道可以混合曲目进行播放的工具,但我不记得有哪个工具可以自动将结果保存到wav。一个可能存在于某个地方,或者应该很容易编写或委托。

【讨论】:

  • 非常感谢!
猜你喜欢
  • 1970-01-01
  • 2016-09-20
  • 2021-08-27
  • 1970-01-01
  • 2014-08-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-01-16
相关资源
最近更新 更多