Thanh-Lam's picture
Fix: Downgrade to Gradio 4.19.2 - pre-schema-bug version
21d479d

A newer version of the Gradio SDK is available: 6.2.0

Upgrade
metadata
title: Diarization Labeling
emoji: 📣
colorFrom: blue
colorTo: green
sdk: gradio
sdk_version: 4.19.2
app_file: app.py
pinned: false

Vietnamese_Diarization

Kho mã mẫu diarization tiếng Việt dùng pyannote/speaker-diarization-community-1.

Yêu cầu

  • Python 3.10+
  • ffmpeg (bắt buộc cho torchcodec audio decoding)
  • Đã chấp nhận điều khoản model tại https://huggingface.co/pyannote/speaker-diarization-community-1
  • Hugging Face access token (dán vào hugging_face_key.txt hoặc đặt biến môi trường HUGGINGFACE_TOKEN/HUGGINGFACE_ACCESS_TOKEN)

Cài đặt nhanh

  • Cài thư viện: pip install pyannote.audio gradio yt-dlp hoặc uv add pyannote.audio gradio yt-dlp
  • Đảm bảo ffmpeg đã có trong PATH

Chạy Gradio

  • Lệnh: python app.py
  • Trình duyệt mở tại http://localhost:7860 (hoặc địa chỉ máy chủ nếu chạy từ xa)
  • Điền token nếu chưa đặt sẵn, tải file âm thanh hoặc dán URL YouTube/TikTok, chọn thiết bị rồi nhấn Chạy
  • Bảng kết quả hiển thị dạng phút:giây; có thể gán nhãn giới tính (nam/nữ), vùng miền (bắc/trung/nam) và transcription, sau đó bấm "Tách và tải" để nhận zip gồm các đoạn WAV và metadata.csv

Chạy mẫu

  • Diarization và in kết quả: python infer.py path/to/audio.wav
  • Lưu thêm RTTM: python infer.py path/to/audio.wav --rttm outputs/audio.rttm
  • Lưu JSON: python infer.py path/to/audio.wav --json outputs/audio.json
  • Chọn thiết bị: thêm --device cpu hoặc --device cuda (mặc định auto)

API Python

from app import diarize_file
segments = diarize_file("audio.wav", device="auto")

Cấu trúc

  • app.py: API Python và giao diện Gradio
  • infer.py: CLI chạy diarization
  • src/models.py: Bao gói pipeline pyannote
  • src/utils.py: Hỗ trợ đọc token, định dạng kết quả
  • hugging_face_key.txt: nơi dán Hugging Face access token (không commit token thật)