将时间码添加到音频数据

时间:2014-02-04 03:33:37

标签: java timestamp audio-recording

我想用Java构建一个程序,它接收一个音频文件并将音频音量信息与时间戳一起转储到CSV文件中。我需要这个音频数据与我正在收集已经有时间戳的其他数据对齐。关于如何处理这样的问题的任何建议?

我正在将数据从JSON文件解析为CSV,因此这里更容易看到来自CSV文件的示例:

01-29-2014 00:00:00 GMT-05:00   0.0371  67  86.7    0
01-29-2014 00:01:00 GMT-05:00   0.0368  74  86.7    0
01-29-2014 00:02:00 GMT-05:00   0.0417  77  86.5    0
01-29-2014 00:03:00 GMT-05:00   0.0408  71  86.5    0
01-29-2014 00:04:00 GMT-05:00   0.0404  76  86.3    0
01-29-2014 00:05:00 GMT-05:00   0.037   71  86.2    0
01-29-2014 00:06:00 GMT-05:00   0.0411  73  86.2    0
01-29-2014 00:07:00 GMT-05:00   0.038   69  86.1    0
01-29-2014 00:08:00 GMT-05:00   0.0339  68  86  0
01-29-2014 00:09:00 GMT-05:00   0.0349  null    86  11
01-29-2014 00:10:00 GMT-05:00   0.0327  null    85.8    22
01-29-2014 00:11:00 GMT-05:00   0.0346  null    85.8    85
01-29-2014 00:12:00 GMT-05:00   0.0502  77  85.8    0
01-29-2014 00:13:00 GMT-05:00   0.0502  76  85.8    0
01-29-2014 00:14:00 GMT-05:00   0.0446  74  85.8    0
01-29-2014 00:15:00 GMT-05:00   0.0455  77  85.8    0
01-29-2014 00:16:00 GMT-05:00   0.0448  79  85.6    0
01-29-2014 00:17:00 GMT-05:00   0.0437  78  85.5    0
01-29-2014 00:18:00 GMT-05:00   0.0506  89  85.5    0
01-29-2014 00:19:00 GMT-05:00   0.0518  103 85.5    0
01-29-2014 00:20:00 GMT-05:00   0.0484  80  85.7    0

时间从UNIX时间戳开始,并使用脚本转换为此格式。我打算从音频中提取的数据看起来与此类似,其中一列中的时间戳和另一列中的音频级别。

1 个答案:

答案 0 :(得分:0)

好吧,每当我听到“时间戳”这个词时。我想起了System.currentTimeMillis()。这将返回milliseconds passed since 1970。但是在你的情况下,如果你想测量你在歌曲中相对于歌曲开头的位置,你应该使用System.nanoTime()这更准确(我相信更快)。这将返回纳米秒或从任意点返回(你真的不关心),但你可以这样得到'delta':

long start = System.nanoTime();
... do something ...
long delta = System.nanoTime() - start;

如果您希望它与您已有的其他数据对齐,您可以发布一些数据,以便我们可以看到它具有哪种格式?