CLAP文本-音頻基礎模型: LEARNING AUDIO CONCEPTS FROM NATURAL LANGUAGE SUPERVISION

一、TL;DR

  1. 現在的做法有什么問題?主流范式是 “一個類別標簽對應多個錄音”,需要提前標注+預測預先定義的類別,只能做閉集理解,失去靈活性?
  2. 我們怎么做?通過兩個編碼器和對比學習機制建立語言與音頻的關聯,將音頻和文本描述映射到一個聯合的多模態空間進行對齊
  3. 做得怎么樣?12.8 萬對音頻 - 文本訓練,在8 個領域的 16 項下游任務中評估,即使訓練數據小于CV模型,Zero-Shot上達到了SoTA。finetune后在5項評估任務中也是SOTA
  4. 能做什么?消除了對類別標簽訓練的依賴,在推理時靈活預測類別,并能泛化到多個下游任務
  5. 對應的鏈接:
    1. paper:https://arxiv.org/pdf/2206.04769v1
    2. code:https://github.com/LAION-AI/CLAP

    3. ?code:https://github.com/microsoft/CLAP

二、方法

CLAP 的結構如圖 1 所示:

  1. 輸入為音頻和文本對,分別傳入音頻編碼器和文本編碼器。兩種表示通過線性投影映射到聯合多模態空間中,
  2. 該空間通過batch中音頻 - 文本對的(不)相似性,利用對比學習進行學習。
  3. 預訓練的編碼器及其MLP層可用于計算音頻和文本embedding,從而實現zero-shot分類。

2.1 對比語言 - 音頻預訓練

2.1.1 特征提取

2.1.2 線性變化

2.1.3 計算相似性

2.2 zero-shot線性分類

對于零樣本分類,利用 CLAP 判斷音頻與文本相似性的能力。考慮一個包含C個類別標簽和N個測試音頻的目標數據集:

  1. 首先,使用預訓練的編碼器及其投影層,計算N個音頻的音頻嵌入和C個類別的文本嵌入;
  2. 由于兩種嵌入處于同一空間,計算每個測試音頻與所有類別標簽的余弦相似度,每個音頻將獲得與類別標簽數量相同的 logits;
  3. 對 logits 應用 softmax 函數(適用于二分類或多分類任務)或 sigmoid 函數(適用于多標簽分類任務),將其轉換為概率分布。

三、Experiments

3.1 數據集

訓練數據:從4 個數據集中選取了12.8萬對音頻 - 文本數據對構建 CLAP 的訓練集,具體包括:

  1. 從 FSD50k 中提取 36,796 對,從 ClothoV2 ?中提取 29,646 對,從 AudioCaps 中提取 44,292 對,從 MACS中提取 17,276 對。數據集詳細信息見附錄 A 和表 4。

下游任務:我們選取了 8 個領域的 16 個數據集作為下游任務,包括:

  • 5 項聲音事件分類任務;
  • 5 項音樂相關任務(音樂與語音分類、音樂流派分類、音樂節拍與調性分類等);
  • 1 項聲學場景分類任務;
  • 4 項語音相關任務(情感識別、關鍵詞識別、人聲分類(如咳嗽、噴嚏、笑聲等));
  • 1 項說話人計數任務(統計錄音中 0-10 人的說話人數)。

數據集信息見表 1,詳細說明見附錄 B 和表 5。

3.2 實驗設置

預處理:音頻采用對數梅爾頻譜表示,采樣率為 44.1 kHz,跳步大小為 320 秒,窗口大小為 1024 秒,梅爾 bins 數量為 64,頻率范圍為 50-8000 Hz。訓練時,每個音頻片段隨機截斷為 5 秒的連續片段,若長度不足則進行填充。文本描述未做修改,訓練時音頻 - 文本對按批次隨機采樣。

編碼器

  • 音頻編碼器選用 CNN14 ,以便與現有最優模型公平對比。該模型含 8080 萬參數,嵌入維度為 2048,已在 AudioSet 的 200 萬音頻片段上預訓練。
  • 文本編碼器選用 BERT,采用 HuggingFace實現的 BERT-base-uncased 版本,含 1.1 億參數。為提高計算效率,文本序列最大長度限制為 100 字符,取 BERT 最后一層的 [CLS] token 作為文本嵌入(維度 768)。

音頻嵌入和文本嵌入通過兩個可學習的投影矩陣映射到維度為 1024 的多模態空間中。溫度參數 τ 為可學習參數,初始值設為 0.007;為避免訓練不穩定,經 τ 縮放后的 logits 最大值被限制為 100。

微調時候固定text/audio encoder參數對表現的影響:

3.3 CLAP 的評估設置

