我被要求为转换大师课程建立一个语音识别系统,这有点超出我的能力范围。我需要准备wav文件以便使用RNN进行分析,但是处理部分有问题。我曾尝试使用thinkdsp将wav文件转换为大约23 ms时间块的频谱图,但无法看到我如何使用输出:
fit()
为RNN制作有用的二维输入向量。从我的阅读中我会想到,我会连续得到一系列的谱峰。谁能给我一个好的输入应该是什么样子的例子?或者,我试图使用https://github.com/baidu-research/ba-dls-deepspeech/blob/master/README.md处的代码为我预处理信号,但我在这里使用生成数据文件的尝试只是打印"使用theano后端。"在崩溃之前以红色显示没有其他错误信息。我非常感谢任何建议,有用的链接和教程或任何人都可以提供的一般帮助。有一个合理的数量,但它往往太高级和偏离主题,我的理解!
答案 0 :(得分:1)
librosa可能是语音识别的音频处理和特征提取的良好起点。
window_size_sec = 0.025
window_shift_sec = 0.0125
sample_rate = 8000
data, sampling_rate = librosa.core.load('audio.wav', sr=sample_rate, mono=True)
win_length = int(sample_rate * window_size_sec)
hop_length = int(sample_rate * window_shift_sec)
n_fft = win_length # must be >= win_length
spectrogram = librosa.core.stft(data, n_fft=n_fft, hop_length=hop_length, win_length=win_length)
spectrogram.shape
(101, 338)
其中shape[0]
是功能,shape[1]
是时间,如果需要,可以进行转置。这些功能对您来说可能太高,因此您可以检查MFCC和其他方法。
scipy.signal.spectrogram更低级别,但也可能很合适。