ガイド

AI音声エージェントのための音声合成:速くて安い音声レイヤー

AI音声エージェントは連鎖でできています。音声認識が相手の言葉をテキストにし、言語モデルが返答を書き、音声合成がそれを話します。最後のステップはエージェントの声と体感の速さを大きく左右し、文字数課金では最も高い費用になりがちです。

SuperClonicaの音声合成APIはこのレイヤーのために作られています。当社の測定では最短約300ミリ秒で音声をストリーミングし、文字数ではなく時間で課金され、カタログの190の声や自分で学習した声でエージェントを話させられます。このガイドでは組み込み方と限界を説明します。

文ごとに話させる

モデルが返答を書き終えるまで待たないでください。出力をストリームで読み、文の終わりごとに区切って、できた文から "stream": true を付けて音声合成APIに送ります。モデルが次の文を書いているあいだに、最初の文が再生されます。

短い文ほど最初の音が早く届きます。長い独白も使えます。ストリーミングでは長いテキストを分割し、複数のワーカーで同時に合成して、最初の部分から再生します。

import os, requests
URL = "https://superclonica.com/api/v1/speech"
HEADERS = {"Authorization": "Bearer " + os.environ["SUPERCLONICA_KEY"]}
def say(sentence, voice="F1", language="en"):
    with requests.post(URL, headers=HEADERS, stream=True, timeout=120,
                       json={"text": sentence, "voice": voice, "language": language, "stream": True}) as answer:
        answer.raise_for_status()
        for chunk in answer.iter_content(4096):
            player.write(chunk)  # an Ogg player or decoder of your choice

期待できる遅延

当社の測定では、最初の音はリクエストから約300ミリ秒で届き、これにサーバーまでのネットワーク時間が加わります。Oggはすぐにストリーミングされますが、mp3とwavは約30秒を超える長さのテキストでのみストリーミングされるので、エージェントにはOggを使ってください。APIは通常のHTTPSで分割して応答します。WebSocketはなく、1文が1リクエストです。

電話での利用

電話では通常8 kHzのμ-lawが必要です。たとえばTwilio Media Streamsは8000 Hzのaudio/x-mulawを送受信します。Oggストリームをデコードして8 kHzにリサンプリングし、μ-lawにエンコードしてから通話に送ってください。Twilio向けのカスタム音声のガイドで、録音済みアナウンスの変換方法を紹介しています。

プランによるエージェントの制限

プランは10分ごとの枠で使える音声の秒数を決めます。月5ドルのスタートは枠ごとに3分、作成者は8分、プロは20分、スタジオは65分です。これはすべての会話の音声の合計なので、同時に話せる通話の数を決めます。エージェントが話すのは通話のおよそ3分の1なので、スタートで忙しい回線1本程度、プロで5〜6本程度です。枠を使い切るとAPIは429とRetry-Afterを返し、拒否・失敗したリクエストは課金されません。

無料キーは1日1分の音声を使えます。支払う前にエージェントを作って試すには十分です。

声の選び方

カタログのどの声も、ページに表示されるIDを使ってどのプランでもAPIで使えます。落ち着いたナレーターやアナウンサーの声はサポート窓口に、明るい声は営業やゲームに向いています。まずデモを聴き、それぞれのページで同じテスト文を2〜3人の声で読み上げて比べてください。ブランドの声のように、自分の録音からサイトで声を学習させることもできます。

Supertonic 3は31言語を話しますが、中国語にはまだ対応しておらず、SSMLや単語ごとのタイムスタンプもありません。エージェントにそれらが必要なら、大手のクラウド音声合成のほうが向いています。