tensorflow - Vggish 参数设置:如何将 log-mel 频谱图设为任意频率?
问题描述
您好,这是我第一次在 stackoverflow 中提问 :)
我有一个一般问题和几个具体问题。后者在详细信息之后提供。
我的目标:
- 给定一个 wav 文件和时间上连续的标签(例如,唤醒轨迹、内部的实数
[-1, 1]
和n x 1
维度),我想提取n x m
波形文件的听觉特征,然后输入到 LSTM 等时间模型中,获得预测n x 1
. 预测和标签具有相同的维度,因此可以计算相关性以进行评估。
我的一般问题:
- 如何使用来自tensorflow/models/research/audioset/vggish的预训练 vggish 模型来提取与标签特定频率匹配的听觉特征?
一些细节:
分类的方式不会有问题,因为那样的话,整个视频都会使用相同的标签,无论我如何设置窗口秒或跳秒,都可以通过从视频继承来生成相应的标签.
来自tensorflow/models/research/audioset/vggish的 vggish 模型使用
96 x 64
log-mel 频谱图补丁进行了预训练。此大小无法更改,否则预训练的 vgg 模型可能无法工作。这个特定大小的补丁是通过以下参数获得的:
# Hyperparameters used in feature and example generation.
SAMPLE_RATE = 16000
STFT_WINDOW_LENGTH_SECONDS = 0.025
STFT_HOP_LENGTH_SECONDS = 0.010
NUM_MEL_BINS = NUM_BANDS
MEL_MIN_HZ = 125
MEL_MAX_HZ = 7500
LOG_OFFSET = 0.01 # Offset used for stabilized log of input mel-spectrogram.
EXAMPLE_WINDOW_SECONDS = 0.96 # Each example contains 96 10ms frames
EXAMPLE_HOP_SECONDS = 0.96 # with zero overlap.
更多附带问题:
- 根据上述预训练Vggish的代码片段和参数设置,
- 如果我的标签频率是 30fps,也就是说,我有一秒钟有 30 个标签点。如何在不改变补丁大小的情况下获得时间匹配的 log-mel 频谱图
96 x 64
? - 如果标签频率是 25fps 怎么办?27.64 帧?有实数的fps吗?
- 我的意图基本上是错误的吗?
- 如果我的标签频率是 30fps,也就是说,我有一秒钟有 30 个标签点。如何在不改变补丁大小的情况下获得时间匹配的 log-mel 频谱图
感谢您宝贵的时间!!
解决方案
推荐阅读
- python - 在不抑制和操纵 pylint 设置的情况下控制“函数中的局部变量过多”的最佳做法是什么?
- r - dplyr 和 merge() 对列名使用三个点/省略号 (...)
- graphql - 有没有办法在 gatsby-plugin-mdx 查询中获取 gatsby-source-filesystem 名称?
- reactjs - 如何将 react-typescript className 制作为数组
- optimization - 创建屏蔽 kreg 值的有效方法
- linux - 如何查找 tr 实用程序的语法错误
- git - 如何在 Intellij 编辑器中设置或集成 gitflow 以启动功能分支
- angular - 文本在页面上可见,但在 html 中不作为值或任何属性(Angular 项目)。如何使用硒或量角器获得价值
- sql - 加入表时重复记录
- r - 如何引用引号中的函数参数?