JSPM

  • Created
  • Published
  • Downloads 727
  • Score
    100M100P100Q81388F
  • License MIT

Ai and Canvas library. Supports typescript and javascript

Package Exports

  • apexify.js
  • apexify.js/dist/index.js

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (apexify.js) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

Jedi-Studio Introduce

Greetings everyone! 🌟 This marks the release of a beta version for our package. If you encounter any issues or need assistance, feel free to reach out. Direct message me on Discord at jedi.jsx (ID: 1130583393176920095).

Added new 🆕

  • Finally Supporting Ts and Js

🚀 Usage Guidelines

🤖 Ai Chat & Imagine

  • Added new chat models

For a standard reply without AI images or voice messages, set both draw and voice to false. Activate voice replies and AI images by setting them to true. Trigger the bot to draw AI images with specific words or phrases using drawTrigger.

Usage as prefix

  • The code below si how to use it in prefix command or set it into specific channel
// Use this for js files (cjs modules)
const { ApexAI } = require('apexify.js');

// For es module (.mjs/(.js if "type": "module" in package.json) or ts
import { ApexAI } from 'apexify.js';

const allowedChannelId = 'Channel_ID';  // Whether to set a channel id or no
client.on('messageCreate', async (message) => {
  if (message.author.bot || message.channel.id !== allowedChannelId) return;

/////Note: voice message for premium is beta but way better than google in voice speechs

const aiOptions = {
  voice: {
    enable: true,                // Enables voice processing
    voiceModal: "google",        // Specifies the voice processing service (e.g., "google", premium: "apexAi", "zenithAi")
    voice_code: "en-US-3",       // Specifies the voice code or language for voice processing
    apiKey: "your-api-key",      // API key required for accessing the voice processing service
    type: "b"                    // Specifies the type of voice processing (e.g., "a" for automated, "b" for synthesized, etc.)
  },
  imagine: {
    enable: true,                // Enables image processing
    drawTrigger: ["create", "رسم"], // Triggers for initiating image drawing (e.g., keywords or phrases)
    imageModel: "prodia",        // Specifies the image processing model or service (e.g., "prodia", "dalle", etc.)
    numOfImages: 2,              // Specifies the number of images to process
    nsfw: false,                 // Disables to generate NSFW Images
    enhancer: true               // Enables image enhancement
  },
  chat: {
    chatModel: "v3",             // Specifies the chat model or service (e.g., "v3", "gemma-v3", "starChat", more models are down at the end of the page)
    readFiles: true              // Enables reading files for chat processing (e.g., PDF, TXT files)
  },
  others: {
    keywords: ["help", "info"],  // Specifies keywords for triggering specific responses
    keywordResponses: {
      help: "I'm here to assist you!", // Specifies responses for specific keywords
      info: "Here is some information for you."
    },
    loader: {
      loadingMessage: "Please wait while I process your request...", // Loading message to display during processing
      loadingTimer: 5000          // Specifies the duration (in milliseconds) for displaying the loading message
    }
  }
};


ApexAI(message, aiOptions)
});

Usage in slashcommand or outside discord

//// Inside discord for Ai images
const { SlashCommandBuilder, AttachmentBuilder } = require('discord.js');
const { ApexImagine } = require('apexify.js');

module.exports = {
  data: new SlashCommandBuilder()
    .setName('apeximagine')
    .setDescription('Generate images using ApexImagine')
    .addStringOption(option =>
      option.setName('modal')
        .setDescription('The modal to use')
        .setRequired(true))
    .addStringOption(option =>
      option.setName('prompt')
        .setDescription('The prompt for image generation')
        .setRequired(true))
    .addIntegerOption(option =>
      option.setName('count')
        .setDescription('Number of images to generate')
        .setRequired(true))
    .addStringOption(option =>
      option.setName('negative')
        .setDescription('Negative prompt (if needed)')),
  async execute(interaction) {

    await interaction.deferReply()
    const modal = interaction.options.getString('modal');
    const prompt = interaction.options.getString('prompt');
    const count = interaction.options.getInteger('count');
    const negativePrompt = interaction.options.getString('negative') || '';

    try {
      const imageUrls = await ApexImagine(modal, prompt, { number: count, negative: negativePrompt });
      const attachments = [];

      for (const url of imageUrls) {
        if (!attachments.some(attachment => attachment.url === url)) {
          const attachment = new AttachmentBuilder(url);
          attachments.push(attachment);
        }
      }

      await interaction.editReply({ files: attachments });
    } catch (error) {
      console.error(error);
      await interaction.editReply('An error occurred while generating images.');
    }
  },
};

/////////////////////////////////////////////////////


/////////////////////////////////////////////////////

///Inside discord for Ai chat
const { SlashCommandBuilder } = require('discord.js');
const { ApexChat } = require('apexify.js');

module.exports = {
  data: new SlashCommandBuilder()
    .setName('apex-chat')
    .setDescription('Generate Ai chat response')
    .addStringOption(option =>
      option.setName('modal')
        .setDescription('The modal to use')
        .setRequired(true))
    .addStringOption(option =>
      option.setName('prompt')
        .setDescription('The prompt for gpt')
        .setRequired(true)),
  async execute(interaction) {

   await interaction.deferReply()
    const modal = interaction.options.getString('modal');
    const prompt = interaction.options.getString('prompt');


    try {
      const response = await ApexChat(modal, prompt);

      await interaction.editReply({ content: `${response}` });
    } catch (error) {
      console.error(error);
      await interaction.editReply('An error occurred while generating images.');
    }
  },
};

