问题标签 [shazam]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
167 浏览

swift - SwiftUI 中 Shazam 按钮的动画

我想做一个像 Shazam's Button 这样的动画,但我做不到......

有人知道如何在 SwiftUI 中制作这个动画吗?

这是代码:

提前感谢您的帮助:)

0 投票
1 回答
46 浏览

ios - AVAudioEngine 录制麦克风输入似乎在播放音乐时停止

我正在录制麦克风输入以将其与 Shazam 目录中的歌曲相匹配。这行得通,但如果我发生start()AVAudioEngine一些事情,比如音乐开始通过 播放MPMusicPlayerController.applicationMusicPlayer.play(),音频引擎似乎停止或被中断。麦克风录音关闭,因此SHSessionDelegate永远找不到匹配项或因错误而失败,所以我的 UI 卡住了,显示它不再在听了。有没有办法在发生这种情况时得到通知,以便我可以更新 UI 以处理取消?

0 投票
0 回答
136 浏览

android - ShazamKit 无法在 Android 上匹配

我正在尝试在 Android 上测试 ShazamKit。在下面的 Kotlin 片段中,我加载apple-test-wav.wav了一个 9 秒长、48khz、16 位 PCM WAV 音频片段的 Food Math 示例视频 - 并尝试将其与FoodMath.shazamsignature自定义目录进行匹配。

此音频不是通过麦克风捕获的,它是直接来自视频的干净样本,我无法匹配。输出总是:NoMatch

我在这里做明显错误的事情吗?

0 投票
1 回答
86 浏览

ios - ShazamKit:音乐检测“session.match(signature)”没有找到匹配并且没有抛出错误,很奇怪

今天,我创建了一个小应用程序来尝试在 iOS 15 中的 ShazamKit 音乐检测能力。按照 Youtube 上的教程进行操作,并且我拥有 Apple 开发者会员资格,并为此应用程序标识符启用了 ShazamKit 服务。

简而言之,我想用 ShazamKit 从应用程序内的音频文件中检测歌曲元数据。

问题是,尽管我已经成功生成了签名,但委托方法didFinddidNotFindMatchFor没有触发。didNotFindMatchFor如果至少没有找到匹配项,我认为它应该在委托方法中给我一个错误,但事实并非如此。

这是一个相当新的功能,我找不到太多相关的东西。感谢任何帮助。

更多信息:我确实找到了一些使用 audioEngine 的东西,但是使用麦克风的输出,如果用户用耳机听音乐,那将是不可能的。就我而言,我想使用文件本身,因为我的生产应用程序是一个音乐播放器,它在沙盒中存储了很多音频文件。

0 投票
1 回答
31 浏览

javascript - 如何使用音乐识别算法避免误报?

我是一名音乐制作人/作曲家,将向新的音乐库提交作品。在某些情况下,我想使用以前的项目作为起点。因此,虽然结果将是新的、独特的作品,但我想避免算法可能将新歌曲(或歌曲片段)误认为是以前的作品的情况。

我想制定一些经验法则以确保不会发生这种情况。具体来说,要更多地了解音乐识别算法的工作原理以及哪些参数组合需要有所不同——以及它们需要在何种程度上有所不同——以避免对我的其他作品产生误报。

例如:

  • 想象一下“歌曲 a”是“图书馆 a”的一部分。然后我为“library b”创建“song b”。编曲相似,使用相同的乐器,相同的速度,相同的键,混音基本相同。但是和弦进行和旋律是不同的,尽管有相似的氛围。这会引发误报吗?

  • 或者像上面这样的场景,其中乐器可能相似,但也使用了一些替代声音(如基线的替代合成器补丁,以及类似但不同的打击乐样本)。新键,速度提升 5 bpm。这足以区分吗?

  • 或者想象一个场景,其中大部分轨道的所有参数都显着不同,包括新的速度和键,除了中间有一个 20 秒的中断,类似于以前的作品:带有轻微打击乐的环境音调床。使用相同的音调床,但在新的键和速度上,打击乐接近相同。然后用户在视频中只使用这 20 秒。为了避免误报,这 20 秒需要与原始时间有多大不同,以及跨越哪些参数?

这些例子只是思想实验,试图了解它是如何工作的。我想我制作的任何新作品都应该很容易与以前的作品有充分的不同,并且累积的差异很容易超出上述场景中列出的租户。

但考虑到有些参数可能非常相似……(即使只是从混合的角度和使用的乐器来看),我想对所分析的内容有更深入的了解。因此,我应该确保什么样的差异保持不变——因为在我看来,即使是 20 秒的足够相似性也可能引发潜在的问题。

谢谢!

Ps:请注意,我欢迎提供任何见解,并且当然接受用编码语言表达的答案……这毕竟是堆栈交换,它可能非常有趣。但是归根结底,我不是编码员(尽管我对编码感到好奇),并且需要将提供的任何清晰度转化为可以从音乐制作 POV 中使用的实际考虑因素。也就是说,如果考虑到这一点很容易包含一些语言/概念,我将不胜感激。参数如:速度、键、和弦进行、节奏元素、频率考虑、使用的声音、整体混音等。再次感谢!