Skip to main content

AI 에이전트를 위한 소리 노트 — 실시간 한국어 음성 전사 CLI

Project description

sonote

sonote

Beyond Transcription, Toward Meeting Intelligence.
Real-time Korean STT engine built for AI agents and professional meetings.

PyPI Downloads Python CI Stars License

Documentation · Getting Started · Research · Issues


Demo

sonote real-time transcription demo

Installation

pip install sonote
기타 설치 방법
# pipx (격리 설치)
pipx install sonote

# 소스에서 설치
git clone https://github.com/tellang/sonote && cd sonote
uv sync

[!NOTE] ffmpeg 필수: choco install ffmpeg (Windows) / brew install ffmpeg (macOS) 화자 분리: pip install sonote[diarize] + HF_TOKEN 환경변수

Quick Start

# 회의 실시간 전사 (Viewer: http://localhost:8000)
sonote meeting

# YouTube 라이브 올인원 (스캔 → 병렬 다운 → 변환 → 병합)
sonote auto <VIDEO_URL>

# 로컬 오디오 변환
sonote transcribe audio.wav

Commands

Command Description
sonote meeting 마이크 → 화자 분리 → SSE 자막 + 파일 저장
sonote auto <URL> YouTube 올인원 (BGM 자동 분류, 병렬 다운로드, 변환, 병합)
sonote live <URL> YouTube 연속 실시간 변환
sonote transcribe <FILE> 로컬 오디오/영상 변환
sonote detect <URL> BGM↔음성 경계 탐색
sonote download <URL> YouTube 오디오 다운로드
주요 옵션
# 긴 파일 청크 분할
sonote transcribe long.wav --chunk-minutes 10

# SRT 자막 출력
sonote transcribe audio.wav --fmt srt

# 기존 스크립트에 이어붙이기
sonote auto "URL" --resume transcript.txt

# 마이크 장치 선택
sonote meeting --list-devices
sonote meeting --device 1

# 화자 분리 비활성화
sonote meeting --no-diarize

Key Features

  • Zero-Latency Tracking — 마이크 입력과 YouTube 라이브를 최소 지연으로 실시간 추적
  • Intelligent Diarization — 미등록 화자 임베딩 추적, 5개+ 세그먼트 누적 시 자동 등록 후보 마킹
  • Professional Viewer — 단일 HTML 웹 인터페이스, 다크/라이트 모드, 실시간 검색
  • AI-Driven Refinement — LLM 연동 회의 요약 및 스크립트 교정 (Codex STT + Gemini 요약)
  • Real-time API — SSE + WebSocket 양방향 통신, 자동 재연결, 세션별 검색 API

Performance

Model RTF (Speed) CER (Accuracy) VRAM
large-v3-turbo (default) < 0.05 ~16.4% ~3.5 GB
large-v3 ~0.12 ~11.2% ~6.0 GB
small < 0.02 ~22.8% ~1.5 GB

[!TIP] NVIDIA RTX 4070+ 환경에서 CUDA float16 최적화. RTF 0.05 미만으로 실시간 이상 속도.

API & WebSocket

Search API

# 키워드 검색
curl "http://127.0.0.1:8000/api/sessions/{session_id}/search?query=회의"

# 화자 + 시간 범위 필터
curl "...?query=결정&speaker=김팀장&time_start=300&time_end=1200"

# 정규식 검색
curl "...?query=일정|마감&regex=true"

WebSocket

WS /ws/transcribe — 전사/교정/세션 이벤트 양방향 통신. SSE 폴백, 30초 하트비트, 자동 재연결.

Speaker Auto-Registration

Endpoint Method Description
/api/speakers/unknown GET 미등록 화자 목록
/api/speakers/auto-register POST 미등록 화자 프로필 등록
/api/speakers/unknown/{id} DELETE 미등록 화자 무시
Build & Benchmark
# Windows EXE 패키징
uv run python scripts/build.py --onefile

# 모델 벤치마크
uv run python scripts/benchmark_models.py --models small large-v3-turbo

Project Structure

src/
├── cli.py            # CLI 진입점
├── server.py         # FastAPI SSE + WebSocket
├── transcribe.py     # Faster-Whisper 추론 코어
├── diarize.py        # 화자 분리 (pyannote-audio)
├── download.py       # YouTube 오디오 다운로드
├── continuous.py     # 연속 실시간 변환
├── polish.py         # LLM 후처리 (실시간 교정 + 종료 후 일괄)
└── whisper_worker.py # CUDA 격리 STT 워커
static/
└── viewer.html       # 자막 뷰어 (단일 HTML)

Documentation

Full command references, architecture, and troubleshooting: User Guide


Copyright (c) 2025 Tellang Licensed under the MIT License.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

sonote-2.1.0.tar.gz (599.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

sonote-2.1.0-py3-none-any.whl (550.0 kB view details)

Uploaded Python 3

File details

Details for the file sonote-2.1.0.tar.gz.

File metadata

  • Download URL: sonote-2.1.0.tar.gz
  • Upload date:
  • Size: 599.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.10

File hashes

Hashes for sonote-2.1.0.tar.gz
Algorithm Hash digest
SHA256 753466556b2f1090b6481e8963bd1af7783b21d0c5c48e658767f915527730ab
MD5 1d336efb96c057ca80c3055f51088858
BLAKE2b-256 876e37d56e0e28242286fe3859e98a8c77ce896cde56c5dc164013663df57753

See more details on using hashes here.

File details

Details for the file sonote-2.1.0-py3-none-any.whl.

File metadata

  • Download URL: sonote-2.1.0-py3-none-any.whl
  • Upload date:
  • Size: 550.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.10

File hashes

Hashes for sonote-2.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 070fe6a1b169fc36a99d73195cd935e2b837817c086d87996b2df38b71cc1097
MD5 3763f9dc9a9788e384eeb54395bd83f8
BLAKE2b-256 7a9712b865ae6c672938f7411b48b226d1a4799d0ed27fdb3159ae4f69ec93fa

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page