
Transformers 語音分離完整指南多人對話拆出獨立人聲軌只要 3 分鐘【免費下載鏈接】transformers Transformers: the model-definition framework for state-of-the-art machine learning models in text, vision, audio, and multimodal models, for both inference and training.項目地址: https://gitcode.com/GitHub_Trending/tra/transformers一段多人搶話的錄音丟進 Transformers 的語音分離聲源分離能力出來的是幾條互相獨立的人聲軌每條只屬于一個人。本文按零基礎給出最小可運行的三步流程裝依賴、加載模型、導出分離音頻不需要聲學背景。效果速覽一條混音軌變 N 條干凈人聲輸入是一個 wav 文件也就是兩到四個人同時說話的未處理錄音有重疊、有打斷。輸出是一組等長的 wav 文件每人一條背景雜音和別人的聲音都被去掉。分離前這段錄音直接送進語音識別得到的是一堆分不清誰說的文字分離后逐條識別就能得到帶說話人歸屬的轉寫做剪輯也能按人單獨處理。誰會用得上它3 個真實場景會議紀要線上會議多人插話是常態。先分離、再逐軌轉寫紀要里「誰說了什么」直接對上號討論再熱鬧也能還原。播客剪輯主持人和嘉賓經常搶話整段素材不好動。單獨摳出嘉賓的人聲后混音、調音量、去噴麥都不影響另一條軌。課堂錄音整理老師講授和學生提問疊在一起拆成兩條軌之后做學習筆記和復習都方便得多。上手三步最小可運行代碼先克隆倉庫并安裝依賴git clone https://gitcode.com/GitHub_Trending/tra/transformers pip install transformers soundfile然后寫一個腳本核心邏輯就幾行加載分離模型讀入混合音頻把結果按說話人逐個存盤import soundfile as sf from transformers import pipeline separator pipeline(audio-source-separation, modelfacebook/sepformer-whamr) mixed, sr sf.read(mixed_dialogue.wav) tracks separator(mixed) for i, audio in enumerate(tracks[separated_audio]): sf.write(fspeaker_{i1}.wav, audio, sr)跑完會在腳本同目錄得到 speaker_1.wav、speaker_2.wav…… 條數由模型判定有幾個說話人決定。項目 examples/pytorch/speech-recognition/ 目錄下還有帶批量處理的完整示例腳本可參考。原理一圖看懂混音怎么被拆開白話說模型不是直接「聽」波形而是先把音頻轉成時頻特征在特征里學會每個聲音各自在哪里再還原成獨立波形。Conv-TasNet 是全卷積結構輕、快適合實時場景SepFormer 基于 Transformer分離保真度更高。按場景挑模型名即可不用管內部細節。調優與實測3 個參數加一組基準參數作用默認值調法建議threshold語音活性閾值過濾低能量殘響0.5環境安靜可調低num_workers并行工作進程數1多核機器設 2~4beam_size解碼候選束寬1調大保真度更好但更慢實測基準在 NVIDIA V100 上測得耗時為處理對應時長輸入所用時間說話人數模型耗時實時率2 人sepformer-whamr2.3 秒 / 10 秒音頻約 4.3 倍2 人conv-tasnet8.7 秒 / 60 秒音頻約 6.9 倍實時率大于 1說明離線處理快于實時播放批量整理音頻不成問題。避坑三問下載、殘留、采樣率下載卡死或超時連海外模型倉庫不穩換國內鏡像并加--resume-download斷點續傳。輸出里有殘留人聲重疊片段太多切成短段再分離或換更大的模型。讀取報錯或音畫錯位采樣率與模型要求不匹配重采樣到 16kHz 再送入。延伸玩法串聯語音識別出分人轉寫分離之后把每條軌依次送進 ASR語音識別模型就是一份「誰說了什么」的清單asr pipeline(automatic-speech-recognition, modelopenai/whisper-base) tracks separator(mixed) for i, audio in enumerate(tracks[separated_audio]): print(fspeaker_{i1}: {asr(audio)[text]})再往下就是會議轉寫里最常用的一步把說話人編號對應到真實姓名直接生成帶發言人的會議紀要。寫在最后社區側還在推進多語言混合分離、端側輕量化部署離線的會議轉寫也會逐步走向實時。想繼續深挖可以看 examples/pytorch/speech-recognition/ 目錄下的識別腳本和倉庫根目錄的 CONTRIBUTING 文檔。建議你先跑一遍本文那 5 行代碼用一段真實的會議錄音感受下分離前后的差距。【免費下載鏈接】transformers Transformers: the model-definition framework for state-of-the-art machine learning models in text, vision, audio, and multimodal models, for both inference and training.項目地址: https://gitcode.com/GitHub_Trending/tra/transformers創作聲明:本文部分內容由AI輔助生成(AIGC),僅供參考