【问题标题】:Reconstructing audio from spectrogram从频谱图重建音频
【发布时间】:2021-04-04 18:31:59
【问题描述】:

我已跟随 (https://www.mathworks.com/help/signal/ref/stftmag2sig.html) 从声音构建频谱图。我已将频谱图导出并保存为 png 图像。我现在想要的是,将图像导入 matlab 或任何替代平台并从中构建音频。我浏览了许多帖子和阅读材料,但它们不涉及从图像生成音频。大多数情况下,他们依靠声音信息进行重建,其中频谱图仅用于可视化目的,仅此而已。附上untitled.png图片供参考。

【问题讨论】:

  • 您发布的链接有一个名为“从 STFT 幅度重建音频信号”的示例,这不是您想要的吗?无论如何,如果我是你,我会首先尝试在给定频率/时间空间中的幅度矩阵的情况下重建信号。然后弄清楚如何将图像转换为这样的矩阵,如果这是您需要做的。
  • 我想从频谱图中重建一个音频信号。该链接提供了有关我们如何从 STFT 幅度重建音频信号的信息。即使如此,他们也高度依赖信号本身的幅度部分。我想看看我们是否可以从频谱图图像中提取相同的信息。
  • 我建议先看看其他问题。尽管在某些情况下语言可能不同,但原则保持不变。 stackoverflow.com/questions/47983897/…,stackoverflow.com/questions/64345872/…,stackoverflow.com/questions/58409556/…
  • 就从图像中提取值而言,您可以尝试将其转换为灰度并将其加载到类似 numpy 数组中,其中每个元素都是像素的亮度。这不是一个很好的解决方案,因为它在很大程度上取决于您的颜色图在 o.g.图片。使用实际数据比使用图像要好得多,但如果必须使用图像,请尝试使用灰度图像。
  • 至于反转 STFT / 重构信号,这只有在您已经知道窗口函数的情况下才有可能,对吗?

标签: python matlab audio spectrogram


【解决方案1】:

在您引用的文档之后:

s = imread('im.png') // see remarks below
x = stftmag2sig(s,nfft) // x is your audio

s 是你的形象。 OP 生成这些频谱图,因此他控制输出。基于此:

  • 避免有损图像格式并确保没有发生重新缩放/插值。您的像素应包含来自给定时间窗口 (nfft) 的幅度和频率箱。
  • 要么生成仅包含频谱图(无轴)的图像,要么知道频谱图的确切坐标
  • 不要在频谱图中使用颜色。它看起来不错,但在如何将 3 元组颜色映射到幅度方面引入了完全不必要的歧义。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-07
    • 1970-01-01
    • 2013-10-24
    • 1970-01-01
    相关资源
    最近更新 更多