今天進入影片處理的第三個部分——標記音訊中的音樂和語音部分。為什麼標記出這些部分很重要呢?因為這個可以讓許多音訊處理和分析任務變成自動化,提升效率和品質。主要分為以下幾種使用場景:
音訊資料集的準備
如同前一天的場景偵測有助於影片的前處理(如 shot segmentation)若可以自動偵測出語音和音樂的部分,就可以進一步作為音樂資訊檢索和語音相關任務的資料集,例如情感分類、語音逐字稿和翻譯、音樂資訊提取等。
對白分析和處理
透過精確地識別出影片中的語音部分,可以針對這些片段進行各種處理,包含音量調節、降噪等,提高對白的清晰度,確保觀眾在不同場景和節目中都能獲得舒適的音量體驗。也有助於進行語種識別(spoken language identification),以便進行字幕翻譯和配音等工作。另外,還可以進行語音轉錄(speech transcription)的任務,將對話轉錄成文字,可用於生成字幕、搜尋影片內容或進行更深入的文本分析。
音樂資訊檢索 (Music Information Retrieval)
在自動標記音樂片段之後,也可以用在各種音樂資訊檢索任務。例如音樂品質控管,確保音量水平、音質清晰度等品質;多媒體內容分析和標記(例如自動識別音樂風格、情緒等特徵,並為影片添加標籤,方便內容分類和搜尋);以及歌手識別和以及歌詞轉錄等任務。
為了以上的應用,Netflix 的建立 Speech and Music Activity Detection (SMAD) 系統,用於識別音訊內容中的語音和音樂部分。
Netflix 建立了一個名為 TVSM(TV Speech and Music)的資料集 [2],其中包含 1608 小時的專業錄製音訊資料,涵蓋多種類型(如 action、sci-fi、horror、romance、drama 等等),主要分為三種語言(英文、西班牙文和日文),並標記了語音和音樂的部分。
另外,由於由於資料蒐集不易,人工標記的成本也十分高昂,Netflix 使用帶有雜訊的標籤,意即標籤可能存在一些不精確的時間標記。雖然這種標籤可能會影響 SMAD 的表現,但同時也可以用最少的人力標記成本,讓模型能夠泛化(generalize)在更多種類的內容上。
我們在這個系列文中,不斷地強調資料標誌的一致性。由於在某些情況下,區分語音和音樂並不容易,例如環境音效、歌唱等等,Netflix 在建構此資料集時,對於何謂語音和音樂,制定了明確的定義,以確保標籤的一致性。
接下來是模型訓練的部分,Netflix 的 SMAD 系統使用 CRNN 架構,結合 CNN 和 Bi-RNN 的優勢:
他們使用 Binary Cross-Entropy Loss 作為 loss function 來訓練模型,並使用 F1-score 來評估模型效能。
SMAD 會為每一幀的音訊輸出一個機率,代表其屬於語音或音樂的可能性,模型結果十分傑出,無論是語音偵測或是音樂偵測,都達到超過 0.9 的 f1-score,顯示他們模型的優秀表現。
藉由 SMAD 系統,Netflix 得以將模型的輸出結果融合進去他們的資料處理 pipelines 中,不僅可以為後製團隊增加不少處理的效率,也能夠利用這些處理過的資料集,再進一步打造出各式各樣厲害的模型!
那我們今天就正式介紹完 Netflix 的資料處理三部曲啦!明天再來聊聊其他內容吧!
謝謝讀到最後的你,如果喜歡這系列,別忘了按下喜歡和訂閱,才不會錯過最新更新。
如果有任何問題想跟我聊聊,或是想看我分享的其他內容,也歡迎到我的 Instagram(@data.scientist.min) 逛逛!
我們明天見!
Reference
[1] https://netflixtechblog.com/detecting-speech-and-music-in-audio-content-afd64e6a5bf8
[2] A large TV dataset for speech and music activity detection: https://doi.org/10.1186/s13636-022-00253-8
[3] 資料集和 code:https://github.com/biboamy/TVSM-dataset