零樣本評估:驗證 CLAP 對未見過的類別和音頻的泛化能力,具體設置見 2.2 節。評估時不直接使用類別標簽,而是構建自然語言提示模板:“This is a sound of [class label]”。除 3 個任務外,所有領域均使用統一模板:

  • 情感識別任務使用:“this person is feeling [class label]”;
  • 關鍵詞識別任務直接使用關鍵詞作為文本;
  • 說話人計數任務使用:“[number between 0-10] persons speaking”。

有監督特征提取評估:驗證 CLAP 學習的音頻表示質量。針對下游任務,將 CLAP 作為特征提取器,后續接 1 層或 3 層全連接分類器(分別記為 Freeze L1 和 Freeze L3),參考 [23] 的設置。訓練采用 Adam 優化器,學習率 10?3,訓練 30 個 epoch。受計算資源限制,未進行超參數網格搜索。

有監督微調評估:對比 CLAP 與文獻中各任務的最優性能。針對下游任務,解凍音頻編碼器并與附加的 1 層或 3 層全連接分類器共同微調,優化器為 Adam,學習率 10??,訓練 30 個 epoch。受計算資源限制,未進行超參數網格搜索。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/916560.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/916560.shtml
英文地址,請注明出處:http://en.pswp.cn/news/916560.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Flink2.0學習筆記:Stream API 常用轉換算子

EC0720/FLINKTASK-TEST-STREAM/demo at master stevensu1/EC0720 先看測試效果:控制臺 測試效果:監控服務端 主要的轉換算子包括: 轉換算子 filter:過濾包含“Flink”的輸入 轉換算子 map: 將每行數據前添加“Processed: ”并轉為大寫 轉…

一、Python環境、Jupyter與Pycharm

安裝Python由于RAG項目中所需要的Python版本必須高于3.8,經過篩選,最終選擇了3.10.11這個版本py --version Python 3.10.11安裝過程略過,但對于幾個基礎的命令作個筆記記錄where python找到python啟動器的位置D:\>where python C:\Users\x…

Flink CEP 動態模板與規則動態修改實踐完全手冊

1. Flink CEP:從靜態規則到動態江湖 Flink 的復雜事件處理(CEP)庫就像一個武功高強的俠客,能從數據流中精準捕獲特定模式,堪稱流處理界的“降龍十八掌”。但問題來了:傳統 CEP 規則通常是寫死在代碼里的,就像刻在石碑上的武功秘籍,改起來費勁不說,還得重啟應用,簡直…

vue3.2 + echarts5.6 + ant-design-vue 3.x 實現自定義 echarts 圖例

文章目錄概要技術細節效果概要 需求需要實現圖例移入顯示描述說明 故實現自定義圖例 技術細節 <template><div class"custom-legend"><divv-for"item in legends":key"item.name"class"legend-item":class"{ i…

【2025年7月25日】TrollStore巨魔商店恢復在線安裝

就在今日7月25日&#xff0c;TrollStore的在線安裝功能再次變得可用&#xff0c;這對于許多iPhone用戶來說無疑是個喜訊。在經歷了近三個月的中斷后&#xff0c;巨魔商店的企業證書意外的到來了&#xff0c;使得用戶能夠重新采用在線安裝的方式&#xff01; 在線安裝地址在文…

【05】C#入門到精通——C# 面向對象、類、靜態變量static、類與類之間的調用

文章目錄1 引入例子2 創建類2.1 類的訪問屬性2.2 英雄 特點類2.3 英雄信息打印3 靜態變量static4 類 調用 類4.1 非靜態 成員函數4.2 靜態 成員函數1 引入例子 比如游戲中 描述英雄的角色&#xff0c; 我們可以像下面這樣&#xff0c;給每一個英雄特點及擁有技能分別定義變量…

單片機的硬件結構

單片機的硬件結構 一、課程導入 在上一節課《認識單片機》中&#xff0c;我們知道單片機就像一個超級迷你的工廠&#xff0c;有著類似工廠的各個組成部分。而這個 “迷你工廠” 能正常運轉&#xff0c;離不開其內部嚴謹的硬件結構。就像一座大廈&#xff0c;只有基礎結構穩固且…

multiprocessing模塊使用方法(二)

spawn_main是Python multiprocessing模塊的核心內部函數&#xff0c;用于實現spawn啟動方法的子進程初始化。以下結合代碼Demo詳細說明其使用方法和推薦場景。一、spawn_main的功能與定位核心作用&#xff1a; 在spawn模式下啟動子進程&#xff0c;負責進程間通信管道的建立和資…

編程與數學 03-002 計算機網絡 07_路由算法

編程與數學 03-002 計算機網絡 07_路由算法一、靜態路由算法&#xff08;一&#xff09;手工配置路由表的方法&#xff08;二&#xff09;靜態路由的優缺點二、動態路由算法原理&#xff08;一&#xff09;距離矢量算法&#xff08;如貝爾曼 - 福特算法&#xff09;&#xff08…

