DiffRhythm(中国語名は谛韵)は、西北工業大学のASLP研究室が公開した音楽生成モデルです。歌詞とスタイル指定を渡すだけで、ボーカルと伴奏がそろった最長4分45秒の楽曲を一度に生成します。月額課金のWebサービスではなく、自分のGPUかHugging Face Spaceの上で動かすモデルとコードです。この記事では、公開されているモデルの種類、8GBのVRAMで動かす手順、論文がRTX 4090で測った速度と品質、そして後継のDiffRhythm 2で何が変わったのかを、公式リポジトリと論文の記載だけで整理します。
まとめ
- DiffRhythmは、歌詞とスタイル指定から最長4分45秒(285秒)の楽曲をボーカルごと生成する潜在拡散モデルです。
- ライセンスは一律ではありません。コードとDiT重みはApache License 2.0ですが、推論に必ず使われるVAEはStability AI Community License、スタイル指定に使うMuQ-MuLanはCC BY-NC 4.0(非商用)です。商用利用を検討するなら、この3つを分けて確認する必要があります。
- 操作はコマンドライン(
infer/infer.py)かHugging Face Spaceです。GUIアプリ、共同編集、プロジェクト管理、DAWへの書き出し連携といった機能は公式には存在しません。 - DiffRhythm-baseの動作要件は最低8GBのVRAMで、その場合は
--chunkedの指定が前提になります。 - 論文がRTX 4090で測った実時間比(RTF)は、285秒版で0.034です。285秒の曲がおよそ10秒で出る計算になります。
- 後継のDiffRhythm 2(2025年10月30日公開)は歌詞と歌声の一致を改善した半自己回帰型ですが、速度はDiffRhythm+より遅く、曲の延長と純器楽の生成はまだ未実装です。用途によっては旧版を選ぶ判断が成り立ちます。
DiffRhythmの開発元と位置づけ
DiffRhythmは、西北工業大学(NWPU)のASLP研究室が2025年3月3日にarXivへ投稿した論文「DiffRhythm: Blazingly Fast and Embarrassingly Simple End-to-End Full-Length Song Generation with Latent Diffusion」(arXiv:2503.01183)で提案されたモデルです。公式リポジトリは自らを「フルレングスの楽曲を作れる、拡散モデルベースで初めてオープンソース化された音楽生成モデル」と位置づけています。名称はアーキテクチャを指すDiffと、音楽性を指すRhythmの組み合わせで、中国語名の谛韵(Dì Yùn)は「聴き入ること」と「響きの美しさ」を重ねたものだと説明されています。
技術的な要点は、言語モデル方式ではなく非自己回帰の潜在拡散である点です。論文は既存手法の課題として、ボーカルか伴奏のどちらかしか作れないこと、両方作れる場合も多段のカスケード構成とデータ整備が必要で拡張しにくいこと、そして言語モデル方式は推論が遅いことを挙げています。DiffRhythmはこれらに対し、推論時に必要な入力を歌詞とスタイル指定の2つだけに絞り、曲全体を一度に生成する構成を取りました。
Webサービスではないという前提
DiffRhythmを調べるときに最初に押さえるべきなのは、これが研究成果として公開されたモデルであって、アカウントを作って使う商用サービスではないという点です。配布されているのはモデルの重みと推論用のPythonコードであり、操作はコマンドラインか、公式が用意したHugging Face Spaceのデモ画面から行います。
そのため、共同編集やチームでのプロジェクト管理、テンポや楽器をスライダーで調整する画面、DAWへ書き出すための連携機能といったものは、公式リポジトリにも論文にも存在しません。後述の一覧は、公式推論スクリプトがコマンドライン引数として公開している設定です。生成した音声ファイルをAbleton LiveなどのDAWへ読み込んで編集すること自体は当然できますが、それはDiffRhythmの機能ではなく、出力された音声ファイルを扱う一般的な作業です。
公開されているモデルと生成できる長さ
公式リポジトリのModel Versionsに載っているのは次の5つです。baseとfullの違いは生成できる曲の長さで、v1.2が最新の系列です。
| モデル | 生成長 | Hugging Faceのリポジトリ | 累計ダウンロード |
|---|---|---|---|
| DiffRhythm-v1.2-base | 1分35秒 | ASLP-lab/DiffRhythm-1_2 | 1,204 |
| DiffRhythm-v1.2-full | 4分45秒 | ASLP-lab/DiffRhythm-1_2-full | 788 |
| DiffRhythm-base | 1分35秒 | ASLP-lab/DiffRhythm-base | 1,356 |
| DiffRhythm-full | 4分45秒 | ASLP-lab/DiffRhythm-full | 3,878 |
| DiffRhythm-vae | 波形の再構成用 | ASLP-lab/DiffRhythm-vae | 未集計 |
ダウンロード数は2026年9月22日にHugging Face APIで取得したdownloadsAllTime(累計)の値です。VAEのモデルページはダウンロード数を未集計としています。この表示から実際の取得回数や利用頻度は判断できません。
バージョンごとの更新内容
公式リポジトリのNews欄に記録されている主な更新は次のとおりです。初公開から約2か月で、短い曲しか作れない制約と、参照音声が必須という制約の両方が外れています。
- 2025年3月7日、Apache License 2.0での公開に切り替わりました。
- 2025年3月9日、テキストによるスタイル指定と、ボーカルなしの純器楽生成が追加されました。これはコミュニティからのプルリクエスト(#29)による実装だと明記されています。
- 2025年3月15日、285秒のフルレングス生成に対応したDiffRhythm-fullが公開されました。
- 2025年5月9日、v1.2が公開されました。歌詞の繰り返しと脱落の問題が大きく解消され、音質と編曲が改善したほか、楽曲の編集と続きの生成に対応したとされています。
動かすための前提と推論の手順
必要なVRAMと依存パッケージ
公式リポジトリは、DiffRhythm-baseについて最低8GBのVRAMが必要であると明記しています。そのうえで、8GBで要件を満たすには推論時に--chunkedを付ける必要があり、チャンク分割デコードを無効にする場合はより多くのVRAMが要るとしています。つまり8GBは--chunked込みの数字であり、指定を外した状態の下限ではありません。
依存関係で見落としやすいのが、音素変換に使うespeak-ngです。Pythonのパッケージではなく、OS側にインストールする必要があります。
# Debian系
sudo apt-get install espeak-ng
# RedHat系
sudo yum install espeak-ng
# macOS
brew install espeak-ng
git clone https://github.com/ASLP-lab/DiffRhythm.git
cd DiffRhythm
conda create -n diffrhythm python=3.10
conda activate diffrhythm
pip install -r requirements.txt
Windowsでは、espeak-ngのインストーラを導入したうえで、ユーザー環境変数PHONEMIZER_ESPEAK_LIBRARYにlibespeak-ng.dllのパスを、PHONEMIZER_ESPEAK_PATHにインストール先ディレクトリを設定して再起動します。なお、以前は日本語音声やmbrolaバイナリの追加導入が必要でしたが、公式リポジトリはこれらが現在は不要になったと注記しています。古い日本語の解説記事にはこの手順が残っていることがあるため、そのまま従う必要はありません。
推論コマンドの実行
Linuxでは付属のシェルスクリプトを使えます。Windowsのコマンドプロンプトでは、同名の.batファイルをcallで実行します。テキストでスタイルを指定する場合と、参照音声でスタイルを指定する場合で、それぞれ別のスクリプトが用意されています。
# テキストでスタイルを指定
bash scripts/infer_prompt_ref.sh
# 参照音声でスタイルを指定
bash scripts/infer_wav_ref.sh
中身はinfer/infer.pyの呼び出しです。公式スクリプトの例は、fullモデルで130秒の曲を5曲まとめて生成する設定です。baseの最低8GBという要件を、この設定にそのまま適用することはできません。8GB環境では95秒・1曲・チャンク分割を開始条件とし、実際の動作を確認してください。
python3 infer/infer.py \
--lrc-path infer/example/eg_cn_full.lrc \
--ref-prompt "folk, acoustic guitar, harmonica, touching." \
--audio-length 130 \
--output-dir infer/example/output \
--chunked \
--batch-infer-num 5
指定できる引数の一覧
テンポや楽器を個別に固定する専用引数はありませんが、楽器名などをスタイルプロンプトに含めることはできます。コマンドラインで指定できる引数は次のとおりです。
| 引数 | 内容 |
|---|---|
| –lrc-path | 生成したい曲の歌詞(LRC形式のファイル) |
| –ref-prompt | スタイルをテキストで指定します |
| –ref-audio-path | 10秒以上のMP3・WAV・FLACを参照音声に指定 |
| –audio-length | 生成する長さ。既定は95で、95ちょうどか96から285の範囲 |
| –chunked | チャンク分割デコードの有効化(8GB環境で必須) |
| –batch-infer-num | 1回の実行で生成する曲数。既定は1 |
| –edit | 編集モードの有効化 |
| –ref-song | 編集の元になる楽曲 |
| –edit-segments | 編集する時間区間 |
| –output-dir | 出力先ディレクトリ |
注意点が2つあります。1つは--ref-promptと--ref-audio-pathが排他だという点で、コード側にどちらか一方を必ず渡すことと、両方を同時に渡さないことを確かめるアサーションが書かれています。もう1つは--audio-lengthの指定可能な値で、ヘルプの記載は「ちょうど95、または96から285(両端を含む)の任意の値」です。96未満の任意長は通らないため、たとえば60秒の曲を直接指定することはできません。
編集モードの再生成区間と指定書式
v1.2で追加された編集機能は、画面上で音を差し替えるものではなく、既存の楽曲の指定した時間区間だけを生成し直す仕組みです。区間は--edit-segmentsに秒単位で渡し、書式は開始と終了の組を並べた配列です。ヘルプの記載によれば、-1は音声の先頭または末尾を意味します。たとえば[[-1,25], [50.0,-1]]と書けば、冒頭から25秒までと、50秒から末尾までの2区間が対象になります。
論文が報告した速度と品質
論文はNvidia RTX 4090で実時間比(RTF)を測っています。RTFは生成にかかった時間を曲の長さで割った値で、小さいほど速いことを意味します。比較対象は言語モデル方式のSongLMです。
| モデル | 生成長 | RTF | PER | FAD | 音楽性 | 音質 | 明瞭性 |
|---|---|---|---|---|---|---|---|
| DiffRhythm-base | 95秒 | 0.037 | 17.47% | 2.11 | 4.14 | 4.19 | 3.80 |
| DiffRhythm-full | 285秒 | 0.034 | 18.02% | 2.25 | 4.02 | 4.21 | 3.68 |
| SongLM | 120秒 | 1.717 | 21.35% | 1.92 | 4.27 | 4.06 | 3.44 |
PERは音素誤り率で、歌詞がどれだけ正しく歌われているかを示します。FADは生成音楽と実在音楽の分布の距離で、いずれも小さいほど良い値です。音楽性・音質・明瞭性の3項目は30人の聴取者による1から5の主観評価(MOS)の平均です。論文はRTFが両変種とも0.04を下回り、SongLMに対しておよそ50倍の高速化を達成したと述べています。「10秒で4分45秒の曲」という宣伝文句は、このRTF 0.034にRTX 4090という条件が付いた数字です。
見落とされがちなのは、論文自身が限界も書いている点です。FADと音楽性についてはSongLMのほうがわずかに良く、論文は長期的な音響の一貫性と旋律の表現力に改善の余地があると認めています。また、歌詞と歌声の対応づけ(文単位のアライメント)を外したアブレーション実験では明瞭性と音質が壊滅的に悪化しており、この仕組みが品質の要であることが示されています。
DiffRhythm 2・DiffRhythm+の設計変更と機能差
DiffRhythmには派生版が2つあります。DiffRhythm+(arXiv:2507.12890、2025年7月17日)は、学習データの偏りを是正して歌詞の繰り返しと脱落を減らし、テキストと参照音声の両方でスタイルを指定できるようにした改良版です。DiffRhythm 2(arXiv:2510.22950、2025年10月30日にコードと重みを公開)はより大きな設計変更を伴います。
DiffRhythm 2で注意したいのは、コードの一次配布元がXiaomiのリポジトリ(xiaomi-research/diffrhythm2)である点です。著者にはXiaomi側の研究者とASLP側の研究者が併記されており、モデルの重み自体はHugging FaceのASLP-lab配下に置かれています。ASLP-lab側にもDiffRhythm2というフォークがあり、こちらからも推論コードを取得できます。
DiffRhythm 2の生成速度と歌詞精度の比較
DiffRhythm 2の技術的な主眼は、ブロック単位のフローマッチングによる半自己回帰アーキテクチャで、歌詞と歌声の一致を外部のラベルや制約なしに達成することにあります。加えて、フレームレートを毎秒5フレームまで下げた音楽VAEを用いて長い系列を扱えるようにしています。論文のTable 5では、この音楽VAEの再構成性能がStable Audio 3.0の前世代にあたるStable Audio 2のVAE(21.5Hz)を上回っており、PESQで2.477対1.981という値が報告されています。
一方で、速度は旧版より落ちています。論文の比較はRTX 4090で生成長を2分に固定し、DiffRhythm+とDiffRhythm 2のサンプリングを32ステップに設定した結果です。表のACE-Stepは論文で評価されたモデルで、リンク先のACE-Step 1.5の測定値ではありません。
| モデル | アーキテクチャ | モデルサイズ | 生成時間 | RTF |
|---|---|---|---|---|
| ACE-Step | Flow Matching+DCAE+Vocoder | 3.5B+150M | 15.2秒 | 0.127 |
| DiffRhythm+ | Flow Matching+VAE Decoder | 1B+150M | 18.3秒 | 0.153 |
| DiffRhythm 2 | Block Flow Matching+Music VAE Decoder | 1B+170M | 25.6秒 | 0.213 |
| LeVo | LM+Diffusion Decoder | 2B+0.7B | 147秒 | 1.225 |
論文はこれを「DiffRhythm 2はDiffRhythm+とACE-Stepよりわずかに遅いだけで、LeVoよりは大幅に速い」と表現しています。ただし事実として、同じ条件でACE-Stepのほうが1.7倍ほど速く終わります。DiffRhythm 2は速度を引き換えに歌詞の一致を取った設計であり、最新版だから速いという理解は成り立ちません。論文のブロックサイズ実験でも、ブロックを小さくすると歌詞の正確さは上がる一方でRTFが0.455まで悪化するという、明確な品質と速度の交換関係が示されています。
旧版にあってDiffRhythm 2にまだ無い機能
DiffRhythm 2のリポジトリのTODOには、未完了として「Song extension(曲の延長)」「Instrumental music generation(純器楽の生成)」「Gradio support」「Support Colab」が並んでいます。このうち純器楽生成と曲の延長は本家のDiffRhythmで対応していますが、公式READMEではColab対応とGradio対応は旧版でも未完了のTODOです。純器楽の生成は2025年3月9日に、曲の続きの生成はv1.2で対応しています。
したがって、ボーカルなしのBGMを作りたい場合や、既存曲を延長したい場合は、現時点ではDiffRhythm 2ではなくv1.2系を使うことになります。新しいほうが上位互換であるとは限りません。
DiffRhythm 2の擬似ステレオ出力
DiffRhythm 2の推論スクリプトは、既定で--fake-stereoが有効になっています。実装を読むと、これはデコーダが出したモノラル音声を左チャンネルとし、それを0.8倍して0.01秒ずらしたものを右チャンネルとして並べる処理です。つまり出力される2チャンネルの音声は、本来の意味でのステレオミックスではなく、モノラル音源を左右に広げた擬似的なステレオです。ミックスやマスタリングの前提として、この点は把握しておく価値があります。
ライセンスと商用利用の条件
ここは誤解が多いところです。公式リポジトリが記載しているのは「コードとDiT重み」がApache License 2.0であるという範囲で、推論に必ず使われるDiffRhythm-vaeはこれに含まれません。VAEにはStability AI Community Licenseが適用され、商用利用時の登録と、利用者および関連会社の年間収益が合計100万米ドルを超える場合の別途ライセンス取得が条件として定められています。推論スクリプトのprepare_modelはVAEを無条件に取得するため、この条件はすべての利用者に及びます。リポジトリ同梱のLICENSE.mdはApache License 2.0の全文のみでVAEへの言及がなく、条件はHugging Faceのモデルページ側にしか書かれていません。
さらに、公式の推論スクリプトはスタイル指定の埋め込みを作るためにOpenMuQ/MuQ-MuLan-largeを読み込みます。このモデルのHugging Face上のライセンス表示はCC BY-NC 4.0で、非商用に限定されています。DiffRhythmはテキストか参照音声のいずれかのスタイル指定を必須としており、どちらの経路もこのモデルを通るため、公式の推論一式をそのまま使う限り避けられません。DiffRhythm本体の重みがApache License 2.0であることと、公式推論スタック全体をそのまま商用に使えるかどうかは別の問題であり、この点について開発元は明確な見解を示していません。商用利用を検討する場合は、この依存を置き換えるか、権利者に確認するのが安全です。
Apache License 2.0が適用される部分についても、再配布時にはライセンス全文の添付、変更ファイルへの変更表示、所定の権利表示の保持、元の配布物にNOTICEがある場合の帰属表示の継承などが必要です。DiffRhythm 2はコードと重みの双方がApache License 2.0ですが、こちらも音楽VAEを伴うため、利用前にモデルページのライセンス表示を確認してください。開発チームはこのモデルから利益を得ておらず、音楽生成の高品質なベースモデルを提供することが目的だと述べています。
ただし、ライセンスとは別に、免責事項として責任ある利用のための条件が3点挙げられています。生成物の独自性を確認する仕組みを用意すること、生成物にAIが関与していることを開示すること、そして保護されたスタイルを翻案する場合は許諾を得ることです。リスクとしては、作風の類似による意図しない著作権侵害、文化的な音楽要素の不適切な混成、有害なコンテンツ生成への悪用が明示されています。ライセンスが許すことと、実際に公開してよいかどうかは別の判断になります。
なお、学習用のコードについては、公式リポジトリのTrainingの節に「Coming soon…」という記載が残っていますが、これは更新漏れです。同じリポジトリのTODOでは学習コードの公開が完了済みとされており、実際にtrain/train.pyとscripts/train.shが置かれています。論文も、再現性と今後の研究のために完全な学習コードと事前学習済みモデルを公開すると明記しています。
よくある質問
DiffRhythmは無料で使えますか?
コードとDiT重みはApache License 2.0で無償公開されており、ダウンロード自体に利用料はかかりません。ただし推論に使うVAEには別ライセンスがあり、商用利用では登録や年間収益に応じた別途ライセンス取得が必要です。また自分のGPUで動かす場合は計算資源が要り、DiffRhythm-baseで最低8GBのVRAMが求められます。手元にGPUがない場合は、公式のHugging Face Spaceのデモから試せます。
生成した曲を商用利用できますか?
一律には言えません。コードとDiT重みはApache License 2.0ですが、DiffRhythm-vaeはStability AI Community License(商用利用時の登録が必要で、年間収益が100万米ドルを超える場合は別途ライセンスの取得が必要)であり、さらにスタイル指定に使うMuQ-MuLanはCC BY-NC 4.0で非商用に限定されています。公式の推論一式をそのまま使う構成では、この最後の制約が効きます。さらに公式の免責事項が、生成物の独自性の確認、AI関与の開示、保護されたスタイルを翻案する場合の許諾取得を求めています。既存楽曲に似た作風を参照音声で指定した場合などは、公開前に個別の確認が必要です。
日本語の歌詞で生成できますか?
歌詞はLRC形式のファイルで渡し、音素変換にespeak-ngを使う構成です。付属のサンプルには中国語(eg_cn_full.lrc)と英語(eg_en_full.lrc)が含まれています。日本語については、公式リポジトリが品質を保証する記載を置いていないため、実際に生成して確かめる必要があります。なお、Windows環境で以前必要とされた日本語音声とmbrolaの追加導入は、現在は不要とされています。
DiffRhythmとDiffRhythm 2のどちらを使うべきですか?
歌詞と歌声の一致を重視するならDiffRhythm 2、生成の速さを重視するならDiffRhythm+やv1.2系が向きます。加えて、ボーカルなしの純器楽生成と曲の延長はDiffRhythm 2では未実装のため、これらが必要な場合はv1.2系を選ぶことになります。
DiffRhythm 2のコードはどこにありますか?
コードの一次配布元はXiaomiのリポジトリ(xiaomi-research/diffrhythm2)で、ASLP-lab側にも同じ内容のフォークがあります。モデルの重みはHugging FaceのASLP-lab配下(ASLP-lab/DiffRhythm2)です。本家のASLP-lab/DiffRhythmのReadmeからもリンクされていますが、コードとモデルの置き場所が組織をまたぐ点は間違えやすいところです。