Usage outside discord

 /// Generating ai images
 const imageUrls = await ApexImagine(modal, prompt, { number: count, negative: negativePrompt });/// returns imageUrls as array

 ///Generating Ai chat
 const response = await ApexChat(model, prompt);/// returns a direct prompt

📸 Manipulating Images Using Canvas 🎨

  • Canvas Background configuration.
  • Canvas Images/shapes/custom drawing configuration.
  • Canvas Text on background or image configuration.
  • Canvas Filters: Color/Effects.
  • Canvas Gif: Creating Gif from set of images.
  • Canvas Resizing and Extention Converter for images.
  • Canvas Charts: Creating piechart/barcharts/linecharts using the given set of data.
const { ApexPainter } = require('apexify.js'); // cjs module .js
 
//            OR

import { ApexPainter } from 'apexify.js'; // ES module .mjs or TS

const painter = new ApexPainter();

// Note: All the options below inside canvasBg, images, and text are optional and not required. Feel free to remove any option you won't use. 

// Creating Background:

const canvasBg = {
    width: 800, // Specifies the width of the background.
    height: 600, // Specifies the height of the background.
    x: 100, // Specifies the position of the background on the x-axis.
    y: 50, // Specifies the position of the background on the y-axis.
    customBg: 'https://example.com/image.jpg | ./image.png', // Specifies the URL or local path to the custom background image.
    colorBg: 'blue', // Specifies the background color if no custom background image is provided.
    gradientBg: {
        type: 'linear', // Specifies the type of gradient ('radial' or 'linear').
        startX: 0, // Starting coordinate on the x-axis for the gradient.
        startY: 0, // Starting coordinate on the y-axis for the gradient.
        endX: 800, // Ending coordinate on the x-axis for the gradient.
        endY: 600, // Ending coordinate on the y-axis for the gradient.
        colors: [ // Array of objects specifying color stops and corresponding colors for the gradient.
            { stop: 0, color: 'red' }, // Red color at the beginning of the gradient (stop: 0).
            { stop: 0.5, color: 'green' }, // Green color in the middle of the gradient (stop: 0.5).
            { stop: 1, color: 'blue' } // Blue color at the end of the gradient (stop: 1).
        ]
    },
    stroke: {
        color: 'black', // Specifies the color of the stroke.
        width: 2, // Specifies the thickness of the stroke.
        position: 0.5, // Specifies the position of the stroke. As value increase the far it be from background.
        borderRadius: 10 | 'circular' // Specifies the border radius of the stroke, or set it as 'circular' for circular stroke
    },
    shadow: {
        color: 'rgba(0, 0, 0, 0.5)', // Specifies the color of the shadow.
        offsetX: 2, // Specifies the horizontal offset of the shadow.
        offsetY: 2, // Specifies the vertical offset of the shadow.
        blur: 5, // Specifies the blur radius of the shadow.
        opacity: 0.5 // Specifies the opacity of the shadow (0 to 1).
    },
    rotation: 45, // Specifies the rotation angle of the background.
    borderRadius: 20 | 'circular' // Specifies the border radius of the background, or set it as 'circular' for make backgroudn as circle.
};

const background = await painter.createCanvas(canvasBg, __dirname); // Add __dirname if using any local image.
console.log(background); // Returning  a buffer image.



// Creating images on canvas:

const images = [  
  {
    source: 'https://example.com/image.jpg | ./image.png | square', // Specifies your image either url image / local image / shape name. Valid Shape names are ['circle', 'square', 'triangle', 'pentagon', 'hexagon', 'heptagon', 'octagon', 'star', 'kite']. In future updates are shapes will be provided.
    
    width: 300, // Specifies your image's width.
    height: 200, // Specifies your image's height.
    x: 30, // Specifies your image's position on x axis.
    y: 50, // Specifies your image's position on y axis.
    isFilled: true, // Whether filling your shape or no. Applied if source is a shape name.
    color: '#2e2e2e', // Specifies your shape color. Applied if source is a shape name.
    gradient: { // Specifies your shape gradient color. Applied if source is a shape name.
        type: 'linear', // Specifies the type of gradient ('radial' or 'linear').
        startX: 0, // Starting coordinate on the x-axis for the gradient.
        startY: 0, // Starting coordinate on the y-axis for the gradient.
        endX: 800, // Ending coordinate on the x-axis for the gradient.
        endY: 600, // Ending coordinate on the y-axis for the gradient.
        colors: [ // Array of objects specifying color stops and corresponding colors for the gradient.
            { stop: 0, color: 'red' }, // Red color at the beginning of the gradient (stop: 0).
            { stop: 0.5, color: 'green' }, // Green color in the middle of the gradient (stop: 0.5).
            { stop: 1, color: 'blue' } // Blue color at the end of the gradient (stop: 1).
        ]
    },
    rotation: 90, // Specifies whether to add rotation on image. Works in (degree)
    borderRadius: 50 | "circular" , // Specifies your image's border. Either circular, radius border or none
    stroke: {
        color: 'green', // Specifies Stroke color.
        width: 5, // Specifies thickness of the stroke.
        position: 7, // Specifies the position of the stroke. As value increase the far it be from background.
        borderRadius: 50 | "circular" // Specifies the border radius of the background, or set it as 'circular' for make backgroudn as circle.
    },
    shadow: {
        color: 'rgb(255, 34, 89, 0.6)', // Specifies color of the shadow.
        offsetX: 10, // Specifies postion of the shadow on x axis.
        offsetY: -10, // Specifies postion of the shadow on y axis.
        blur: 10, // Specifies blur of the shadow.
        opacity: 5, // Specifies opacity of the shadow.
        borderRadius: 50 | "circular" // Specifies the border radius of the background, or set it as 'circular' for make backgroudn as circle.
    }
  },
  {
    // Add other images with  its options here.
  },
];

