音频采样率与跳跃长度、滤波器长度、窗口长度的关系是什么?降采样如何影响音频参数?

我有大约20,000个音频文件,采样率为44100Hz。我使用这些数据来训练文本到语音的Tacotron模型。然而,成功训练所需的参数配置如下:因此,我需要将数据降采样到22050Hz。

max_wav_value=32768.0,sampling_rate=22050,filter_length=1024,hop_length=256,win_length=1024,n_mel_channels=80,mel_fmin=0.0,mel_fmax=8000.0,

我使用librosa=0.6.0成功地降采样了我的数据,代码如下:

x, sr = librosa.load("Audio_44100.wav", sr=44100)y = librosa.resample(x, 44100, 22050)librosa.output.write_wav("Audio_22050.wav", y, sr=22050, norm=False)

然而,通过这种方式降采样,我认为只有采样率发生了变化,其余的音频参数并没有相应地调整。

有人能帮助我如何在考虑其他音频参数的情况下进行音频降采样吗?

或者

基于给定的采样率,如何配置/计算上述参数?


回答:

看起来您的模型需要一个Mel频谱图作为输入,该频谱图是用给定参数生成的。即sr=22050hop_length=...等。这些参数与降采样无关。

要创建合适的频谱图,可以这样做:

max_wav_value=32768.0sampling_rate=22050filter_length=1024  # 我认为不需要hop_length=256win_length=1024n_mel_channels=80mel_fmin=0.0mel_fmax=8000.0# 提示:librosa默认将采样率降至22050Hzx, sr = librosa.load("Audio_44100.wav", sr=sampling_rate)mels = librosa.feature.melspectrogram(    y=y, sr=sr,    win_length=win_length,    hop_length=hop_length,    n_mels=n_mel_channels,    fmin= mel_fmin,    fmax=mel_fmax)

mels的形状将是(n_mels, t),其中t是可能的跳跃次数。请注意,t指的是哪个帧取决于librosa.feature.melspectrogram函数的pad_mode参数。

显然,这将作为您的“文本到语音”模型的输入。话虽如此,我觉得这很奇怪,因为从Mel频谱图创建合理质量的音频是困难的。另一方面,将这样的频谱图用作语音到文本模型的输入对我来说是完全合理的。

Related Posts

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注