我正在深入研究Apples SpriteKit和GameplayKit示例代码,并发现了一个名为'DemoBots'的项目,用Swift编写.在项目中使用了一些非常有趣的概念,我想要适应我的项目.
我已经在将碰撞处理封装到一个处理程序类中,这与在该示例代码中处理碰撞的方式非常相似.
在这个项目中,我找到了一个名为的结构的代码RPColliderType:
struct RPColliderType: OptionSetType, Hashable, CustomDebugStringConvertible {
// MARK: Static properties
/// A dictionary to specify which `ColliderType`s should be notified of contacts with other `ColliderType`s.
static var requestedContactNotifications = [RPColliderType: [RPColliderType]]()
/// A dictionary of which `ColliderType`s should collide with other `ColliderType`s.
static var definedCollisions = [RPColliderType: [RPColliderType]]()
// MARK: Properties
let rawValue: UInt32
// MARK: Options
static var Obstacle: RPColliderType { return self.init(rawValue: 1 << 0) }
static var PlayerBot: RPColliderType { return …Run Code Online (Sandbox Code Playgroud) 我最近开始在Github上使用AudioKit框架,并对框架的来源进行了深入研究。我找不到但真正好奇的是如何集成第三方音频单元(尤其是效果器)并传递音频以及设置,存储和调用预设。
由于框架中的每个组件似乎都是一个音频单元,因此必须有一种方法可以做到这一点,但是我找不到对音频单元的内置支持。
我想我必须要使用该代码并自己编写包装程序,但是任何帮助将不胜感激。
我正在使用基于 Python 的音频库 librosa 来分析音符开始事件的音乐音轨。有了这些信息,我将这些曲目切成几个更小、非常短的片段/片段——所有这些都基于音符开始事件。
有了这些切片,我正在使用 librosa 内置工具分析它们,用于特征提取,如chromagram或MFCC。输出看起来像:
librosa.feature.chroma_stft(y=y, sr=sr)
array([[ 0.974, 0.881, ..., 0.925, 1. ],
[ 1. , 0.841, ..., 0.882, 0.878],
...,
[ 0.658, 0.985, ..., 0.878, 0.764],
[ 0.969, 0.92 , ..., 0.974, 0.915]])
librosa.feature.mfcc(y=y, sr=sr)
array([[ -5.229e+02, -4.944e+02, ..., -5.229e+02, -5.229e+02],
[ 7.105e-15, 3.787e+01, ..., -7.105e-15, -7.105e-15],
...,
[ 1.066e-14, -7.500e+00, ..., 1.421e-14, 1.421e-14],
[ 3.109e-14, -5.058e+00, ..., 2.931e-14, 2.931e-14]])
Run Code Online (Sandbox Code Playgroud)
正如我们所看到的,这些函数输出了一个矩阵,其中包含有关提取特征的信息。所有这些信息(特征、切片开始和结束、文件名)都将存储到(sqlite)数据库中。切片的音频数据将被释放。
这些特征以数字方式描述了分析音频的“类型”/声音,是进行相似性计算的良好基础。
拥有所有这些信息(以及包含数百条分析轨迹的大型数据库),我希望能够随机选择一个切片并将其与数据库中的所有其他切片进行比较,以找到与所选切片最相似的切片 - 基于提取的特征信息。
我需要做什么来比较上面列出的函数的相似度结果?
swift ×2
audio ×1
audiokit ×1
audiounit ×1
bit-masks ×1
core-audio ×1
gameplay-kit ×1
librosa ×1
python ×1
sprite-kit ×1