// Note: You will need to provide a buffer to draw the images on. Since background returns buffer we use it in this example.
const image = await painter.createImage(images, background, __dirname); // Add __dirname if using any local image.



// Creating Text on canvas:

const text = [
  {  
    text: 'Hello World', // Specifies your text to add.
    x: 90, // Specifies position of the tex on the x-axis.
    y: 20, // Specifies position of the tex on the y-axis.
    fontPath: './fonts/customFont', // Use your custom fonts if you like.
    fontName: 'fontName', // Add a name to your custom font || default is 'Arial'.
    fontSize: 30, // Text size on image.
    isBold: true, // Add Boldness into the text.
    color: '#00ff00', // Specifies color of the text.
    maxWidth: 30, // Specifies the max width of the text for wrapping.
    lineHeight: 10, // Specifies line height for wrapped text.
    textAlign: 'center', // Specifies text alignment ('center', 'left', 'right', 'start').
    textBaseline: 'alphabatic', // Specifies basline for letter for example (p, y and q make them same y coordinate)
    shadow: {
        color: 'white', // Specifies color of the shadow.
        offsetX: 10, // Specifies postion of the shadow on x axis.
        offsetY: -10, // Specifies postion of the shadow on y axis.
        blur: 10, // Specifies blur of the shadow.
        opacity: 5, // Specifies opacity of the shadow.
    },
    stroke: {
        color: 'black', // Specifies color of the stroke.
        width: 1, // Specifies thickness of the stroke.
    }
  },
  {
   // Add other texts and its options here.
  }
];

// Note: You will need to provide a buffer to draw the text on. Since image returns buffer we use it in this example.
const final = await painter.createText(text, image, __dirname); // Add __dirname if using any local custom fonts.
console.log(final); // Returns a buffer image.


// By that way we created firstly a canvas background, then an images on the canvas background to give us the results, then we used the results to draw text on.

// You can add any image ready you want just buffer it and put it in the constructor to use it.

For Further Usage Of ApexPainter

  • Further Usages: creating charts, custom drawing, and GIF creation using ApexPainter.

  • Please refer to our documention website for further usages and better explainantions.

  • Check exmaple folder for charts information and usage.

📚 More Info & Documentation 📖

🚨 Important Notes 📌

  1. Voice Messages: Currently in beta, occasional disruptions may occur.

Keep experimenting, and feel free to contact me for assistance! Suggestions and adjustments are welcome. 🌟

Draw Models

Click to display models - v1 - v2 - v2-beta - lexica - prodia - animefy - raava - shonin - v3 - 3Guofeng3_v34.safetensors [50f420de] - absolutereality_V16.safetensors [37db0fc3] - absolutereality_v181.safetensors [3d9d4d2b] - amIReal_V41.safetensors [0a8a2e61] - analog-diffusion-1.0.ckpt [9ca13f02] - anythingv3_0-pruned.ckpt [2700c435] - anything-v4.5-pruned.ckpt [65745d25] - anythingV5_PrtRE.safetensors [893e49b9] - AOM3A3_orangemixs.safetensors [9600da17] - blazing_drive_v10g.safetensors [ca1c1eab] - cetusMix_Version35.safetensors [de2f2560] - childrensStories_v13D.safetensors [9dfaabcb] - childrensStories_v1SemiReal.safetensors [a1c56dbb] - childrensStories_v1ToonAnime.safetensors [2ec7b88b] - Counterfeit_v30.safetensors [9e2a8f19] - cuteyukimixAdorable_midchapter3.safetensors [04bdffe6] - cyberrealistic_v33.safetensors [82b0d085] - dalcefo_v4.safetensors [425952fe] - deliberate_v2.safetensors [10ec4b29] - deliberate_v3.safetensors [afd9d2d4] - dreamlike-anime-1.0.safetensors [4520e090] - dreamlike-diffusion-1.0.safetensors [5c9fd6e0] - dreamlike-photoreal-2.0.safetensors [fdcf65e7] - dreamshaper_6BakedVae.safetensors [114c8abb] - dreamshaper_7.safetensors [5cf5ae06] - dreamshaper_8.safetensors [9d40847d] - edgeOfRealism_eorV20.safetensors [3ed5de15] - EimisAnimeDiffusion_V1.ckpt [4f828a15] - elldreths-vivid-mix.safetensors [342d9d26] - epicrealism_naturalSinRC1VAE.safetensors [90a4c676] - ICantBelieveItsNotPhotography_seco.safetensors [4e7a3dfd] - juggernaut_aftermath.safetensors [5e20c455] - lofi_v4.safetensors [ccc204d6] - lyriel_v16.safetensors [68fceea2] - majicmixRealistic_v4.safetensors [29d0de58] - mechamix_v10.safetensors [ee685731] - meinamix_meinaV9.safetensors [2ec66ab0] - meinamix_meinaV11.safetensors [b56ce717] - neverendingDream_v122.safetensors [f964ceeb] - openjourney_V4.ckpt [ca2f377f] - pastelMixStylizedAnime_pruned_fp16.safetensors [793a26e8] - portraitplus_V1.0.safetensors [1400e684] - protogenx34.safetensors [5896f8d5] - Realistic_Vision_V1.4-pruned-fp16.safetensors [8d21810b] - Realistic_Vision_V2.0.safetensors [79587710] - Realistic_Vision_V4.0.safetensors [29a7afaa] - Realistic_Vision_V5.0.safetensors [614d1063] - redshift_diffusion-V10.safetensors [1400e684] - revAnimated_v122.safetensors [3f4fefd9] - rundiffusionFX25D_v10.safetensors [cd12b0ee] - rundiffusionFX_v10.safetensors [cd4e694d] - sdv1_4.ckpt [7460a6fa] - v1-5-pruned-emaonly.safetensors [d7049739] - v1-5-inpainting.safetensors [21c7ab71] - shoninsBeautiful_v10.safetensors [25d8c546] - theallys-mix-ii-churned.safetensors [5d9225a4] - timeless-1.0.ckpt [7c4971d4] - toonyou_beta6.safetensors [980f6b15]

