You can use the following APIs to create voice clones, text-to-speech, voice changer, and manage voice resources.
The resources (image, video, voice) generated by our API are valid for 7 days. Please save the relevant resources as soon as possible to prevent expiration.

Rates

PlanProMaxBusinessEnterprise
Text-to-Speech4.4 credits/1000 characters3.2 credits/1000 characters2.4 credits/1000 charactersCustomized
Instant voice clone30 voices180 voices500 voicesCustomized
Voice changer4.4 credits/minute3.2 credits/minute2.4 credits/minuteCustomized

Models

Voice Model Overview: The following multilingual voice models are available for text-to-speech synthesis, each with strong performance across different language families.
Model NameDescription
Akool Multilingual 1Performs well on English, Spanish, French, German, Italian, European Portuguese, Dutch, Russian, and other Western languages
Akool Multilingual 2Excels at text-to-speech across various languages, but does not support voice cloning.
Akool Multilingual 3Performs well on Chinese (Mandarin), Chinese (Cantonese ), Japanese, Korean, as well as English, Spanish, French, and other major Western languages
Akool Multilingual 4Performs well on Portuguese (Brazil).

Create Voice Clone

POST https://openapi.akool.com/api/open/v4/voice/clone
Request Headers
ParameterValueDescription
AuthorizationBearer {token}Your API Key used for request authorization.Get Token
Body Attributes
ParameterTypeRequiredValueDescription
source_voice_fileStringtrueOriginal audio file URL, supports mp3, mp4, wav, etc. Must be a public accessible URL, The maximum file size is 30MB.
voice_optionsObjectfalseAudio tagging options
- styleArrayfalseVoice style tags (e.g., [“Authoritative”, “Calm”])
- genderArrayfalseGender tags (e.g., [“Male”, “Female”])
- ageArrayfalseAge tags (e.g., [“Young”, “Middle”, “Elderly”])
- scenarioArrayfalseUse case tags (e.g., [“Advertisement”, “Education”])
- remove_background_noiseBooleanfalsefalseRemove background noise, disabled by default
- languageStringfalseenLanguage code (ISO 639-1) of the audio file. Defaults to “en” if not specified
- clone_promptStringfalseSupported voice models: Akool Multilingual 3, Must match the audio content exactly, including punctuation, to enhance clone quality. Sound reproduction example audio. Providing this parameter will help enhance the similarity and stability of the voice synthesis’s sound quality. If using this parameter, a small sample audio segment must also be uploaded. The audio file uploaded must comply with the following specifications: The format of the uploaded audio file should be: mp3 or wav format; The duration of the uploaded audio file should be less than 8 seconds; The size of the uploaded audio file should not exceed 20 MB;
- need_volume_normalizationBooleanfalsefalseSupported voice models: Akool Multilingual 3, Audio cloning parameter: Enable volume normalization, defaults to false
nameStringfalseAudio name
webhookUrlStringfalseCallback url address based on HTTP request
voice_model_nameStringfalseThe designated model for Clone, Supported voice models: Akool Multilingual 1, Akool Multilingual 3, Akool Multilingual 4. getVoiceModelName
Response Attributes
ParameterTypeValueDescription
codeint1000Interface returns business status code(1000:success)
msgStringInterface returns status information
dataObjectResponse data object
- uidInteger101400User ID
- team_idString”6805fb69e92d9edc7ca0b409”Team ID
- voice_idStringnullVoice ID, this value will be updated after task completion, you can view it in the voiceList.Get Voice List
- genderString”Male”Voice gender
- nameString”MyVoice0626-01”Voice name
- previewStringnullPreview audio URL, this value will be updated after task completion, you can view it in the voiceList.Get Voice List
- textString”This is a comic style model…”Preview text content
- durationNumber8064Audio duration in milliseconds
- statusInteger1Voice clone status: 【1:queueing, 2:processing, 3:completed, 4:failed】
- create_timeLong1751349718268Creation timestamp
- styleArray[“Authoritative”, “Calm”]Voice style tags
- scenarioArray[“Advertisenment”]Use case scenario tags
- ageArray[“Elderly”, “Middle”]Age category tags
- deduction_creditInteger0Deducted credits
- webhookUrlString”Callback URL”Callback URL
- _idString”686379d641e5eb74bb8dfe3f”Document ID
- source_voice_fileStringhttps://drz0f01yeq1cx.cloudfront.net/1751363983518-9431-audio1751363981879.webmOriginal audio file URL

Example

