5块硬盘组RAID5 坏了2块,如何重建?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了5块硬盘组RAID5 坏了2块,如何重建?相关的知识,希望对你有一定的参考价值。
是IBM的服务器,一共5块硬盘组RAID5,现在换了2块新的,需要做重建,如果重建?越详细越好
参考技术A 坏了2块,无法重建,只能将故障盘得数据救回来才能重建,麻木乱顺序上电等于报废数据!!或者重配参数装系统使用!!如何从 librosa 中的 mel 频谱图重建 STFT 矩阵,以便重建原始音频?
【中文标题】如何从 librosa 中的 mel 频谱图重建 STFT 矩阵,以便重建原始音频?【英文标题】:How can I reconstruct the STFT matrix from a mel spectrogram in librosa so I reconstruct the original audio? 【发布时间】:2020-08-31 02:06:26 【问题描述】:我使用以下代码在 librosa 中生成了一个 melspectrogram
import os
from matplotlib import pyplot as plt
import librosa
import librosa.display
import pylab
import numpy as np
x, sr = librosa.load('audio/example.wav')
mel = librosa.feature.melspectrogram(x,sr)
P = librosa.power_to_db(mel, ref=np.max)
librosa.display.specshow(P)
pylab.savefig("example.png", bbox_inches=None, pad_inches=0)
据我了解,频谱图只是音频信号的 STFT 矩阵的直观表示。我正在尝试重建用于生成频谱图的 STFT 矩阵,以便将其传递给 griffin lim 函数。我该怎么做?
使用 STFT 数据生成频谱图
def generate_spectrogram(x, sr):
X = librosa.stft(x)
Xdb = librosa.amplitude_to_db(abs(X))
fig = plt.figure(figsize=(10, 10), dpi=100, frameon=False)
ax = fig.add_axes([0, 0, 1, 1], frameon=False)
ax.axis('off')
librosa.display.specshow(Xdb, sr=sr, cmap='gray', x_axis='time', y_axis='hz')
plt.savefig('example.png', quality=100, bbox_inches=0, pad_inches=0)
librosa.cache.clear()
【问题讨论】:
【参考方案1】:我不确定这个问题是否适合这个论坛的当前形式(堆栈交换可能更合适),但由于它与基于 DNN 的语音合成管道非常相关,我认为这是一个好主意稍微扩展一下。
我们不能从梅尔谱图中准确地重建 STFT。原因是我们 Mel 是 STFT 的“压缩”版本,其频率来自 Mel 标度,然后在这些频率上应用(到 STFT)三角滤波器。通常,我们会丢失从 STFT 到 mel 的信息。有关详细说明,请参阅这篇出色的文章。
https://haythamfayek.com/2016/04/21/speech-processing-for-machine-learning.html
现在,回到您的问题 - 我假设您正在以 Tacotron [1] 工作的方式进行语音合成 - 为了应用 Griffin Lim,正如您正确指出的那样,我们需要线性频谱图。论文中的做法是使用神经网络将 Mel 转换为 STFT。他们称之为 postnet,因为它在 Mels 被预测后充当后处理器。
要设置此网络,请将地面实况(目标)音频转换为 Mels,并创建一个循环网络(CBHG 或其他任何东西)将其转换为 STFT 等价物。最大限度地减少这些 STFT 预测与我们可以从目标音频创建的实际 STFT 之间的损失。
[1]https://arxiv.org/abs/1703.10135
【讨论】:
我实际上正在使用频谱图进行音频风格传输,使用 cyclegans。我不确定您上面描述的将 Mel 转换为 STFT 的过程是否相同。如果我从 STFT 矩阵构造一个常规频谱图,而不是使用 librosa 的内置 melspectrogram 函数呢?由于 STFT 矩阵是从 librosa.stft 函数生成的,因此我能否将其从该频谱图中提取出来? 不确定我是否了解上下文(好像您正在尝试获取 STFT,但从 Mels 开始)。在 librosa 中,您可以通过 librosa.stft 直接获取 STFT,然后在 Griffin Lim 上使用它。您已经在 generate_spectrogram() 中这样做了。 librosa.org/doc/latest/generated/librosa.stft.html#librosa.stft 和 ***.com/questions/57058875/… 是的,如果我不清楚,这就是我想要做的对不起。我希望能够从生成的频谱图(以 png 形式)回到 STFT 矩阵。我正在将频谱图传递给循环器进行风格转换,并希望在频谱图被修改后重建音频。由于我使用 STFT 数据构建了频谱图,因此我正在寻找一种方法来反转该过程并检索 STFT,以便从修改后的图像中重建音频。 应该可以使用 Griffin Lim 程序从 STFT(这里将是 CycleGAN 的输出)恢复音频。网上有几个地方可以实现。请注意,频谱图不是“png”。该图像是光谱能量的视觉表示,但我们必须将其作为 numpy 数组存储在磁盘中。如果将其存储为图像,要获取频谱图,我们必须应用适当的缩放因子。 Griffin Lim 实施示例:zhuanlan.zhihu.com/p/25002923以上是关于5块硬盘组RAID5 坏了2块,如何重建?的主要内容,如果未能解决你的问题,请参考以下文章
服务器数据恢复5盘Raid5中1块硬盘掉线被误重建为4盘raid5的数据恢复案例