使用Python,OpenCV計算跑圖的圖像彩色度

使用Python&#xff0c;OpenCV計算跑圖的圖像彩色度 這篇博客將介紹如何計算跑圖里最鮮艷的top25圖片和最灰暗的top25圖片并顯示色彩彩色度值展示。 效果圖 以下分別是最鮮艷top25和最灰暗top25對比效果圖&#xff1a; 最鮮艷top25效果圖&#xff1a; 最灰暗top25效果圖…

LeetCode 60:排列序列

LeetCode 60&#xff1a;排列序列問題定義與核心挑戰 給定整數 n 和 k&#xff0c;返回集合 {1,2,...,n} 的第 k 個字典序排列。直接生成所有排列再遍歷到第 k 個的方法&#xff08;時間復雜度 O(n!)&#xff09;會因 n≥10 時階乘爆炸而超時&#xff0c;因此需要 數學推導 貪…

亞遠景-傳統功能安全VS AI安全:ISO 8800填補的標準空白與實施難點

一、為什么需要ISO 8800&#xff1a;傳統安全標準的“盲區”傳統功能安全&#xff08;ISO 26262&#xff09;? 假設&#xff1a;系統行為可被完整規格化&#xff0c;失效模式可枚舉&#xff0c;風險可用概率-危害矩陣量化。? 盲區&#xff1a;對“設計意圖正確&#xff0c;但…

菜鳥教程 R語言基礎運算 注釋 和數據類型

菜鳥教程 R語言基礎運算 注釋 和數據類型 1.注釋 注釋主要用于一段代碼的解析&#xff0c;可以讓閱讀者更易理解&#xff0c;編程語言的注釋會被編譯器忽略掉&#xff0c;且不會影響代碼的執行。 一般編程語言的注釋分為單行注釋與多行注釋&#xff0c;但是 R 語言只支持單行注…

華為云ELB(彈性負載均衡)持續報異常

華為云ELB&#xff08;彈性負載均衡&#xff09;持續報異常&#xff0c;需結合實例類型&#xff08;共享型/獨享型&#xff09;和異常代碼進行針對性排查。以下是分步排查建議&#xff1a;一、根據實例類型排查網絡配置共享型實例 安全組規則&#xff1a;檢查后端服務器安全組是…

《R for Data Science (2e)》免費中文翻譯 (第2章) --- Workflow: basics

寫在前面 本系列推文為《R for Data Science (2)》的中文翻譯版本。所有內容都通過開源免費的方式上傳至Github&#xff0c;歡迎大家參與貢獻&#xff0c;詳細信息見&#xff1a; Books-zh-cn 項目介紹&#xff1a; Books-zh-cn&#xff1a;開源免費的中文書籍社區 r4ds-zh-cn …

開源深度學習新寵:Burn框架助您無憂高效建模

在日新月異的人工智能世界里&#xff0c;各類深度學習框架如雨后春筍般涌現&#xff0c;而Burn&#xff0c;作為新一代的深度學習框架&#xff0c;以其不妥協的靈活性、高效性和可移植性嶄露頭角。本文將深入探討Burn的核心功能、應用場景及具體使用方法&#xff0c;幫助您更好…

基于深度學習的圖像分割:使用DeepLabv3實現高效分割

前言 圖像分割是計算機視覺領域中的一個重要任務&#xff0c;其目標是將圖像中的每個像素分配到不同的類別中。近年來&#xff0c;深度學習技術&#xff0c;尤其是卷積神經網絡&#xff08;CNN&#xff09;&#xff0c;在圖像分割任務中取得了顯著的進展。DeepLabv3是一種高效的…

如何高效合并音視頻文件(時間短消耗資源少)(二)

英語字幕 1 00:00:06,480 --> 00:00:08,400 Good morning. We have a banger for you2 00:00:08,400 --> 00:00:09,840 today. We&amp;#39;re going to launch chatbt3 00:00:09,840 --> 00:00:11,519 agent. But before jumping into that, I&amp;#39;d4 00…

內網后滲透攻擊過程(實驗環境)--4、權限維持(2)

用途限制聲明&#xff0c;本文僅用于網絡安全技術研究、教育與知識分享。文中涉及的滲透測試方法與工具&#xff0c;嚴禁用于未經授權的網絡攻擊、數據竊取或任何違法活動。任何因不當使用本文內容導致的法律后果&#xff0c;作者及發布平臺不承擔任何責任。滲透測試涉及復雜技…

CentOS 9 配置國內 YUM 源

1.備份 sudo mv /etc/yum.repos.d/centos.repo /etc/yum.repos.d/centos.repo.backup sudo mv /etc/yum.repos.d/centos-addons.repo /etc/yum.repos.d/centos-addons.repo.backup2.創建新文件 vi /etc/yum.repos.d/centos.repo[baseos] nameCentOS Stream $releasever - BaseO…