Body
{
    "source_voice_file": "https://drz0f01yeq1cx.cloudfront.net/1755534706613-000a30e917d848d9bd166b636530ae21-38a696952ca94b9eb9ecf07ced494a58.mp3",
    "name": "My Voice",
    "voice_options": {
        "remove_background_noise": true,
        "style": ["Authoritative","Calm","Confident","Enthusiastic"],
        "gender": ["Male"],
        "age": ["Elderly"],
        "scenario": ["Advertisenment"],
        "language": "en",
        "clone_prompt": "In late spring, the peony garden awakens with layers of petals of the Yao Huang and Wei Zi varieties. When the morning dew has not yet dried, the edges of the petals are glistening with crystal-like droplets, and the inner crimson, like silk, gradually deepens, as if the sunset had been cut into a dress. When the wind blows, the sea of flowers surges, and the golden stamens tremble, releasing a faint fragrance that lures bees and butterflies to swirl around the flower centers in golden vortices. The green peony, in particular, when it first blooms, has tips like jade carvings with a hint of moon white, and when it is in full bloom, it is like an ice wine in an emerald cup, making one suspect it is a divine creation from the Queen Mother's Jade Pool. Occasionally, a petal falls, becoming a rolling agate bead on the embroidered carpet, and even the soil is permeated with the elegant fragrance. Such a captivating beauty is why Liu Yuxi wrote that only the peony is truly the national color, and when it blooms, it moves the entire capital. It uses the entire season's brilliance to interpret the grandeur of being the queen of flowers.",
        "need_volume_normalization": true
    },
    "voice_model_name": "Akool Multilingual 3",
    "webhookUrl": ""
}
Request
curl --location 'https://openapi.akool.com/api/open/v4/voice/clone' \
--header 'Authorization: Bearer {{token}}' \
--header 'Content-Type: application/json' \
--data '{
    "source_voice_file": "https://drz0f01yeq1cx.cloudfront.net/1755534706613-000a30e917d848d9bd166b636530ae21-38a696952ca94b9eb9ecf07ced494a58.mp3",
    "name": "My Voice",
    "voice_options": {
        "remove_background_noise": true,
        "style": ["Authoritative","Calm","Confident","Enthusiastic"],
        "gender": ["Male"],
        "age": ["Elderly"],
        "scenario": ["Advertisenment"],
        "language": "en",
        "clone_prompt": "In late spring, the peony garden awakens with layers of petals of the Yao Huang and Wei Zi varieties. When the morning dew has not yet dried, the edges of the petals are glistening with crystal-like droplets, and the inner crimson, like silk, gradually deepens, as if the sunset had been cut into a dress. When the wind blows, the sea of flowers surges, and the golden stamens tremble, releasing a faint fragrance that lures bees and butterflies to swirl around the flower centers in golden vortices. The green peony, in particular, when it first blooms, has tips like jade carvings with a hint of moon white, and when it is in full bloom, it is like an ice wine in an emerald cup, making one suspect it is a divine creation from the Queen Mother's Jade Pool. Occasionally, a petal falls, becoming a rolling agate bead on the embroidered carpet, and even the soil is permeated with the elegant fragrance. Such a captivating beauty is why Liu Yuxi wrote that only the peony is truly the national color, and when it blooms, it moves the entire capital. It uses the entire season's brilliance to interpret the grandeur of being the queen of flowers.",
        "need_volume_normalization": true
    },
    "voice_model_name": "Akool Multilingual 3",
    "webhookUrl": ""
}'
Response
{
    "code": 1000,
    "msg": "OK",
    "data": {
        "uid": 101400,
        "team_id": "6805fb69e92d9edc7ca0b409",
        "voice_id": null,
        "gender": "Male",
        "name": "MyVoice0626-01",
        "preview": null,
        "text": "This is a comic style model, this is a comic style model, this is a comic style model, this is a comic style model",
        "duration": 8064,
        "status": 1,
        "create_time": 1751349718268,
        "style": [
            "Authoritative",
            "Calm"
        ],
        "scenario": [
            "Advertisenment"
        ],
        "age": [
            "Elderly",
            "Middle"
        ],
        "deduction_credit": 0,
        "webhookUrl": "",
        "source_voice_file": "https://drz0f01yeq1cx.cloudfront.net/1751363983518-9431-audio1751363981879.webm",
        "_id": "686379d641e5eb74bb8dfe3f"
    }
}

Create Text to Speech

