🚀 大聲(Dasheng):大規模通用音頻編碼器
大聲(Dasheng,Deep Audio-Signal Holistic Embeddings),或“大聲”(中文意為“響亮的聲音”),是一個在大規模自監督學習任務上訓練的通用音頻編碼器。大聲旨在捕捉包括語音、音樂和環境聲音等各個領域的豐富音頻信息。該模型在272,356小時的多樣化音頻數據上進行訓練,擁有12億個參數,並在HEAR基準測試中展現出顯著的性能提升。在CREMA - D、LibriCount、語音命令、VoxLingua等任務上,大聲超越了以往的工作成果,並且在音樂和環境聲音分類任務中也表現出色。
原始倉庫地址:https://github.com/XiaoMi/dasheng

🚀 快速開始
✨ 主要特性
- 通用音頻編碼:能夠處理多種類型的音頻,包括語音、音樂和環境聲音。
- 大規模訓練:在272,356小時的多樣化音頻數據上訓練,擁有12億個參數。
- 性能優越:在HEAR基準測試和多個音頻分類任務中表現出色。
📦 安裝指南
pip install git+https://github.com/jimbozhang/hf_transformers_custom_model_dasheng.git
💻 使用示例
基礎用法
>>> model_name = "mispeech/dasheng-1.2B"
>>> from dasheng_model.feature_extraction_dasheng import DashengFeatureExtractor
>>> from dasheng_model.modeling_dasheng import DashengModel
>>> feature_extractor = DashengFeatureExtractor.from_pretrained(model_name)
>>> model = DashengModel.from_pretrained(model_name, outputdim=None)
>>> import torchaudio
>>> audio, sampling_rate = torchaudio.load("resources/JeD5V5aaaoI_931_932.wav")
>>> assert sampling_rate == 16000
>>> audio.shape
torch.Size([1, 16000])
>>> inputs = feature_extractor(audio, sampling_rate=sampling_rate, return_tensors="pt")
>>> inputs.input_values.shape
torch.Size([1, 64, 101])
>>> import torch
>>> with torch.no_grad():
... outputs = model(**inputs)
>>> outputs.hidden_states.shape
torch.Size([1, 25, 768])
>>> outputs.logits.shape
torch.Size([1, 768])
高級用法
在ESC - 50數據集上微調模型:
點擊下面的鏈接在Colab中打開示例代碼:

具體代碼可參考:example_finetune_esc50.ipynb
,該示例展示瞭如何在凍結大聲編碼器的情況下,在ESC - 50數據集上訓練一個線性頭部。
📄 許可證
本項目採用Apache - 2.0許可證。
📚 詳細文檔
如果您在研究中發現大聲模型很有用,請引用以下論文:
@inproceedings{dinkel2023scaling,
title={Scaling up masked audio encoder learning for general audio classification},
author={Dinkel, Heinrich and Yan, Zhiyong and Wang, Yongqing and Zhang, Junbo and Wang, Yujun and Wang, Bin},
booktitle={Interspeech 2024},
year={2024}
}