> For the complete documentation index, see [llms.txt](https://docs.digitalhumans.jp/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.digitalhumans.jp/dev/miniprem/services/riva.md).

# NVIDIA RIVA

{% hint style="info" %}
本ページの内容はデジタルヒューマン株式会社の正式サポート対象外です。参考情報としてご利用ください。
{% endhint %}

{% hint style="info" %}
**NVIDIA RIVA:** GPU アクセラレーションによる TTS（音声合成）／STT（音声認識）プラットフォームで、48kHz 16bit モノラル PCM の低レイテンシ合成を実現します。NVIDIA Container Toolkit と NGC API キーが必要です。
{% endhint %}

NVIDIA RIVA は GPU アクセラレーションを活用した音声 AI プラットフォームであり、ミニプレム（MiniPrem）に対して低レイテンシの TTS（音声合成）および STT（音声認識）機能を提供します。本ガイドではデプロイのセットアップと設定について説明します。Admin Portal の音声設定については [Voice (TTS) Options](https://docs.uneeq.io/#/hosted-experience/tts-options) を参照してください。

## 前提条件

* CUDA 対応の NVIDIA GPU
* [NVIDIA プロプライエタリドライバー（バージョン 580 以上）](/dev/miniprem/nvidia-drivers.md)
* インストールおよび設定済みの [NVIDIA Container Toolkit](https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/latest/install-guide.html)
* Ubuntu 24.04 LTS 以降上で動作する Docker Engine
* NGC API キー（[NVIDIA NGC](https://ngc.nvidia.com/) から取得）

{% hint style="warning" %}
**要件:** RIVA を利用するには NVIDIA Container Toolkit が必要です。標準の Docker のみでは不十分です。Container Toolkit により、Docker コンテナ内から GPU にアクセスできるようになります。
{% endhint %}

## セットアップ

1. **NGC レジストリに認証します:**

   ```bash
   docker login nvcr.io
   # Username: $oauthtoken
   # Password: <your NGC API key>
   ```
2. **RIVA コンテナイメージをプルします:**

   ```bash
   docker pull nvcr.io/nvidia/riva/riva-speech:latest
   ```
3. **Docker Compose で RIVA を起動します:**

   RIVA は MiniPrem のデプロイメントと並行してコンテナ化されたマイクロサービスとして動作します。Docker Compose の設定に以下を追加するか、RIVA 用の compose ファイルを使用してください。

   ```yaml
   services:
     riva:
       image: nvcr.io/nvidia/riva/riva-speech:latest
       ports:
         - "50051:50051"
       deploy:
         resources:
           reservations:
             devices:
               - driver: nvidia
                 count: 1
                 capabilities: [gpu]
       environment:
         - RIVA_API_KEY=${RIVA_API_KEY:-}
   ```
4. **RIVA が起動していることを確認します:**

   ```bash
   docker logs riva
   # Look for: "Riva server is ready"
   ```

## 設定

### 環境変数

レンダラー（開発コード：Renny）から RIVA に接続するために、以下の環境変数を設定します。

| 変数                 | 説明                  | デフォルト             |
| ------------------ | ------------------- | ----------------- |
| `RIVA_SERVER_ADDR` | RIVA gRPC サーバーのアドレス | `localhost:50051` |
| `RIVA_API_KEY`     | 認証用 NGC API キー（任意）  | なし                |

これらは MiniPrem の `.env` ファイル、または Docker Compose の environment セクションに設定してください。

```bash
RIVA_SERVER_ADDR=localhost:50051
RIVA_API_KEY=your-ngc-api-key
```

### Admin Portal の設定

RIVA が起動した後は、Admin Portal で次のように設定します。

1. Admin Portal にログインします。
2. 対象ペルソナの **Voice** タブに移動します。
3. TTS プロバイダーとして **NVIDIA RIVA** を選択します。
4. 音声名（例: `Magpie-Multilingual.EN-US.Leo`）を入力します。
5. 必要に応じて RIVA の URL と API キーのオーバーライドを設定します。
6. 変更を保存します。

Admin Portal の詳細な設定については [Voice (TTS) Options](https://docs.uneeq.io/#/hosted-experience/tts-options) を参照してください。

## 音声モデル

RIVA は複数の音声モデルをサポートしています。代表的な音声は次のとおりです。

| 音声名                               | 言語     | 性別 |
| --------------------------------- | ------ | -- |
| `Magpie-Multilingual.EN-US.Leo`   | 英語（米国） | 男性 |
| `Magpie-Multilingual.EN-US.Emily` | 英語（米国） | 女性 |

利用可能な音声は、お客様の RIVA インスタンスにデプロイされているモデルに依存します。サポートされている音声の一覧およびモデルのダウンロードについては [NVIDIA RIVA TTS ドキュメント](https://docs.nvidia.com/nim/riva/tts/latest/getting-started.html) を参照してください。

## 補足事項

* RIVA はコンテナ起動後、リクエストを処理できるようになるまで数分のウォームアップ時間を要します。
* 音声出力は Renny のレンダラーの想定に合わせて 48kHz 16bit モノラル PCM で配信されます。
* RIVA は Renny と同じ GPU 上で動作させることも可能ですが、本番環境では専用 GPU の利用を推奨します。
* エアギャップ環境にデプロイする場合は、事前に RIVA のモデルとコンテナイメージをダウンロードしておいてください。