POST https://openapi.akool.com/api/open/v4/voice/tts
Request Headers
ParameterValueDescription
AuthorizationBearer {token}Your API Key used for request authorization.Get Token
Body Attributes
ParameterTypeRequiredValueDescription
input_textStringtrueFor input text, the per-request character limit depends on the subscription plan: Pro – 5,000, Pro Max – 10,000, Business – 50,000.
voice_idStringtrueVoice ID, Voice synthesis ID. If both timber_weights and voice_id fields have values, timber_weights will not take effect.get this voice_id from your cloned voices or akool voice list.getVoiceId
voice_optionsObjectfalseAudio settings
- stabilityNumberfalseVoice stability (0-1) , Supported voice models: Akool Multilingual 1, Get Voice Model Name
- similarity_boostNumberfalseSimilarity boost (0-1) , Supported voice models: Akool Multilingual 1, Get Voice Model Name
- styleNumberfalseVoice style (0-1) , Supported voice models: Akool Multilingual 1, Akool Multilingual 2. Style examples: cheerful, Get Voice Model Name
- speedNumberfalseSpeech speed (0.7-1.2) , Supported voice models: Akool Multilingual 1, Akool Multilingual 2, Akool Multilingual 3, Get Voice Model Name
- speaker_boostBooleanfalseSpeaker boost, Supported voice models: Akool Multilingual 1, Get Voice Model Name
- emotionStringfalseEmotion (happy, sad, angry, fearful, disgusted, surprised, neutral) , It only supports Chinese voice. Supported voice models: Akool Multilingual 2, Akool Multilingual 3, Get Voice Model Name
- volumeIntegerfalseVolume (0-100) , Supported voice models: Akool Multilingual 2, Akool Multilingual 3, Get Voice Model Name
webhookUrlStringfalseCallback url address based on HTTP request
language_codeStringfalseCurrently supported: Akool Multilingual 1, Akool Multilingual 3 and Akool Multilingual 4. When passing in, only Language code (ISO 639-1) such as “zh”, “pt” is supported. This parameter is designed to enhance the use of minority languages. Adding audio effects will make it better, but it cannot achieve the effect of translation.
extra_optionsObjectfalseAdditional parameter settings
- previous_textStringfalseSupported voice models: Akool Multilingual 1, getVoiceModelName. The text that came before the text of the current request. Can be used to improve the speech’s continuity when concatenating together multiple generations or to influence the speech’s continuity in the current generation.
- next_textStringfalseSupported voice models: Akool Multilingual 1, getVoiceModelName. The text that comes after the text of the current request. Can be used to improve the speech’s continuity when concatenating together multiple generations or to influence the speech’s continuity in the current generation.
- apply_text_normalizationStringfalseSupported voice models: Akool Multilingual 1, getVoiceModelName. This parameter controls text normalization with three modes: ‘auto’, ‘on’, and ‘off’. When set to ‘auto’, the system will automatically decide whether to apply text normalization (e.g., spelling out numbers). With ‘on’, text normalization will always be applied, while with ‘off’, it will be skipped.
- apply_language_text_normalizationBooleanfalsefalseSupported voice models: Akool Multilingual 1, getVoiceModelName. This parameter controls language text normalization. This helps with proper pronunciation of text in some supported languages. WARNING: This parameter can heavily increase the latency of the request. Currently only supported for Japanese.
- latex_readBooleanfalsefalseSupported voice models: Akool Multilingual 3, getVoiceModelName. Controls whether to read LaTeX formulas, defaults to false. Note: 1. Formulas in the request must be enclosed with $$ 2. Backslashes () in formulas must be escaped as \
- text_normalizationBooleanfalsefalseSupported voice models: Akool Multilingual 3, getVoiceModelName. This parameter supports Chinese and English text normalization, improving performance in number reading scenarios but slightly increasing latency. Defaults to false if not provided.
- audio_settingObjectfalseSupported voice models: Akool Multilingual 3, getVoiceModelName. Audio generation parameter settings
— sample_rateIntegerfalse32000Supported voice models: Akool Multilingual 3, getVoiceModelName. Audio sampling rate. Available range [8000, 16000, 22050, 24000, 32000, 44100], defaults to 32000
— bitrateIntegerfalse128000Supported voice models: Akool Multilingual 3, getVoiceModelName. Audio bitrate. Available range [32000, 64000, 128000, 256000], defaults to 128000. This parameter only affects mp3 format audio
— formatStringfalsemp3Supported voice models: Akool Multilingual 3, getVoiceModelName. Audio format. Available options [mp3, wav], defaults to mp3. WAV format is only supported in non-streaming output
— channelIntegerfalse1Supported voice models: Akool Multilingual 3, getVoiceModelName. Number of audio channels. Available options: [1,2], where 1 is mono and 2 is stereo, defaults to 1
- timber_weightsArrayfalseSupported voice models: Akool Multilingual 3, getVoiceModelName. List of mixed timbres, supporting up to 4 voice timbres. The higher the weight of a single timbre, the more similar the synthesized voice will be to that timbre. If both timber_weights and voice_id fields have values, timber_weights will not take effect.
— voice_idStringRequired within timber_weights parameterSupported voice models: Akool Multilingual 3, getVoiceModelName. Voice timbre ID, must be filled in together with the weight parameter. Get this voice_id from your cloned voices or akool voice list.getVoiceId
— weightIntegerRequired within timber_weights parameterSupported voice models: Akool Multilingual 3, getVoiceModelName. Weight of each voice timbre, must be filled in together with voice_id. Available range [1, 100], the higher the weight, the more similar the synthesized voice will be to that timbre
- pronunciation_dictObjectfalseSupported voice models: Akool Multilingual 3, getVoiceModelName. Pronunciation rules
— toneArrayfalse[“燕少飞/(yan4)(shao3)(fei1)”, “omg/oh my god”]Supported voice models: Akool Multilingual 3, getVoiceModelName. Define special pronunciation rules for characters or symbols. For Chinese text, tones are represented by numbers: 1 for first tone, 2 for second tone, 3 for third tone, 4 for fourth tone, 5 for neutral tone
- voice_modifyObjectfalseSupported voice models: Akool Multilingual 3, getVoiceModelName. Voice parameter adjustments
— pitchIntegerfalseSupported voice models: Akool Multilingual 3, getVoiceModelName. Pitch adjustment (deep/bright), range [-100,100]. Values closer to -100 make the voice deeper; closer to 100 make it brighter
— intensityIntegerfalseSupported voice models: Akool Multilingual 3, getVoiceModelName. Intensity adjustment (powerful/soft), range [-100,100]. Values closer to -100 make the voice more powerful; closer to 100 make it softer
— timbreIntegerfalseTimbre adjustment (resonant/crisp), range [-100,100]. Values closer to -100 make the voice more resonant; closer to 100 make it crisper
— sound_effectsStringfalseSupported voice models: Akool Multilingual 3, getVoiceModelName. Sound effects settings, only one can be selected at a time. Available options: spacious_echo (spacious echo), auditorium_echo (auditorium broadcast), lofi_telephone (telephone distortion), robotic (electronic voice)
- subtitle_enableBooleanfalseSupported voice models: Akool Multilingual 3, getVoiceModelName. Controls whether to enable subtitle service, defaults to false. This parameter is only effective in non-streaming output scenarios
- pitchIntegerfalseSupported voice models: Akool Multilingual 3, getVoiceModelName. Voice pitch, range [-12, 12], where 0 outputs the original timbre. Value must be an integer.
Response Attributes
ParameterTypeValueDescription
codeint1000Interface returns business status code(1000:success)
msgStringInterface returns status information
dataObjectResponse data object
- create_timeLong1751350015709Creation timestamp
- uidInteger101400User ID
- team_idString”6805fb69e92d9edc7ca0b409”Team ID
- input_textString”Welcome to the Akool…”Input text content
- previewStringnullGenerated audio URL, this value will be updated after task completion, you can view it in the resourceList.Get Resource List
- statusInteger1TTS status: 【1:queueing, 2:processing, 3:completed, 4:failed】
- webhookUrlString""Callback URL
- durationInteger0Audio duration in milliseconds
- file_nameString”1ef1d76ebfc244f7a30430f7049d6ebc.mp3”Generated file name
- genderString”Male”Voice gender
- deduction_creditFloat1.9295Deducted credits
- nameString”27fec311afd743aa889a057e17e93c13”Generated name
- _idString”68637aff41e5eb74bb8dfe73”Document ID
- voice_model_idString”686379d641e5eb74bb8dfe3f”Voice document ID
- voice_idString”Tq06jbVyFH4l6R-Gjvo_V-p_nVYk5DRrYJZsxeDmlhEtyhcFKKLQODmgngI9llKw”Voice ID
- voice_optionsObjectVoice options object
- stabilityNumber

0.7

Voice stability setting
- similarity_boostNumber

0.5

Similarity boost setting
- styleNumber

0.6

Voice style setting
- speedNumber

0.8

Speech speed setting
- speaker_boostBoolean

false

Speaker boost setting
- emotionString

”happy”

Emotion setting
- volumeInteger

50

Volume setting

Example

Body
{
    "input_text": "In late spring, the peony garden awakens with layers of petals of the Yao Huang and Wei Zi varieties. When the morning dew has not yet dried, the edges of the petals are glistening with crystal-like droplets, and the inner crimson, like silk, gradually deepens, as if the sunset had been cut into a dress. When the wind blows, the sea of flowers surges, and the golden stamens tremble, releasing a faint fragrance that lures bees and butterflies to swirl around the flower centers in golden vortices. The green peony, in particular, when it first blooms, has tips like jade carvings with a hint of moon white, and when it is in full bloom, it is like an ice wine in an emerald cup, making one suspect it is a divine creation from the Queen Mother's Jade Pool. Occasionally, a petal falls, becoming a rolling agate bead on the embroidered carpet, and even the soil is permeated with the elegant fragrance. Such a captivating beauty is why Liu Yuxi wrote that only the peony is truly the national color, and when it blooms, it moves the entire capital. It uses the entire season's brilliance to interpret the grandeur of being the queen of flowers.",
    "voice_id": "6889b628662160e2caad5dbc",
    "voice_options": {
        "stability": 0.6,
        "similarity_boost": 0.8,
        "style": 1,
        "speed": 1.0,
        "speaker_boost": true,
        "emotion": "happy",
        "volume": 80
    },
    "pitch": -5,
    "webhookUrl": "",
    "language_code": "zh",
    "extra_options": {
        "previous_text": "In late spring, the peony garden awakens with layers of petals of the Yao Huang and Wei Zi varieties. When the morning dew has not yet dried, the edges of the petals are glistening with crystal-like droplets, and the inner crimson, like silk, gradually deepens, as if the sunset had been cut into a dress. When the wind blows, the sea of flowers surges, and the golden stamens tremble, releasing a faint fragrance that lures bees and butterflies to swirl around the flower centers in golden vortices. The green peony, in particular, when it first blooms, has tips like jade carvings with a hint of moon white, and when it is in full bloom, it is like an ice wine in an emerald cup, making one suspect it is a divine creation from the Queen Mother's Jade Pool. Occasionally, a petal falls, becoming a rolling agate bead on the embroidered carpet, and even the soil is permeated with the elegant fragrance. Such a captivating beauty is why Liu Yuxi wrote that only the peony is truly the national color, and when it blooms, it moves the entire capital. It uses the entire season's brilliance to interpret the grandeur of being the queen of flowers.",
        "next_text": "In late spring, the peony garden awakens with layers of petals of the Yao Huang and Wei Zi varieties. When the morning dew has not yet dried, the edges of the petals are glistening with crystal-like droplets, and the inner crimson, like silk, gradually deepens, as if the sunset had been cut into a dress. When the wind blows, the sea of flowers surges, and the golden stamens tremble, releasing a faint fragrance that lures bees and butterflies to swirl around the flower centers in golden vortices. The green peony, in particular, when it first blooms, has tips like jade carvings with a hint of moon white, and when it is in full bloom, it is like an ice wine in an emerald cup, making one suspect it is a divine creation from the Queen Mother's Jade Pool. Occasionally, a petal falls, becoming a rolling agate bead on the embroidered carpet, and even the soil is permeated with the elegant fragrance. Such a captivating beauty is why Liu Yuxi wrote that only the peony is truly the national color, and when it blooms, it moves the entire capital. It uses the entire season's brilliance to interpret the grandeur of being the queen of flowers.",
        "apply_text_normalization": "auto",
        "apply_language_text_normalization": true,
        "latex_read": true,
        "text_normalization": true,
        "audio_setting": {
            "sample_rate": 24000,
            "bitrate": 32000,
            "format": "mp3",
            "channel": 2
        },
        "timber_weights": [
            {
                "voice_id": "6889b7f4662160e2caad60e9",
                "weight": 80
            },
            {
                "voice_id": "6889b7f3662160e2caad60e8",
                "weight": 60
            },
            {
                "voice_id": "6889b7f3662160e2caad60e7",
                "weight": 30
            },
            {
                "voice_id": "6889b7f2662160e2caad60e6",
                "weight": 10
            }
        ],
        "pronunciation_dict": {
            "tone" : [
                    "雍容/(yong3)(neng4)",
                    "牡丹/(mu4)(dan3)"
                ]
        },
        "voice_modify": {
            "pitch": 50,
            "intensity": 30,
            "timbre": -50,
            "sound_effects": "robotic"
        },
        "subtitle_enable": true
    }
}
Request
curl --location 'https://openapi.akool.com/api/open/v4/voice/tts' \
--header 'Authorization: Bearer {{token}}' \
--header 'Content-Type: application/json' \
--data '{
    "input_text": "In late spring, the peony garden awakens with layers of petals of the Yao Huang and Wei Zi varieties. When the morning dew has not yet dried, the edges of the petals are glistening with crystal-like droplets, and the inner crimson, like silk, gradually deepens, as if the sunset had been cut into a dress. When the wind blows, the sea of flowers surges, and the golden stamens tremble, releasing a faint fragrance that lures bees and butterflies to swirl around the flower centers in golden vortices. The green peony, in particular, when it first blooms, has tips like jade carvings with a hint of moon white, and when it is in full bloom, it is like an ice wine in an emerald cup, making one suspect it is a divine creation from the Queen Mother's Jade Pool. Occasionally, a petal falls, becoming a rolling agate bead on the embroidered carpet, and even the soil is permeated with the elegant fragrance. Such a captivating beauty is why Liu Yuxi wrote that only the peony is truly the national color, and when it blooms, it moves the entire capital. It uses the entire season's brilliance to interpret the grandeur of being the queen of flowers.",
    "voice_id": "6889b628662160e2caad5dbc",
    "voice_options": {
        "stability": 0.6,
        "similarity_boost": 0.8,
        "style": 1,
        "speed": 1.0,
        "speaker_boost": true,
        "emotion": "happy",
        "volume": 80
    },
    "pitch": -5,
    "webhookUrl": "",
    "language_code": "zh",
    "extra_options": {
        "previous_text": "In late spring, the peony garden awakens with layers of petals of the Yao Huang and Wei Zi varieties. When the morning dew has not yet dried, the edges of the petals are glistening with crystal-like droplets, and the inner crimson, like silk, gradually deepens, as if the sunset had been cut into a dress. When the wind blows, the sea of flowers surges, and the golden stamens tremble, releasing a faint fragrance that lures bees and butterflies to swirl around the flower centers in golden vortices. The green peony, in particular, when it first blooms, has tips like jade carvings with a hint of moon white, and when it is in full bloom, it is like an ice wine in an emerald cup, making one suspect it is a divine creation from the Queen Mother's Jade Pool. Occasionally, a petal falls, becoming a rolling agate bead on the embroidered carpet, and even the soil is permeated with the elegant fragrance. Such a captivating beauty is why Liu Yuxi wrote that only the peony is truly the national color, and when it blooms, it moves the entire capital. It uses the entire season's brilliance to interpret the grandeur of being the queen of flowers.",
        "next_text": "In late spring, the peony garden awakens with layers of petals of the Yao Huang and Wei Zi varieties. When the morning dew has not yet dried, the edges of the petals are glistening with crystal-like droplets, and the inner crimson, like silk, gradually deepens, as if the sunset had been cut into a dress. When the wind blows, the sea of flowers surges, and the golden stamens tremble, releasing a faint fragrance that lures bees and butterflies to swirl around the flower centers in golden vortices. The green peony, in particular, when it first blooms, has tips like jade carvings with a hint of moon white, and when it is in full bloom, it is like an ice wine in an emerald cup, making one suspect it is a divine creation from the Queen Mother's Jade Pool. Occasionally, a petal falls, becoming a rolling agate bead on the embroidered carpet, and even the soil is permeated with the elegant fragrance. Such a captivating beauty is why Liu Yuxi wrote that only the peony is truly the national color, and when it blooms, it moves the entire capital. It uses the entire season's brilliance to interpret the grandeur of being the queen of flowers.",
        "apply_text_normalization": "auto",
        "apply_language_text_normalization": true,
        "latex_read": true,
        "text_normalization": true,
        "audio_setting": {
            "sample_rate": 24000,
            "bitrate": 32000,
            "format": "mp3",
            "channel": 2
        },
        "timber_weights": [
            {
                "voice_id": "6889b7f4662160e2caad60e9",
                "weight": 80
            },
            {
                "voice_id": "6889b7f3662160e2caad60e8",
                "weight": 60
            },
            {
                "voice_id": "6889b7f3662160e2caad60e7",
                "weight": 30
            },
            {
                "voice_id": "6889b7f2662160e2caad60e6",
                "weight": 10
            }
        ],
        "pronunciation_dict": {
            "tone" : [
                    "雍容/(yong3)(neng4)",
                    "牡丹/(mu4)(dan3)"
                ]
        },
        "voice_modify": {
            "pitch": 50,
            "intensity": 30,
            "timbre": -50,
            "sound_effects": "robotic"
        },
        "subtitle_enable": true
    }
}'
Response
{
    "code": 1000,
    "msg": "OK",
    "data": {
        "create_time": 1751350015709,
        "uid": 101400,
        "team_id": "6805fb69e92d9edc7ca0b409",
        "input_text": "Welcome to the Akool generative AI content creation tool.",
        "preview": null,
        "status": 1,
        "webhookUrl": "",
        "duration": 0,
        "file_name": "1ef1d76ebfc244f7a30430f7049d6ebc.mp3",
        "gender": "Male",
        "deduction_credit": 1.9295,
        "name": "27fec311afd743aa889a057e17e93c13",
        "_id": "68637aff41e5eb74bb8dfe73",
        "voice_model_id": "686379d641e5eb74bb8dfe3f",
        "voice_id": "Tq06jbVyFH4l6R-Gjvo_V-p_nVYk5DRrYJZsxeDmlhEtyhcFKKLQODmgngI9llKw",
        "voice_options": {
            "stability": 0.7,
            "similarity_boost": 0.5,
            "style": 0.6,
            "speed": 0.8,
            "speaker_boost": false,
            "emotion": "happy",
            "volume": 50
        }
    }
}

Create Voice Changer

Only the Akool Multilingual 1 model supports Voice Change.
POST https://openapi.akool.com/api/open/v4/voice/change
Request Headers
ParameterValueDescription
AuthorizationBearer {token}Your API Key used for request authorization.Get Token
Body Attributes
ParameterTypeRequiredValueDescription
voice_idStringtrueVoice ID, get this voice_id from your cloned voices or akool voice list. getVoiceId
source_voice_fileStringtrueAudio file URL, supports mp3, mp4, wav, etc. Must be a public accessible URL, The maximum file size is 50MB.
voice_optionsObjectfalseAudio settings
- stabilityNumberfalseVoice stability (0-1) , Supported voice models: Akool Multilingual 1, getVoiceModelName
- similarity_boostNumberfalseSimilarity boost (0-1) , Supported voice models: Akool Multilingual 1, getVoiceModelName
- styleNumberfalseVoice style (0-1) , Supported voice models: Akool Multilingual 1, Akool Multilingual 2. Style examples: cheerful, getVoiceModelName
- speaker_boostBooleanfalseSpeaker boost, Supported voice models: Akool Multilingual 1, getVoiceModelName
- file_formatStringfalsemp3File format, supports mp3 and wav formats.
- remove_background_noiseBooleanfalsefalseRemove background noise, disabled by default
- speedNumberfalse1Controls the speed of generated audio, default value is 1, available range [0.7, 1.2].
webhookUrlStringfalseCallback url address based on HTTP request
voice_model_nameStringfalseThe designated model for Clone, Supported voice models: Akool Multilingual 1. getVoiceModelName
Response Attributes
ParameterTypeValueDescription
codeint1000Interface returns business status code(1000:success)
msgStringInterface returns status information
dataObjectResponse data object
- create_timeLong1751350363707Creation timestamp
- uidInteger101400User ID
- team_idString”6805fb69e92d9edc7ca0b409”Team ID
- previewStringnullGenerated audio URL, this value will be updated after task completion, you can view it in the resourceList. Get Resource List
- source_voice_fileStringhttps://drz0f01yeq1cx.cloudfront.net/1749098405491-5858-1749019840512audio.mp3Original audio file URL
- statusInteger

1

Voice changer status: 【1:queueing, 2:processing, 3:completed, 4:failed】
- webhookUrlString

""

Callback URL
- durationInteger

12800

Audio duration in milliseconds
- file_nameString

”1749098405491-5858-1749019840512audio.mp3”

Generated file name
- genderString

”Female”

Voice gender
- deduction_creditFloat

0.512

Deducted credits
- nameString

”3f591fc370c542fca9087f124b5ad82b”

Generated name
- _idString

”68637c5b41e5eb74bb8dfec6”

Document ID
- voice_model_idString

”67a45479354b7c1fff7e943a”

Voice document ID
- voice_idString

”hkfHEbBvdQFNX4uWHqRF”

Voice ID
- voice_optionsObjectVoice options object
- stabilityNumber

0.7

Voice stability setting
- similarity_boostNumber

0.5

Similarity boost setting
- styleNumber

0.6

Voice style setting
- speaker_boostBoolean

false

Speaker boost setting

Example

Body
{
    "voice_id": "6889b628662160e2caad5dbc",
    "source_voice_file": "https://drz0f01yeq1cx.cloudfront.net/1749098405491-5858-1749019840512audio.mp3",
    "voice_options": {
        "stability": 0.9,
        "similarity_boost": 0.7,
        "style": 1,
        "speaker_boost": false,
        "remove_background_noise": true,
        "speed": 1,
        "file_format": "mp3"
    },
    "voice_model_name": "Akool Multilingual 1",
    "webhookUrl": ""
}
Request
curl --location 'https://openapi.akool.com/api/open/v4/voice/change' \
--header 'Authorization: Bearer {{token}}' \
--header 'Content-Type: application/json' \
--data '{
    "voice_id": "6889b628662160e2caad5dbc",
    "source_voice_file": "https://drz0f01yeq1cx.cloudfront.net/1749098405491-5858-1749019840512audio.mp3",
    "voice_options": {
        "stability": 0.9,
        "similarity_boost": 0.7,
        "style": 1,
        "speaker_boost": false,
        "remove_background_noise": true,
        "speed": 1,
        "file_format": "mp3"
    },
    "voice_model_name": "Akool Multilingual 1",
    "webhookUrl": ""
}'
Response
{
  "code": 1000,
  "msg": "OK",
  "data": {
    "create_time": 1751350363707,
    "uid": 101400,
    "team_id": "6805fb69e92d9edc7ca0b409",
    "source_voice_file": "https://drz0f01yeq1cx.cloudfront.net/1749098405491-5858-1749019840512audio.mp3",
    "preview": null,
    "status": 1,
    "webhookUrl": "",
    "duration": 12800,
    "file_name": "1749098405491-5858-1749019840512audio.mp3",
    "gender": "Female",
    "deduction_credit": 0.512,
    "name": "3f591fc370c542fca9087f124b5ad82b",
    "_id": "68637c5b41e5eb74bb8dfec6",
    "voice_model_id": "67a45479354b7c1fff7e943a",
    "voice_id": "hkfHEbBvdQFNX4uWHqRF",
    "voice_options": {
      "stability": 0.7,
      "similarity_boost": 0.5,
      "style": 0.6,
      "speaker_boost": false
    }
  }
}

Get Voice Results List

GET https://openapi.akool.com/api/open/v4/voice/resource/list
Request Headers
ParameterValueDescription
AuthorizationBearer {token}Your API Key used for request authorization.Get Token
Query Attributes
ParameterTypeRequiredValueDescription
typeStringtrue1,21-voiceTTS, 2-voiceChanger
pageStringfalse1Page number
sizeStringfalse10Page size
Response Attributes
ParameterTypeValueDescription
codeInteger

1000

API returns status code(1000:success)
msgStringAPI returns status message
dataObjectResponse data object
- resultArrayVoice resource list
— _idString

”68637c5b41e5eb74bb8dfec6”

Document ID
— create_timeLong

1751350363707

Creation timestamp
— update_timeLong

1751350368468

Update timestamp
— uidInteger

101400

User ID
— team_idString

”6805fb69e92d9edc7ca0b409”

Team ID
— rateString

”100%“

Processing rate
— previewStringhttps://drz0f01yeq1cx.cloudfront.net/…”Generated audio URL
— statusInteger

3

Status: 【1:queueing, 2:processing, 3:completed, 4:failed】
— webhookUrlString

""

Callback URL
— durationInteger

12852

Audio duration in milliseconds
— file_nameString

”1749098405491-5858-1749019840512audio.mp3”

File name
— genderString

”Female”

Voice gender
— deduction_creditFloat

0.9295

Deducted credits
— nameString

”3f591fc370c542fca9087f124b5ad82b”

Resource name
— input_textString

”Słyszę, że chcesz leżeć płasko? Gratulacje — przynajmniej zrozumiałeś grawitację! “

Text to Speech trial listening text
— __vInteger

0

Version number
- countInteger

1

Total count of resources
- pageInteger

1

Current page number
- sizeInteger

10

Page size

Example

Request
curl --location 'https://openapi.akool.com/api/open/v4/voice/resource/list?type=1&page=1&size=10' \
--header 'Authorization: Bearer {{token}}'
Response
{
    "code": 1000,
    "msg": "OK",
    "data": {
        "result": [
            {
                "_id": "68637c5b41e5eb74bb8dfec6",
                "create_time": 1751350363707,
                "update_time": 1751350368468,
                "uid": 101400,
                "team_id": "6805fb69e92d9edc7ca0b409",
                "rate": "100%",
                "preview": "https://drz0f01yeq1cx.cloudfront.net/1751350368172-audio.mp3",
                "status": 3,
                "webhookUrl": "",
                "duration": 12852,
                "file_name": "1749098405491-5858-1749019840512audio.mp3",
                "gender": "Female",
                "deduction_credit": 0.9295,
                "name": "3f591fc370c542fca9087f124b5ad82b",
                "input_text": "Słyszę, że chcesz leżeć płasko? Gratulacje — przynajmniej zrozumiałeś grawitację! ",
                "__v": 0
            }
        ],
        "count": 1,
        "page": 1,
        "size": 10
    }
}

Get Voice List

GET https://openapi.akool.com/api/open/v4/voice/list
Request Headers
ParameterValueDescription
AuthorizationBearer {token}Your API Key used for request authorization.Get Token
Query Attributes
ParameterTypeRequiredValueDescription
typeStringtrue

1,2

1-VoiceClone, 2-Akool Voices
pageStringfalse

1

Page number
sizeStringfalse

10

Page size
styleStringfalse

Calm,Authoritative

Voice style filters, separated by commas
genderStringfalse

Male,Female

Gender filters, separated by commas
ageStringfalse

Young,Middle,Elderly

Age filters, separated by commas
scenarioStringfalse

Advertisement,Education

Scenario filters, separated by commas
nameStringfalse

MyVoice

Voice name, supports fuzzy search
support_streamIntegerfalse

1

2-Voice does not support streaming.; 1-Voice supports streaming.
Response Attributes
ParameterTypeValueDescription
codeInteger

1000

API returns status code(1000:success)
msgStringAPI returns status message
dataObjectResponse data object
- resultArrayVoice list
— _idString

”68676e544439e3b8e246a077”

Document ID
— uidInteger

101400

User ID
— team_idString

”6805fb69e92d9edc7ca0b409”

Team ID
— voice_idString

”zQAGCFElz23u6Brdj4L-NrbEmSxswXdoPN_GBpYgUPHo1EGWgZgAnFJexONx_jGy”

Voice ID
— genderString

”Male”

Voice gender
— languageString

”Polish”

Voice language
— localeString

”pl”

Voice locale
— nameString

”MyVoice0626-01”

Voice name
— previewString

https://d2qf6ukcym4kn9.cloudfront.net/…”

Preview audio URL
— textString

”This is a comic style model…”

Preview text content
— durationInteger

9822

Audio duration in milliseconds
— statusInteger

3

Voice status: 【1:queueing, 2:processing, 3:completed, 4:failed】
— create_timeLong

1751608916162

Creation timestamp
— update_timeLong

1751608916162

Update timestamp
— styleArray

[“Authoritative”, “Calm”]

Voice style tags
— scenarioArray

[“Advertisement”]

Scenario tags
— ageArray

[“Elderly”, “Middle”]

Age tags
— deduction_creditInteger

0

Deducted credits
— webhookUrlString

""

Callback URL
— voice_model_nameString

”Akool Multilingual 3”

Supported voice model name
— support_streamBoolean

true

Supported stream: true/false, Akool Multilingual 1 & Akool Multilingual 3 only support stream.
- countInteger

9

Total count of voices
- pageInteger

1

Current page number
- sizeInteger

1

Page size

Example

Request
curl --location 'https://openapi.akool.com/api/open/v4/voice/list?type=1&page=1&size=10&style=Calm,Authoritative&gender=Male&name=MyVoice' \
--header 'Authorization: Bearer {{token}}'
Response
{
    "code": 1000,
    "msg": "OK",
    "data": {
        "result": [
            {
                "_id": "68676e544439e3b8e246a077",
                "uid": 101400,
                "team_id": "6805fb69e92d9edc7ca0b409",
                "voice_id": "zQAGCFElz23u6Brdj4L-NrbEmSxswXdoPN_GBpYgUPHo1EGWgZgAnFJexONx_jGy",
                "gender": "Male",
                "language": "Polish",
                "locale": "pl",
                "name": "MyVoice0626-01",
                "preview": "https://d2qf6ukcym4kn9.cloudfront.net/1751608955706-c1cf1692-fd47-417c-b18a-dcbbb93360fa-2756.mp3",
                "text": "This is a comic style model, this is a comic style model, this is a comic style model, this is a comic style model",
                "duration": 9822,
                "status": 3,
                "create_time": 1751608916162,
                "style": [
                    "Authoritative",
                    "Calm"
                ],
                "scenario": [
                    "Advertisement"
                ],
                "age": [
                    "Elderly",
                    "Middle"
                ],
                "deduction_credit": 0,
                "webhookUrl": "",
                "voice_model_name": "Akool Multilingual 3",
                "support_stream": true
            }
        ],
        "count": 9,
        "page": 1,
        "size": 1
    }
}

Delete Voice

POST https://openapi.akool.com/api/open/v4/voice/del
Request Headers
ParameterValueDescription
AuthorizationBearer {token}Your API Key used for request authorization.Get Token
Body Attributes
ParameterTypeRequiredValueDescription
_idsArraytrueVoice list document IDs Get Voice Document ID
Response Attributes
ParameterTypeValueDescription
codeinteger

1000

API returns status code(1000:success)
msgStringAPI returns status message
dataObjectResponse data object
- successIdsArrayDeleted voice document IDs
- noPermissionVoicesArrayDelete failed voice document msg list
- _idString

6881cd86618fa41c89557b0c

Delete failed voice document ID
- msgString

VoiceId:6881cd86618fa41c89557b0c resource not found

Delete failed voice error msg

Example

Body
{
    "_ids": [
        "6836b8183a59f36196bb9c52",
        "6836ba935026505ab7a529ce"
    ]
}
Request
curl --location --request DELETE 'https://openapi.akool.com/api/open/v4/voice/del' \
--header 'Authorization: Bearer {{token}}' \
--header 'Content-Type: application/json' \
--data '{
    "_ids": [
        "6836b8183a59f36196bb9c52",
        "6836ba935026505ab7a529ce"
    ]
}'
Response
{
    "code": 1000,
    "msg": "Delete voice successfully",
    "data": {
        "successIds": [
            "6882f4c10529ae771e71531d"
        ],
        "noPermissionVoices": [
            {
                "_id": "6881cd86618fa41c89557b0c",
                "msg": "VoiceId:6881cd86618fa41c89557b0c resource not found"
            }
        ]
    }
}

Get Voice Detail

GET https://openapi.akool.com/api/open/v4/voice/detail/{_id}
Request Headers
ParameterValueDescription
AuthorizationBearer {token}Your API Key used for request authorization.Get Token
Path Attributes
ParameterTypeRequiredValueDescription
_idStringtrueVoice list document IDs Get Voice Document ID
Response Attributes
ParameterTypeValueDescription
codeInteger

1000

API returns status code(1000:success)
msgStringAPI returns status message
dataObjectResponse data object
- _idString

”6836bafb5026505ab7a529fa”

Document ID
- uidInteger

101400

User ID
- team_idString

”6805fb69e92d9edc7ca0b409”

Team ID
- voice_idString

”yRBw4OM8YFm5pCNKxJQ7”

Voice ID
- genderString

”Male”

Voice gender
- nameString

”Snow Peak 01”

Voice name
- previewStringhttps://drz0f01yeq1cx.cloudfront.net/…”Preview audio URL
- textString”Hello, I’m your personalized AI voice…”Preview text content
- durationInteger

7055

Audio duration in milliseconds
- statusInteger

3

Voice status: 【1:queueing, 2:processing, 3:completed, 4:failed】
- create_timeLong

1748417275493

Creation timestamp
- styleArray

[“Authoritative”, “Calm”]

Voice style tags
- scenarioArray

[“Advertisement”]

Scenario tags
- ageArray

[“Elderly”, “Middle”]

Age tags
- deduction_creditInteger

0

Deducted credits
- voice_model_nameString

”Akool Multilingual 1”

Supported voice model name
- support_streamBoolean

true

Supported stream: true/false, Akool Multilingual 1 & Akool Multilingual 3 only support stream.
- languageString

”Chinese”

Voice language
- localeString

”zh”

Voice locale
- update_timeLong

1751608916162

Update timestamp

Example

Request
curl --location 'https://openapi.akool.com/api/open/v4/voice/detail/6836bafb5026505ab7a529fa' \
--header 'Authorization: Bearer {{token}}'
Response
{
    "code": 1000,
    "msg": "OK",
    "data": {
        "_id": "6882f23c0529ae771e7152dc",
        "uid": 101400,
        "team_id": "6805fb69e92d9edc7ca0b409",
        "voice_id": "kfr_1wGPuauzcSOZgpBGLd_ApviIHqMIZ5bS2OeMiMkvId0eAMkq1ii8rvInZ2pE",
        "gender": "Male",
        "name": "zhongwen-072501",
        "preview": "https://drz0f01yeq1cx.cloudfront.net/1753412190380-sample.mp3",
        "text": "人生就像登山,重要的不是顶峰的高度,而是攀登时的姿态。当你觉得脚步沉重时,请记住:竹子用四年时间仅生长3厘米,但从第五年开始,每天以30厘米的速度疯长。那些看似微不足道的积累,终将在某个转角绽放光芒。前路或许泥泞,但每个坚持的脚印都在书写传奇;黑夜也许漫长,但晨光总在咬牙坚持后准时降临。正如海明威所说:人可以被毁灭,但不能被打败。2025年的今天,愿你把挫折当作垫脚石,让汗水成为勋章,因为这个世界永远奖励那些在跌倒后依然选择起身奔跑的人。",
        "duration": 55353,
        "status": 3,
        "create_time": 1753412156588,
        "style": [
            "Authoritative",
            "Calm"
        ],
        "scenario": [
            "Advertisenment"
        ],
        "age": [
            "Elderly",
            "Middle"
        ],
        "deduction_credit": 0,
        "webhookUrl": "",
        "language": "Chinese",
        "locale": "zh",
        "voice_model_name": "Akool Multilingual 3",
        "support_stream": true
    }
}

Get Voice Result Detail

GET https://openapi.akool.com/api/open/v4/voice/resource/detail/{_id}
Request Headers
ParameterValueDescription
AuthorizationBearer {token}Your API Key used for request authorization.Get Token
Path Attributes
ParameterTypeRequiredValueDescription
_idStringtrueVoice result document ID Get Voice Result ID
Response Attributes
ParameterTypeValueDescription
codeInteger

1000

API returns status code(1000:success)
msgStringAPI returns status message
dataObjectResponse data object
- resultObjectVoice result object
— _idString

”688afbd9d2b4b269d1123ffb”

Document ID
— create_timeLong

1753938905005

Creation timestamp
— update_timeLong

0

Update timestamp
— uidInteger

101400

User ID
— team_idString

”6805fb69e92d9edc7ca0b409”

Team ID
— input_textString”Życie jak wspinaczka górska…”Input text content
— rateString

”100%“

Processing rate
— statusInteger

1

Status: 【1:queueing, 2:processing, 3:completed, 4:failed】
— webhookUrlString

""

Callback URL
— durationInteger

0

Audio duration in milliseconds
— file_nameString

”1753938905005.mp3”

File name
— genderString

”Male”

Voice gender
— deduction_creditFloat

0.5148

Deducted credits
— nameString

”26ca668a9eb448b7b9a3806fa86207f3”

Resource name
— priorityInteger

2

Priority level
— language_codeString

”pt”

Language code
— __vInteger

0

Version number
— previewString

null

Preview audio URL

Example

Request
curl --location 'https://openapi.akool.com/api/open/v4/voice/resource/detail/688afbd9d2b4b269d1123ffb' \
--header 'Authorization: Bearer {{token}}'
Response
{
    "code": 1000,
    "msg": "OK",
    "data": {
        "result": {
            "_id": "688afbd9d2b4b269d1123ffb",
            "create_time": 1753938905005,
            "update_time": 0,
            "uid": 101400,
            "team_id": "6805fb69e92d9edc7ca0b409",
            "input_text": "Życie jak wspinaczka górska: ważniejsza od wysokości szczytu jest postawa, z jaką się wspinasz. Gdy czujesz, że stopy",
            "rate": "100%",
            "status": 1,
            "webhookUrl": "",
            "duration": 0,
            "file_name": "1753938905005.mp3",
            "gender": "Male",
            "deduction_credit": 0.5148,
            "name": "26ca668a9eb448b7b9a3806fa86207f3",
            "priority": 2,
            "language_code": "pt",
            "__v": 0,
            "preview": null
        }
    }
}