openapi: 3.2.0 info: title: Audio Features Text To Speech API version: '2.0' description: Your project description servers: - url: https://api.edenai.run/v2 tags: - name: Text To Speech paths: /audio/text_to_speech/: post: operationId: audio_text_to_speech_create description: 'Available Providers |Provider|Model|Version|Price|Billing unit| |----|----|-------|-----|------------| |**amazon**|-|`boto3 (v1.15.18)`|4.0 (per 1000000 char)|1 char |**amazon**|**Neural**|`boto3 (v1.15.18)`|16.0 (per 1000000 char)|1 char |**google**|-|`v1`|4.0 (per 1000000 char)|1 char |**google**|**Standard**|`v1`|4.0 (per 1000000 char)|1 char |**google**|**Neural**|`v1`|16.0 (per 1000000 char)|1 char |**google**|**Wavenet**|`v1`|16.0 (per 1000000 char)|1 char |**google**|**Studio**|`v1`|0.16 (per 1000 char)|1 char |**google**|**gemini-2.5-flash-tts**|`v1`|10.0 (per 1000000 char)|1 char |**google**|**gemini-2.5-pro-tts**|`v1`|20.0 (per 1000000 char)|None char |**microsoft**|-|`v1.0`|16.0 (per 1000000 char)|1 char |**lovoai**|-|`v1`|160.0 (per 1000000 char)|1000 char |**elevenlabs**|-|`v1`|0.3 (per 1000 char)|1 char |**openai**|-|`v1.0`|0.015 (per 1000 char)|1 char |**deepgram**|-|`v1`|0.015 (per 1000 char)|1 char Supported Languages |Name|Value| |----|-----| |**Afrikaans**|`af`| |**Albanian**|`sq`| |**Amharic**|`am`| |**Arabic**|`ar`| |**Armenian**|`hy`| |**Azerbaijani**|`az`| |**Basque**|`eu`| |**Belarusian**|`be`| |**Bengali**|`bn`| |**Bosnian**|`bs`| |**Bulgarian**|`bg`| |**Burmese**|`my`| |**Catalan**|`ca`| |**Chinese**|`zh`| |**Croatian**|`hr`| |**Czech**|`cs`| |**Danish**|`da`| |**Dutch**|`nl`| |**English**|`en`| |**Estonian**|`et`| |**Filipino**|`fil`| |**Finnish**|`fi`| |**French**|`fr`| |**Galician**|`gl`| |**Georgian**|`ka`| |**German**|`de`| |**Gujarati**|`gu`| |**Hebrew**|`he`| |**Hindi**|`hi`| |**Hungarian**|`hu`| |**Icelandic**|`is`| |**Indonesian**|`id`| |**Irish**|`ga`| |**Italian**|`it`| |**Japanese**|`ja`| |**Javanese**|`jv`| |**Kannada**|`kn`| |**Kazakh**|`kk`| |**Khmer**|`km`| |**Korean**|`ko`| |**Lao**|`lo`| |**Latvian**|`lv`| |**Lithuanian**|`lt`| |**Macedonian**|`mk`| |**Malay (macrolanguage)**|`ms`| |**Malayalam**|`ml`| |**Maltese**|`mt`| |**Mandarin Chinese**|`cmn`| |**Maori**|`mi`| |**Marathi**|`mr`| |**Modern Greek (1453-)**|`el`| |**Mongolian**|`mn`| |**Nepali (macrolanguage)**|`ne`| |**Norwegian**|`no`| |**Norwegian Bokmål**|`nb`| |**Panjabi**|`pa`| |**Persian**|`fa`| |**Polish**|`pl`| |**Portuguese**|`pt`| |**Pushto**|`ps`| |**Romanian**|`ro`| |**Russian**|`ru`| |**Serbian**|`sr`| |**Sinhala**|`si`| |**Slovak**|`sk`| |**Slovenian**|`sl`| |**Somali**|`so`| |**Spanish**|`es`| |**Standard Arabic**|`arb`| |**Sundanese**|`su`| |**Swahili (macrolanguage)**|`sw`| |**Swedish**|`sv`| |**Tagalog**|`tl`| |**Tamil**|`ta`| |**Telugu**|`te`| |**Thai**|`th`| |**Turkish**|`tr`| |**Ukrainian**|`uk`| |**Urdu**|`ur`| |**Uzbek**|`uz`| |**Vietnamese**|`vi`| |**Welsh**|`cy`| |**Wu Chinese**|`wuu`| |**Xhosa**|`xh`| |**Yue Chinese**|`yue`| |**Zulu**|`zu`| Supported Detailed Languages |Name|Value| |----|-----| |**Afrikaans (South Africa)**|`af-ZA`| |**Albanian (Albania)**|`sq-AL`| |**Amharic (Ethiopia)**|`am-ET`| |**Arabic (Algeria)**|`ar-DZ`| |**Arabic (Bahrain)**|`ar-BH`| |**Arabic (Egypt)**|`ar-EG`| |**Arabic (Iraq)**|`ar-IQ`| |**Arabic (Jordan)**|`ar-JO`| |**Arabic (Kuwait)**|`ar-KW`| |**Arabic (Lebanon)**|`ar-LB`| |**Arabic (Libya)**|`ar-LY`| |**Arabic (Morocco)**|`ar-MA`| |**Arabic (Oman)**|`ar-OM`| |**Arabic (Pseudo-Accents)**|`ar-XA`| |**Arabic (Qatar)**|`ar-QA`| |**Arabic (Saudi Arabia)**|`ar-SA`| |**Arabic (Syria)**|`ar-SY`| |**Arabic (Tunisia)**|`ar-TN`| |**Arabic (United Arab Emirates)**|`ar-AE`| |**Arabic (Yemen)**|`ar-YE`| |**Armenian (Armenia)**|`hy-AM`| |**Azerbaijani (Azerbaijan)**|`az-AZ`| |**Bangla (Bangladesh)**|`bn-BD`| |**Bangla (India)**|`bn-IN`| |**Basque (Spain)**|`eu-ES`| |**Bosnian (Bosnia & Herzegovina)**|`bs-BA`| |**Bulgarian (Bulgaria)**|`bg-BG`| |**Burmese (Myanmar (Burma))**|`my-MM`| |**Cantonese (China)**|`yue-CN`| |**Cantonese (Hong Kong SAR China)**|`yue-HK`| |**Catalan (Spain)**|`ca-ES`| |**Chinese (China)**|`zh-CN`| |**Chinese (China)**|`zh-CN-henan`| |**Chinese (China)**|`zh-CN-shandong`| |**Chinese (China)**|`zh-CN-sichuan`| |**Chinese (Hong Kong SAR…' summary: Text to Speech tags: - Text To Speech requestBody: content: application/json: schema: $ref: '#/components/schemas/audiotext_to_speechTextToSpeechRequest' examples: RequestExample: value: providers: openai,deepgram,elevenlabs,google,lovoai,microsoft,amazon language: en text: hello my name is Jane option: FEMALE settings: {} summary: Request Example required: true security: - FeatureApiAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/audiotext_to_speechResponseModel' examples: ResponseExample: value: openai: audio: //PkxABh5DnAA1rAAHnMkHAaGmLBwxGcw40yZczZ80p82Sw1yw1Sg0iAzRY... voice_type: 1 audio_resource_url: https://d14uq1pz7dzsdq.cloudfront.net/ad1e14c7-cb3f-4b75-85b5-099ccd6484fc_.mp3?Expires=1700491150&Signature=HV8sRBaVFhuY3pViSvaczJ3i9d6ORITBETPKxdvP25O5KDpkzvs2wTH00gCjAryRIvorKC6MTiehuJgxDz9flZcnEpVXo5kYqLY6giSQwfLLrV5up2hemY8mBzOeagrTbC0yx~By9H~ElERZmBB09pHE1-UIRDo~v0cReBFOcFezWPbRmRaVqdeeko0wxV~u-hWWScOPCcijk9fr9DRZWfhIih4dp2h9Xg8qJ7nPJ0mNb8RK5RZp7WtAwSCI3OKVokMuuHyVDy0kNOSUqdDTI4gggEOP7HAycKHGO57i6K7M~wRXhx3op5GoI6t17ogyW2zd8rnoMPp3s-dxzI5rmQ__&Key-Pair-Id=K1F55BTI9AHGIK cost: 0.0 deepgram: audio: //NgxAAb+cYwAnoSnAhgGQ6JWPWdavfq80FA8TiGGgECSDQwir59JvqBQx0... voice_type: 1 audio_resource_url: https://d14uq1pz7dzsdq.cloudfront.net/c7c9ef1f-89aa-40e2-8ee6-0d019acfc593_.?Expires=1714652657&Signature=QaOY4oYqE2E8BtSUG5l1nL-p5I1oYG-~AmMKW-CpzggNoMmK~gCCCInNI7peIqcv13W8bnqzN0iGrW8aiweYW6l9-J0wh5f5U1XJYh8OezWY2id9HSO7Yq-s4r1qcBY7e-n2xd7E4XbYd50SwBO0Y1mMvjxTRK~jqybi6YV7LkfgrcICGSbtlqJsTiLSxEFWkOT4CtTE-WgZQEo4XstExCdsoWiSX6~NrhxVdANuKTs-j0KNfzRBc8wZm58JtwOQg4aoaPzDjRmizwVKSpr0OsBB5gMYXtdsT48OsNREEUs8nrOsT4470mkCCrKD9TsgM9M4vqTwMaTrocwg3pQw5A__&Key-Pair-Id=K1F55BTI9AHGIK cost: 0.0 elevenlabs: audio: //uQxAAAEg2jA4SYzeIKKeL0ww9lAAASqQEzOfChhcVisVk6MkYxdGuTTsh... voice_type: 1 audio_resource_url: https://d14uq1pz7dzsdq.cloudfront.net/34646790-50e8-45eb-aa12-9a0f29a6ccfd_.wav?Expires=1721740369&Signature=kAl8YEjOyfip3ybnSIEcQVCuFt6SzfZOe14qAKqLgP2uJKx~p6rAszytHtq8Uar3HyNSge4LVyrV2DZlLxV9qprd7AAkWlKTdRXOACxWEWm50RSwuJITrntB6gjrKzcg3Jww7QCdEGgAGh7fdBHxZgJkDp7XNMduPSc5Wy4INOqo0yAFC6HJymR7Rz1S81aTLMVrrOidwdt1yg3wWLDbFmmyKBpzOOHyMBnIdwMrG-85DHIs2lUFhUaSHlbpKtYjazFnwlS5EpfI7zJI~8vg-H4B52SDjO7xHP-WGaGZqudMSw9f~c7mM9CbJVgGVw9M5iS2GeXukMDTCLKgPfUSsg__&Key-Pair-Id=K1F55BTI9AHGIK cost: 0.0 google: audio: //NExAAAAANIAAAAAExBTUUzLjEwMFVVVVVVVVVVVVVVVVVVVVVVVVVVVVV... voice_type: 1 audio_resource_url: https://d14uq1pz7dzsdq.cloudfront.net/ea1dced0-5ea6-4173-aca1-9b96157f5649_.mp3?Expires=1689855563&Signature=awBBVf-QnJgPv3ujwjnddpw-JdBkQH70owN4UZMoxtHWJo2oqrk-w5CRtuZdTDDw93hr2IfCKtkTDyOpVkCIykRoKPafTlsZ-S6IkD18NHki-9clqXKTGFnAXiJ7PwxrE9d~4dVMxbFvo0TpOaYhziLg4rXFSWK96ep-FttxQ53GF-cg9RK9x3zP88Tx2CF-S9mr7Ar7U9a~NUscB045pic9duQ-5rKUcQ4jdw9I~M21-Y~sR8vTWpq~DrlHV3Swpbq-uvWNeiFD--Tcf85wPg2LwWrP2WqRkcmda2pEuDhxCapHJArugpwQYc1N465-1KRT7YvhHwRn2H-7zFofpQ__&Key-Pair-Id=K1F55BTI9AHGIK cost: 0.0 lovoai: audio: UklGRr4mAwBXQVZFZm10IBAAAAABAAEARKwAAIhYAQACABAAZGF0YZomAwA... voice_type: 1 audio_resource_url: https://voiceverse-prod.s3.us-west-2.amazonaws.com/team/64b7b3887dd25662022a4876/jobs/65805aaaa046bb0c4bf7b2f8/hoQLZBv5a3.wav?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Credential=REDACTED_AWS_ACCESS_KEY_ID%2F20231218%2Fus-west-2%2Fs3%2Faws4_request&X-Amz-Date=20231218T144358Z&X-Amz-Expires=86400&X-Amz-Signature=c25bf25c16efaee00d7e8caf12d1437f417fe693919faab5ec5f5a009b079095&X-Amz-SignedHeaders=host&x-id=GetObject cost: 0.0 microsoft: audio: //NkxAAAAANIAAAAAAsohlsQIIJsYQIECBDDAAAAhDHxAgAACKBv6Iifoia... voice_type: 1 audio_resource_url: https://d14uq1pz7dzsdq.cloudfront.net/e1a0f019-b635-45be-9df2-cc2ff1abbde0_.mp3?Expires=1700491238&Signature=Jo-dbHZCSiAYpxKam28BCmFWrCiUpTeXVaDZeCFYp9d7iv47ZEy5sGiqdDyESkmntz9zyhJvXvwZZ04Q7aYJTsRS50haiZj9AmAEzz1Qn99~X~C7cavu9j4x1n36EcHzFyVdb2c65qUVLj2-ZDOARYnV-Xgt~OD2LOGmPMuMXNb3e3ys5OOKa87iB80ruG5oVNIX-RjJn~YrUzkxtvEDfOY77hR-E5ZBUb5w0zj4Ek7wSQkSm49Hvg1KTH6Kwu1PVQ~fPOJCnGjlxUJbvFDeN17Tf5eJncd11PSlTzAqq4JejnJvVQo7rdBP3AtqtJ3n9fdSLd5e5xp82ycZ5VTrWg__&Key-Pair-Id=K1F55BTI9AHGIK cost: 0.0 amazon: audio: SUQzBAAAAAAAI1RTU0UAAAAPAAADTGF2ZjU4Ljc2LjEwMAAAAAAAAAAAAAA... voice_type: 1 audio_resource_url: https://d14uq1pz7dzsdq.cloudfront.net/dbaaf653-d243-4ca6-9ad2-52a67e8a9e7a_.mp3?Expires=1700583326&Signature=G9ZctP~mBzmfzXl0rtjN0wDRUHHrKdYGc5-B9xh3Kbv~gYsRinqDiYYX3KMU8HrLbBOoIxm1CSt79V8pZ0yMsfT7nNaIWcCLh7ldbbWGaOYBO-O4Dg5Q~1MjrkecNbTXs1m07OxfMNHJvtczQ39KA5P~lEbIHPdHfypRWInyjzvi8Z3s4XWNGQY0tJTAkJ4YyF42UaZIV5LXLd~gMkXzim6x45plBRC7uM7H8mK3iHDqLoFtkT0Mjm2b5Br7g4bMf7F-kejJIP1k4cMy28TgJtMnPWAp9v~zUm4kpRArfW66J-yE3s9xeRGqRQUKky~mMCStcbLSePgKPULNEGPkdg__&Key-Pair-Id=K1F55BTI9AHGIK cost: 0.0 summary: Response Example description: '' '400': content: application/json: schema: $ref: '#/components/schemas/BadRequest' description: '' '500': content: application/json: schema: $ref: '#/components/schemas/Error' description: '' '403': content: application/json: schema: $ref: '#/components/schemas/Error' description: '' '404': content: application/json: schema: $ref: '#/components/schemas/NotFoundResponse' description: '' components: schemas: audiotext_to_speechTextToSpeechRequest: type: object properties: settings: type: string default: {} description: "A dictionnary or a json object to specify specific models to use for some providers.
It can be in the following format: {\"google\" : \"google_model\", \"ibm\": \"ibm_model\"...}.\n " providers: type: array items: type: string minLength: 1 description: 'It can be one (ex: **''amazon''** or **''google''**) or multiple provider(s) (ex: **''amazon,microsoft,google''**) that the data will be redirected to in order to get the processed results.
Providers can also be invoked with specific models (ex: providers: **''amazon/model1, amazon/model2, google/model3''**)' fallback_providers: type: array items: type: string default: [] description: "Providers in this list will be used as fallback if the call to provider in `providers` parameter fails.\n To use this feature, you must input **only one** provider in the `providers` parameter. but you can put up to 5 fallbacks.\n\nThey will be tried in the same order they are input, and it will stop to the first provider who doesn't fail.\n\n\n*Doesn't work with async subfeatures.*\n " maxItems: 5 response_as_dict: type: boolean default: true description: "Optional : When set to **true** (default), the response is an object of responses with providers names as keys :
\n ``` {\"google\" : { \"status\": \"success\", ... }, } ```
\n When set to **false** the response structure is a list of response objects :
\n ``` [{\"status\": \"success\", \"provider\": \"google\" ... }, ] ```.
\n " attributes_as_list: type: boolean default: false description: "Optional : When set to **false** (default) the structure of the extracted items is list of objects having different attributes :
\n ```{'items': [{\"attribute_1\": \"x1\",\"attribute_2\": \"y2\"}, ... ]}```
\n When it is set to **true**, the response contains an object with each attribute as a list :
\n ```{ \"attribute_1\": [\"x1\",\"x2\", ...], \"attribute_2\": [y1, y2, ...]}``` " show_base_64: type: boolean default: true show_original_response: type: boolean default: false description: "Optional : Shows the original response of the provider.
\n When set to **true**, a new attribute *original_response* will appear in the response object." text: type: string minLength: 1 description: Text to analyze language: type: - string - 'null' default: '' description: 'Language code expected (ex: en, fr)' option: default: '' oneOf: - $ref: '#/components/schemas/OptionEnum' - $ref: '#/components/schemas/BlankEnum' rate: type: - integer - 'null' maximum: 100 minimum: -100 default: 0 description: Increase or decrease the speaking rate by expressing a positif or negatif number ranging between 100 and -100 (a relative value as percentage varying from -100% to 100%) pitch: type: - integer - 'null' maximum: 100 minimum: -100 default: 0 description: Increase or decrease the speaking pitch by expressing a positif or negatif number ranging between 100 and -100 (a relative value as percentage varying from -100% to 100%) volume: type: - integer - 'null' maximum: 100 minimum: -100 default: 0 description: Increase or decrease the audio volume by expressing a positif or negatif number ranging between 100 and -100 (a relative value as percentage varying from -100% to 100%) audio_format: type: - string - 'null' default: '' description: Optional parameter to specify the audio format in which the audio will be generated. By default, audios are encoded in MP3, except for lovoai which use the wav container. sampling_rate: type: - integer - 'null' maximum: 200000 minimum: 0 default: 0 description: Optional. The synthesis sample rate (in hertz) for this audio. When this is specified, the audio will be converted either to the right passed value, or to a the nearest value acceptable by the provider required: - providers - text audiotext_to_speechResponseModel: properties: amazon: $ref: '#/components/schemas/audiotext_to_speechTextToSpeechDataClass' default: null elevenlabs: $ref: '#/components/schemas/audiotext_to_speechTextToSpeechDataClass' default: null lovoai: $ref: '#/components/schemas/audiotext_to_speechTextToSpeechDataClass' default: null google: $ref: '#/components/schemas/audiotext_to_speechTextToSpeechDataClass' default: null openai: $ref: '#/components/schemas/audiotext_to_speechTextToSpeechDataClass' default: null deepgram: $ref: '#/components/schemas/audiotext_to_speechTextToSpeechDataClass' default: null microsoft: $ref: '#/components/schemas/audiotext_to_speechTextToSpeechDataClass' default: null title: audiotext_to_speechResponseModel type: object FieldError: type: object properties: : type: array items: type: string required: - StatusEnum: enum: - sucess - fail type: string NotFoundResponse: type: object properties: details: type: string default: Not Found NestedError: type: object properties: type: type: string message: type: string required: - message - type Error: type: object properties: error: $ref: '#/components/schemas/NestedError' required: - error OptionEnum: enum: - FEMALE - MALE type: string description: '* `FEMALE` - Female * `MALE` - Male' NestedBadRequest: type: object properties: type: type: string message: $ref: '#/components/schemas/FieldError' required: - message - type BadRequest: type: object properties: error: $ref: '#/components/schemas/NestedBadRequest' required: - error BlankEnum: enum: - '' audiotext_to_speechTextToSpeechDataClass: properties: audio: title: Audio type: string voice_type: title: Voice Type type: integer audio_resource_url: title: Audio Resource Url type: string original_response: default: null description: original response sent by the provider, hidden by default, show it by passing the `show_original_response` field to `true` in your request title: Original Response status: allOf: - $ref: '#/components/schemas/StatusEnum' title: Status required: - audio - voice_type - audio_resource_url - status title: audiotext_to_speechTextToSpeechDataClass type: object securitySchemes: FeatureApiAuth: type: http scheme: bearer bearerFormat: JWT