ガイド

長文向けの音声合成API:章、記事、オーディオブック

長いテキストになると、音声合成APIは遅く高くなりがちです。多くのAPIは1回のリクエストを数千文字までに制限しているため、本を自分で分割し、何百回もリクエストを送り、音声をつなぎ直すことになり、しかも1文字ごとに課金されます。

SuperClonicaの音声合成APIは1回のリクエストで最大2万文字を受け付け、1つのファイルを返します。稼働中のサービスでの計測では、約1万6000文字(15.6分の音声)が25.6秒で返ってきました。このガイドでは長いテキストを音声にする方法と制限を説明します。

速い理由

サーバーはテキストを文の切れ目で分割し、複数のワーカーで同時に読み上げてから、均一な間を置いて1つのファイルにまとめます。そのため長い章でも数分ではなく数秒で済み、"stream": true を付ければ残りを作っている間にも最短300ミリ秒で聞き始められます。

1回のリクエストに入る量

1回のリクエストは最大2万文字で、その音声がプランの10分枠に収まる必要があります。1つのファイルの長さの上限はプランで決まります。

  • 無料:最大1分、約1000文字。
  • スタート、5ドル:最大3分、1回あたり約3000文字。
  • 作成者、10ドル:最大8分。
  • プロ、20ドル:最大25分、つまり2万文字まるごと。
  • スタジオ、50ドル:最大80分、長いリクエストを複数同時に送れる余裕があります。

本を章ごとに音声にする

本を章や場面に分け、各部分を章番号などのIdempotency-Keyを付けた別々のリクエストで送り、応答をそれぞれファイルに保存します。Pythonでは次のとおりです:requests.post("https://superclonica.com/api/v1/speech", headers={"Authorization": "Bearer " + key, "Idempotency-Key": "chapter-3"}, json={"text": text, "voice": "M2", "language": "ja", "format": "mp3"}, timeout=120)。503は混雑を意味します。Retry-Afterの秒数だけ待ち、同じリクエストを送り直してください。同じキーで繰り返してもテキストが二重に読み上げられることはありません。

数字、日付、略語は言葉として読まれ、改行は段落の区切りとして保たれます。

ナレーターの選び方

有料プランではSuperClonicaのカタログのどの声もAPIで使え、サイトで自分の録音からナレーターを学習させることもできます。決める前に、候補の声のページで本の一文を入れて無料で試聴してください。パソコンの外に出せない非公開の原稿なら、代わりに無料のSuperClonicaエンジンを自分で動かしてください。長いテキストも同じように読み上げます。