【问题标题】:Is there a way to listen for the tempo/bpm of audio playing in Android?有没有办法在 Android 中收听音频播放的速度/bpm?
【发布时间】:2013-02-14 15:33:49
【问题描述】:

我正在构建的 Android 应用必须听音乐(在手机上播放或通过设备的麦克风拾取)然后根据音乐做一些事情

所以我想做的是听音乐播放的速度/bpm,然后用我得到的影响背景颜色的东西做一些数学运算的应用程序。

我需要类似于Malcolm McRoberts asked for here 的东西——分析音乐然后做点什么。他说他可以使用Echo Nest 来实现他的目标,但他没有解释(目前)是如何实现的。

我需要与elucid135 asked for here 非常相似的东西——听每分钟的节拍 (bpm),然后根据它制作动画。但我的平台很不一样。

有任何 Android 想法吗?

也许有 Android 知识的人AudioTrackMediaPlayerAudio Capture 可以提供一些意见。

编辑:

似乎没有人明白我的要求,所以我会尝试改写:

使用 Android,我想通过设备的麦克风录制音乐。然后我想分析已经录制的内容以找到录制的音乐的节拍。基于那个节拍,我希望在应用程序中发生一些事情。

我知道如何录制音乐。我正在寻找关于如何识别音乐节拍的建议。

希望能解决这个问题。

【问题讨论】:

  • 这是一个非常广泛的问题,我们在这里解决具体问题。抛开这一点,您可能想查看Visualizer-class
  • @Lukas Knuth,不知道你为什么认为这个问题太宽泛了。我试图说明我问这个问题的原因以及我做了哪些研究,以便人们可以看到我做了我的部分。关键是我想听音乐的节奏/bpm(在手机上播放或被设备的麦克风拾取)。我以为我已经说得很清楚了。很抱歉您有其他感觉。
  • 它很宽泛,因为你没有实现任何东西,你只是在问“怎么做?”。如果您有代码并遇到特定问题,我们可以提供帮助。
  • 很多人问“怎么做”,这让我觉得在这里做这个很好。还有其他网站我应该问“如何做”问题吗?
  • Re: Visualizer-class: 我不是在寻找频率,因为它不是特定于音频中的鼓声之类的东西,我也不能使用采样率,因为它有与录制音频的时间有关 - 而不是当前播放的音频。所以我不能使用Visualizer类的getFft(byte[] fft)或者getSamplingRate()。

标签: android media-player audiotrack audio-capture


【解决方案1】:

“必须听音乐”
...“要么在手机上玩”
不行,Android 不支持。

...“或被设备的麦克风拾取”
在某些情况下(即在低噪音环境中使用扬声器时)会起作用,但质量会很差。

另一种选择是使用Visualizer 类从会话 0(全局输出混合)中获取音频数据。音频质量会很差,但对于 BPM 计算来说可能已经足够了,而且即使将音乐路由到耳机也能正常工作。

【讨论】:

  • 谢谢,我会调查的。
  • 嗨@Michael,有什么方法可以从音频文件中获取节奏和情绪?
【解决方案2】:

我正在解决类似的问题。尝试查看 TarsosDSP link。它是一个基于 java 的音频信号处理库,它提供了可以识别节拍的类,然后可以用来确定节奏,并且适用于 Android。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-03-20
    • 1970-01-01
    • 2022-12-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多