kouhxp/yapsnap

Transcribe any video URL or audio file into plaintext. No GPU. No cloud. One command.

해결하는 문제

yapsnap은 비디오 URL이나 오디오 파일을 일반 텍스트 대본으로 변환하는 명령줄 도구입니다. 값비싼 GPU, 클라우드 API, 유료 구독의 필요성을 없애고 모든 전사, 언어 감지, 화자 분리를 사용자의 CPU에서 로컬로 수행합니다.

작동 방식

이 도구는 5단계 파이프라인을 따릅니다:

  1. 가져오기: yt-dlp를 사용하여 URL(YouTube, TikTok, X, Instagram 등)에서 오디오를 다운로드하거나 로컬 파일에 접근합니다.
  2. 식별: 오디오의 작은 창을 샘플링하여 가지치기된 whisper-tiny 언어 식별 헤드(INT8 ONNX)를 사용해 음성 언어를 자동 감지합니다.
  3. 디코딩: ffmpeg를 사용하여 미디어를 16kHz 모노 PCM 오디오로 변환합니다.
  4. 인식: sherpa-onnx 런타임을 통해 스트리밍 Zipformer2 transducer(Kroko)를 사용하여 CPU에서 오디오를 텍스트로 전사합니다.
  5. 형식화: 결과를 단일 문단 또는 문장 수준 타임스탬프로 출력합니다. --diarize가 활성화되면 화자 분할 및 임베딩 모델로 두 번째 패스를 실행하여 누가 언제 말했는지 라벨링합니다.

대상 사용자

특수 하드웨어(CUDA/M 시리즈)나 API 키 없이 웹 비디오나 로컬 녹음의 빠르고 개인적이며 오프라인 전사가 필요한 사용자를 위해 설계되었습니다.

주요 특징

  • CPU 전용 성능: 순수 CPU 코어에 최적화되어 실시간보다 빠르게 전사하는 경우가 많습니다.
  • 광범위한 소스 지원: yt-dlp와 ffmpeg를 통해 다양한 소셜 미디어 URL과 로컬 오디오/비디오 형식을 처리합니다.
  • 개인정보 우선: 모델은 첫 실행 후 로컬에 캐시되며 오디오가 기계를 떠나지 않습니다.
  • 자동 언어 감지: 10개 언어(영어, 독일어, 스페인어, 프랑스어, 이탈리아어, 히브리어, 네덜란드어, 포르투갈어, 스웨덴어, 터키어)를 자동 감지로 지원합니다.
  • 화자 분리: ONNX 모델을 사용하여 다른 화자(SPEAKER_00, SPEAKER_01)를 식별하고 라벨링할 수 있습니다.
  • 간결한 종속성: PyTorch와 같은 무거운 프레임워크를 피하고 대신 sherpa-onnx, numpy, yt-dlp에 의존합니다.

관련

  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트