利用Madmom识别和弦

利用Madmom识别和弦

Madmom.features.chords

该模块包含和弦识别的相关功能

source:https://madmom.readthedocs.io/en/v0.16/modules/features/chords.html

1.madmom.features.chords.majmin_targets_to_chord_labels(targets, fps)

  • 作用:
    • 将一系列大小调和弦目标转为人们可读的和弦标签。假设目标在 fps 参数定义的时间间隔相等(每个目标代表一个“帧 frame”)
  • 参数
    • targets: iterable (iterable containing chord class ids)
    • fps: float (Frames per second. Consecutive class)
  • 返回结果
    • chord labels: list (List of tuples of the form (start time, end time, chord label))

2. deep chroma vectors using a Conditional Random Field.

class madmom.features.chords.DeepChromaChordRecognitionProcessor**(model=None,** fps=10**,** **kwargs)
class madmom.features.chords.DeepChromaChordRecognitionProcessor(model=None,fps=10,**kwargs)

3. CNN 和弦识别 (运用到的)

参考文献

Filip Korzeniowski and Gerhard Widmer, “A Fully Convolutional Deep Auditory Model for Musical Chord Recognition”, Proceedings of IEEE International Workshop on Machine Learning for Signal Processing (MLSP), 2016.

madmom.features.chords.CNNChordFeatureProcessor(**kwargs)

作用: 提取学习过的特征进行和弦识别

from madmom.features.chords import CNNChordFeatureProcessor  
proc = CNNChordFeatureProcessor()
features = proc('../resource/test.wav')
features.shape
# (711, 128)
madmom.features.chords.CRFChordRecognitionProcessor(model=None, fps=10, **kwargs)

作用:从卷积神经网络学习到的特征中 识别大调和小调和弦

例子
# 第一种写法
from madmom.features.chords import CNNChordFeatureProcessor  
from madmom.features.chords import CRFChordRecognitionProcessor

featproc = CNNChordFeatureProcessor()
decode = CRFChordRecognitionProcessor()
filename1= '../resource/test.wav'
feats = featproc(filename1)
reout = decode(feats)
print(reout)

# 第二种
from madmom.processors import SequentialProcessor
# .......
chordrec = SequentialProcessor([featproc, decode])
chordrec('../resource/test.wav')

# result
[( 0. ,  4.1, 'N') ( 4.1,  6. , 'E:maj') ( 6. ,  8. , 'A:maj')
 ( 8. , 10. , 'D:maj') (10. , 12.6, 'G:maj') (12.6, 14. , 'B:maj')
 (14. , 16.2, 'E:maj') (16.2, 20.5, 'N') (20.5, 21.1, 'A:maj')
 (21.1, 21.6, 'D:maj') (21.6, 22.8, 'G:maj') (22.8, 26. , 'N')
 (26. , 39.9, 'E:min') (39.9, 41.1, 'N') (41.1, 43. , 'E:maj')
 (43. , 46.2, 'E:min') (46.2, 50.2, 'G:maj') (50.2, 54. , 'A:maj')
 (54. , 58.6, 'B:maj') (58.6, 63.1, 'N') (63.1, 66.4, 'C:maj')
 (66.4, 71.1, 'N')]
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值