MERT V1 330M
MERT-v1-330M是一個基於MLM範式訓練的高級音樂理解模型,具有330M參數規模,支持24K Hz音頻採樣率,適用於多種音樂信息檢索任務。
下載量 16.92k
發布時間 : 3/17/2023
模型概述
該模型採用掩碼語言建模(MLM)預訓練範式,通過大規模音樂數據集(160,000小時)訓練,具備優秀的音樂特徵提取和理解能力,適用於音樂分類、音樂生成等下游任務。
模型特點
大規模預訓練
使用160,000小時音樂數據進行訓練,覆蓋廣泛的音樂風格和類型
高音頻質量處理
支持24K Hz高採樣率音頻輸入,能捕捉更豐富的音樂細節
改進的MLM範式
採用EnCodec的8碼本偽標籤和批內噪聲混合技術,提升預訓練效果
多任務泛化能力
在下游音樂理解任務中表現出優秀的泛化性能
模型能力
音樂特徵提取
音樂風格分類
音樂情感識別
音樂生成支持
使用案例
音樂推薦系統
音樂風格分類
自動識別和分類音樂作品的風格特徵
可用於個性化音樂推薦系統的前端處理
音樂內容分析
音樂情感分析
分析音樂作品表達的情感特徵
適用於音樂治療、情緒識別等應用場景
🚀 音樂音頻預訓練(m - a - p)模型系列介紹
本項目的音樂音頻預訓練(m - a - p)模型家族致力於解決音樂理解和處理相關問題,通過不同的預訓練範式和技術配置,為音樂領域的各類任務提供強大的支持,具有廣泛的應用價值。
🚀 快速開始
模型開發日誌
- 2023年6月2日:arxiv預印本和訓練代碼發佈。
- 2023年3月17日:發佈兩個先進的音樂理解模型,[MERT - v1 - 95M](https://huggingface.co/m - a - p/MERT - v1 - 95M)和[MERT - v1 - 330M](https://huggingface.co/m - a - p/MERT - v1 - 330M),採用新範式和數據集進行訓練。它們優於之前的模型,能更好地泛化到更多任務。
- 2023年3月14日:使用僅開源的音樂數據集重新訓練MERT - v0模型,得到[MERT - v0 - public](https://huggingface.co/m - a - p/MERT - v0 - public)。
- 2022年12月29日:發佈一個使用MLM範式訓練的音樂理解模型[MERT - v0](https://huggingface.co/m - a - p/MERT - v0),在下游任務中表現更好。
- 2022年10月29日:發佈一個使用BYOL範式訓練的預訓練MIR模型[music2vec](https://huggingface.co/m - a - p/music2vec - v1)。
模型快速選擇表
屬性 | 詳情 |
---|---|
模型類型 | 包括[MERT - v1 - 330M](https://huggingface.co/m - a - p/MERT - v1 - 330M)、[MERT - v1 - 95M](https://huggingface.co/m - a - p/MERT - v1 - 95M)、[MERT - v0 - public](https://huggingface.co/m - a - p/MERT - v0 - public)、[MERT - v0](https://huggingface.co/m - a - p/MERT - v0)、[music2vec - v1](https://huggingface.co/m - a - p/music2vec - v1) |
預訓練範式 | 有MLM和BYOL兩種 |
訓練數據(小時) | 從900小時到160000小時不等 |
預訓練上下文(秒) | 主要為5秒,music2vec - v1為30秒 |
模型大小 | 有95M和330M等不同規格 |
Transformer層 - 維度 | 如24 - 1024、12 - 768等 |
特徵速率 | 50 Hz或75 Hz |
採樣率 | 16K Hz或24K Hz |
發佈日期 | 從2022年10月30日到2023年6月2日 |
✨ 主要特性
模型共性與差異
m - a - p模型具有相似的模型架構,最顯著的區別在於預訓練中使用的範式。此外,在使用前還需要了解以下幾個細微的技術配置:
- 模型大小:指加載到內存中的參數數量。請選擇適合您硬件的適當大小。
- Transformer層 - 維度:模型可以輸出的Transformer層數和相應的特徵維度。這一點需要注意,因為不同層提取的特徵在不同任務中可能有不同的表現。
- 特徵速率:給定1秒的音頻輸入,模型輸出的特徵數量。
- 採樣率:模型訓練所使用的音頻頻率。
MERT - v1的新特性
與MERT - v0相比,MERT - v1在預訓練中引入了多個新特性:
- 將偽標籤更改為來自encodec的8個碼本,可能具有更高的質量,並使模型支持音樂生成。
- 採用批量內噪聲混合進行MLM預測。
- 使用更高的音頻頻率(24K Hz)進行訓練。
- 使用更多的音頻數據(最多160000小時)進行訓練。
- 提供更多可用的模型大小,如95M和330M。
💻 使用示例
基礎用法
# from transformers import Wav2Vec2Processor
from transformers import Wav2Vec2FeatureExtractor
from transformers import AutoModel
import torch
from torch import nn
import torchaudio.transforms as T
from datasets import load_dataset
# loading our model weights
model = AutoModel.from_pretrained("m-a-p/MERT-v1-330M", trust_remote_code=True)
# loading the corresponding preprocessor config
processor = Wav2Vec2FeatureExtractor.from_pretrained("m-a-p/MERT-v1-330M",trust_remote_code=True)
# load demo audio and set processor
dataset = load_dataset("hf-internal-testing/librispeech_asr_demo", "clean", split="validation")
dataset = dataset.sort("id")
sampling_rate = dataset.features["audio"].sampling_rate
resample_rate = processor.sampling_rate
# make sure the sample_rate aligned
if resample_rate != sampling_rate:
print(f'setting rate from {sampling_rate} to {resample_rate}')
resampler = T.Resample(sampling_rate, resample_rate)
else:
resampler = None
# audio file is decoded on the fly
if resampler is None:
input_audio = dataset[0]["audio"]["array"]
else:
input_audio = resampler(torch.from_numpy(dataset[0]["audio"]["array"]))
inputs = processor(input_audio, sampling_rate=resample_rate, return_tensors="pt")
with torch.no_grad():
outputs = model(**inputs, output_hidden_states=True)
# take a look at the output shape, there are 25 layers of representation
# each layer performs differently in different downstream tasks, you should choose empirically
all_layer_hidden_states = torch.stack(outputs.hidden_states).squeeze()
print(all_layer_hidden_states.shape) # [25 layer, Time steps, 1024 feature_dim]
# for utterance level classification tasks, you can simply reduce the representation in time
time_reduced_hidden_states = all_layer_hidden_states.mean(-2)
print(time_reduced_hidden_states.shape) # [25, 1024]
# you can even use a learnable weighted average representation
aggregator = nn.Conv1d(in_channels=25, out_channels=1, kernel_size=1)
weighted_avg_hidden_states = aggregator(time_reduced_hidden_states.unsqueeze(0)).squeeze()
print(weighted_avg_hidden_states.shape) # [1024]
📚 詳細文檔
更多詳細信息將在我們即將發佈的論文中介紹。
📄 許可證
本項目採用CC - BY - NC - 4.0許可證。
📖 引用
@misc{li2023mert,
title={MERT: Acoustic Music Understanding Model with Large-Scale Self-supervised Training},
author={Yizhi Li and Ruibin Yuan and Ge Zhang and Yinghao Ma and Xingran Chen and Hanzhi Yin and Chenghua Lin and Anton Ragni and Emmanouil Benetos and Norbert Gyenge and Roger Dannenberg and Ruibo Liu and Wenhu Chen and Gus Xia and Yemin Shi and Wenhao Huang and Yike Guo and Jie Fu},
year={2023},
eprint={2306.00107},
archivePrefix={arXiv},
primaryClass={cs.SD}
}
Mms Lid 126
基於Facebook大規模多語言語音項目微調的語言識別模型,支持126種語言的音頻分類
音頻分類
Transformers 支持多種語言

M
facebook
2.1M
26
Wav2vec2 Base Finetuned Speech Commands V0.02
Apache-2.0
該模型是基於facebook/wav2vec2-base在speech_commands數據集上微調的語音命令識別模型,準確率達97.59%。
音頻分類
Transformers

W
0xb1
1.2M
0
Whisper Medium Fleurs Lang Id
Apache-2.0
基於OpenAI Whisper-medium微調的語音語種識別模型,在FLEURS數據集上達到88.05%準確率
音頻分類
Transformers

W
sanchit-gandhi
590.30k
14
Wav2vec2 Large Robust 12 Ft Emotion Msp Dim
該模型通過對Wav2Vec2-Large-Robust進行微調訓練,用於語音情感識別,輸出喚醒度、支配度和效價三個維度的預測值。
音頻分類
Transformers 英語

W
audeering
394.51k
109
Lang Id Voxlingua107 Ecapa
Apache-2.0
基於SpeechBrain框架和ECAPA-TDNN架構的語音語言識別模型,支持107種語言的識別和語音嵌入向量提取。
音頻分類
PyTorch 支持多種語言
L
speechbrain
330.01k
112
Ast Finetuned Audioset 10 10 0.4593
Bsd-3-clause
音頻頻譜圖變換器(AST)是基於AudioSet微調的模型,將音頻轉換為頻譜圖後應用視覺變換器進行音頻分類。
音頻分類
Transformers

A
MIT
308.88k
311
Whisper Small Ft Common Language Id
Apache-2.0
基於openai/whisper-small微調的通用語言識別模型,在評估集上準確率達88.6%
音頻分類
Transformers

W
sanchit-gandhi
256.20k
2
Emotion Recognition Wav2vec2 IEMOCAP
Apache-2.0
使用微調的wav2vec2模型進行語音情感識別,在IEMOCAP數據集上訓練
音頻分類
PyTorch 英語
E
speechbrain
237.65k
131
Ast Finetuned Audioset 14 14 0.443
Bsd-3-clause
基於AudioSet數據集微調的音頻頻譜圖變換器,將音頻轉換為頻譜圖後使用視覺變換器架構處理,在音頻分類任務中表現優異。
音頻分類
Transformers

A
MIT
194.20k
5
Wav2vec2 Large Xlsr 53 Gender Recognition Librispeech
Apache-2.0
基於Librispeech-clean-100數據集微調的性別識別模型,在測試集上F1分數達0.9993
音頻分類
Transformers

W
alefiury
182.33k
42
精選推薦AI模型
Llama 3 Typhoon V1.5x 8b Instruct
專為泰語設計的80億參數指令模型,性能媲美GPT-3.5-turbo,優化了應用場景、檢索增強生成、受限生成和推理任務
大型語言模型
Transformers 支持多種語言

L
scb10x
3,269
16
Cadet Tiny
Openrail
Cadet-Tiny是一個基於SODA數據集訓練的超小型對話模型,專為邊緣設備推理設計,體積僅為Cosmo-3B模型的2%左右。
對話系統
Transformers 英語

C
ToddGoldfarb
2,691
6
Roberta Base Chinese Extractive Qa
基於RoBERTa架構的中文抽取式問答模型,適用於從給定文本中提取答案的任務。
問答系統 中文
R
uer
2,694
98