はじめに
Simple Subtitlingはオープンソースの音声字幕生成ツールで、動画や音声ファイルの字幕を自動生成し、話者をラベリングすることに重点を置いています。Jaesung Huhによって開発され、GitHubでホストされているこのプロジェクトは、シンプルで効率的な字幕生成ソリューションを提供することを目的としています。このツールは、機械学習モデルと組み合わせた音声処理技術を使用し、動画に素早く字幕を追加する必要がある人のために、タイムスタンプと話者を特定した字幕ファイルを生成します。このプロジェクトはPythonで開発され、モノラル16kHzの音声処理をサポートし、インストールも使用も簡単です。Simple SubtitlingはJaesung Huh博士の研究によるオープンソースプロジェクトの1つで、実用性とオープンソースコミュニティへの貢献に重点を置いています。
機能一覧
- 自動字幕生成:オーディオファイルからテキストを抽出し、タイムスタンプ付きの字幕ファイルを生成します。
- 話者ラベリング:音声分析によって異なる話者を区別し、字幕に話者ラベルを追加します。
- SRTフォーマットのサポート:ほとんどのビデオプレーヤーと互換性のある標準のSRT字幕ファイルを生成します。
- オーディオの前処理:処理効果を確実にするため、オーディオのモノラル16kHzフォーマットへの変換をサポート。
- 設定ファイルのカスタマイズ:ユーザーは設定ファイルを通して字幕生成パラメータを調整できます。
- オープンソースで無償:コードは公開されており、ユーザーは自由に機能を変更・拡張することができます。
ヘルプの使用
設置プロセス
Simple SubtitlingにはPythonが使える環境が必要で、Python 3.9以上を推奨します。詳しいインストール手順は以下の通りです:
- クローン倉庫
ターミナルを開き、以下のコマンドを実行してプロジェクト・コードをクローンする:git clone https://github.com/JaesungHuh/simple-subtitling.git --recursive
利用する --recursive
すべてのサブモジュールをクローンしてください。
- 仮想環境の構築
依存関係の衝突を避けるために、Pythonの仮想環境を作成することをお勧めします:conda create -n simple python=3.9 conda activate simple
Condaを使用しない場合は、次のように使用することもできる。
venv
仮想環境を作る:python -m venv simple_env source simple_env/bin/activate # Linux/Mac simple_env\Scripts\activate # Windows
- 依存関係のインストール
プロジェクト・ディレクトリに移動し、必要なPythonパッケージをインストールする:cd simple-subtitling pip install -r requirements.txt
インターネット接続が機能していることを確認すると、依存パッケージが自動的にダウンロードされます。
- FFmpegをインストールする
Simple Subtitlingでは、音声の前処理にFFmpegを使用しています。お使いのOSに合わせてFFmpegをインストールしてください:- Ubuntu/デビアン::
sudo apt update && sudo apt install ffmpeg
- マックオス(Homebrewを使用):
brew install ffmpeg
- ウィンドウズ(ショコラトリー使用):
choco install ffmpeg
インストール後
ffmpeg -version
インストールが成功したことを確認する。 - Ubuntu/デビアン::
- 設定環境
プロジェクトにはconfig.yaml
音声処理と字幕生成のパラメータを設定するための設定ファイル。設定ファイルを開くconfig.yaml
必要に応じて、以下のキー・フィールドを変更する:audio_path
オーディオファイルのパスを入力します。output_path
字幕ファイルを保存するパス。sample_rate
設定が16000
(16kHz)。
設定例:
audio_path: "input_audio.wav" output_path: "output_subtitle.srt" sample_rate: 16000
使用方法
インストールが完了したら、コマンドラインからSimple Subtitlingを実行することができます:
- オーディオファイルの準備
Simple Subtitlingは現在、モノラル、16kHz、PCM_16形式の音声のみをサポートしています。オーディオフォーマットが要件を満たしていない場合は、FFmpegを使って変換してください:ffmpeg -i input_audio.mp3 -acodec pcm_s16le -ac 1 -ar 16000 output_audio.wav
相互互換性
input_audio.mp3
はオーディオファイルのパスで、出力はoutput_audio.wav
. - 字幕生成の実行
プロジェクト・ディレクトリで、メイン・スクリプトを実行する:python main.py
スクリプトは
config.yaml
での設定は、字幕を生成します。生成された字幕ファイルには、タイムスタンプ、話者識別子、テキスト・コンテンツが含まれます。output_path
指定されたパス。 - 字幕ファイルを見る
生成されたSRTファイルの例:1 00:00:01,000 --> 00:00:03,000 Speaker_1: 你好,欢迎使用 Simple Subtitling。 2 00:00:04,000 --> 00:00:06,000 Speaker_2: 这是一个开源字幕工具。
ユーザーは、SRTファイルをビデオ編集ソフトウェア(例:Adobe Premiere、DaVinci Resolve)やプレーヤー(例:VLC)にインポートすることができます。
注目の機能操作
- スピーカーの識別
Simple Subtitlingは、機械学習モデルを使用して音声を分析し、異なる話者を区別する。このモデルはECAPA-TDNNアーキテクチャーに基づいており、Jaesung Huhによって提供された事前学習の重みを使用しています。より高い精度が必要な場合は、Hugging Faceから事前学習済みモデルをダウンロードできます:model = ECAPA_gender.from_pretrained("JaesungHuh/voice-gender-classifier")
ある
config.yaml
イネーブルspeaker_diarization: true
字幕にスピーカータグを追加することができます。 - カスタム字幕スタイル
ユーザーはconfig.yaml
正鵠を得るsubtitle_style
フィールドで字幕のフォントや色などを調整できます。現在、基本的なSRT形式のスタイルをサポートしており、将来的にはASS形式にも拡張される可能性があります。 - バッチファイル
複数のオーディオファイルを処理する必要がある場合は、呼び出しをループする簡単なスクリプトを書くことができます。main.py
または修正config.yaml
複数のファイル入力をサポート。コミュニティによって投稿されたバッチ処理スクリプトは、GitHubディスカッションフォーラムで見つけることができます。
ほら
- 入力音声の品質がクリアであることを確認してください。背景のノイズが字幕の精度に影響する場合があります。
- このモデルは英語音声で最高の性能を発揮しますが、他の言語では追加トレーニングが必要になる場合があります。
- このプロジェクトは現在開発中なので、最新の機能や修正のアップデートについてはGitHubのリポジトリをフォローすることをお勧めする。
アプリケーションシナリオ
- 動画コンテンツ制作者
YouTuberや短編動画制作者は、Simple Subtitlingを使って動画に字幕を自動生成し、視聴者の体験を向上させることができます。このツールの話者識別機能は、インタビューや複数人の会話に最適で、各話者の内容を明確に識別します。 - 教育コンテンツ制作
SRTファイルは、国際化されたコースのための多言語プレーヤーをサポートしています。 - ポッドキャスト書き起こし
ポッドキャスト制作者は、コンテンツのテキスト版を公開したり、ビデオクリップを作成したりするために、音声を発言者ロゴ入りの字幕に変換できます。 - 会議録
ビジネスユーザーは、会議の録音に字幕を作成し、会議の議事録をすばやく整理できます。話者識別機能は、異なる話者を区別するのに役立ちます。
品質保証
- Simple Subtitlingはどのようなオーディオフォーマットに対応していますか?
現在のところ、モノラル、16kHz、PCM_16フォーマットのWAVファイルのみがサポートされています。その他の形式はFFmpegで変換する必要があります。 - 字幕生成の精度を上げるには?
クリアな音質を確保し、バックグラウンドノイズを低減します。にはconfig.yaml
イネーブルspeaker_diarization
で、事前に訓練されたモデルを使用する。 - 英語以外の音声にも対応できますか?
モデルは英語の音声に最適ですが、他の言語では追加トレーニングやモデルのチューニングが必要になる場合があります。 - 生成された字幕ファイルを編集するには?
SRTファイルは、テキストエディタ(メモ帳++など)や字幕編集ソフト(Aegisubなど)で開いて修正することができます。 - プロジェクトはリアルタイムの字幕生成をサポートしていますか?
現在のバージョンはリアルタイム処理をサポートしておらず、オフラインのオーディオファイルのみサポートしています。リアルタイム機能は将来のアップデートで追加される可能性があります。