プレーンテキストでトラックから任意のサウンドを抽出する方法

ポッドキャストから犬の吠え声を削除したり、古いトラックからボーカルを抽出する必要がある場合、標準的なスプリッターを使ったことがあるでしょう。通常、これらは正確に4つのステム(ボーカル、ベース、ドラム、その他不快な要素)に分割することしかできません。拍手やグラスの触れ合いなど、特定のサウンドを分離しようとすると、従来のニューラルネットワークでは不十分です。
最近、MetaはSAM-Audioモデルを公開しました。これはテキスト描述に基づいてオーディオトラックを分割できるモデルです。問題は元のリポジトリが非常に多くのVRAMを必要とし、すべてのマシンで動作するわけではないことです。audioghost-aiプロジェクトはこの問題を正確に解決しています:著者はアーキテクチャの不要な部分を除去し、VRAM要件をほぼ半分に削減し、すべて готовую-ку-usableなWebアプリケーションとしてパッケージ化了しました。
このプロジェクトできること
AudioGhostのコアアイデアは、人間の言葉でモデルにコマンドを与えることです。オーディオまたはビデオファイルをアップロードし、入力フィールドに描述を入力し、drums、crowd noiseまたはa dog barking、そのサウンドを抽出するか、トラックから削除するかを選択して、行動を選びます。
インターフェースにはすぐに組み込みのトラックミキサーが提供されます。元のトラック、分離されたサウンド、残余トラックをブラウザ内で直接试听でき、結果を比较できます。ビデオストリームはまだ視覚的には分析されていません—サービスは単にビデオからオーディオトラックを抽出するだけです—しかし、著者はフレーム内のオブジェクトをクリックするためのSAM 2の統合を計画しています。
モデルを4 GB VRAMに缩小する方法
元のSAM-Audioは汎用マルチモーダルワークホースとして設計されていました。このため、ビデオエンコーダとテキストランカーは常にメモリに保持されていました,即使只是清理MP3文件。
AudioGhostはMetaの元のリポジトリの議論の1つで提案されたLite Modeを使用します。リソースを節約した方法は次のとおりです:
- Vision EncoderとVisual Rankerを削除し、約4 GBのVRAMを節約
- Text Rankerとスパン予測子を無効にし、さらに3〜4 GBを獲得
- 計算をデフォルトで5精度に切り替える
- 長いトラックを25秒のフラグメントに分割
結果として、基本モデルはRTX 3070やRTX 4060などの8 GBメモリを持つコンシューマーGPUで実行できます。6で高品質モードを有効にすると、要件は13 GBに跳ね上がりますが、日常的なタスクのほとんどには基本モードで十分です。速度の点で、テストRTX 4090での推論はリアルタイムオーディオに対して10倍の加速を達成します。
アーキテクチャとスタック
開発者はこのプロジェクトをエキゾチックなツールで複雑にしなかった。アーキテクチャは単純です:
フロントエンドはNext.jsとTailwind v4で構築されています。バックエンドはFastAPIで実行され、重いオーディオ分離タスクはCeleryとRedis経由でキューにオフロードされます。これにより、長いファイル処理操作中にインターフェースが応答性を維持します。
クイックスタート
Windowsの場合、リポジトリにはConda環境の自動設定、Redisのプル、依存関係のインストールを行う готовыеbatスクリプトが含まれています。
Linuxで手动構築する場合、またはターミナル経由の場合:
起動する前に、HuggingFaceアカウントが必要です。モデル7は基本契約でゲートされているため、モデルページでアクセスをリクエストし、トークンを生成する必要があります。その後、サービスのWebインターフェースを通じて入力されます。
印象と誰が使用するべきか
プロジェクトにはGitHubで約470のスターがあり、MVP v1.0ステータスがあるため、粗いエッジに遭遇する可能性があります。たとえば、WindowsでTorchCodecを構築する際にFFmpegバイナリ問題が発生することがあり、モデルが過度に抽象的なテキスト描述で苦労する可能性があります。
それにもかかわらず、Metaの重い研究モデルを動作するローカルサービスに変える数少ないオープンソース実装の1つです。ビデオを編集したり、オーディオトラックを清理したり、ローカルGPUでサウンドデザインを実験する場合は、このプロジェクト заслуживает definitely deserve a clone to your local folder.
関連プロジェクト