chat Models

Click to display models - v3 - v3-32k - turbo - turbo-16k - gemini - apexChat - gemma-v3 - gemma-v4 - starChat - zephyr-beta

Voice Models

Click to display models
  • Language Name Language Code Voice Code Voice Type Voice Gender
  • Afrikaans (South Africa) af-ZA af-ZA-1 Neural Female
  • Afrikaans (South Africa) af-ZA af-ZA-2 Neural Male
  • Amharic (Ethiopia) am-ET am-ET-1 Neural Male
  • Amharic (Ethiopia) am-ET am-ET-2 Neural Female
  • Arabic (United Arab Emirates) ar-AE ar-AE-1 Neural Female
  • Arabic (United Arab Emirates) ar-AE ar-AE-2 Neural Male
  • Arabic (Bahrain) ar-BH ar-BH-1 Neural Male
  • Arabic (Bahrain) ar-BH ar-BH-2 Neural Female
  • Arabic (Algeria) ar-DZ ar-DZ-1 Neural Female
  • Arabic (Algeria) ar-DZ ar-DZ-2 Neural Male
  • Arabic (Egypt) ar-EG ar-EG-1 Neural Female
  • Arabic (Egypt) ar-EG ar-EG-2 Neural Male
  • Arabic (Egypt) ar-EG ar-EG-3 Standard Female
  • Arabic (Iraq) ar-IQ ar-IQ-1 Neural Male
  • Arabic (Iraq) ar-IQ ar-IQ-2 Neural Female
  • Arabic (Jordan) ar-JO ar-JO-1 Neural Female
  • Arabic (Jordan) ar-JO ar-JO-2 Neural Male
  • Arabic (Kuwait) ar-KW ar-KW-1 Neural Male
  • Arabic (Kuwait) ar-KW ar-KW-2 Neural Female
  • Arabic (Libya) ar-LY ar-LY-1 Neural Female
  • Arabic (Libya) ar-LY ar-LY-2 Neural Male
  • Arabic (Morocco) ar-MA ar-MA-1 Neural Male
  • Arabic (Morocco) ar-MA ar-MA-2 Neural Female
  • Arabic (Qatar) ar-QA ar-QA-1 Neural Female
  • Arabic (Qatar) ar-QA ar-QA-2 Neural Male
  • Arabic (Saudi Arabia) ar-SA ar-SA-1 Neural Male
  • Arabic (Saudi Arabia) ar-SA ar-SA-2 Neural Female
  • Arabic (Saudi Arabia) ar-SA ar-SA-3 Standard Male
  • Arabic (Syria) ar-SY ar-SY-1 Neural Female
  • Arabic (Syria) ar-SY ar-SY-2 Neural Male
  • Arabic (Tunisia) ar-TN ar-TN-1 Neural Male
  • Arabic (Tunisia) ar-TN ar-TN-2 Neural Female
  • Arabic (Yemen) ar-YE ar-YE-1 Neural Female
  • Arabic (Yemen) ar-YE ar-YE-2 Neural Male
  • Bulgarian (Bulgaria) bg-BG bg-BG-1 Neural Male
  • Bulgarian (Bulgaria) bg-BG bg-BG-2 Neural Female
  • Bulgarian (Bulgaria) bg-BG bg-BG-3 Standard Male
  • Bangla (Bangladesh) bn-BD bn-BD-1 Neural Female
  • Bangla (Bangladesh) bn-BD bn-BD-2 Neural Male
  • Catalan (Spain) ca-ES ca-ES-1 Neural Female
  • Catalan (Spain) ca-ES ca-ES-2 Neural Female
  • Catalan (Spain) ca-ES ca-ES-3 Neural Male
  • Catalan (Spain) ca-ES ca-ES-4 Standard Female
  • Czech (Czech) cs-CZ cs-CZ-1 Neural Male
  • Czech (Czech) cs-CZ cs-CZ-2 Neural Female
  • Czech (Czech) cs-CZ cs-CZ-3 Standard Male
  • Welsh (United Kingdom) cy-GB cy-GB-1 Neural Male
  • Welsh (United Kingdom) cy-GB cy-GB-2 Neural Female
  • Danish (Denmark) da-DK da-DK-1 Neural Female
  • Danish (Denmark) da-DK da-DK-2 Neural Male
  • Danish (Denmark) da-DK da-DK-3 Standard Female
  • German (Austria) de-AT de-AT-1 Neural Female
  • German (Austria) de-AT de-AT-2 Neural Male
  • German (Austria) de-AT de-AT-3 Standard Male
  • German (Switzerland) de-CH de-CH-1 Neural Male
  • German (Switzerland) de-CH de-CH-2 Neural Female
  • German (Switzerland) de-CH de-CH-3 Standard Male
  • German (Germany) de-DE de-DE-1 Neural Female
  • German (Germany) de-DE de-DE-2 Neural Male
  • German (Germany) de-DE de-DE-3 Standard Female
  • German (Germany) de-DE de-DE-4 Standard Male
  • Greek (Greece) el-GR el-GR-1 Neural Female
  • Greek (Greece) el-GR el-GR-2 Neural Male
  • Greek (Greece) el-GR el-GR-3 Standard Male
  • English (Australia) en-AU en-AU-1 Neural Female
  • English (Australia) en-AU en-AU-2 Neural Male
  • English (Australia) en-AU en-AU-3 Standard Female
  • English (Australia) en-AU en-AU-4 Standard Female
  • English (Canada) en-CA en-CA-1 Neural Female
  • English (Canada) en-CA en-CA-2 Neural Male
  • English (Canada) en-CA en-CA-3 Standard Female
  • English (Canada) en-CA en-CA-4 Standard Female
  • English (United Kingdom) en-GB en-GB-1 Neural Female
  • English (United Kingdom) en-GB en-GB-2 Neural Male
  • English (United Kingdom) en-GB en-GB-3 Neural Female
  • English (United Kingdom) en-GB en-GB-4 Neural Female
  • English (United Kingdom) en-GB en-GB-5 Standard Male
  • English (United Kingdom) en-GB en-GB-6 Standard Female
  • English (United Kingdom) en-GB en-GB-7 Standard Female
  • English (Hongkong) en-HK en-HK-1 Neural Male
  • English (Hongkong) en-HK en-HK-2 Neural Female
  • English (Ireland) en-IE en-IE-1 Neural Male
  • English (Ireland) en-IE en-IE-2 Neural Female
  • English (Ireland) en-IE en-IE-3 Standard Male
  • English (India) en-IN en-IN-1 Neural Female
  • English (India) en-IN en-IN-2 Neural Male
  • English (India) en-IN en-IN-3 Standard Female
  • English (India) en-IN en-IN-4 Standard Female
  • English (India) en-IN en-IN-5 Standard Male
  • English (Kenya) en-KE en-KE-1 Neural Female
  • English (Kenya) en-KE en-KE-2 Neural Male
  • English (Nigeria) en-NG en-NG-1 Neural Male
  • English (Nigeria) en-NG en-NG-2 Neural Female
  • English (New Zealand) en-NZ en-NZ-1 Neural Male
  • English (New Zealand) en-NZ en-NZ-2 Neural Female
  • English (Philippines) en-PH en-PH-1 Neural Male
  • English (Philippines) en-PH en-PH-2 Neural Female
  • English (Singapore) en-SG en-SG-1 Neural Female
  • English (Singapore) en-SG en-SG-2 Neural Male
  • English (Tanzania) en-TZ en-TZ-1 Neural Male
  • English (Tanzania) en-TZ en-TZ-2 Neural Female
  • English (United States) en-US en-US-1 Neural Female
  • English (United States) en-US en-US-2 Neural Female
  • English (United States) en-US en-US-3 Neural Male
  • English (United States) en-US en-US-4 Neural Female
  • English (United States) en-US en-US-5 Neural Female
  • English (United States) en-US en-US-6 Neural Female
  • English (United States) en-US en-US-7 Neural Female
  • English (United States) en-US en-US-8 Neural Male
  • English (United States) en-US en-US-9 Neural Male
  • English (United States) en-US en-US-10 Neural Female
  • English (United States) en-US en-US-11 Neural Female
  • English (United States) en-US en-US-12 Neural Male
  • English (United States) en-US en-US-13 Neural Male
  • English (United States) en-US en-US-14 Neural Female
  • English (United States) en-US en-US-15 Neural Female
  • English (United States) en-US en-US-16 Neural Female
  • English (United States) en-US en-US-17 Standard Female
  • English (United States) en-US en-US-18 Standard Male
  • English (United States) en-US en-US-19 Standard Male
  • English (United States) en-US en-US-20 Standard Female
  • English (South Africa) en-ZA en-ZA-1 Neural Female
  • English (South Africa) en-ZA en-ZA-2 Neural Male
  • Spanish (Argentina) es-AR es-AR-1 Neural Female
  • Spanish (Argentina) es-AR es-AR-2 Neural Male
  • Spanish (Bolivia) es-BO es-BO-1 Neural Male
  • Spanish (Bolivia) es-BO es-BO-2 Neural Female
  • Spanish (Chile) es-CL es-CL-1 Neural Female
  • Spanish (Chile) es-CL es-CL-2 Neural Male
  • Spanish (Colombia) es-CO es-CO-1 Neural Male
  • Spanish (Colombia) es-CO es-CO-2 Neural Female
  • Spanish (Costa Rica) es-CR es-CR-1 Neural Male
  • Spanish (Costa Rica) es-CR es-CR-2 Neural Female
  • Spanish (Cuba) es-CU es-CU-1 Neural Female
  • Spanish (Cuba) es-CU es-CU-2 Neural Male
  • Spanish (Dominican Republic) es-DO es-DO-1 Neural Male
  • Spanish (Dominican Republic) es-DO es-DO-2 Neural Female
  • Spanish (Ecuador) es-EC es-EC-1 Neural Female
  • Spanish (Ecuador) es-EC es-EC-2 Neural Male
  • Spanish (Spain) es-ES es-ES-1 Neural Male
  • Spanish (Spain) es-ES es-ES-2 Neural Female
  • Spanish (Spain) es-ES es-ES-3 Standard Female
  • Spanish (Spain) es-ES es-ES-4 Standard Female
  • Spanish (Spain) es-ES es-ES-5 Standard Male
  • Spanish (Equatorial Guinea) es-GQ es-GQ-1 Neural Male
  • Spanish (Equatorial Guinea) es-GQ es-GQ-2 Neural Female
  • Spanish (Guatemala) es-GT es-GT-1 Neural Male
  • Spanish (Guatemala) es-GT es-GT-2 Neural Female
  • Spanish (Honduras) es-HN es-HN-1 Neural Male
  • Spanish (Honduras) es-HN es-HN-2 Neural Female
  • Spanish (Mexico) es-MX es-MX-1 Neural Female
  • Spanish (Mexico) es-MX es-MX-2 Neural Male
  • Spanish (Mexico) es-MX es-MX-3 Standard Female
  • Spanish (Mexico) es-MX es-MX-4 Standard Male
  • Spanish (Nicaragua) es-NI es-NI-1 Neural Male
  • Spanish (Nicaragua) es-NI es-NI-2 Neural Female
  • Spanish (Panama) es-PA es-PA-1 Neural Female
  • Spanish (Panama) es-PA es-PA-2 Neural Male
  • Spanish (Peru) es-PE es-PE-1 Neural Male
  • Spanish (Peru) es-PE es-PE-2 Neural Female
  • Spanish (Puerto Rico) es-PR es-PR-1 Neural Female
  • Spanish (Puerto Rico) es-PR es-PR-2 Neural Male
  • Spanish (Paraguay) es-PY es-PY-1 Neural Male
  • Spanish (Paraguay) es-PY es-PY-2 Neural Female
  • Spanish (El Salvador) es-SV es-SV-1 Neural Female
  • Spanish (El Salvador) es-SV es-SV-2 Neural Male
  • Spanish (United States) es-US es-US-1 Neural Male
  • Spanish (United States) es-US es-US-2 Neural Female
  • Spanish (Uruguay) es-UY es-UY-1 Neural Male
  • Spanish (Uruguay) es-UY es-UY-2 Neural Female
  • Spanish (Venezuela) es-VE es-VE-1 Neural Female
  • Spanish (Venezuela) es-VE es-VE-2 Neural Male
  • Estonian (Estonia) et-EE et-EE-1 Neural Female
  • Estonian (Estonia) et-EE et-EE-2 Neural Male
  • Persian (Iran) fa-IR fa-IR-1 Neural Female
  • Persian (Iran) fa-IR fa-IR-2 Neural Male
  • Finnish (Finland) fi-FI fi-FI-1 Neural Female
  • Finnish (Finland) fi-FI fi-FI-2 Neural Male
  • Finnish (Finland) fi-FI fi-FI-3 Neural Female
  • Finnish (Finland) fi-FI fi-FI-4 Standard Female
  • Filipino (Philippines) fil-PH fil-PH-1 Neural Male
  • Filipino (Philippines) fil-PH fil-PH-2 Neural Female
  • French (Belgium) fr-BE fr-BE-1 Neural Female
  • French (Belgium) fr-BE fr-BE-2 Neural Male
  • French (Canada) fr-CA fr-CA-1 Neural Female
  • French (Canada) fr-CA fr-CA-2 Neural Male
  • French (Canada) fr-CA fr-CA-3 Neural Male
  • French (Canada) fr-CA fr-CA-4 Standard Female
  • French (Canada) fr-CA fr-CA-5 Standard Female
  • French (Switzerland) fr-CH fr-CH-1 Neural Female
  • French (Switzerland) fr-CH fr-CH-2 Neural Male
  • French (Switzerland) fr-CH fr-CH-3 Standard Male
  • French (France) fr-FR fr-FR-1 Neural Female
  • French (France) fr-FR fr-FR-2 Neural Male
  • French (France) fr-FR fr-FR-3 Standard Female
  • French (France) fr-FR fr-FR-4 Standard Female
  • French (France) fr-FR fr-FR-5 Standard Male
  • Irish (Ireland) ga-IE ga-IE-1 Neural Male
  • Irish (Ireland) ga-IE ga-IE-2 Neural Female
  • Galician (Spain) gl-ES gl-ES-1 Neural Male
  • Galician (Spain) gl-ES gl-ES-2 Neural Female
  • Gujarati (India) gu-IN gu-IN-1 Neural Female
  • Gujarati (India) gu-IN gu-IN-2 Neural Male
  • Hebrew (Israel) he-IL he-IL-1 Neural Male
  • Hebrew (Israel) he-IL he-IL-2 Neural Female
  • Hebrew (Israel) he-IL he-IL-3 Standard Male
  • Hindi (India) hi-IN hi-IN-1 Neural Male
  • Hindi (India) hi-IN hi-IN-2 Neural Female
  • Hindi (India) hi-IN hi-IN-3 Standard Male
  • Hindi (India) hi-IN hi-IN-4 Standard Female
  • Croatian (Croatia) hr-HR hr-HR-1 Neural Female
  • Croatian (Croatia) hr-HR hr-HR-2 Neural Male
  • Croatian (Croatia) hr-HR hr-HR-3 Standard Male
  • Hungarian (Hungary) hu-HU hu-HU-1 Neural Female
  • Hungarian (Hungary) hu-HU hu-HU-2 Neural Male
  • Hungarian (Hungary) hu-HU hu-HU-3 Standard Male
  • Indonesian (Indonesia) id-ID id-ID-1 Neural Male
  • Indonesian (Indonesia) id-ID id-ID-2 Neural Female
  • Indonesian (Indonesia) id-ID id-ID-3 Standard Male
  • Italian (Italy) it-IT it-IT-1 Neural Female
  • Italian (Italy) it-IT it-IT-2 Neural Male
  • Italian (Italy) it-IT it-IT-3 Neural Female
  • Italian (Italy) it-IT it-IT-4 Standard Male
  • Italian (Italy) it-IT it-IT-5 Standard Female
  • Japanese (Japan) ja-JP ja-JP-1 Neural Female
  • Japanese (Japan) ja-JP ja-JP-2 Neural Male
  • Japanese (Japan) ja-JP ja-JP-3 Standard Female
  • Japanese (Japan) ja-JP ja-JP-4 Standard Female
  • Japanese (Japan) ja-JP ja-JP-5 Standard Male
  • Javanese (Indonesia) jv-ID jv-ID-1 Neural Male
  • Javanese (Indonesia) jv-ID jv-ID-2 Neural Female
  • Khmer (Cambodia) km-KH km-KH-1 Neural Male
  • Khmer (Cambodia) km-KH km-KH-2 Neural Female
  • Korean (Korea) ko-KR ko-KR-1 Neural Female
  • Korean (Korea) ko-KR ko-KR-2 Neural Male
  • Korean (Korea) ko-KR ko-KR-3 Standard Female
  • Lithuanian (Lithuania) lt-LT lt-LT-1 Neural Male
  • Lithuanian (Lithuania) lt-LT lt-LT-2 Neural Female
  • Latvian (Latvia) lv-LV lv-LV-1 Neural Female
  • Latvian (Latvia) lv-LV lv-LV-2 Neural Male
  • Marathi (India) mr-IN mr-IN-1 Neural Female
  • Marathi (India) mr-IN mr-IN-2 Neural Male
  • Malay (Malaysia) ms-MY ms-MY-1 Neural Male
  • Malay (Malaysia) ms-MY ms-MY-2 Neural Female
  • Malay (Malaysia) ms-MY ms-MY-3 Standard Male
  • Maltese (Malta) mt-MT mt-MT-1 Neural Female
  • Maltese (Malta) mt-MT mt-MT-2 Neural Male
  • Burmese (Myanmar) my-MM my-MM-1 Neural Female
  • Burmese (Myanmar) my-MM my-MM-2 Neural Male
  • Norwegian (BokmÃ¥l, Norway) nb-NO nb-NO-1 Neural Female
  • Norwegian (BokmÃ¥l, Norway) nb-NO nb-NO-2 Neural Male
  • Norwegian (BokmÃ¥l, Norway) nb-NO nb-NO-3 Neural Female
  • Norwegian (BokmÃ¥l, Norway) nb-NO nb-NO-4 Standard Female
  • Dutch (Belgium) nl-BE nl-BE-1 Neural Male
  • Dutch (Belgium) nl-BE nl-BE-2 Neural Female
  • Dutch (Netherlands) nl-NL nl-NL-1 Neural Female
  • Dutch (Netherlands) nl-NL nl-NL-2 Neural Female
  • Dutch (Netherlands) nl-NL nl-NL-3 Neural Male
  • Dutch (Netherlands) nl-NL nl-NL-4 Standard Female
  • Polish (Poland) pl-PL pl-PL-1 Neural Female
  • Polish (Poland) pl-PL pl-PL-2 Neural Male
  • Polish (Poland) pl-PL pl-PL-3 Neural Female
  • Polish (Poland) pl-PL pl-PL-4 Standard Female
  • Portuguese (Brazil) pt-BR pt-BR-1 Neural Female
  • Portuguese (Brazil) pt-BR pt-BR-2 Neural Male
  • Portuguese (Brazil) pt-BR pt-BR-3 Standard Male
  • Portuguese (Brazil) pt-BR pt-BR-4 Standard Female
  • Portuguese (Portugal) pt-PT pt-PT-1 Neural Male
  • Portuguese (Portugal) pt-PT pt-PT-2 Neural Female
  • Portuguese (Portugal) pt-PT pt-PT-3 Neural Female
  • Romanian (Romania) ro-RO ro-RO-1 Neural Female
  • Romanian (Romania) ro-RO ro-RO-2 Neural Male
  • Romanian (Romania) ro-RO ro-RO-3 Standard Male
  • Russian (Russia) ru-RU ru-RU-1 Neural Female
  • Russian (Russia) ru-RU ru-RU-2 Neural Female
  • Russian (Russia) ru-RU ru-RU-3 Neural Male
  • Russian (Russia) ru-RU ru-RU-4 Standard Female
  • Russian (Russia) ru-RU ru-RU-5 Standard Female
  • Russian (Russia) ru-RU ru-RU-6 Standard Male
  • Slovak (Slovakia) sk-SK sk-SK-1 Neural Male
  • Slovak (Slovakia) sk-SK sk-SK-2 Neural Female
  • Slovak (Slovakia) sk-SK sk-SK-3 Standard Male
  • Slovenian (Slovenia) sl-SI sl-SI-1 Neural Female
  • Slovenian (Slovenia) sl-SI sl-SI-2 Neural Male
  • Slovenian (Slovenia) sl-SI sl-SI-3 Standard Male
  • Somali (Somalia) so-SO so-SO-1 Neural Male
  • Somali (Somalia) so-SO so-SO-2 Neural Female
  • Sundanese (Indonesia) su-ID su-ID-1 Neural Male
  • Sundanese (Indonesia) su-ID su-ID-2 Neural Female
  • Swedish (Sweden) sv-SE sv-SE-1 Neural Female
  • Swedish (Sweden) sv-SE sv-SE-2 Neural Female
  • Swedish (Sweden) sv-SE sv-SE-3 Neural Male
  • Swedish (Sweden) sv-SE sv-SE-4 Standard Female
  • Swahili (Kenya) sw-KE sw-KE-1 Neural Male
  • Swahili (Kenya) sw-KE sw-KE-2 Neural Female
  • Swahili (Tanzania) sw-TZ sw-TZ-1 Neural Male
  • Swahili (Tanzania) sw-TZ sw-TZ-2 Neural Female
  • Tamil (India) ta-IN ta-IN-1 Neural Female
  • Tamil (India) ta-IN ta-IN-2 Neural Male
  • Tamil (India) ta-IN ta-IN-3 Standard Male
  • Tamil (Sri Lanka) ta-LK ta-LK-1 Neural Male
  • Tamil (Sri Lanka) ta-LK ta-LK-2 Neural Female
  • Tamil (Singapore) ta-SG ta-SG-1 Neural Male
  • Tamil (Singapore) ta-SG ta-SG-2 Neural Female
  • Telugu (India) te-IN te-IN-1 Neural Male
  • Telugu (India) te-IN te-IN-2 Neural Female
  • Telugu (India) te-IN te-IN-3 Standard Female
  • Thai (Thailand) th-TH th-TH-1 Neural Female
  • Thai (Thailand) th-TH th-TH-2 Neural Female
  • Thai (Thailand) th-TH th-TH-3 Neural Male
  • Thai (Thailand) th-TH th-TH-4 Standard Male
  • Turkish (Turkey) tr-TR tr-TR-1 Neural Male
  • Turkish (Turkey) tr-TR tr-TR-2 Neural Female
  • Turkish (Turkey) tr-TR tr-TR-3 Standard Female
  • Ukrainian (Ukraine) uk-UA uk-UA-1 Neural Male
  • Ukrainian (Ukraine) uk-UA uk-UA-2 Neural Female
  • Urdu (India) ur-IN ur-IN-1 Neural Female
  • Urdu (India) ur-IN ur-IN-2 Neural Male
  • Urdu (Pakistan) ur-PK ur-PK-1 Neural Male
  • Urdu (Pakistan) ur-PK ur-PK-2 Neural Female
  • Uzbek (Uzbekistan) uz-UZ uz-UZ-1 Neural Female
  • Uzbek (Uzbekistan) uz-UZ uz-UZ-2 Neural Male
  • Vietnamese (Vietnam) vi-VN vi-VN-1 Neural Female
  • Vietnamese (Vietnam) vi-VN vi-VN-2 Neural Male
  • Vietnamese (Vietnam) vi-VN vi-VN-3 Standard Male
  • Chinese (Mandarin, Simplified) zh-CN zh-CN-1 Neural Female
  • Chinese (Mandarin, Simplified) zh-CN zh-CN-2 Neural Male
  • Chinese (Mandarin, Simplified) zh-CN zh-CN-3 Neural Female
  • Chinese (Mandarin, Simplified) zh-CN zh-CN-4 Neural Female
  • Chinese (Mandarin, Simplified) zh-CN zh-CN-5 Neural Female
  • Chinese (Mandarin, Simplified) zh-CN zh-CN-6 Neural Female
  • Chinese (Mandarin, Simplified) zh-CN zh-CN-7 Neural Female
  • Chinese (Mandarin, Simplified) zh-CN zh-CN-8 Neural Male
  • Chinese (Mandarin, Simplified) zh-CN zh-CN-9 Neural Male
  • Chinese (Mandarin, Simplified) zh-CN zh-CN-10 Neural Female
  • Chinese (Mandarin, Simplified) zh-CN zh-CN-11 Neural Female
  • Chinese (Mandarin, Simplified) zh-CN zh-CN-12 Neural Female
  • Chinese (Mandarin, Simplified) zh-CN zh-CN-13 Neural Female
  • Chinese (Mandarin, Simplified) zh-CN zh-CN-14 Standard Female
  • Chinese (Mandarin, Simplified) zh-CN zh-CN-15 Standard Male
  • Chinese (Mandarin, Simplified) zh-CN zh-CN-16 Standard Female
  • Chinese (Cantonese, Traditional) zh-HK zh-HK-1 Neural Female
  • Chinese (Cantonese, Traditional) zh-HK zh-HK-2 Neural Female
  • Chinese (Cantonese, Traditional) zh-HK zh-HK-3 Neural Male
  • Chinese (Cantonese, Traditional) zh-HK zh-HK-4 Standard Male
  • Chinese (Cantonese, Traditional) zh-HK zh-HK-5 Standard Female
  • Chinese (Taiwanese Mandarin) zh-TW zh-TW-1 Neural Female
  • Chinese (Taiwanese Mandarin) zh-TW zh-TW-2 Neural Female
  • Chinese (Taiwanese Mandarin) zh-TW zh-TW-3 Neural Male
  • Chinese (Taiwanese Mandarin) zh-TW zh-TW-4 Standard Female
  • Chinese (Taiwanese Mandarin) zh-TW zh-TW-5 Standard Female
  • Chinese (Taiwanese Mandarin) zh-TW zh-TW-6 Standard Male
  • Zulu (South Africa) zu-ZA zu-ZA-1 Neural Female
  • Zulu (South Africa) zu-ZA zu-ZA-2 Neural Male