/use-demucs

このプロジェクトは、ゲーム実況動画などから音声を抽出し、Demucsを使用してボイス(音声)とBGM(伴奏)を分離するPythonスクリプトです。

Primary LanguagePython

Use Demucs - 動画音声分離ツール

このプロジェクトは、ゲーム実況動画などから音声を抽出し、Demucsを使用してボイス(音声)とBGM(伴奏)を分離するPythonスクリプトです。

機能

  • 動画ファイル(MP4など)から音声を抽出
  • Demucsを使用した音源分離
    • ボーカル(ボイス)
    • 伴奏(BGM)
    • ドラム
    • ベース

プロジェクト構造

use-demucs/
├── separated_audio.py      # メインスクリプト
├── requirements.txt        # Pythonパッケージ依存関係
├── README.md              # このファイル
├── venv/                  # 仮想環境(作成後)
└── separated_audio/       # 出力ディレクトリ(実行後に作成)

必要な環境

システム要件

  • Python 3.7以上
  • FFmpeg
  • Demucs

依存関係のインストール

1. Python環境のセットアップ(pyenv推奨)

python -m venv venv

# 仮想環境の有効化
# macOS/Linux:
source venv/bin/activate

2. FFmpegのインストール

macOS(Homebrew使用):

brew install ffmpeg

3. Pythonパッケージのインストール

# 仮想環境が有効化されていることを確認してから実行
pip install -r requirements.txt

使用方法

0. 仮想環境の有効化

スクリプトを実行する前に、仮想環境が有効化されていることを確認してください:

# macOS/Linux:
source venv/bin/activate
# Windows:
# venv\Scripts\activate

1. スクリプトの実行

基本的な使用方法

# 入力ファイルを指定
python separated_audio.py -i your_video.mp4

# 出力ディレクトリを指定
python separated_audio.py -i your_video.mp4 -o my_output

# 出力ファイル名のプレフィックスを指定
python separated_audio.py -i your_video.mp4 -n episode01

# 全てのオプションを指定
python separated_audio.py -i your_video.mp4 -o my_output -n episode01

オプション一覧

  • -i, --input, --video-path: 分離したい動画ファイルのパス(デフォルト: your_video.mp4)
  • -o, --output-dir: 出力先ディレクトリ(デフォルト: separated_audio)
  • -n, --output-name: 出力ファイル名のプレフィックス(デフォルト: 入力ファイル名)
  • -h, --help: ヘルプメッセージを表示

ヘルプの表示

python separated_audio.py --help

2. 出力結果

スクリプト実行後、以下の構造でファイルが生成されます:

カスタム出力名の場合(-n episode01)

separated_audio/
├── episode01_extracted_audio.wav
└── demucs_output/
    └── htdemucs/
        └── episode01/
            ├── episode01_vocals.wav
            ├── episode01_vocals.mp3
            ├── episode01_other.wav
            ├── episode01_other.mp3
            ├── episode01_drums.wav
            ├── episode01_drums.mp3
            ├── episode01_bass.wav
            └── episode01_bass.mp3

3. 仮想環境の無効化

作業が終了したら、仮想環境を無効化できます:

deactivate

処理フロー

  1. 音声抽出: FFmpegを使用して動画ファイルから音声を抽出
  2. 音源分離: Demucsを使用して音声を4つのトラックに分離
    • vocals(ボーカル/ボイス)
    • other(その他/BGM等)
    • drums(ドラム)
    • bass(ベース)
  3. ファイル保存: WAVとMP3の両形式で保存

パフォーマンス

  • Demucsは機械学習ベースの音源分離を行うため、処理時間がかかる場合があります

参考リンク