signal-processing - 如何处理CNN中使用的音频频谱图的动态输入大小?

标签 signal-processing speech-recognition conv-neural-network spectrogram

许多文章都在使用CNN提取音频功能。输入数据是具有两个维度(时间和频率)的频谱图。

创建音频频谱图时,您需要指定两个尺寸的确切大小。但是它们通常是不固定的。可以通过窗口大小指定频率维度的大小,但是时域呢?音频样本的长度不同,但是CNN的输入数据的大小应该是固定的。

在我的数据集中,音频长度从1s到8s。填充或剪切始终会对结果产生太大影响。

因此,我想更多地了解这种方法。

最佳答案

CNN是基于帧窗口计算的。您假设周围有30个框架,然后训练CNN对它们进行分类。在这种情况下,您需要具有框架标签,您可以从其他语音识别工具包中获得框架标签。

如果要进行纯神经网络解码,则最好训练递归神经网络(RNN),它们允许任意长度的输入。为了提高RNN的准确性,您最好还具有CTC层,该层将允许在没有网络的情况下调整状态对齐。

如果您对此主题感兴趣,可以尝试https://github.com/srvk/eesen,这是一个为使用递归神经网络进行端到端语音识别而设计的工具包。

也相关Applying neural network to MFCCs for variable-length speech segments

关于signal-processing - 如何处理CNN中使用的音频频谱图的动态输入大小?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37045126/

相关文章:

关于语音识别的 Android 额外功能不起作用

opencv - 深度学习 - 如何执行 RANDOM CROP 并且不丢失数据中的任何信息(更改地面实况标签)

json - 使用keras在json中转储cnn的权重

matlab - Matlab 中的卷积实践

python - 倒谱法的基频

matlab - Matlab 中的局部最大值

opencv - 基于机器学习的边缘检测器

c# - Microsoft.Speech SpeechRecognitionEngine.setInputToDefaultAudioDevice() 方法抛出 System.InvalidOperationException

matlab - 从数据获取FFT峰

python - Tensorflow官方MNIST模型训练精度高但预测性能低