【发布时间】:2019-11-17 18:52:41
【问题描述】:
您可能会注意到,我对 python 和声音处理真的很陌生。我(希望)使用 python 和 logfbank 和 mfcc 函数从波形文件中提取 FFT 数据。 (logfbank 似乎给出了最有希望的数据,mfcc 输出对我来说有点奇怪)。
在我的程序中,我想更改 logfbank/mfcc 数据,然后从中创建波形数据(并将它们写入文件)。我并没有真正找到有关从 FFT 数据创建波形数据的过程的任何信息。你们中有人知道如何解决这个问题吗?我会很感激的:)
这是我目前的代码:
from scipy.io import wavfile
import numpy as np
from python_speech_features import mfcc, logfbank
rate, signal = wavfile.read('orig.wav')
fbank = logfbank(signal, rate, nfilt=100, nfft=1400).T
mfcc = mfcc(signal, rate, numcep=13, nfilt=26, nfft=1103).T
#magic data processing of fbank or mfcc here
#creating wave data and writing it back to a .wav file here
【问题讨论】:
-
当您以正弦波之类的时域信号开始时,然后将其数组提供给 fft 调用,然后您将获得其频域表示...如果您随后将该频域数组发送到逆 fft ( ifft ) 你会得到你原来的时域信号
-
logfbank 是一个有损进程。没有足够的信息(相位等)来重建一个听起来像原始音频的波形文件。
-
我现在已经在 Python 中添加了工作示例代码,请参阅更新的答案
标签: python signal-processing fft spectrogram mfcc