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 が有効な場合、話者セグメンテーションと埋め込みモデルを使用して2回目のパスを実行し、誰がいつ話したかをラベル付けします。

対象ユーザー

特別なハードウェア(CUDA/Mシリーズ)やAPIキーを必要とせず、ウェブ動画やローカル録音の高速でプライベートなオフライン文字起こしを必要とするユーザー向けに設計されています。

ハイライト

  • CPUのみのパフォーマンス:純粋なCPUコア向けに最適化されており、多くの場合リアルタイムより速く文字起こしします。
  • 幅広いソースサポート:yt-dlp と ffmpeg を介して、さまざまなソーシャルメディアURLやローカルの音声/動画形式を処理します。
  • プライバシー優先:モデルは初回実行後にローカルにキャッシュされ、音声がマシンから出ることはありません。
  • 自動言語検出:10言語(英語、ドイツ語、スペイン語、フランス語、イタリア語、ヘブライ語、オランダ語、ポルトガル語、スウェーデン語、トルコ語)を自動検出でサポート。
  • 話者分離:ONNXモデルを使用して異なる話者(SPEAKER_00、SPEAKER_01)を識別しラベル付けできます。
  • 軽量な依存関係:PyTorchのような重いフレームワークを避け、代わりに sherpa-onnx、numpy、yt-dlp に依存します。

関連

  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト