Documentation Index Fetch the complete documentation index at: https://docs.supertoneapi.com/llms.txt
Use this file to discover all available pages before exploring further.
このドキュメントは英語の原文から自動翻訳されています。表現に不自然な箇所がある場合があります。正確な内容は英語の原文 もあわせてご確認ください。
カスタムボイスは、お使いのアカウントに紐づくクローンボイスです。一度登録すれば、プリセットボイスとまったく同じように扱えます — 同じtext_to_speechエンドポイント、同じパラメータ、同じレスポンス形式です。
このサンプルでは一連の流れを通して説明します: オーディオサンプルのアップロード、カスタムボイスの一覧取得、新しいクローンを使った音声生成までを実行します。
APIによるボイスクローン作成はFreeプランではご利用いただけません。サンプルオーディオはWAVまたはMP3で3 MB未満 、ボイス名は100文字以下 にしてください。
ステップ1 — サンプルからボイスをクローンする
import os
from supertone import Supertone
with Supertone( api_key =os.environ[ "SUPERTONE_API_KEY" ]) as client:
with open ( "voice_sample.wav" , "rb" ) as f:
response = client.custom_voices.create_cloned_voice(
files ={ "file_name" : "voice_sample.wav" , "content" : f.read()},
name = "Hana — narrator voice" ,
description = "Calm, mid-pitch female voice for audiobook narration." ,
)
print ( "Created custom voice:" , response.voice_id)
import { Supertone } from "@supertone/supertone" ;
import * as fs from "node:fs" ;
const client = new Supertone ({ apiKey: process . env . SUPERTONE_API_KEY });
const audio = fs . readFileSync ( "voice_sample.wav" );
const response = await client . customVoices . createClonedVoice ({
files: {
fileName: "voice_sample.wav" ,
content: audio ,
},
name: "Hana — narrator voice" ,
description: "Calm, mid-pitch female voice for audiobook narration." ,
});
console . log ( "Created custom voice:" , response . voiceId );
curl -X POST "https://supertoneapi.com/v1/custom-voices/cloned-voice" \
-H "x-sup-api-key: $SUPERTONE_API_KEY " \
-F "files=@voice_sample.wav" \
-F "name=Hana — narrator voice" \
-F "description=Calm, mid-pitch female voice for audiobook narration."
レスポンスには新しいvoice_idが含まれます。これを保存しておいてください — 以降のTTS呼び出しで渡す値です。
ステップ2 — カスタムボイスを一覧表示する
result = client.custom_voices.list_custom_voices( page_size = 20 )
for voice in result.items or []:
print (voice.voice_id, voice.name, voice.description)
const result = await client . customVoices . listCustomVoices ({ pageSize: 20 });
for ( const voice of result . items ?? []) {
console . log ( voice . voiceId , voice . name , voice . description );
}
名前や説明でフィルタリングしたい場合はsearch_custom_voicesを使用してください。
ステップ3 — 新しいボイスで音声を生成する
response = client.text_to_speech.create_speech(
voice_id =NEW_VOICE_ID,
text = "The first chapter begins on a quiet rainy morning." ,
language = "en" ,
model = "sona_speech_2" ,
)
with open ( "speech.wav" , "wb" ) as f:
f.write(response.result.read())
カスタムボイスは、プリセットボイスと同じvoice_settings、output_format、include_phonemes、normalized_textの各フィールドをサポートします。
ステップ4 — 更新または削除する
# Rename or update the description
client.custom_voices.edit_custom_voice(
voice_id =NEW_VOICE_ID,
name = "Hana — narrator (v2)" ,
description = "Improved take with cleaner room tone." ,
)
# Permanently delete
client.custom_voices.delete_custom_voice( voice_id =NEW_VOICE_ID)
ヒント
同一アカウントのみで利用可能です。 クローンボイスは、そのボイスを作成したアカウントからのみ呼び出せます。別アカウントとvoice_idを共有しても403 Forbiddenが返ります。
プラットフォーム間で共有されます。 Supertone Play でクローンしたボイスは、自動的にlist_custom_voicesに表示されます。逆も同じで、API経由でクローンしたボイスはPlayでも表示されます。
サンプル品質。 クリーンなモノラル、単一話者のオーディオ(5〜30秒程度)が最も良いクローン結果を生み出します。BGM、複数話者の混在、強い室内ノイズは避けてください。
権利と開示。 アップロードするボイスをクローンする権利を持っているか必ず確認してください。AI生成音声と開示に関する各管轄区域のルールも確認しましょう。
関連情報
クローンボイスの作成 アップロードの完全なスキーマと制約を確認できます。
ボイス プリセットボイスとカスタムボイスがどう組み合わさるかを解説します。