java - 如何在 Java 中实现简单音频识别 Tensorflow 教程中的三层网络
问题描述
我正在尝试在 Android 应用程序中使用使用简单音频识别 Tensorlow 教程训练的模型,但我想实现三个第一层,而不是在网络中,而是在 CPU 端。基本上我使用了 Tensorflow 教程中的训练(没有改变任何东西),但是在没有解码样本数据、计算频谱图和 mfcc 的情况下冻结了模型:
wav_data_placeholder
Tensor("wav_data:0, shape=(), dtype=string)
解码样本数据
DecodeWav(audio=(tf.Tensor 'decoded_sample_data:0' shape=(16000, 1) dtype=flat32), sample_rate(tf.Tensor 'decoded_sample_data:1' shape=() dtype=int32))
频谱图
Tensor("AudioSpectrogram:0, shape=(1, 98, 257), dtype=float32)
指纹输入
Tensor("Mfcc:0, shape=(1, 98, 40), dtype=float32)
因此,我的冻结模型具有输入形状 (1, 98, 40),并采用 mfcc 方法计算的值,该方法具有来自频谱图输出的输入值,该输入值来自解码的样本数据。
我在 java 中尝试了 librosa mfcc 实现,但不幸的是,它没有提供相同的结果。
如何在 Android 应用程序中计算我的 .wav 文件以成功满足我的模型输入以获得正确的预测?
解决方案
推荐阅读
- linux - 将带有时间戳的每个命令的输出存储在 Linux 中的文件中
- python - numpy - 制作重复的随机数块(噪声图像)
- node.js - UnhandledPromiseRejectionWarning:NoSuchElementError:没有这样的元素:无法找到元素
- haskell - Haskell,坚持理解类型同义词
- swift - Double.greatestFiniteMagnitude 等于 Double.greatestFiniteMagnitude - 1
- elasticsearch - “AND”和“OR”一起使用范围easticsearch查询
- php - 登录菜单未显示在 Joomla 的访客会话中
- angular - Angular 中的初始化程序——在加载 AppComponent(第一个组件)之前,在应用程序开始时进行一堆休息调用
- python - 如何抓取以下链接的不可见页面数据(即 pg:No 11 ,12, 13),以下代码一直有效到 10 页
- tabs - 如何在 Flutter 中使用函数创建动态 TabBarView/渲染新 Tab?