gpt4 book ai didi

python-3.x - Python Librosa : What is the default frame size used to compute the MFCC features?

转载 作者:行者123 更新时间:2023-12-02 22:10:20 25 4
gpt4 key购买 nike

使用 Librosa 库,我将音频文件 1319 秒的 MFCC 特征生成矩阵 20 X 56829 . 20这里代表没有 MFCC 功能(我可以手动调整它)。但我不知道它如何将音频长度分割为 56829 .处理音频所需的帧大小是多少?

import numpy as np
import matplotlib.pyplot as plt
import librosa

def getPathToGroundtruth(episode):
"""Return path to groundtruth file for episode"""
pathToGroundtruth = "../../../season01/Audio/" \
+ "Season01.Episode%02d.en.wav" % episode
return pathToGroundtruth

def getduration(episode):
pathToAudioFile = getPathToGroundtruth(episode)
y, sr = librosa.load(pathToAudioFile)
duration = librosa.get_duration(y=y, sr=sr)
return duration
def getMFCC(episode):
filename = getPathToGroundtruth(episode)
y, sr = librosa.load(filename) # Y gives
data = librosa.feature.mfcc(y=y, sr=sr)
return data


data = getMFCC(1)

最佳答案

简答

您可以通过更改 stft 计算中使用的参数来指定更改长度。以下代码将使输出的大小加倍(20 x 113658)

data = librosa.feature.mfcc(y=y, sr=sr, n_fft=1012, hop_length=256, n_mfcc=20)

长答案

Librosa的 librosa.feature.mfcc()函数实际上只是充当 librosa librosa.feature.melspectrogram() 的包装器函数(它是 librosa.core.stftlibrosa.filters.mel 函数的包装器)。

与音频信号分割有关的所有参数(即帧和重叠值)都在 Mel 缩放功率谱函数中使用(以及为嵌套核心函数指定的其他可调参数)。您将这些参数指定为 librosa.feature.mfcc() 中的关键字参数。功能。

所有额外 **kwargs参数被馈送到 librosa.feature.melspectrogram()随后到 librosa.filters.mel()
默认情况下,梅尔缩放功率谱图窗口和跳长如下:
n_fft=2048 hop_length=512
因此,假设您使用默认采样率 ( sr=22050 ),您的 mfcc 函数的输出是有意义的:

输出长度 =(秒)*(采样率)/(hop_length)

(1319) * (22050)/(512) = 56804 sample

您可以调整的参数如下:
Melspectrogram Parameters
-------------------------
y : np.ndarray [shape=(n,)] or None
audio time-series

sr : number > 0 [scalar]
sampling rate of `y`

S : np.ndarray [shape=(d, t)]
power spectrogram

n_fft : int > 0 [scalar]
length of the FFT window

hop_length : int > 0 [scalar]
number of samples between successive frames.
See `librosa.core.stft`

kwargs : additional keyword arguments
Mel filter bank parameters.
See `librosa.filters.mel` for details.

如果您想进一步指定用于定义 Mel 缩放功率谱图的 mel 滤波器组的特性,您可以调整以下内容
Mel Frequency Parameters
------------------------
sr : number > 0 [scalar]
sampling rate of the incoming signal

n_fft : int > 0 [scalar]
number of FFT components

n_mels : int > 0 [scalar]
number of Mel bands to generate

fmin : float >= 0 [scalar]
lowest frequency (in Hz)

fmax : float >= 0 [scalar]
highest frequency (in Hz).
If `None`, use `fmax = sr / 2.0`

htk : bool [scalar]
use HTK formula instead of Slaney

Librosa 的文档:

librosa.feature.melspectrogram

librosa.filters.mel

librosa.core.stft

关于python-3.x - Python Librosa : What is the default frame size used to compute the MFCC features?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37963042/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com