はじめに
Diaは、Nari Labs社によって開発されたオープンソースのテキスト音声合成(TTS)モデルであり、超リアルな対話音声の生成に重点を置いている。Diaの中核をなすのは、Hugging Face上でホストされている16億パラメータのモデルで、コードと事前学習モデルはGitHubを通じてユーザーに提供されている。オープン性と柔軟性に重点を置いて設計されているため、ユーザーは対話スクリプトと音声出力を完全に制御することができ、Diaは、生成された対話がどのように見えるかを素早く体験できるGradioインターフェースを提供する。このプロジェクトは、Google TPU Research CloudとHugging Face ZeroGPU Grantの支援を受けており、SoundStormやParakeetなどの技術にインスパイアされている。
デモアドレス:https://huggingface.co/spaces/nari-labs/Dia-1.6B
機能一覧
- シュールな対話の生成テキストスクリプトを複数の話者タグ([S1]、[S2]など)に対応した複数文字の対話音声に変換します。
- エモーションとトーン・コントロール音声キューや固定シードによって、スピーチの感情やイントネーションを調整する。
- 非言語的表現セリフの臨場感を高めるために、笑いや間などの非言語的な音を発生させる。
- グラディオ インタラクティブ・インターフェースダイアログ生成と音声出力操作を簡素化するビジュアル・インターフェースを提供します。
- オープンソースのモデルとコードユーザーは、Hugging Faceから訓練済みモデルをダウンロードするか、GitHubでソースコードを入手することができる。
- クロスデバイス対応GPU動作に対応し、将来的にはCPUにも対応予定。
- 繰り返し可能な設定ランダムなシードを設定することで、一貫した結果を生成することができます。
ヘルプの使用
設置プロセス
Diaを使うには、まずGitHubリポジトリをクローンし、環境をセットアップする必要がある。詳しい手順は以下の通りです:
- クローン倉庫::
ターミナルで以下のコマンドを実行する:git clone https://github.com/nari-labs/dia.git cd dia
- 仮想環境の構築::
Pythonを使って仮想環境を作り、依存関係を分離する:python -m venv .venv source .venv/bin/activate # Windows 用户运行 .venv\Scripts\activate
- 依存関係のインストール::
ダイヤ使用uv
依存関係を管理するツールインストールuv
そして走る:pip install uv uv run app.py
これにより、必要なライブラリーが自動的にインストールされ、Gradioインターフェースが起動する。
- ハードウェア要件::
- GPUCUDAをサポートするNVIDIA GPUを推奨。
- CPU現時点ではGPU最適化の方が優れているが、CPUへの対応も予定されている。
- ランダムアクセスメモリ少なくとも16GBのRAM、モデルのロードにはそれ以上のメモリが必要。
- インストールの確認::
うごきだすuv run app.py
その後、ターミナルはGradioインターフェイスのローカルURLを表示します(通常はhttp://127.0.0.1:7860
).このURLをブラウザで開き、インターフェイスが正しく読み込まれることを確認してください。
グラディオ・インターフェースの使用
Gradioインターフェイスは、Diaの主要なインタラクション方法であり、迅速なテストや対話の生成に適している。手順は以下の通り:
- インターフェイスを開く::
アクティベートuv run app.py
インターフェースには、テキスト入力ボックス、パラメーター設定、オーディオ出力エリアがあります。 - ダイアログスクリプトの入力::
スクリプトをテキストボックスに入力します。[S1]
そして[S2]
などのマーカーで話者を区別する。例えば[S1] 你好,今天过得怎么样? [S2] 还不错,就是有点忙。(笑)
スクリプトは、次のような非言語マークアップをサポートしています。
(笑)
. - 世代パラメータの設定::
- マキシマム・オーディオ・マーカー(
--max-tokens
): 生成される音声の長さをコントロールします。 - CFG比(
--cfg-scale
デフォルトは3.0。 - 臨時職員(
--temperature
デフォルトは1.3で、値が大きいほどランダム性が高くなる。 - トップ(
--top-p
): カーネルサンプリング確率、デフォルトは0.95。
これらのパラメーターはインターフェイスで調整でき、初心者はデフォルト値を使用できる。
- マキシマム・オーディオ・マーカー(
- オーディオキューを追加する(オプション)::
音声の一貫性を保つために、参照音声をアップロードすることができます。インターフェースの "Audio Cue "オプションをクリックし、WAVファイルを選択してください。公式ドキュメントによると、オーディオ・キューに関するガイドラインは近日中に公開される予定ですが、今のところはGradioインターフェイスの例を参考にしてください。 - オーディオの生成::
Generate "ボタンをクリックすると、モデルがスクリプトを処理し、オーディオを出力します。生成時間はハードウェアの性能に依存し、通常は数秒から数十秒です。生成されたオーディオは、インターフェースでプレビューしたり、WAVファイルとしてダウンロードすることができます。 - 種子固定::
生成されるサウンドが毎回同じであることを保証するために、ランダムシードを設定することができます。インターフェースの "Seed "オプションをクリックし、整数を入力します。35
).設定されていない場合、Diaは毎回異なるサウンドを生成する可能性があります。
コマンドラインの使用法
Gradioに加え、Diaは開発者向けのコマンドライン操作やバッチ生成もサポートしている。以下はその例である:
- CLIスクリプトの実行::
仮想環境で動作する:python cli.py "[S1] 你好! [S2] 嗨,很好。" --output output.wav
- モデルの指定::
デフォルトでは、ハギング・フェイスのnari-labs/Dia-1.6B
モデル。ローカルモデルを使用する場合は、設定ファイルとチェックポイントを提供する必要があります:python cli.py --local-paths --config config.yaml --checkpoint checkpoint.pt "[S1] 测试" --output test.wav
- 調整パラメーター::
生成パラメーターはコマンドラインから設定できる:python cli.py --text "[S1] 你好" --output out.wav --max-tokens 3072 --cfg-scale 3.0 --temperature 1.3 --top-p 0.95 --seed 35
注目の機能操作
- 複数キャラクターによる対話::
Diaの強みは、マルチアクター・ダイアログの生成です。台本は[S1]
そして[S2]
などのマーカーでキャラクターを区別すると、モデルは自動的に各キャラクターに異なる声を割り当てます。キャラクターのトーンや感情は、スクリプトで明示することをお勧めします:[S1] (兴奋)我们赢了! [S2] (惊讶)真的吗?太棒了!
- 非言語的表現::
スクリプトに追加する(笑)
そして(停顿)
などのマーカーをクリックすると、ダイヤが対応する効果音を生成します。例[S2] 这太好笑了!(笑)
- 声の一貫性::
毎回異なるサウンドが生成されるのを避けるには、シードを修正するか、オーディオキューを使用します。シードを固定するには、Gradioのインターフェイスかコマンドラインで--seed
設定。音声プロンプトは、明瞭な音声クリップを含む高品質のWAVファイルとしてアップロードする必要があります。
ほら
- 特定のサウンドのために微調整されていないモデル生成される音は毎回異なる可能性があり、シーディングやオーディオキューイングによって一貫性を確保する必要があります。
- ハードウェア制限GPUの性能は生成速度に大きな影響を与えるため、下位機種では遅くなる可能性があります。
- 倫理指針Nari Labsは、不適切なコンテンツを生成しないために、利用者が遵守すべき倫理的および法的なガイドラインを提供します。
アプリケーションシナリオ
- コンテンツ制作
Diaは、ポッドキャスト、アニメーション、ショートビデオ用のリアルな台詞の生成に適しています。クリエイターは、スクリプトを入力するだけで、キャラクターの声を素早く生成することができ、レコーディングのコストを削減できます。例えば、アニメーターは、キャラクターのイントネーションを変えて台詞を生成し、作品を盛り上げることができます。 - 教育とトレーニング
Diaは、言語学習やロールプレイトレーニングのための音声ダイアログを作成することができます。例えば、語学教師は、生徒がリスニングやスピーキングを練習できるよう、実際の場面をシミュレートしたマルチロール・ダイアログを作成することができます。 - ゲーム開発
ゲーム開発者は、Diaを使用してNPCの動的なダイアログを生成できます。スクリプトは感情タグ付けをサポートし、さまざまなシナリオに応じたキャラクター固有の台詞を生成することができます。 - 研究開発
AI研究者は、Diaのオープンソースコードに基づく二次開発を通じて、TTS技術を探求することができます。このモデルはローカルローディングをサポートしており、実験や最適化に適しています。
品質保証
- Diaはどのような入力フォーマットに対応していますか?
Diaは、以下のテキストスクリプトを受け付けます。[S1]
そして[S2]
マーカーは話者を区別する。以下のような非言語的トークン。(笑)
オーディオ・キューはオプションでWAVフォーマットも用意されている。 - 生成されるサウンドに一貫性を持たせるには?
固定シードは、(--seed
)、またはオーディオキューの実装をアップロードします。シードはGradioのインターフェイスまたはコマンドラインで設定でき、オーディオキューは高品質のWAVファイルである必要があります。 - DiaはCPU動作に対応していますか?
Diaは現在GPU上で動作するように最適化されており、将来的にはCPUへの対応も予定されている。 - 音声の生成にはどのくらい時間がかかりますか?
生成時間はハードウェアとスクリプトの長さに依存します。高性能GPUでは、短いダイアログの生成に通常数秒、長いダイアログでは数十秒かかります。 - ディアは無料ですか?
Diaはオープンソースプロジェクトであり、コードとモデルは無料である。実行に必要なハードウェアの費用はユーザーの負担となる。