項目簡介
inaSpeechSegmenter 是法國國家視聽研究院(INA)開源的音頻分割與檢測工具,專為廣播、播客、采訪、影視等多媒體內容的自動化處理設計。它能夠高效地將長音頻自動分割為語音、音樂、噪聲、靜音等片段,并支持性別檢測(男聲/女聲),為后續的語音識別、內容檢索、轉寫、音頻分析等任務提供堅實基礎。
主要特性:
- 支持語音/音樂/噪聲/靜音等多類別分割
- 支持男聲/女聲檢測
- 端到端批量處理,速度快,資源消耗低
- 純 Python 實現,易于集成
- 預訓練模型開箱即用,無需訓練即可應用
快速上手
1. 安裝
推薦使用 pip 安裝最新版:
pip install inaSpeechSegmenter
或從源碼安裝:
git clone https://github.com/ina-foss/inaSpeechSegmenter.git
cd inaSpeechSegmenter
pip install .
2. 命令行工具
對單個音頻文件分割:
ina_speech_segmenter --input_file example.wav --output_json segments.json
對文件夾批量處理:
ina_speech_segmenter --input_dir ./audio_dir --output_dir ./segments
3. Python API 調用
from inaSpeechSegmenter import Segmenter
from inaSpeechSegmenter.export_funcs import seg2csv
import soundfile as sf# 加載分割器
segmenter = Segmenter()
# 處理音頻文件
segmentation = segmenter('example.wav')
print(segmentation)
# 導出為 CSV
seg2csv(segmentation, 'segments.csv')
4. 結果格式說明
分割結果為列表,每項為 (標簽, 起始秒, 結束秒),如:
[('male', 0.0, 3.2), ('music', 3.2, 10.5), ('female', 10.5, 15.0)]
典型應用場景與案例
1. 語音識別前端分割
- 流程:長音頻 → inaSpeechSegmenter 分割語音片段 → ASR(如 Whisper、Wav2Vec2)轉寫
- 優勢:只對語音片段轉寫,提升準確率與效率,跳過音樂/噪聲/靜音
- 代碼片段:
from inaSpeechSegmenter import Segmenter
import soundfile as sfsegmenter = Segmenter()
segments = segmenter('meeting.wav')
for label, start, end in segments:if label in ['male', 'female']:audio, sr = sf.read('meeting.wav', start=int(start*</