Это ошибка в voicepy.processing.cmvn?Python

Программы на Python
Ответить
Anonymous
 Это ошибка в voicepy.processing.cmvn?

Сообщение Anonymous »

Я пытался вычислить кепстральное среднее и нормализацию дисперсии.
Мне сказали, что вы берете среднее значение по характеристикам (не кадрам) векторов MFCC, а также делите на стандартное отклонение.
Итак, с точки зрения PyTorch, я бы сделал:

Код: Выделить всё

import torch
mfccs = torch.tensor([[1.0, 2.0], [2.0, 2.0], [1.0, 1.0]])
# Assume 3 frames, 2 features

mean = torch.mean(mfccs, dim=0)
std = torch.std(mfccs, dim=0)

cmvn = (mfccs - mean) / std
# [[-0.5774,  0.5774],
#  [ 1.1547,  0.5774],
#  [-0.5774, -1.1547]]
Однако результат, полученный мной из Speechpy.processig.cmvn, был другим.

Код: Выделить всё

import speechpy
res = speechpy.processing.cmvn(vec=mfccs.numpy(),variance_normalization=True)

# [[-0.7071069,  0.7071068],
#  [ 1.4142134,  0.7071068],
#  [-0.7071069, -1.4142134]]
Я проверил код и заметил кое-что, что не могу объяснить:
Ссылка:
https://github.com/ astorfi/speechpy/blob/master/speechpy/processing.py#L239

Код: Выделить всё

    eps = 2**-30
rows, cols = vec.shape

# Mean calculation
norm = np.mean(vec, axis=0)
norm_vec = np.tile(norm, (rows, 1))

# Mean subtraction
mean_subtracted = vec - norm_vec

# Variance normalization
if variance_normalization:
stdev = np.std(mean_subtracted, axis=0)
stdev_vec = np.tile(stdev, (rows, 1))
output = mean_subtracted / (stdev_vec + eps)
Почему они берут стандартное отклонение от среднего_вычитанного, а не от vec? Я проверил документы PyTorch и Numpy, и оба вычисляют среднее значение напрямую, поэтому вам просто нужно передать необработанные данные, не делая с ними никаких действий перед этим...
Может кто-нибудь объяснить?
Кто-нибудь может объяснить?
Может кто-нибудь объяснить? п>

Подробнее здесь: https://stackoverflow.com/questions/792 ... ssing-cmvn
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»