python - tensorflow ffmpeg contrib 输出

标签 python ffmpeg tensorflow

首先,我想说我对 TensorFlow 和机器学习完全陌生。
我正在看ffmpeg contrib 部分,我看到解码音频文件的示例,我想知道解码音频文件的矢量输出是什么?我正在运行的代码如下所示:

import tensorflow as tf
from tensorflow.contrib import ffmpeg
with tf.Session() as sess:
    audio_binary = tf.read_file('test.wav')
    waveform = ffmpeg.decode_audio(audio_binary, file_format='wav',
                                   samples_per_second=16000, channel_count=1)
    audio = waveform.eval()

audio 变量然后变成 numpy.ndarray 类型,它是单个元素列表的列表(总共约 620,000 个元素),这些列表之间都 float (在我的例子中) )-0.50218207 和 0.39030123。我的问题是:这些数字意味着什么?这是我完全缺失的某种标准音频表示吗?

最佳答案

波形中的每个浮点值代表离散时刻相应音频的幅度,具体取决于采样率(在本例中为每 1/16,000 秒) 。如果您查看的是 2 个音频 channel 而不是 1 个 channel ,您将拥有另一个类似的 ndarray,从而为您提供一个等距时间序列数据的二维矩阵。

您可以通过查找周期性周期或幅度变化来确定该波形分量的频率/音调。从正到负再返回的交叉可能代表基频,而较小的周期内振荡可能代表声音的谐波和泛音。通常这种分析是使用快速傅里叶变换或类似的方法来执行的。 TensorFlow 实现肯定会让人读起来很有趣。

关于python - tensorflow ffmpeg contrib 输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38018423/

相关文章:

python - 如何将 Pandas 数据框拆分为多列

nginx - 如何使用 ffmpeg 和 aparat.com 设置 rtmp?

android - JavaCv 和 FFMpeg

python - 如何解决 TensorFlow 中的 'BiasGrad requires tensor size <= int32 max' InvalidArgumentError?

python - 过滤 Tensorflow 数据集中的 NaN 值

python - 将 Tensorflow 预处理添加到现有的 Keras 模型(用于 Tensorflow Serving)

python - 使用 pandas 读取 csv 文件,其中包含与列表中给定的列名匹配的任何列

python - pandas 方法的有效参数

python - 如何在 Django 中获取文件的扩展名?

php - Windows 上的 FFMPEG-PHP(不是 Linux 作为上一个问题)错误未知编码器 'libfaac'