如何组合两个音频并在机器学习中训练它们



我必须使用音频文件训练神经网络。

我有一个音频数据集,其中包含带有人名和命令的文件夹。假设,一个文件夹是"Marvin",人的名字变成"Mavin",另一个文件夹是"说话",所以命令是"说话"。现在我想要音频文件,其中音频说,"马文说话"。

现在我想的方法是加入pydub库中的音频文件并训练神经网络。

from pydub import AudioSegment
sound_marvin = AudioSegment.from_file('marvin_audio.wav')
sound_speak = AudioSegment.from_file('speak_audio.wav')
final = sound_marvin + sound_speak
final.export('final.wav', format='wav')

我的方法是否正确,或者有更好的方法可以做到这一点?

欢迎任何建议/想法。

您的问题涉及许多问题">我的方法是否正确还是有更好的方法来做到这一点?最突出的是:

  1. 读取两个不同的音频文件并将它们连接起来
  2. 将音频文件
  3. 混合到一个音频文件
  4. 使用音频作为神经网络(NN(的输入(即应使用哪种形式的输入数据(
  5. 用于音频相关任务的 NN 类型
  6. NN 将接受培训以执行的实际损失/任务
  7. 如何验证方法是否更好

我认为你是在暗示你问的是 1 和 2,所以我将把我的答案集中在 1 和 2 上。


只有在以下情况下,您展示的内容才可能是一个最小的工作示例:

  1. marvin_audio.wavspeak_audio.wav具有相同的采样频率
  2. +意味着串联,这对于音频处理来说确实非常不直观。

如果以上两种情况都不正确,那么您将拥有失真的音频。

如果两者都成立,那么您将首先获得第一个文件的音频,然后是第二个文件的音频。

您可以做的事情很少,也不需要专家的现场知识。这些将是:

  1. 从音频文件中,从开始和结束修剪静音(硅烯 = 最大值低于阈值的连续样本,例如 -60 dB FS(
  2. 规范化音频文件,以便两者都具有 |1| 作为最大值
  3. 在静音修剪音频文件的开头和结尾(分别(添加淡入和淡出
  4. 手动创建一个静音音频文件(即以全零作为样本值的音频文件(,其持续时间由您定义,例如在音频文件的大多数组合/串联下听起来几乎正常。

为了更好地控制你正在做的事情,我建议使用一些更专用的音频处理库,比如librosa。

最新更新