Dia - リアルな対話を生成するオープンウェイトTTSモデル
(github.com/nari-labs)- Diaはテキストのセリフに基づいて高品質な対話音声を生成する1.6BパラメータのTTSモデルで、音声プロンプトを通じて感情・トーンの調整が可能
- Nari Labsが開発し、「Nari」は純粋な韓国語で「ユリ」を意味する
- [S1], [S2]で話者を指定でき、
(laughs),(coughs)などの非言語表現も生成可能で、簡単な音声クローニングにも対応 - Hugging Faceですぐに実行可能で、別途インストール不要のブラウザベースのテストとZeroGPU対応も提供
- 現時点では英語のみ対応、10GB以上のVRAMが必要で、今後量子化モデルや多言語対応などを予定
Dia: 対話中心の音声合成モデル
- DiaはNari Labsが開発した1.6BパラメータのオープンウェイトTTSモデル
- 従来のTTSのように話者ごとの音声を分けて生成するのではなく、対話全体を一度に生成する方式を採用
- デモ: Hugging Face Space
- コード: GitHub リポジトリ
主な機能
対話型音声生成
- テキスト内の
[S1],[S2]で話者を指定可能 (laughs),(coughs)など非言語的なサウンドもテキストで挿入可能- 感情、トーン、声のスタイルを音声プロンプトで指定可能
音声クローニング
- サンプル音声とそのセリフをテキストで一緒に提供すると音声クローニング機能が有効化
- Hugging Face Spaceで音声をアップロードして試用可能
- 詳細な例は
example/voice_clone.pyを参照
ライブラリとして使用
from dia.model import Dia
model = Dia.from_pretrained("nari-labs/Dia-1.6B")
output = model.generate(text)
soundfileでMP3出力が可能- PyPIパッケージとCLIツールも近日提供予定
インストールと実行
すぐに試す方法(Gradioベース)
git clone https://github.com/nari-labs/dia.git
cd dia && uv run app.py
または uv がない場合:
cd dia
python -m venv .venv
source .venv/bin/activate
pip install uv
uv run app.py
- 実行時にDescript Audio Codecを自動ダウンロード
- 実行のたびに音声がランダム生成されるため、一貫性のためにはプロンプトやseedの固定が必要
性能とハードウェア要件
- テスト環境: PyTorch 2.0+, CUDA 12.6以上
- 推奨VRAM: 10GB以上、量子化(Quantized)版のリリースも近日予定
- A4000 GPU基準で約40トークン/秒を生成(86トークン = 約1秒の音声)
torch.compile使用時は高速化の可能性あり
今後の計画とTODO
- Docker対応
- 推論速度の最適化
- モデル量子化(メモリ効率化)
- 多言語対応、より多くの話者への対応など拡張を検討中
ライセンスと利用制限
- Apache 2.0 ライセンスを適用
- 禁止される利用例:
- 他人の音声を許可なく生成すること(Identity Misuse)
- 虚偽情報の生成(Fake News など)
- 違法・悪意ある目的
コミュニティと貢献
- 研究人員: フルタイム1名 + パートタイム1名で構成された小規模チーム
- Discord サーバー を通じてフィードバック共有や機能提案が可能
- コントリビューターとともに成長するオープンソース志向のプロジェクト
参考と技術的基盤
- サウンドモデル: SoundStorm, Parakeet, Descript Audio Codec から着想を得ている
- 計算基盤: Google TPU Research Cloud、Hugging Face ZeroGPUプログラム
- 「Nari」は純粋な韓国語で「ユリ」を意味する
13件のコメント
わあ、とても良いですね。お二人で進めるには、学習データの確保まで簡単ではなかったはずなのに、本当にすごいです。
作者ご本人の登場ですね〜。私も一度使ってみないと。
韓国語対応に期待です!!
おお、これ私が作って投稿しようと思っていたのですが、もう素早く投稿してくださっていたんですね。ありがとうございます。
韓国の方が作られたものだったんですね! デモページで比較しながら聴いてみたら、性能が本当に素晴らしいですね。オーディオプロンプトを与えると、その声を参照するのでしょうか? s1、s2に分かれた例をそれぞれ入れる必要があるのか気になります。
ありがとうございます! 音声プロンプトに
[S1]と[S2]に区別された例を入れる必要はありません。[S1]だけを入れてもよく、[S1]と[S2]の両方を入れても大丈夫です。[S1]が常に先に来ることだけ守ってください。Hacker Newsで多くのアップボートを集めていたので、自動的にGN+が要約していたようです。私は追加で少し整理しただけです。
応援しています!!
ありがとうございます :))
私が作ったモデルです(笑)...
素晴らしいです!!ありがたく使わせていただきます T_T/
ありがとうございます :)) GitHub のスターをお願いします 笑
完了しました!韓国語のニュースも近いうちに見られるとうれしいです!!ありがとうございます
Hacker Newsの意見
技術的な驚嘆と称賛
音声品質と特徴に対する評価
デモ使用感と直接テスト
オーディオブック・小説活用に関する議論
音声合成関連の機能要望と質問
ライセンスとオープンソース関連
学習データと訓練過程に関する質問
名前の重複をめぐる論争
使い勝手と改善フィードバック
venv明記など、README改善の提案開発・応用および統合事例
その他