AIパーソナル・ラーニング
と実践的なガイダンス
豆包Marscode1

SongGen: 曲の自動生成のための単段自己回帰変換器

はじめに

SongGenは、テキストから曲への生成タスクのために設計された、オープンソースの単一ステージ自己回帰変換モデルです。SongGenは、歌詞、楽器の説明、音楽スタイル、ムード、音色など、幅広い音楽属性をきめ細かく制御することができる。ハイブリッド・モードではボーカルとバッキング・ボーカルを含むミックス・トラックを直接生成し、2トラック・モードでは後続のアプリケーション用にボーカルとバッキング・トラックを別々に生成します。このプロジェクトはまた、自動化されたデータ前処理パイプラインと、コミュニティへの参加と将来の研究を促進するために設計された効率的な品質管理メカニズムを提供する。

SongGen:自动生成歌曲的单阶段自回归Transformer-1


 

機能一覧

  • テキストから曲への変換
  • 歌詞、楽器の説明、音楽スタイル、ムード、音色のきめ細かなコントロールに対応
  • サウンドクローン用に3秒間のリファレンスオーディオクリップを提供
  • ミックス・モードおよびデュアル・トラック・モード出力
  • 自動化されたデータ前処理パイプライン
  • オープンソースのモデル重み、トレーニングコード、アノテーションデータ、処理パイプライン

 

ヘルプの使用

公式のインストールプロセス情報を提供してくれてありがとう!これに基づいて修正させていただきます。以下は、使用するために更新されたヘルプセクションです:

ヘルプの使用

設置プロセス

  1. クローン・プロジェクト・ウェアハウス
   git clone https://github.com/LiuZH-19/SongGen.git
cd SongGen
  1. 新しいConda環境を作成し、アクティベートする:
   conda create -n songgen python=3.9.18
conda activate songgen
  1. CUDA 11.8と関連する依存関係をインストールします:
   conda install pytorch torchvision torchaudio cudatoolkit=11.8 -c pytorch -c nvidia
  1. SongGenは推論モードでのみ使用する:
   pip install .

ダウンロード Checkpoints

xcodecとsonggenの訓練済みモデルのチェックポイントをダウンロードしてください。

走り推理

ハイブリッドモデル

  1. 必要なライブラリをインポートする:
   import torch
import os
from songgen import (
VoiceBpeTokenizer,
SongGenMixedForConditionalGeneration,
SongGenProcessor
)
import soundfile as sf
  1. 訓練済みモデルをロードする:
   ckpt_path = "..."  # 预训练模型的路径
device = "cuda:0" if torch.cuda.is_available() else "cpu"
model = SongGenMixedForConditionalGeneration.from_pretrained(
ckpt_path,
attn_implementation='sdpa').to(device)
processor = SongGenProcessor(ckpt_path, device)
  1. 入力テキストと歌詞を定義する:
   lyrics = "..."  # 歌词文本
text = "..."  # 音乐描述文本
ref_voice_path = 'path/to/your/reference_audio.wav'  # 参考音频路径,可选
separate = True  # 是否从参考音频中分离人声轨道
  1. 曲を作る:
   model_inputs = processor(text=text, lyrics=lyrics, ref_voice_path=ref_voice_path, separate=True)
generation = model.generate(**model_inputs, do_sample=True)
audio_arr = generation.cpu().numpy().squeeze()
sf.write("songgen_out.wav", audio_arr, model.config.sampling_rate)

デュアルトラックモデル

  1. 必要なライブラリをインポートする:
   import torch
import os
from songgen import (
VoiceBpeTokenizer,
SongGenDualTrackForConditionalGeneration,
SongGenProcessor
)
import soundfile as sf
  1. 訓練済みモデルをロードする:
   ckpt_path = "..."  # 预训练模型的路径
device = "cuda:0" if torch.cuda.is_available() else "cpu"
model = SongGenDualTrackForConditionalGeneration.from_pretrained(
ckpt_path,
attn_implementation='sdpa').to(device)
processor = SongGenProcessor(ckpt_path, device)
  1. 入力テキストと歌詞を定義する:
   lyrics = "..."  # 歌词文本
text = "..."  # 音乐描述文本
ref_voice_path = 'path/to/your/reference_audio.wav'  # 参考音频路径,可选
separate = True  # 是否从参考音频中分离人声轨道
  1. 曲を作る:
   model_inputs = processor(text=text, lyrics=lyrics, ref_voice_path=ref_voice_path, separate=True)
generation = model.generate(**model_inputs, do_sample=True)
vocal_array = generation.vocal_sequences[0, :generation.vocal_audios_length[0]].cpu().numpy()
acc_array = generation.acc_sequences[0, :generation.acc_audios_length[0]].cpu().numpy()
min_len = min(vocal_array.shape[0], acc_array.shape[0])
vocal_array = vocal_array[:min_len]
acc_array = acc_array[:min_len]
audio_arr = vocal_array + acc_array
sf.write("songgen_out.wav", audio_arr, model.config.sampling_rate)

詳細な機能操作

  • テキストから曲への変換歌詞と楽曲の説明を含むテキストを入力すると、モデルが対応する楽曲の音声を生成する。
  • きめ細かなコントロールテキストに説明を入力することで、インストゥルメンテーション、スタイル、ムードなど、生成される曲の様々な属性をコントロールすることができます。
  • サウンドクローニング3秒間のリファレンス・オーディオ・クリップが提供され、モデルはその音を模倣して曲を生成することができる。
  • 出力モード選択ハイブリッドモードとデュアルトラックモードを使い分けることで、様々なシーンに柔軟に対応。
  • データ前処理パイプライン自動化されたデータ前処理と品質管理により、生成された結果の高い品質を保証。
無断転載を禁じます:チーフAIシェアリングサークル " SongGen: 曲の自動生成のための単段自己回帰変換器
ja日本語