Scribe — ローカル録音文字起こしと話者ダイアリゼーション
概要
Scribeは、ローカル環境で音声や動画ファイルを取り込み、文字起こし(transcription)と話者ダイアリゼーション(speaker diarization)を組み合わせて、話者属性付きのトランスクリプトを生成するツールです。入力はffmpegで扱える任意のメディア形式に対応しており、自動的にWAVへ変換して処理を行います。話者分離にはpyannoteを、トランスクリプションにはparakeet-mlx(MLX対応の実装)を用いるため、高速でローカル完結の解析が可能です。主にmacOS(Apple Silicon)環境を想定した要件がREADMEに示されており、外部クラウドに依存せずプライバシー重視で音声解析を行いたいユースケースに適しています。
リポジトリの統計情報
- スター数: 3
- フォーク数: 0
- ウォッチャー数: 3
- コミット数: 6
- ファイル数: 8
- メインの言語: Python
主な特徴
- ローカルで完結する文字起こしと話者ダイアリゼーションのワークフロー
- pyannote-audioによる話者分離とparakeet-mlxによる音声処理を組み合わせ
- ffmpegで読み取れる任意のメディア形式を自動でWAVに変換
- macOS(Apple Silicon)を想定した実行要件とMLXサポート
技術的なポイント
Scribeは既存のオープンソース音声処理ライブラリを組み合わせて、シンプルかつローカル志向のパイプラインを提供します。音声入力はまずffmpegで正規化・WAV変換され、以降の処理はPythonベースで統一。話者分離にはpyannote-audioを利用しており、これによりオーディオ上の発話区間と話者クラスタを抽出できます。抽出した区間ごとにparakeet-mlxを用いてローカルでトランスクリプションを行う設計のため、テキストと誰が話したかの対応付け(speaker-attributed transcript)が出力されます。
parakeet-mlxはMLX(Appleの機械学習拡張)を前提とするビルドやランタイム依存があるため、READMEではmacOSのApple Silicon環境を推奨しています。これは高速なオンデバイス推論やアクセラレーションを活用するための制約で、LinuxやIntel macOSでも動作する可能性はありますが、追加の設定や互換性確認が必要です。pyproject.tomlでPythonの依存関係が管理されており、pipやPoetry等の標準ツールでインストールできる構成になっています。設計上は軽量で、研究やプロトタイプ、プライバシー重視の運用に向く一方、スケールや多言語対応、雑音耐性の向上などはユーザー側でモデルや前処理を調整する余地があります。
プロジェクトの構成
主要なファイルとディレクトリ:
- .github: dir
- .gitignore: file
- LICENSE: file
- README.md: file
- pyproject.toml: file
…他 3 ファイル
※ リポジトリは小規模でファイル数が限られており、主要ロジック・依存定義・ドキュメントが中心にまとめられています。
まとめ
ローカルで話者識別付きの文字起こしを行いたい開発者に適したシンプルな実装です。