このページの内容
Fish Audio のオンライン音色で読み上げを生成する
関連ページ:音色とフレーズ
シナリオ:この PC に音声モデルを入れたくない(または GPU がそれほど強くなく、ローカル生成が遅い)ので、Fish Audio の音色ライブラリにある既存の音色を使いたい。普段の読み上げは日本語の音色にし、ティナの一文だけは中国語の音色で中国語(「蒂娜好了」)を読ませたい。
音声は生成時に 1 回だけリクエストしてローカルに保存するため、ゲーム中の読み上げで通信は発生しません。HTTP サービスには音声モデルは不要ですが、概要と再生 の 音声読み上げを有効化 はオンにしておく必要があります。
ステップ 1:キーと音色 ID を用意する
- Fish Audio にログインし、API Keys ページでキーを作成してコピーします。API は従量課金です。料金は公式サイトで確認してください。
- 音色ライブラリで使いたい日本語の音色を開きます。アドレスは
https://fish.audio/m/c5c17c9709384ba9a4b294662a2af0b1のような形で、/m/の後ろの文字列が音色 ID です。 - 同じ方法で中国語の音色を探し、ID を控えます。例:
0f08cacd3e354471a4b94dd00b4cc4a3。
ステップ 2:サービスを追加する
を開き、HTTP 音声サービス でプリセット OpenAI 互換 API を選んで サービスを追加 をクリックします。このプリセットはすでに POST、JSON 本文、
Bearer {secret} 認証になっているので、次の項目だけ変更します。| 項目 | 入力内容 |
|---|---|
| 名前 | fish audio |
| 同時実行数 | 2(既定値) |
| メソッド | POST |
| URL | https://api.fish.audio/v1/tts |
| キー | ステップ 1 でコピーしたキー |
| ヘッダー | Authorization = Bearer {secret} はそのまま。ヘッダーを追加 で model = s2.1-pro を追加 |
| 本文 | エンコードは JSON、内容は下記 |
| レスポンス | 音声ファイル |
本文:
{
"text": "{text}",
"reference_id": "{voice}",
"format": "mp3"
}{text}はフレーズの文に、{voice}は下で言語ごとに入力した音色 ID に置き換わります。引用符や改行は自動でエスケープされます。formatはmp3かwavにします。Fish Audio はopusとpcmも返せますが、アプリはこの 2 つの形式に対応していません。modelヘッダーで使うモデルを指定します。指定できる値は Fish Audio の API リファレンス を確認してください。
フォームの下部で、言語ごとに
{lang} と {voice} を入力します。| 言語 | {lang} | {voice} |
|---|---|---|
| 中国語 | zh | 0f08cacd3e354471a4b94dd00b4cc4a3 |
| 英語 | en | 0f08cacd3e354471a4b94dd00b4cc4a3 |
| 日本語 | ja | c5c17c9709384ba9a4b294662a2af0b1 |
この本文では
{lang} を使っていないので、値は何でもかまいません。英語用の音色が特になければ、中国語と同じ ID を入れておけます。ステップ 3:試聴して保存する
- テスト で 日本語 を選び、既定の文のまま 生成して試聴 をクリックします。音声が流れ、下に成功と長さが表示されれば設定は正しいです。
- 中国語 に切り替え、中国語の文(例:「蒂娜好了」)を入力してもう一度試し、中国語の音色が使われることを確認します。
- 保存 をクリックします。
試聴に失敗すると、サービスが返したステータスコードと理由がフォームの下に表示されます。
| 表示 | 原因 |
|---|---|
HTTP 401 | キーが間違っているか、Authorization の値が Bearer {secret} になっていない(Bearer の後に半角スペースが 1 つ必要) |
HTTP 402 | Fish Audio アカウントの残高不足 |
その他の HTTP 4xx | 音色 ID か本文の誤り。返された理由に従って修正する |
| 音声のデコードに失敗する | format が opus か pcm になっている。mp3 に戻す |
| 接続失敗・タイムアウト | この PC から api.fish.audio に接続できない。ネットワークを確認する |
ステップ 4:既定で Fish Audio を使う
- フレーズ集 を開き、一括生成 で HTTP サービス を選び、「fish audio」を選択します。
- 生成するフレーズにチェックを入れ、生成開始 をクリックします。
- この選択は保存されます。以降 読み上げ総覧 で 不足分の音声を一括生成 をクリックしたときも Fish Audio で生成されます。
各フレーズは自分の言語の行の音色を使います。アプリが日本語表示なら、自動生成とカスタムテキストの読み上げはどれも日本語のフレーズなので、日本語の行の音色が使われます。
ステップ 5:ティナの一文だけ中国語の音色にする
- を開き、音声読み上げ を展開して「時間凝固(ティナCD)」を探します(設定方法は ティナの CD が戻ったら音声で知らせる を参照)。
- 終了時に読み上げ で文言のソースを カスタムテキスト にし、「蒂娜好了」と入力します。
- 生成する音声 を「fish audio」、生成言語 を 中国語 にします。
- 音声を生成 をクリックし、生成が終わったら 試聴 で確認します。
この一文は中国語の行の
{lang} と {voice} を使い、ほかの読み上げは引き続きステップ 4 の設定で生成されます。自動生成 の読み上げも 生成する音声 を個別に選べますが、生成言語 を変えられるのは カスタムテキスト だけなので、ここではカスタムテキストを使います。元に戻すときは 生成する音声 を 全体設定を使用 に戻します。注意点
- フレーズ 1 つにつきリクエストは 1 回です。文に
${阶数}を含めると複数のフレーズ(階級ごとに 1 つ)に展開され、その分リクエストも増えます。幻想階級プレースホルダー を参照してください。 - 音色 ID、
model、本文、URL を変更すると、このサービスで生成した音声は 再生成が必要 と表示され、再生成が必要になります。キーだけを変更した場合は再生成は不要です。 - 一括生成中に
HTTP 401やHTTP 402が返ると、生成はすぐに止まります。生成済みの音声は残ります。サービス混雑時のHTTP 429/HTTP 503は自動で再試行されます。頻繁に出る場合は 同時実行数 を1にしてください。 - サービスとキーはこの PC にだけ保存され、ロードアウトの共有 には含まれません。メンバーがロードアウトをインポートすると、ステップ 5 の読み上げの 生成する音声 は サービスが利用できません と表示されます。メンバー自身がサービスを追加し、選び直す必要があります。