apexify.js 1.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1117 -0
- package/index.js +111 -0
- package/lib/ai/apexAI.js +312 -0
- package/lib/ai/functions/chunkString.js +8 -0
- package/lib/ai/functions/draw.js +347 -0
- package/lib/ai/functions/generateVoiceResponse.js +239 -0
- package/lib/ai/functions/processImageAttachments.js +93 -0
- package/lib/ai/functions/processMessageContent.js +48 -0
- package/lib/ai/functions/readFiles.js +95 -0
- package/lib/ai/functions/shouldDrawImage.js +12 -0
- package/lib/ai/utils.js +18 -0
- package/lib/canvas/ApexPainter.js +1194 -0
- package/lib/canvas/themes/level ara.ttf +0 -0
- package/lib/canvas/themes/levelFont.ttf +0 -0
- package/lib/canvas/themes/levels-card.js +872 -0
- package/lib/canvas/themes/music-card.js +342 -0
- package/lib/canvas/themes/numbers.ttf +0 -0
- package/lib/canvas/themes/tajawal.ttf +0 -0
- package/lib/database/MongoDB.js +126 -0
- package/lib/database/NanoDB.js +1318 -0
- package/lib/database/mongoDb/aggregate.js +120 -0
- package/lib/database/mongoDb/countDocs.js +115 -0
- package/lib/database/mongoDb/createCollection.js +125 -0
- package/lib/database/mongoDb/dataSize.js +89 -0
- package/lib/database/mongoDb/distinct.js +110 -0
- package/lib/database/mongoDb/drop.js +76 -0
- package/lib/database/mongoDb/find.js +122 -0
- package/lib/database/mongoDb/geoNear.js +91 -0
- package/lib/database/mongoDb/index.js +71 -0
- package/lib/database/mongoDb/listCollections.js +81 -0
- package/lib/database/mongoDb/migrateAndPrune.js +89 -0
- package/lib/database/mongoDb/migrateData.js +79 -0
- package/lib/database/mongoDb/remove.js +73 -0
- package/lib/database/mongoDb/removeMany.js +73 -0
- package/lib/database/mongoDb/removeManyExcept.js +91 -0
- package/lib/database/mongoDb/removeSpecific.js +93 -0
- package/lib/database/mongoDb/save.js +94 -0
- package/lib/database/mongoDb/searchMany.js +109 -0
- package/lib/database/mongoDb/textSearch.js +88 -0
- package/lib/database/mongoDb/updateAll.js +80 -0
- package/lib/database/mongoDb/updateAllExcept.js +108 -0
- package/lib/database/mongoDb/updateData.js +106 -0
- package/lib/database/nanoDb/fetchData.js +39 -0
- package/lib/database/nanoDb/removeField.js +46 -0
- package/lib/database/nanoDb/saveData.js +68 -0
- package/lib/database/nanoDb/updateFilter.js +24 -0
- package/lib/database/ready-schemas.js +245 -0
- package/lib/database/utils.js +58 -0
- package/lib/discord/discord-build/commands-(prefix)/music/functions/buttons.js +361 -0
- package/lib/discord/discord-build/commands-(prefix)/music/functions/end.js +58 -0
- package/lib/discord/discord-build/commands-(prefix)/music/functions/start.js +115 -0
- package/lib/discord/discord-build/commands-(prefix)/music/play.js +152 -0
- package/lib/discord/discord-build/commands-(prefix)/music/previous.js +82 -0
- package/lib/discord/discord-build/commands-(prefix)/music/resume.js +93 -0
- package/lib/discord/discord-build/commands-(prefix)/music/skip.js +82 -0
- package/lib/discord/discord-build/commands-(prefix)/music/stop.js +79 -0
- package/lib/discord/discord-build/components/buttons.js +75 -0
- package/lib/discord/discord-build/components/menus.js +81 -0
- package/lib/discord/discord-build/components/paginator.js +156 -0
- package/lib/discord/discord-build/components/permsChecker.js +81 -0
- package/lib/discord/discord-build/utils.js +21 -0
- package/lib/discord/events/eventer.js +100 -0
- package/lib/discord/events/handler/drawMenu.js +351 -0
- package/lib/discord/events/handler/tools.js +652 -0
- package/lib/discord/events/prefixRegister.js +136 -0
- package/lib/discord/events/prefixResponder.js +163 -0
- package/lib/discord/events/slashRegister.js +199 -0
- package/lib/discord/events/slashResponder.js +108 -0
- package/lib/discord/events/starter.js +335 -0
- package/lib/discord/functions/perms.js +19 -0
- package/lib/discord/utils.js +6 -0
- package/lib/general-functions/discord/type-writer.js +77 -0
- package/lib/general-functions/utils.js +0 -0
- package/lib/utils.js +90 -0
- package/package.json +118 -0
package/README.md
ADDED
|
@@ -0,0 +1,1117 @@
|
|
|
1
|
+
### Jedi-Studio Introduce
|
|
2
|
+
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.79` (ID: 1130583393176920095).
|
|
3
|
+
|
|
4
|
+
# 🚀 Getting Started
|
|
5
|
+
<details>
|
|
6
|
+
|
|
7
|
+
- If you're new and facing issues or unable to register and execute commands (slash / prefix).
|
|
8
|
+
- Use the code snippet below (Note: This may slightly increase bot latency by approximately 50ms).
|
|
9
|
+
```javascript
|
|
10
|
+
const { Client, GatewayIntentBits, Partials } = require("discord.js");
|
|
11
|
+
const { starter } = require('apexify.js');
|
|
12
|
+
const path = require('path');
|
|
13
|
+
|
|
14
|
+
const client = new Client({
|
|
15
|
+
intents: Object.keys(GatewayIntentBits).map((a)=>{
|
|
16
|
+
return GatewayIntentBits[a]
|
|
17
|
+
}),
|
|
18
|
+
partials: Object.values(Partials),
|
|
19
|
+
});
|
|
20
|
+
|
|
21
|
+
const token = process.env.token;
|
|
22
|
+
const eventsPath = path.join(__dirname, 'src', 'events');
|
|
23
|
+
const prefixCommandPath = path.join(__dirname, 'src', 'prefix');
|
|
24
|
+
|
|
25
|
+
const options = {
|
|
26
|
+
status: 'online', // idle, online, dnd
|
|
27
|
+
name: 'Playing with commands',
|
|
28
|
+
type: 0, // type is for activity (Playing, Watching, Custom , Listening, etc.)
|
|
29
|
+
botName: 'tools', // bot name
|
|
30
|
+
botAvatar: './pfp.jpeg', // set your bot avatar as a URL or local file (GIF also works)
|
|
31
|
+
eventsPath,
|
|
32
|
+
|
|
33
|
+
// Note: Don't provide guildId or put it in the options if you set global as true
|
|
34
|
+
slashCommandPath: {
|
|
35
|
+
baseDir: __dirname, // need to be provided to read your commands path
|
|
36
|
+
path: './src/slash',
|
|
37
|
+
global: true, // true for making slash commands global
|
|
38
|
+
guildId: '', // guild if global is false
|
|
39
|
+
logsId: '', // channel ID for commands log
|
|
40
|
+
},
|
|
41
|
+
prefixCommandPath: {
|
|
42
|
+
path: prefixCommandPath, // your prefix commands path
|
|
43
|
+
logsId: '', // channel ID for commands log
|
|
44
|
+
prefix: '!', // prefix of the bot
|
|
45
|
+
},
|
|
46
|
+
lavalink: {
|
|
47
|
+
// Lavalink configuration for music
|
|
48
|
+
nodes: [],
|
|
49
|
+
search: 'ytmsearch', // (ytmsearch) => YouTube musics || (spsearch) => Spotify musics
|
|
50
|
+
version: 'v4', // your Lavalink version
|
|
51
|
+
},
|
|
52
|
+
mongo: {
|
|
53
|
+
mongoURI: '', // Your MongoDB URI for connecting to MongoDB
|
|
54
|
+
dataName: '', // Your Database name to create in MongoDB
|
|
55
|
+
},
|
|
56
|
+
webView: {///creating aport using express
|
|
57
|
+
port: 3000,
|
|
58
|
+
hostname: 'jedi-studio.com'
|
|
59
|
+
middleware:,
|
|
60
|
+
routs:
|
|
61
|
+
}
|
|
62
|
+
};
|
|
63
|
+
|
|
64
|
+
starter(client, token, options);
|
|
65
|
+
```
|
|
66
|
+
</details>
|
|
67
|
+
|
|
68
|
+
|
|
69
|
+
## 🚀 Usage Guidelines 🤖
|
|
70
|
+
|
|
71
|
+
# Ai Chat & Imagine
|
|
72
|
+
<details>
|
|
73
|
+
|
|
74
|
+
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`.
|
|
75
|
+
|
|
76
|
+
```javascript
|
|
77
|
+
// Use this for js files (cjs modules)
|
|
78
|
+
const { apexAI } = require('apexify.js');
|
|
79
|
+
|
|
80
|
+
// For es module (.mjs/(.js if "type": "module" in package.json) or ts
|
|
81
|
+
import { apexAI } from 'apexify.js';
|
|
82
|
+
|
|
83
|
+
const allowedChannelId = 'Channel_ID';
|
|
84
|
+
client.on('messageCreate', async (message) => {
|
|
85
|
+
if (message.author.bot || message.channel.id !== allowedChannelId) return;
|
|
86
|
+
|
|
87
|
+
await apexAI(message, {
|
|
88
|
+
voice: false,///for voice replies
|
|
89
|
+
voiceModel: "apexAI", //apexAI, google, zenithAi
|
|
90
|
+
voice_code: "en-US-3", ///only if voiceModel zenithAi
|
|
91
|
+
apiKey: "", ///only if voiceModel zenithAi/apexAI (join the support server for more info)
|
|
92
|
+
type: "b", ///only if voiceModel apexAI (a, b, c, d, e, f, g, h) those letters you can use
|
|
93
|
+
draw: true, // Enable AI images
|
|
94
|
+
drawTrigger: ['create', 'draw', 'imagine', 'ارسم'],
|
|
95
|
+
imageModel: 'prodia', // Choose AI image generator (check the end of the page for modals)
|
|
96
|
+
chatModel: 'v3-32k', // Choose chat model (check the end of the page for modals)
|
|
97
|
+
keywords: ['bot name', 'your name', 'who are you'],
|
|
98
|
+
keywordResponses: {
|
|
99
|
+
'bot name': 'My name is apexAI, and I was developed by Elias79.',
|
|
100
|
+
'your name': 'I am known as apexAI, created by Elias79.',
|
|
101
|
+
'who are you': 'I am apexAI, an AI created by Elias79.',
|
|
102
|
+
},
|
|
103
|
+
loadingMessage: null,/// a message being sent while generating response
|
|
104
|
+
nsfw: true, ////Prevent generating ai images (NSFW)
|
|
105
|
+
readFiles: true,///Read pdf/txt files
|
|
106
|
+
});
|
|
107
|
+
});
|
|
108
|
+
```
|
|
109
|
+
</details>
|
|
110
|
+
|
|
111
|
+
|
|
112
|
+
## 📊 Database MongoDb (Online) 📁
|
|
113
|
+
<details>
|
|
114
|
+
|
|
115
|
+
- To connect to MongoDB/Mongoose, provide your URL and name your database. Follow these steps:
|
|
116
|
+
|
|
117
|
+
```js
|
|
118
|
+
///for cjs module (.cjs/.js)
|
|
119
|
+
const { mongoConnect } = require('apexify.js');
|
|
120
|
+
///for es module (.mjs/(.js if "type": "module" in package.json) or ts
|
|
121
|
+
import { mongoConnect } from 'apexify.js';
|
|
122
|
+
|
|
123
|
+
// Connect to MongoDB
|
|
124
|
+
const mongoSuccess = await mongoConnect('mongoURI', 'dbName');
|
|
125
|
+
|
|
126
|
+
// Access connected databases using getDb functions
|
|
127
|
+
const mongoDb = getDb();
|
|
128
|
+
|
|
129
|
+
/*----------------------------------------*/
|
|
130
|
+
//if you wanted to use your database to save/edit/delete then use this example below
|
|
131
|
+
|
|
132
|
+
// Example usage:
|
|
133
|
+
|
|
134
|
+
const { save, updateData, find, remove, removeSpecific } = require('apexify.js');
|
|
135
|
+
|
|
136
|
+
///# Save (insertOne)
|
|
137
|
+
const collectionName = 'exampleCollection';
|
|
138
|
+
const document = { key: 'value' };
|
|
139
|
+
const options = {
|
|
140
|
+
uniqueFields: ['key'], // Example unique field
|
|
141
|
+
};
|
|
142
|
+
// Saving the document to MongoDB with options
|
|
143
|
+
const savedDocument = await save(collectionName, document, options);
|
|
144
|
+
|
|
145
|
+
///# Find (findOne)
|
|
146
|
+
const collectionName = 'exampleCollection';
|
|
147
|
+
const filter = { _id: '6063b0f4e8e8b652780e97e0' }; // Example filter, you can customize it
|
|
148
|
+
const projection = { name: 1, age: 1 }; // Example projection, you can customize it
|
|
149
|
+
const options = {
|
|
150
|
+
sort: { age: -1 }, // Example sort option, you can customize it
|
|
151
|
+
limit: 5, // Example limit option, you can customize it
|
|
152
|
+
};
|
|
153
|
+
// Finding a document in MongoDB with options
|
|
154
|
+
const foundDocument = await find(collectionName, filter, projection, options);
|
|
155
|
+
|
|
156
|
+
///# SearchMany (find().toArray)
|
|
157
|
+
const collectionFilters = [
|
|
158
|
+
{ collectionName: 'collection1', displayment: 5, filter: { status: 'active' } },
|
|
159
|
+
{ collectionName: 'collection2', displayment: null, filter: { type: 'public' } },
|
|
160
|
+
// Add more collection filters as needed to search for
|
|
161
|
+
];
|
|
162
|
+
// Searching for documents in multiple collections with specific filters
|
|
163
|
+
const searchResults = await searchMany(collectionFilters);
|
|
164
|
+
|
|
165
|
+
|
|
166
|
+
///# Remove (deleteOne)
|
|
167
|
+
const collectionName = 'exampleCollection';
|
|
168
|
+
const filter = { _id: '6063b0f4e8e8b652780e97e0' }; // Example filter, you can customize it
|
|
169
|
+
// Removing a document from MongoDB
|
|
170
|
+
const removalResult = await remove(collectionName, filter);//remove the document which mathces the filter
|
|
171
|
+
|
|
172
|
+
///# RemoveSpecific (deleteOne(filter))
|
|
173
|
+
const collectionName = 'exampleCollection';
|
|
174
|
+
const filter = { _id: '6063b0f4e8e8b652780e97e0', name: 'John Doe' }; // Example filter, you can customize it
|
|
175
|
+
const keyToRemove = { name: 1 }; // Example key to remove, you can customize it
|
|
176
|
+
// Removing a document from MongoDB with specific keys removed
|
|
177
|
+
const removalResult = await removeSpecific(collectionName, filter, keyToRemove);//remove the key without remvoe the full document
|
|
178
|
+
|
|
179
|
+
///# RemoveMany (deleteMany)
|
|
180
|
+
const collectionName = 'exampleCollection';
|
|
181
|
+
const filter = { status: 'inactive' }; // Example filter, you can customize it
|
|
182
|
+
// Removing multiple documents from MongoDB based on a filter
|
|
183
|
+
const removalResult = await removeMany(collectionName, filter);
|
|
184
|
+
|
|
185
|
+
///# UpdateData (updateOne)
|
|
186
|
+
const collectionName = 'yourCollectionName'; // Replace with your actual collection name
|
|
187
|
+
const filter = { _id: 'yourDocumentId', age: 23, name: 'Elias' }; // Replace with your actual filter criteria
|
|
188
|
+
const update = { age: 19, gender: 'male' }; // Replace with your actual update data
|
|
189
|
+
const uniqueFields = ['field1', 'field2']; // Replace with your unique fields, if any!
|
|
190
|
+
// Updating document data in the specified collection
|
|
191
|
+
const updateResult = await updateData(collectionName, filter, update, uniqueFields);
|
|
192
|
+
|
|
193
|
+
///# UpdateAll (updateMany)
|
|
194
|
+
const collectionName = 'yourCollectionName'; // Replace with your actual collection name
|
|
195
|
+
const filter = { level: 20, serverId: guildId, userId: userId }; // Replace with your actual filter criteria
|
|
196
|
+
const update = { level: 31 }; // Replace with your actual update data
|
|
197
|
+
const uniqueFields = ['userId', 'serverId']; // Replace with your unique fields, if any!
|
|
198
|
+
// Updating all documents matching the filter in the specified collection
|
|
199
|
+
const updateResult = await updateAll(collectionName, filter, update, options);
|
|
200
|
+
|
|
201
|
+
///# MigrateData
|
|
202
|
+
const sourceCollection = 'yourSourceCollection'; // Replace with your actual source collection name
|
|
203
|
+
const destinationCollection = 'yourDestinationCollection'; // Replace with your actual destination collection name
|
|
204
|
+
// Transferring data from the source collection to the destination collection
|
|
205
|
+
const transferResult = await migrateData(sourceCollection, destinationCollection);
|
|
206
|
+
|
|
207
|
+
///# MigrateAndPrune
|
|
208
|
+
const sourceCollection = 'yourSourceCollection'; // Replace with your actual source collection name
|
|
209
|
+
const destinationCollection = 'yourDestinationCollection'; // Replace with your actual destination collection name
|
|
210
|
+
// Transferring data from the source collection to the destination collection
|
|
211
|
+
const transferResult = await migrateAndPrune(sourceCollection, destinationCollection);
|
|
212
|
+
|
|
213
|
+
///# Drop (drop)
|
|
214
|
+
const dropCollectiom = 'collectionToRemove'; // Replace with your actual collection name
|
|
215
|
+
// Removing collection from mongoDb
|
|
216
|
+
const dropResults = await drop(dropCollectiom);
|
|
217
|
+
|
|
218
|
+
///# DataSize
|
|
219
|
+
const dataToCheck = 'collectioNameToCheck'; // Replace with your actual collection name
|
|
220
|
+
// Check collection size in db
|
|
221
|
+
const size = await dataSize(dataToCheck);
|
|
222
|
+
|
|
223
|
+
```
|
|
224
|
+
</details>
|
|
225
|
+
|
|
226
|
+
## 📊 Database NanoDb (local) 📁
|
|
227
|
+
<details>
|
|
228
|
+
|
|
229
|
+
- NanoDb is specially made for apexify library to make database easy for all (json database)
|
|
230
|
+
|
|
231
|
+
```js
|
|
232
|
+
///for cjs module (.cjs/.js)
|
|
233
|
+
const { NanoDb } = require('apexify.js');
|
|
234
|
+
///for es module (.mjs/(.js if "type": "module" in package.json) or ts
|
|
235
|
+
import { NanoDb } from 'apexify.js';
|
|
236
|
+
|
|
237
|
+
/// Setting Which data json to configure
|
|
238
|
+
const db = awai NanoDb('path/file/to/json'); // Example: ../data.json
|
|
239
|
+
|
|
240
|
+
///# AddOne (inserting new data)
|
|
241
|
+
const result = await db.addOne({ userId: , serverId: , name: , age: 27}, { uniqueKeys: ['userId', 'serverId'] });
|
|
242
|
+
|
|
243
|
+
///# FindData (search for single document)
|
|
244
|
+
const result = await db.findData({ username: 'john', age: 40 });
|
|
245
|
+
|
|
246
|
+
///# DisplayData (display data array)
|
|
247
|
+
const displayOptions = {
|
|
248
|
+
displayment: 10,//display how many documents
|
|
249
|
+
filters: {
|
|
250
|
+
country: 'usa'///your filter
|
|
251
|
+
},
|
|
252
|
+
page: 1,
|
|
253
|
+
pageSize: 10,
|
|
254
|
+
sortBy: 'size', // Replace with the actual field you want to sort by
|
|
255
|
+
sortOrder: 'asc', // or 'desc' asc => ascending, desc => descending
|
|
256
|
+
};
|
|
257
|
+
|
|
258
|
+
// Displaying data using the displayData method
|
|
259
|
+
const result = await db.displayData(displayOptions);
|
|
260
|
+
|
|
261
|
+
///# RemoveOne (remove a single key from single document)
|
|
262
|
+
const filterQuery = {
|
|
263
|
+
xp: 1000 => assign it 'any' if you dont have specific value
|
|
264
|
+
};
|
|
265
|
+
|
|
266
|
+
///# RemoveOne (remove a single key from a single document)
|
|
267
|
+
const removeFilter = {
|
|
268
|
+
level: 'any'
|
|
269
|
+
};
|
|
270
|
+
// Removing fields using the removeOne method
|
|
271
|
+
const result = await db.removeOne(filterQuery, removeFilter);
|
|
272
|
+
|
|
273
|
+
///# RemoveDoc (remove a a full document)
|
|
274
|
+
const result = await db.removeDoc({ userId: value, serverId: value });
|
|
275
|
+
|
|
276
|
+
|
|
277
|
+
///# UpdatData (update a single document in the json)
|
|
278
|
+
const result = await db.updateData({ userId: value, validate: value}, { validate: newValue });
|
|
279
|
+
|
|
280
|
+
///# UpdateMany (update a many documents in the json)
|
|
281
|
+
const result = await db.updateMany({ validate: value, session: value }, { session: newvalue });
|
|
282
|
+
|
|
283
|
+
///# Drop (remove whole data in json)
|
|
284
|
+
const result = await db.drop();
|
|
285
|
+
|
|
286
|
+
```
|
|
287
|
+
</details>
|
|
288
|
+
|
|
289
|
+
## 📸 Manipulating Images Using Canvas 🎨
|
|
290
|
+
<details>
|
|
291
|
+
Add images, shapes, and effects to images with ease!
|
|
292
|
+
|
|
293
|
+
```js
|
|
294
|
+
//You can use import for es module/.mjs
|
|
295
|
+
const { ApexPainter } = require('apexify.js');
|
|
296
|
+
|
|
297
|
+
|
|
298
|
+
const paintImage = new ApexPainter();
|
|
299
|
+
|
|
300
|
+
|
|
301
|
+
///Creating a background
|
|
302
|
+
const canvasOptions = {
|
|
303
|
+
width: 1200,//background width
|
|
304
|
+
height: 300,//background height
|
|
305
|
+
customBg: '',/// it can be URL only for now and if used plz dont use bgColor or bgGradient
|
|
306
|
+
backgroundColor: '#3498db', // Example color (blue) or use 'transparent' for no backgound color
|
|
307
|
+
backgroundGradient: {////Adding a gradient instead of constant color
|
|
308
|
+
type: 'linear',/// change to 'radial' if you want gradient start from middle
|
|
309
|
+
startX: 0,
|
|
310
|
+
startY: 0,
|
|
311
|
+
startRadius: 0,///add if radial only!
|
|
312
|
+
endRadius: 0,///add if radial only!
|
|
313
|
+
endX: 100,
|
|
314
|
+
endY: 0,
|
|
315
|
+
colors: [
|
|
316
|
+
{ stop: 0, color: 'red' },
|
|
317
|
+
{ stop: 0.5, color: 'green' },
|
|
318
|
+
{ stop: 1, color: 'blue' },
|
|
319
|
+
///add more colors if needed
|
|
320
|
+
],
|
|
321
|
+
},
|
|
322
|
+
borderRadius: 0,///adding a radius to create a curvy edges or use 'circular' to make it a circle
|
|
323
|
+
};
|
|
324
|
+
|
|
325
|
+
|
|
326
|
+
////
|
|
327
|
+
const images = [
|
|
328
|
+
{
|
|
329
|
+
source: 'square',///drawing shapes as images. We only support those shapes ('square', 'triangle', 'circle', 'pentagon').
|
|
330
|
+
x: 385,///positions on background horizontally.
|
|
331
|
+
y: 225,///positions on background vertically.
|
|
332
|
+
rotate: 0,//rotate only applyed for shapes.
|
|
333
|
+
filled: true,///to fill the shape if true.
|
|
334
|
+
width: 500,///shape width.
|
|
335
|
+
height: 80,//shape height.
|
|
336
|
+
borderRadius: 35,///adding a radius to create a curvy edges or use 'circular' to make it a circle.
|
|
337
|
+
color: 'rgba(0, 0, 0, 0.4)',///only being applied for shapes (filling the shape with the provided color).
|
|
338
|
+
gradient:, ////Adding a gradient instead of constant color (used same way as in canvas (only works with shapes).
|
|
339
|
+
stroke: {//Adding stroke
|
|
340
|
+
color: '#498afc',//color of the stroke
|
|
341
|
+
width: 5,//size of the stroke.
|
|
342
|
+
borderRadius: 35,///adding a radius to create a curvy edges or use 'circular' to make it a circle.
|
|
343
|
+
},
|
|
344
|
+
|
|
345
|
+
},
|
|
346
|
+
{
|
|
347
|
+
source: 'square',
|
|
348
|
+
x: 395,
|
|
349
|
+
y: 235,
|
|
350
|
+
rotate: 0,
|
|
351
|
+
filled: true,
|
|
352
|
+
width: 440,
|
|
353
|
+
height: 60,
|
|
354
|
+
borderRadius: 35,
|
|
355
|
+
gradient: {
|
|
356
|
+
type: 'linear',
|
|
357
|
+
startX: 0,
|
|
358
|
+
startY: 0,
|
|
359
|
+
endX: 100,
|
|
360
|
+
endY: 0,
|
|
361
|
+
colors: [
|
|
362
|
+
{ stop: 0, color: 'red' },
|
|
363
|
+
{ stop: 0.5, color: 'green' },
|
|
364
|
+
{ stop: 1, color: 'blue' },
|
|
365
|
+
],
|
|
366
|
+
},
|
|
367
|
+
},
|
|
368
|
+
{
|
|
369
|
+
source: 'local/file/path || image url',//you can provide an image url or local path and for images styling you can use same as above in shapes except for rotate and gradient which won't work.
|
|
370
|
+
x: 120,
|
|
371
|
+
y: 120,
|
|
372
|
+
width: 210,
|
|
373
|
+
height: 210,
|
|
374
|
+
borderRadius: 20,///adding a radius to create a curvy edges or use 'circular' to make it a circle.
|
|
375
|
+
shadow: {
|
|
376
|
+
color: null,//shadow color.
|
|
377
|
+
offsetX: 0,///shadow position off from image horizontally.
|
|
378
|
+
offsetY: 0,///shadow postion off from image vertically.
|
|
379
|
+
opacity: 0,//shadow opacity.
|
|
380
|
+
blur: 0,//shadow blur.
|
|
381
|
+
borderRadius: null,///adding a radius to create a curvy edges or use 'circular' to make it a circle.
|
|
382
|
+
}
|
|
383
|
+
},
|
|
384
|
+
];
|
|
385
|
+
////image already got buffered you can send it directly or add text option
|
|
386
|
+
const image = await paintImage.drawImages(images, canvasOptions, __dirname);
|
|
387
|
+
|
|
388
|
+
const textOptionsArray = [
|
|
389
|
+
{
|
|
390
|
+
text: 'elias79. Rank',//adding a text.
|
|
391
|
+
x: 440,//text horizontally positon .
|
|
392
|
+
y: 145,//text vetically position.
|
|
393
|
+
fontName: 'Wind',//name your font as you want or use default (Arial).
|
|
394
|
+
fontPath: './wind.ttf',//font path for custom font.
|
|
395
|
+
fontSize: 50,///size of the font.
|
|
396
|
+
color: 'white',//font color.
|
|
397
|
+
shadow: {
|
|
398
|
+
offsetX: 3,
|
|
399
|
+
offsetY: 3,
|
|
400
|
+
color: "rgba(0, 0, 0, 0.5)",
|
|
401
|
+
blur: 5
|
|
402
|
+
},
|
|
403
|
+
stroke: {
|
|
404
|
+
color: '#deff08',
|
|
405
|
+
width: 1.2,
|
|
406
|
+
},
|
|
407
|
+
},
|
|
408
|
+
{
|
|
409
|
+
text: '95/100 XP',
|
|
410
|
+
x: 530,
|
|
411
|
+
y: 250,
|
|
412
|
+
fontName: 'Arial',
|
|
413
|
+
fontSize: 35,
|
|
414
|
+
color: 'white',
|
|
415
|
+
stroke: {
|
|
416
|
+
color: 'black',
|
|
417
|
+
width: 0.5,
|
|
418
|
+
},
|
|
419
|
+
},
|
|
420
|
+
];
|
|
421
|
+
///Adding the text on the drawn image before
|
|
422
|
+
const buffer = await paintImage.addText(textOptionsArray, image, __dirname);
|
|
423
|
+
|
|
424
|
+
//sending the buffered image with text on it
|
|
425
|
+
await message.channel.send({files: [buffer] });
|
|
426
|
+
```
|
|
427
|
+
</details>
|
|
428
|
+
|
|
429
|
+
## Discord-Build ⚒️
|
|
430
|
+
<details>
|
|
431
|
+
|
|
432
|
+
- Easy & Simple ways to make buttons & menus & paginator & permschecker
|
|
433
|
+
|
|
434
|
+
```js
|
|
435
|
+
|
|
436
|
+
//////MAKE BUTTONS///////
|
|
437
|
+
|
|
438
|
+
const { ButtonManager } = require('apexify.js'); ///cjs modules .js
|
|
439
|
+
|
|
440
|
+
import { ButtonManager } from 'apexify.js'; /// ejs modules .mjs or ts
|
|
441
|
+
|
|
442
|
+
const buttonsData = [
|
|
443
|
+
{
|
|
444
|
+
customId: 'button1',
|
|
445
|
+
style: 'Primary',// style: Primary, Secondary, Link, Danger, Success
|
|
446
|
+
label: 'Primary Button',
|
|
447
|
+
emoji: '😃', // Emoji for the button
|
|
448
|
+
disabled: false, // Whether the button is disabled
|
|
449
|
+
},
|
|
450
|
+
{
|
|
451
|
+
customId: 'button2',
|
|
452
|
+
style: 'Secondary',
|
|
453
|
+
label: 'Secondary Button',
|
|
454
|
+
emoji: '🚀',
|
|
455
|
+
disabled: true,
|
|
456
|
+
},
|
|
457
|
+
{
|
|
458
|
+
customId: 'linkButton',
|
|
459
|
+
style: 'Link',
|
|
460
|
+
label: 'Link Button',
|
|
461
|
+
url: 'https://example.com', // URL for link-style button
|
|
462
|
+
emoji: '🔗',
|
|
463
|
+
},
|
|
464
|
+
];
|
|
465
|
+
|
|
466
|
+
// Create an instance of ButtonManager
|
|
467
|
+
const buttonManager = new ButtonManager(buttonsData);
|
|
468
|
+
|
|
469
|
+
// Create an action row with the buttons
|
|
470
|
+
const actionRow = buttonManager.ButtonBuild();
|
|
471
|
+
|
|
472
|
+
// Define a message with the action row
|
|
473
|
+
message.reply({ content: 'Click the buttons:',
|
|
474
|
+
components: [actionRow],
|
|
475
|
+
});
|
|
476
|
+
|
|
477
|
+
// Define in interaction
|
|
478
|
+
interaction.reply({ content: 'Click the buttons:',
|
|
479
|
+
components: [actionRow],
|
|
480
|
+
});
|
|
481
|
+
|
|
482
|
+
|
|
483
|
+
//////MAKE MENUS///////
|
|
484
|
+
|
|
485
|
+
const { SelectMenuManager } = require('apexify.js');// cjs module .js
|
|
486
|
+
import { SelectMenuManager } from 'apexify.js'; // ejs module .mjs or ts
|
|
487
|
+
|
|
488
|
+
// Define select menu options
|
|
489
|
+
const selectMenuOptions = [
|
|
490
|
+
{ label: 'Option 1', value: 'option1', description: 'Description for Option 1', emoji: '🌟', default: true },
|
|
491
|
+
{ label: 'Option 2', value: 'option2', description: 'Description for Option 2', emoji: '🚀' },
|
|
492
|
+
{ label: 'Option 3', value: 'option3', description: 'Description for Option 3', emoji: '🔗' },
|
|
493
|
+
];
|
|
494
|
+
|
|
495
|
+
// Create an instance of SelectMenuManager
|
|
496
|
+
const selectMenuManager = new SelectMenuManager(
|
|
497
|
+
selectMenuOptions,
|
|
498
|
+
'customSelectMenuId', // Custom ID for the select menu
|
|
499
|
+
'Select an option', // Placeholder text for the select menu
|
|
500
|
+
1, // Minimum number of selected values
|
|
501
|
+
2, // Maximum number of selected values
|
|
502
|
+
false // Disabled state for meny (true or false)
|
|
503
|
+
);
|
|
504
|
+
|
|
505
|
+
// Create a select menu with the specified options
|
|
506
|
+
const selectMenuRow = selectMenuManager.createSelectMenu();
|
|
507
|
+
|
|
508
|
+
// Define a message with the select menu
|
|
509
|
+
message.reply({
|
|
510
|
+
content: 'Please choose an option:',
|
|
511
|
+
components: [selectMenuRow],
|
|
512
|
+
});
|
|
513
|
+
|
|
514
|
+
// Define a interaction with the select menu
|
|
515
|
+
interaction.reply({
|
|
516
|
+
content: 'Please choose an option:',
|
|
517
|
+
components: [selectMenuRow],
|
|
518
|
+
});
|
|
519
|
+
|
|
520
|
+
|
|
521
|
+
////////MAKE EMBED PAGINATOR////////
|
|
522
|
+
|
|
523
|
+
const { Paginator } = require('apexify.js');// cjs module .js
|
|
524
|
+
import { Paginator } from 'apexify.js'; // ejs module .mjs or ts
|
|
525
|
+
|
|
526
|
+
const pageOptions = [
|
|
527
|
+
{
|
|
528
|
+
title: 'Page 1',
|
|
529
|
+
description: 'Content for Page 1',
|
|
530
|
+
color: '#3498db', // Hex color code
|
|
531
|
+
authorName: 'Author Name',
|
|
532
|
+
authorIcon: 'https://example.com/author-icon.png', // URL to author's icon
|
|
533
|
+
footerName: 'Footer Name',
|
|
534
|
+
footerIcon: 'https://example.com/footer-icon.png', // URL to footer's icon
|
|
535
|
+
image: 'https://example.com/image.png', // URL to image
|
|
536
|
+
thumbnail: 'https://example.com/thumbnail.png', // URL to thumbnail
|
|
537
|
+
url: 'https://example.com/page-1', // URL for the entire embed
|
|
538
|
+
timestamp: true, // Include timestamp
|
|
539
|
+
},
|
|
540
|
+
{
|
|
541
|
+
title: 'Page 2',
|
|
542
|
+
description: 'Content for Page 2',
|
|
543
|
+
color: '#e74c3c',
|
|
544
|
+
authorName: 'Another Author',
|
|
545
|
+
authorIcon: 'https://example.com/another-author-icon.png',
|
|
546
|
+
footerName: 'Another Footer',
|
|
547
|
+
footerIcon: 'https://example.com/another-footer-icon.png',
|
|
548
|
+
image: 'https://example.com/another-image.png',
|
|
549
|
+
thumbnail: 'https://example.com/another-thumbnail.png',
|
|
550
|
+
url: 'https://example.com/page-2',
|
|
551
|
+
timestamp: true,
|
|
552
|
+
},
|
|
553
|
+
{
|
|
554
|
+
title: 'Page 3',
|
|
555
|
+
description: 'Content for Page 3',
|
|
556
|
+
color: '#2ecc71',
|
|
557
|
+
authorName: 'Yet Another Author',
|
|
558
|
+
authorIcon: 'https://example.com/yet-another-author-icon.png',
|
|
559
|
+
footerName: 'Yet Another Footer',
|
|
560
|
+
footerIcon: 'https://example.com/yet-another-footer-icon.png',
|
|
561
|
+
image: 'https://example.com/yet-another-image.png',
|
|
562
|
+
thumbnail: 'https://example.com/yet-another-thumbnail.png',
|
|
563
|
+
url: 'https://example.com/page-3',
|
|
564
|
+
timestamp: true,
|
|
565
|
+
},
|
|
566
|
+
// Add more pages as needed
|
|
567
|
+
];
|
|
568
|
+
|
|
569
|
+
// Create an instance of the Paginator class
|
|
570
|
+
const paginator = new Paginator({ options: pageOptions, timeout: 30000 });
|
|
571
|
+
|
|
572
|
+
/// In messages
|
|
573
|
+
client.on('messageCreate', async (msg) => {
|
|
574
|
+
// Check if the message author is a bot
|
|
575
|
+
if (msg.author.bot) return;
|
|
576
|
+
|
|
577
|
+
// Send the paginated message when the command !sendPaginator is received
|
|
578
|
+
if (msg.content === '!sendPaginator') {
|
|
579
|
+
const user = msg.author;
|
|
580
|
+
const options = { ownerOnly: false, hidden: false, };
|
|
581
|
+
|
|
582
|
+
// Send the paginated message
|
|
583
|
+
await paginator.send(msg, user, options);
|
|
584
|
+
}
|
|
585
|
+
});
|
|
586
|
+
|
|
587
|
+
|
|
588
|
+
/// In interactions
|
|
589
|
+
client.on('interactionCreate', async (i) => {
|
|
590
|
+
// Check if the message author is a bot
|
|
591
|
+
if (i.user.bot) return;
|
|
592
|
+
|
|
593
|
+
// Send the paginated message when the command/ button is used
|
|
594
|
+
if (i.customId === 'button') {
|
|
595
|
+
const user = i.user;
|
|
596
|
+
const options = { ownerOnly: false, hidden: false, };
|
|
597
|
+
|
|
598
|
+
// Send the paginated message
|
|
599
|
+
await paginator.send(i, user, options);
|
|
600
|
+
}
|
|
601
|
+
});
|
|
602
|
+
|
|
603
|
+
|
|
604
|
+
//////PERMISSION CHECKER///////
|
|
605
|
+
|
|
606
|
+
const { PermissionChecker } = require('apexify.js'); // cjs module .js
|
|
607
|
+
import { PermissionChecker } from 'apexify.js'; // ejs module .mjs or ts
|
|
608
|
+
|
|
609
|
+
|
|
610
|
+
client.on('messageCreate', async (message) => {
|
|
611
|
+
if (message.content.startsWith('!checkPermissions')) {
|
|
612
|
+
try {
|
|
613
|
+
// Specify the required permissions you want to check
|
|
614
|
+
const requiredPermissions = ['KickMembers', 'BanMembers', 'ManageChannels'];
|
|
615
|
+
|
|
616
|
+
// Instantiate the PermissionChecker
|
|
617
|
+
const permissionChecker = new PermissionChecker();
|
|
618
|
+
|
|
619
|
+
// Check if the message author has the required permissions
|
|
620
|
+
const hasPermissions = await permissionChecker.checker(message.author.id, message.guild, requiredPermissions);
|
|
621
|
+
|
|
622
|
+
if (hasPermissions) {
|
|
623
|
+
message.reply('You have the required permissions!');
|
|
624
|
+
} else {
|
|
625
|
+
message.reply('You do not have the required permissions!');
|
|
626
|
+
}
|
|
627
|
+
} catch (error) {
|
|
628
|
+
console.error('Error:', error.message);
|
|
629
|
+
}
|
|
630
|
+
}
|
|
631
|
+
});
|
|
632
|
+
|
|
633
|
+
|
|
634
|
+
client.on('interactionCreate', async (i) => {
|
|
635
|
+
if (i.customId === 'button_checker') {
|
|
636
|
+
try {
|
|
637
|
+
// Specify the required permissions you want to check
|
|
638
|
+
const requiredPermissions = ['KickMembers', 'BanMembers', 'ManageChannels'];
|
|
639
|
+
|
|
640
|
+
// Instantiate the PermissionChecker
|
|
641
|
+
const permissionChecker = new PermissionChecker();
|
|
642
|
+
|
|
643
|
+
// Check if the message author has the required permissions
|
|
644
|
+
const hasPermissions = await permissionChecker.checker(i.user.id, i.guild, requiredPermissions);
|
|
645
|
+
|
|
646
|
+
if (hasPermissions) {
|
|
647
|
+
i.reply('You have the required permissions!');
|
|
648
|
+
} else {
|
|
649
|
+
i.reply('You do not have the required permissions!');
|
|
650
|
+
}
|
|
651
|
+
} catch (error) {
|
|
652
|
+
console.error('Error:', error.message);
|
|
653
|
+
}
|
|
654
|
+
}
|
|
655
|
+
});
|
|
656
|
+
```
|
|
657
|
+
## 📚 More Info & Documentation 📖
|
|
658
|
+
<details>
|
|
659
|
+
|
|
660
|
+
Explore a detailed list of apexify.js and their usage at our [Support Server](https://883733a4-7d26-4e57-8a01-3eed284b6519-00-3kn6npon8kc06.sisko.replit.dev/home/docs/intro/).
|
|
661
|
+
|
|
662
|
+
## 🚨 Important Notes 📌
|
|
663
|
+
|
|
664
|
+
1. **Voice Messages:** Currently in beta, occasional disruptions may occur.
|
|
665
|
+
|
|
666
|
+
2. **Commands:** Support for slash commands is coming soon.
|
|
667
|
+
|
|
668
|
+
3. **Music:** Utilizing Lavalink for audio streaming. Customize Lavalink node if needed.
|
|
669
|
+
|
|
670
|
+
4. **Database:** There is two type of Database NanoDb (local db json) and MongoDb (online db bson).
|
|
671
|
+
|
|
672
|
+
Keep experimenting, and feel free to contact me for assistance! Suggestions and adjustments are welcome. 🌟
|
|
673
|
+
</details>
|
|
674
|
+
|
|
675
|
+
# Draw Models
|
|
676
|
+
<details>
|
|
677
|
+
<summary>Click to display models</summary>
|
|
678
|
+
- v1
|
|
679
|
+
- v2
|
|
680
|
+
- v2-beta
|
|
681
|
+
- lexica
|
|
682
|
+
- prodia
|
|
683
|
+
- animefy
|
|
684
|
+
- raava
|
|
685
|
+
- shonin
|
|
686
|
+
- v3
|
|
687
|
+
- 3Guofeng3_v34.safetensors [50f420de]
|
|
688
|
+
- absolutereality_V16.safetensors [37db0fc3]
|
|
689
|
+
- absolutereality_v181.safetensors [3d9d4d2b]
|
|
690
|
+
- amIReal_V41.safetensors [0a8a2e61]
|
|
691
|
+
- analog-diffusion-1.0.ckpt [9ca13f02]
|
|
692
|
+
- anythingv3_0-pruned.ckpt [2700c435]
|
|
693
|
+
- anything-v4.5-pruned.ckpt [65745d25]
|
|
694
|
+
- anythingV5_PrtRE.safetensors [893e49b9]
|
|
695
|
+
- AOM3A3_orangemixs.safetensors [9600da17]
|
|
696
|
+
- blazing_drive_v10g.safetensors [ca1c1eab]
|
|
697
|
+
- cetusMix_Version35.safetensors [de2f2560]
|
|
698
|
+
- childrensStories_v13D.safetensors [9dfaabcb]
|
|
699
|
+
- childrensStories_v1SemiReal.safetensors [a1c56dbb]
|
|
700
|
+
- childrensStories_v1ToonAnime.safetensors [2ec7b88b]
|
|
701
|
+
- Counterfeit_v30.safetensors [9e2a8f19]
|
|
702
|
+
- cuteyukimixAdorable_midchapter3.safetensors [04bdffe6]
|
|
703
|
+
- cyberrealistic_v33.safetensors [82b0d085]
|
|
704
|
+
- dalcefo_v4.safetensors [425952fe]
|
|
705
|
+
- deliberate_v2.safetensors [10ec4b29]
|
|
706
|
+
- deliberate_v3.safetensors [afd9d2d4]
|
|
707
|
+
- dreamlike-anime-1.0.safetensors [4520e090]
|
|
708
|
+
- dreamlike-diffusion-1.0.safetensors [5c9fd6e0]
|
|
709
|
+
- dreamlike-photoreal-2.0.safetensors [fdcf65e7]
|
|
710
|
+
- dreamshaper_6BakedVae.safetensors [114c8abb]
|
|
711
|
+
- dreamshaper_7.safetensors [5cf5ae06]
|
|
712
|
+
- dreamshaper_8.safetensors [9d40847d]
|
|
713
|
+
- edgeOfRealism_eorV20.safetensors [3ed5de15]
|
|
714
|
+
- EimisAnimeDiffusion_V1.ckpt [4f828a15]
|
|
715
|
+
- elldreths-vivid-mix.safetensors [342d9d26]
|
|
716
|
+
- epicrealism_naturalSinRC1VAE.safetensors [90a4c676]
|
|
717
|
+
- ICantBelieveItsNotPhotography_seco.safetensors [4e7a3dfd]
|
|
718
|
+
- juggernaut_aftermath.safetensors [5e20c455]
|
|
719
|
+
- lofi_v4.safetensors [ccc204d6]
|
|
720
|
+
- lyriel_v16.safetensors [68fceea2]
|
|
721
|
+
- majicmixRealistic_v4.safetensors [29d0de58]
|
|
722
|
+
- mechamix_v10.safetensors [ee685731]
|
|
723
|
+
- meinamix_meinaV9.safetensors [2ec66ab0]
|
|
724
|
+
- meinamix_meinaV11.safetensors [b56ce717]
|
|
725
|
+
- neverendingDream_v122.safetensors [f964ceeb]
|
|
726
|
+
- openjourney_V4.ckpt [ca2f377f]
|
|
727
|
+
- pastelMixStylizedAnime_pruned_fp16.safetensors [793a26e8]
|
|
728
|
+
- portraitplus_V1.0.safetensors [1400e684]
|
|
729
|
+
- protogenx34.safetensors [5896f8d5]
|
|
730
|
+
- Realistic_Vision_V1.4-pruned-fp16.safetensors [8d21810b]
|
|
731
|
+
- Realistic_Vision_V2.0.safetensors [79587710]
|
|
732
|
+
- Realistic_Vision_V4.0.safetensors [29a7afaa]
|
|
733
|
+
- Realistic_Vision_V5.0.safetensors [614d1063]
|
|
734
|
+
- redshift_diffusion-V10.safetensors [1400e684]
|
|
735
|
+
- revAnimated_v122.safetensors [3f4fefd9]
|
|
736
|
+
- rundiffusionFX25D_v10.safetensors [cd12b0ee]
|
|
737
|
+
- rundiffusionFX_v10.safetensors [cd4e694d]
|
|
738
|
+
- sdv1_4.ckpt [7460a6fa]
|
|
739
|
+
- v1-5-pruned-emaonly.safetensors [d7049739]
|
|
740
|
+
- v1-5-inpainting.safetensors [21c7ab71]
|
|
741
|
+
- shoninsBeautiful_v10.safetensors [25d8c546]
|
|
742
|
+
- theallys-mix-ii-churned.safetensors [5d9225a4]
|
|
743
|
+
- timeless-1.0.ckpt [7c4971d4]
|
|
744
|
+
- toonyou_beta6.safetensors [980f6b15]
|
|
745
|
+
</details>
|
|
746
|
+
|
|
747
|
+
# chat Models
|
|
748
|
+
<details>
|
|
749
|
+
<summary>Click to display models</summary>
|
|
750
|
+
- v3
|
|
751
|
+
- v3-32k
|
|
752
|
+
- turbo
|
|
753
|
+
- turbo-16k
|
|
754
|
+
- gemini
|
|
755
|
+
</details>
|
|
756
|
+
|
|
757
|
+
|
|
758
|
+
# Voice Models
|
|
759
|
+
<details>
|
|
760
|
+
<summary>Click to display models</summary>
|
|
761
|
+
Language Name Language Code Voice Code Voice Type Voice Gender
|
|
762
|
+
Afrikaans (South Africa) af-ZA af-ZA-1 Neural Female
|
|
763
|
+
Afrikaans (South Africa) af-ZA af-ZA-2 Neural Male
|
|
764
|
+
Amharic (Ethiopia) am-ET am-ET-1 Neural Male
|
|
765
|
+
Amharic (Ethiopia) am-ET am-ET-2 Neural Female
|
|
766
|
+
Arabic (United Arab Emirates) ar-AE ar-AE-1 Neural Female
|
|
767
|
+
Arabic (United Arab Emirates) ar-AE ar-AE-2 Neural Male
|
|
768
|
+
Arabic (Bahrain) ar-BH ar-BH-1 Neural Male
|
|
769
|
+
Arabic (Bahrain) ar-BH ar-BH-2 Neural Female
|
|
770
|
+
Arabic (Algeria) ar-DZ ar-DZ-1 Neural Female
|
|
771
|
+
Arabic (Algeria) ar-DZ ar-DZ-2 Neural Male
|
|
772
|
+
Arabic (Egypt) ar-EG ar-EG-1 Neural Female
|
|
773
|
+
Arabic (Egypt) ar-EG ar-EG-2 Neural Male
|
|
774
|
+
Arabic (Egypt) ar-EG ar-EG-3 Standard Female
|
|
775
|
+
Arabic (Iraq) ar-IQ ar-IQ-1 Neural Male
|
|
776
|
+
Arabic (Iraq) ar-IQ ar-IQ-2 Neural Female
|
|
777
|
+
Arabic (Jordan) ar-JO ar-JO-1 Neural Female
|
|
778
|
+
Arabic (Jordan) ar-JO ar-JO-2 Neural Male
|
|
779
|
+
Arabic (Kuwait) ar-KW ar-KW-1 Neural Male
|
|
780
|
+
Arabic (Kuwait) ar-KW ar-KW-2 Neural Female
|
|
781
|
+
Arabic (Libya) ar-LY ar-LY-1 Neural Female
|
|
782
|
+
Arabic (Libya) ar-LY ar-LY-2 Neural Male
|
|
783
|
+
Arabic (Morocco) ar-MA ar-MA-1 Neural Male
|
|
784
|
+
Arabic (Morocco) ar-MA ar-MA-2 Neural Female
|
|
785
|
+
Arabic (Qatar) ar-QA ar-QA-1 Neural Female
|
|
786
|
+
Arabic (Qatar) ar-QA ar-QA-2 Neural Male
|
|
787
|
+
Arabic (Saudi Arabia) ar-SA ar-SA-1 Neural Male
|
|
788
|
+
Arabic (Saudi Arabia) ar-SA ar-SA-2 Neural Female
|
|
789
|
+
Arabic (Saudi Arabia) ar-SA ar-SA-3 Standard Male
|
|
790
|
+
Arabic (Syria) ar-SY ar-SY-1 Neural Female
|
|
791
|
+
Arabic (Syria) ar-SY ar-SY-2 Neural Male
|
|
792
|
+
Arabic (Tunisia) ar-TN ar-TN-1 Neural Male
|
|
793
|
+
Arabic (Tunisia) ar-TN ar-TN-2 Neural Female
|
|
794
|
+
Arabic (Yemen) ar-YE ar-YE-1 Neural Female
|
|
795
|
+
Arabic (Yemen) ar-YE ar-YE-2 Neural Male
|
|
796
|
+
Bulgarian (Bulgaria) bg-BG bg-BG-1 Neural Male
|
|
797
|
+
Bulgarian (Bulgaria) bg-BG bg-BG-2 Neural Female
|
|
798
|
+
Bulgarian (Bulgaria) bg-BG bg-BG-3 Standard Male
|
|
799
|
+
Bangla (Bangladesh) bn-BD bn-BD-1 Neural Female
|
|
800
|
+
Bangla (Bangladesh) bn-BD bn-BD-2 Neural Male
|
|
801
|
+
Catalan (Spain) ca-ES ca-ES-1 Neural Female
|
|
802
|
+
Catalan (Spain) ca-ES ca-ES-2 Neural Female
|
|
803
|
+
Catalan (Spain) ca-ES ca-ES-3 Neural Male
|
|
804
|
+
Catalan (Spain) ca-ES ca-ES-4 Standard Female
|
|
805
|
+
Czech (Czech) cs-CZ cs-CZ-1 Neural Male
|
|
806
|
+
Czech (Czech) cs-CZ cs-CZ-2 Neural Female
|
|
807
|
+
Czech (Czech) cs-CZ cs-CZ-3 Standard Male
|
|
808
|
+
Welsh (United Kingdom) cy-GB cy-GB-1 Neural Male
|
|
809
|
+
Welsh (United Kingdom) cy-GB cy-GB-2 Neural Female
|
|
810
|
+
Danish (Denmark) da-DK da-DK-1 Neural Female
|
|
811
|
+
Danish (Denmark) da-DK da-DK-2 Neural Male
|
|
812
|
+
Danish (Denmark) da-DK da-DK-3 Standard Female
|
|
813
|
+
German (Austria) de-AT de-AT-1 Neural Female
|
|
814
|
+
German (Austria) de-AT de-AT-2 Neural Male
|
|
815
|
+
German (Austria) de-AT de-AT-3 Standard Male
|
|
816
|
+
German (Switzerland) de-CH de-CH-1 Neural Male
|
|
817
|
+
German (Switzerland) de-CH de-CH-2 Neural Female
|
|
818
|
+
German (Switzerland) de-CH de-CH-3 Standard Male
|
|
819
|
+
German (Germany) de-DE de-DE-1 Neural Female
|
|
820
|
+
German (Germany) de-DE de-DE-2 Neural Male
|
|
821
|
+
German (Germany) de-DE de-DE-3 Standard Female
|
|
822
|
+
German (Germany) de-DE de-DE-4 Standard Male
|
|
823
|
+
Greek (Greece) el-GR el-GR-1 Neural Female
|
|
824
|
+
Greek (Greece) el-GR el-GR-2 Neural Male
|
|
825
|
+
Greek (Greece) el-GR el-GR-3 Standard Male
|
|
826
|
+
English (Australia) en-AU en-AU-1 Neural Female
|
|
827
|
+
English (Australia) en-AU en-AU-2 Neural Male
|
|
828
|
+
English (Australia) en-AU en-AU-3 Standard Female
|
|
829
|
+
English (Australia) en-AU en-AU-4 Standard Female
|
|
830
|
+
English (Canada) en-CA en-CA-1 Neural Female
|
|
831
|
+
English (Canada) en-CA en-CA-2 Neural Male
|
|
832
|
+
English (Canada) en-CA en-CA-3 Standard Female
|
|
833
|
+
English (Canada) en-CA en-CA-4 Standard Female
|
|
834
|
+
English (United Kingdom) en-GB en-GB-1 Neural Female
|
|
835
|
+
English (United Kingdom) en-GB en-GB-2 Neural Male
|
|
836
|
+
English (United Kingdom) en-GB en-GB-3 Neural Female
|
|
837
|
+
English (United Kingdom) en-GB en-GB-4 Neural Female
|
|
838
|
+
English (United Kingdom) en-GB en-GB-5 Standard Male
|
|
839
|
+
English (United Kingdom) en-GB en-GB-6 Standard Female
|
|
840
|
+
English (United Kingdom) en-GB en-GB-7 Standard Female
|
|
841
|
+
English (Hongkong) en-HK en-HK-1 Neural Male
|
|
842
|
+
English (Hongkong) en-HK en-HK-2 Neural Female
|
|
843
|
+
English (Ireland) en-IE en-IE-1 Neural Male
|
|
844
|
+
English (Ireland) en-IE en-IE-2 Neural Female
|
|
845
|
+
English (Ireland) en-IE en-IE-3 Standard Male
|
|
846
|
+
English (India) en-IN en-IN-1 Neural Female
|
|
847
|
+
English (India) en-IN en-IN-2 Neural Male
|
|
848
|
+
English (India) en-IN en-IN-3 Standard Female
|
|
849
|
+
English (India) en-IN en-IN-4 Standard Female
|
|
850
|
+
English (India) en-IN en-IN-5 Standard Male
|
|
851
|
+
English (Kenya) en-KE en-KE-1 Neural Female
|
|
852
|
+
English (Kenya) en-KE en-KE-2 Neural Male
|
|
853
|
+
English (Nigeria) en-NG en-NG-1 Neural Male
|
|
854
|
+
English (Nigeria) en-NG en-NG-2 Neural Female
|
|
855
|
+
English (New Zealand) en-NZ en-NZ-1 Neural Male
|
|
856
|
+
English (New Zealand) en-NZ en-NZ-2 Neural Female
|
|
857
|
+
English (Philippines) en-PH en-PH-1 Neural Male
|
|
858
|
+
English (Philippines) en-PH en-PH-2 Neural Female
|
|
859
|
+
English (Singapore) en-SG en-SG-1 Neural Female
|
|
860
|
+
English (Singapore) en-SG en-SG-2 Neural Male
|
|
861
|
+
English (Tanzania) en-TZ en-TZ-1 Neural Male
|
|
862
|
+
English (Tanzania) en-TZ en-TZ-2 Neural Female
|
|
863
|
+
English (United States) en-US en-US-1 Neural Female
|
|
864
|
+
English (United States) en-US en-US-2 Neural Female
|
|
865
|
+
English (United States) en-US en-US-3 Neural Male
|
|
866
|
+
English (United States) en-US en-US-4 Neural Female
|
|
867
|
+
English (United States) en-US en-US-5 Neural Female
|
|
868
|
+
English (United States) en-US en-US-6 Neural Female
|
|
869
|
+
English (United States) en-US en-US-7 Neural Female
|
|
870
|
+
English (United States) en-US en-US-8 Neural Male
|
|
871
|
+
English (United States) en-US en-US-9 Neural Male
|
|
872
|
+
English (United States) en-US en-US-10 Neural Female
|
|
873
|
+
English (United States) en-US en-US-11 Neural Female
|
|
874
|
+
English (United States) en-US en-US-12 Neural Male
|
|
875
|
+
English (United States) en-US en-US-13 Neural Male
|
|
876
|
+
English (United States) en-US en-US-14 Neural Female
|
|
877
|
+
English (United States) en-US en-US-15 Neural Female
|
|
878
|
+
English (United States) en-US en-US-16 Neural Female
|
|
879
|
+
English (United States) en-US en-US-17 Standard Female
|
|
880
|
+
English (United States) en-US en-US-18 Standard Male
|
|
881
|
+
English (United States) en-US en-US-19 Standard Male
|
|
882
|
+
English (United States) en-US en-US-20 Standard Female
|
|
883
|
+
English (South Africa) en-ZA en-ZA-1 Neural Female
|
|
884
|
+
English (South Africa) en-ZA en-ZA-2 Neural Male
|
|
885
|
+
Spanish (Argentina) es-AR es-AR-1 Neural Female
|
|
886
|
+
Spanish (Argentina) es-AR es-AR-2 Neural Male
|
|
887
|
+
Spanish (Bolivia) es-BO es-BO-1 Neural Male
|
|
888
|
+
Spanish (Bolivia) es-BO es-BO-2 Neural Female
|
|
889
|
+
Spanish (Chile) es-CL es-CL-1 Neural Female
|
|
890
|
+
Spanish (Chile) es-CL es-CL-2 Neural Male
|
|
891
|
+
Spanish (Colombia) es-CO es-CO-1 Neural Male
|
|
892
|
+
Spanish (Colombia) es-CO es-CO-2 Neural Female
|
|
893
|
+
Spanish (Costa Rica) es-CR es-CR-1 Neural Male
|
|
894
|
+
Spanish (Costa Rica) es-CR es-CR-2 Neural Female
|
|
895
|
+
Spanish (Cuba) es-CU es-CU-1 Neural Female
|
|
896
|
+
Spanish (Cuba) es-CU es-CU-2 Neural Male
|
|
897
|
+
Spanish (Dominican Republic) es-DO es-DO-1 Neural Male
|
|
898
|
+
Spanish (Dominican Republic) es-DO es-DO-2 Neural Female
|
|
899
|
+
Spanish (Ecuador) es-EC es-EC-1 Neural Female
|
|
900
|
+
Spanish (Ecuador) es-EC es-EC-2 Neural Male
|
|
901
|
+
Spanish (Spain) es-ES es-ES-1 Neural Male
|
|
902
|
+
Spanish (Spain) es-ES es-ES-2 Neural Female
|
|
903
|
+
Spanish (Spain) es-ES es-ES-3 Standard Female
|
|
904
|
+
Spanish (Spain) es-ES es-ES-4 Standard Female
|
|
905
|
+
Spanish (Spain) es-ES es-ES-5 Standard Male
|
|
906
|
+
Spanish (Equatorial Guinea) es-GQ es-GQ-1 Neural Male
|
|
907
|
+
Spanish (Equatorial Guinea) es-GQ es-GQ-2 Neural Female
|
|
908
|
+
Spanish (Guatemala) es-GT es-GT-1 Neural Male
|
|
909
|
+
Spanish (Guatemala) es-GT es-GT-2 Neural Female
|
|
910
|
+
Spanish (Honduras) es-HN es-HN-1 Neural Male
|
|
911
|
+
Spanish (Honduras) es-HN es-HN-2 Neural Female
|
|
912
|
+
Spanish (Mexico) es-MX es-MX-1 Neural Female
|
|
913
|
+
Spanish (Mexico) es-MX es-MX-2 Neural Male
|
|
914
|
+
Spanish (Mexico) es-MX es-MX-3 Standard Female
|
|
915
|
+
Spanish (Mexico) es-MX es-MX-4 Standard Male
|
|
916
|
+
Spanish (Nicaragua) es-NI es-NI-1 Neural Male
|
|
917
|
+
Spanish (Nicaragua) es-NI es-NI-2 Neural Female
|
|
918
|
+
Spanish (Panama) es-PA es-PA-1 Neural Female
|
|
919
|
+
Spanish (Panama) es-PA es-PA-2 Neural Male
|
|
920
|
+
Spanish (Peru) es-PE es-PE-1 Neural Male
|
|
921
|
+
Spanish (Peru) es-PE es-PE-2 Neural Female
|
|
922
|
+
Spanish (Puerto Rico) es-PR es-PR-1 Neural Female
|
|
923
|
+
Spanish (Puerto Rico) es-PR es-PR-2 Neural Male
|
|
924
|
+
Spanish (Paraguay) es-PY es-PY-1 Neural Male
|
|
925
|
+
Spanish (Paraguay) es-PY es-PY-2 Neural Female
|
|
926
|
+
Spanish (El Salvador) es-SV es-SV-1 Neural Female
|
|
927
|
+
Spanish (El Salvador) es-SV es-SV-2 Neural Male
|
|
928
|
+
Spanish (United States) es-US es-US-1 Neural Male
|
|
929
|
+
Spanish (United States) es-US es-US-2 Neural Female
|
|
930
|
+
Spanish (Uruguay) es-UY es-UY-1 Neural Male
|
|
931
|
+
Spanish (Uruguay) es-UY es-UY-2 Neural Female
|
|
932
|
+
Spanish (Venezuela) es-VE es-VE-1 Neural Female
|
|
933
|
+
Spanish (Venezuela) es-VE es-VE-2 Neural Male
|
|
934
|
+
Estonian (Estonia) et-EE et-EE-1 Neural Female
|
|
935
|
+
Estonian (Estonia) et-EE et-EE-2 Neural Male
|
|
936
|
+
Persian (Iran) fa-IR fa-IR-1 Neural Female
|
|
937
|
+
Persian (Iran) fa-IR fa-IR-2 Neural Male
|
|
938
|
+
Finnish (Finland) fi-FI fi-FI-1 Neural Female
|
|
939
|
+
Finnish (Finland) fi-FI fi-FI-2 Neural Male
|
|
940
|
+
Finnish (Finland) fi-FI fi-FI-3 Neural Female
|
|
941
|
+
Finnish (Finland) fi-FI fi-FI-4 Standard Female
|
|
942
|
+
Filipino (Philippines) fil-PH fil-PH-1 Neural Male
|
|
943
|
+
Filipino (Philippines) fil-PH fil-PH-2 Neural Female
|
|
944
|
+
French (Belgium) fr-BE fr-BE-1 Neural Female
|
|
945
|
+
French (Belgium) fr-BE fr-BE-2 Neural Male
|
|
946
|
+
French (Canada) fr-CA fr-CA-1 Neural Female
|
|
947
|
+
French (Canada) fr-CA fr-CA-2 Neural Male
|
|
948
|
+
French (Canada) fr-CA fr-CA-3 Neural Male
|
|
949
|
+
French (Canada) fr-CA fr-CA-4 Standard Female
|
|
950
|
+
French (Canada) fr-CA fr-CA-5 Standard Female
|
|
951
|
+
French (Switzerland) fr-CH fr-CH-1 Neural Female
|
|
952
|
+
French (Switzerland) fr-CH fr-CH-2 Neural Male
|
|
953
|
+
French (Switzerland) fr-CH fr-CH-3 Standard Male
|
|
954
|
+
French (France) fr-FR fr-FR-1 Neural Female
|
|
955
|
+
French (France) fr-FR fr-FR-2 Neural Male
|
|
956
|
+
French (France) fr-FR fr-FR-3 Standard Female
|
|
957
|
+
French (France) fr-FR fr-FR-4 Standard Female
|
|
958
|
+
French (France) fr-FR fr-FR-5 Standard Male
|
|
959
|
+
Irish (Ireland) ga-IE ga-IE-1 Neural Male
|
|
960
|
+
Irish (Ireland) ga-IE ga-IE-2 Neural Female
|
|
961
|
+
Galician (Spain) gl-ES gl-ES-1 Neural Male
|
|
962
|
+
Galician (Spain) gl-ES gl-ES-2 Neural Female
|
|
963
|
+
Gujarati (India) gu-IN gu-IN-1 Neural Female
|
|
964
|
+
Gujarati (India) gu-IN gu-IN-2 Neural Male
|
|
965
|
+
Hebrew (Israel) he-IL he-IL-1 Neural Male
|
|
966
|
+
Hebrew (Israel) he-IL he-IL-2 Neural Female
|
|
967
|
+
Hebrew (Israel) he-IL he-IL-3 Standard Male
|
|
968
|
+
Hindi (India) hi-IN hi-IN-1 Neural Male
|
|
969
|
+
Hindi (India) hi-IN hi-IN-2 Neural Female
|
|
970
|
+
Hindi (India) hi-IN hi-IN-3 Standard Male
|
|
971
|
+
Hindi (India) hi-IN hi-IN-4 Standard Female
|
|
972
|
+
Croatian (Croatia) hr-HR hr-HR-1 Neural Female
|
|
973
|
+
Croatian (Croatia) hr-HR hr-HR-2 Neural Male
|
|
974
|
+
Croatian (Croatia) hr-HR hr-HR-3 Standard Male
|
|
975
|
+
Hungarian (Hungary) hu-HU hu-HU-1 Neural Female
|
|
976
|
+
Hungarian (Hungary) hu-HU hu-HU-2 Neural Male
|
|
977
|
+
Hungarian (Hungary) hu-HU hu-HU-3 Standard Male
|
|
978
|
+
Indonesian (Indonesia) id-ID id-ID-1 Neural Male
|
|
979
|
+
Indonesian (Indonesia) id-ID id-ID-2 Neural Female
|
|
980
|
+
Indonesian (Indonesia) id-ID id-ID-3 Standard Male
|
|
981
|
+
Italian (Italy) it-IT it-IT-1 Neural Female
|
|
982
|
+
Italian (Italy) it-IT it-IT-2 Neural Male
|
|
983
|
+
Italian (Italy) it-IT it-IT-3 Neural Female
|
|
984
|
+
Italian (Italy) it-IT it-IT-4 Standard Male
|
|
985
|
+
Italian (Italy) it-IT it-IT-5 Standard Female
|
|
986
|
+
Japanese (Japan) ja-JP ja-JP-1 Neural Female
|
|
987
|
+
Japanese (Japan) ja-JP ja-JP-2 Neural Male
|
|
988
|
+
Japanese (Japan) ja-JP ja-JP-3 Standard Female
|
|
989
|
+
Japanese (Japan) ja-JP ja-JP-4 Standard Female
|
|
990
|
+
Japanese (Japan) ja-JP ja-JP-5 Standard Male
|
|
991
|
+
Javanese (Indonesia) jv-ID jv-ID-1 Neural Male
|
|
992
|
+
Javanese (Indonesia) jv-ID jv-ID-2 Neural Female
|
|
993
|
+
Khmer (Cambodia) km-KH km-KH-1 Neural Male
|
|
994
|
+
Khmer (Cambodia) km-KH km-KH-2 Neural Female
|
|
995
|
+
Korean (Korea) ko-KR ko-KR-1 Neural Female
|
|
996
|
+
Korean (Korea) ko-KR ko-KR-2 Neural Male
|
|
997
|
+
Korean (Korea) ko-KR ko-KR-3 Standard Female
|
|
998
|
+
Lithuanian (Lithuania) lt-LT lt-LT-1 Neural Male
|
|
999
|
+
Lithuanian (Lithuania) lt-LT lt-LT-2 Neural Female
|
|
1000
|
+
Latvian (Latvia) lv-LV lv-LV-1 Neural Female
|
|
1001
|
+
Latvian (Latvia) lv-LV lv-LV-2 Neural Male
|
|
1002
|
+
Marathi (India) mr-IN mr-IN-1 Neural Female
|
|
1003
|
+
Marathi (India) mr-IN mr-IN-2 Neural Male
|
|
1004
|
+
Malay (Malaysia) ms-MY ms-MY-1 Neural Male
|
|
1005
|
+
Malay (Malaysia) ms-MY ms-MY-2 Neural Female
|
|
1006
|
+
Malay (Malaysia) ms-MY ms-MY-3 Standard Male
|
|
1007
|
+
Maltese (Malta) mt-MT mt-MT-1 Neural Female
|
|
1008
|
+
Maltese (Malta) mt-MT mt-MT-2 Neural Male
|
|
1009
|
+
Burmese (Myanmar) my-MM my-MM-1 Neural Female
|
|
1010
|
+
Burmese (Myanmar) my-MM my-MM-2 Neural Male
|
|
1011
|
+
Norwegian (Bokmål, Norway) nb-NO nb-NO-1 Neural Female
|
|
1012
|
+
Norwegian (Bokmål, Norway) nb-NO nb-NO-2 Neural Male
|
|
1013
|
+
Norwegian (Bokmål, Norway) nb-NO nb-NO-3 Neural Female
|
|
1014
|
+
Norwegian (Bokmål, Norway) nb-NO nb-NO-4 Standard Female
|
|
1015
|
+
Dutch (Belgium) nl-BE nl-BE-1 Neural Male
|
|
1016
|
+
Dutch (Belgium) nl-BE nl-BE-2 Neural Female
|
|
1017
|
+
Dutch (Netherlands) nl-NL nl-NL-1 Neural Female
|
|
1018
|
+
Dutch (Netherlands) nl-NL nl-NL-2 Neural Female
|
|
1019
|
+
Dutch (Netherlands) nl-NL nl-NL-3 Neural Male
|
|
1020
|
+
Dutch (Netherlands) nl-NL nl-NL-4 Standard Female
|
|
1021
|
+
Polish (Poland) pl-PL pl-PL-1 Neural Female
|
|
1022
|
+
Polish (Poland) pl-PL pl-PL-2 Neural Male
|
|
1023
|
+
Polish (Poland) pl-PL pl-PL-3 Neural Female
|
|
1024
|
+
Polish (Poland) pl-PL pl-PL-4 Standard Female
|
|
1025
|
+
Portuguese (Brazil) pt-BR pt-BR-1 Neural Female
|
|
1026
|
+
Portuguese (Brazil) pt-BR pt-BR-2 Neural Male
|
|
1027
|
+
Portuguese (Brazil) pt-BR pt-BR-3 Standard Male
|
|
1028
|
+
Portuguese (Brazil) pt-BR pt-BR-4 Standard Female
|
|
1029
|
+
Portuguese (Portugal) pt-PT pt-PT-1 Neural Male
|
|
1030
|
+
Portuguese (Portugal) pt-PT pt-PT-2 Neural Female
|
|
1031
|
+
Portuguese (Portugal) pt-PT pt-PT-3 Neural Female
|
|
1032
|
+
Portuguese (Portugal) pt-PT pt-PT-4 Standard Female
|
|
1033
|
+
Romanian (Romania) ro-RO ro-RO-1 Neural Female
|
|
1034
|
+
Romanian (Romania) ro-RO ro-RO-2 Neural Male
|
|
1035
|
+
Romanian (Romania) ro-RO ro-RO-3 Standard Male
|
|
1036
|
+
Russian (Russia) ru-RU ru-RU-1 Neural Female
|
|
1037
|
+
Russian (Russia) ru-RU ru-RU-2 Neural Female
|
|
1038
|
+
Russian (Russia) ru-RU ru-RU-3 Neural Male
|
|
1039
|
+
Russian (Russia) ru-RU ru-RU-4 Standard Female
|
|
1040
|
+
Russian (Russia) ru-RU ru-RU-5 Standard Female
|
|
1041
|
+
Russian (Russia) ru-RU ru-RU-6 Standard Male
|
|
1042
|
+
Slovak (Slovakia) sk-SK sk-SK-1 Neural Male
|
|
1043
|
+
Slovak (Slovakia) sk-SK sk-SK-2 Neural Female
|
|
1044
|
+
Slovak (Slovakia) sk-SK sk-SK-3 Standard Male
|
|
1045
|
+
Slovenian (Slovenia) sl-SI sl-SI-1 Neural Female
|
|
1046
|
+
Slovenian (Slovenia) sl-SI sl-SI-2 Neural Male
|
|
1047
|
+
Slovenian (Slovenia) sl-SI sl-SI-3 Standard Male
|
|
1048
|
+
Somali (Somalia) so-SO so-SO-1 Neural Male
|
|
1049
|
+
Somali (Somalia) so-SO so-SO-2 Neural Female
|
|
1050
|
+
Sundanese (Indonesia) su-ID su-ID-1 Neural Male
|
|
1051
|
+
Sundanese (Indonesia) su-ID su-ID-2 Neural Female
|
|
1052
|
+
Swedish (Sweden) sv-SE sv-SE-1 Neural Female
|
|
1053
|
+
Swedish (Sweden) sv-SE sv-SE-2 Neural Female
|
|
1054
|
+
Swedish (Sweden) sv-SE sv-SE-3 Neural Male
|
|
1055
|
+
Swedish (Sweden) sv-SE sv-SE-4 Standard Female
|
|
1056
|
+
Swahili (Kenya) sw-KE sw-KE-1 Neural Male
|
|
1057
|
+
Swahili (Kenya) sw-KE sw-KE-2 Neural Female
|
|
1058
|
+
Swahili (Tanzania) sw-TZ sw-TZ-1 Neural Male
|
|
1059
|
+
Swahili (Tanzania) sw-TZ sw-TZ-2 Neural Female
|
|
1060
|
+
Tamil (India) ta-IN ta-IN-1 Neural Female
|
|
1061
|
+
Tamil (India) ta-IN ta-IN-2 Neural Male
|
|
1062
|
+
Tamil (India) ta-IN ta-IN-3 Standard Male
|
|
1063
|
+
Tamil (Sri Lanka) ta-LK ta-LK-1 Neural Male
|
|
1064
|
+
Tamil (Sri Lanka) ta-LK ta-LK-2 Neural Female
|
|
1065
|
+
Tamil (Singapore) ta-SG ta-SG-1 Neural Male
|
|
1066
|
+
Tamil (Singapore) ta-SG ta-SG-2 Neural Female
|
|
1067
|
+
Telugu (India) te-IN te-IN-1 Neural Male
|
|
1068
|
+
Telugu (India) te-IN te-IN-2 Neural Female
|
|
1069
|
+
Telugu (India) te-IN te-IN-3 Standard Female
|
|
1070
|
+
Thai (Thailand) th-TH th-TH-1 Neural Female
|
|
1071
|
+
Thai (Thailand) th-TH th-TH-2 Neural Female
|
|
1072
|
+
Thai (Thailand) th-TH th-TH-3 Neural Male
|
|
1073
|
+
Thai (Thailand) th-TH th-TH-4 Standard Male
|
|
1074
|
+
Turkish (Turkey) tr-TR tr-TR-1 Neural Male
|
|
1075
|
+
Turkish (Turkey) tr-TR tr-TR-2 Neural Female
|
|
1076
|
+
Turkish (Turkey) tr-TR tr-TR-3 Standard Female
|
|
1077
|
+
Ukrainian (Ukraine) uk-UA uk-UA-1 Neural Male
|
|
1078
|
+
Ukrainian (Ukraine) uk-UA uk-UA-2 Neural Female
|
|
1079
|
+
Urdu (India) ur-IN ur-IN-1 Neural Female
|
|
1080
|
+
Urdu (India) ur-IN ur-IN-2 Neural Male
|
|
1081
|
+
Urdu (Pakistan) ur-PK ur-PK-1 Neural Male
|
|
1082
|
+
Urdu (Pakistan) ur-PK ur-PK-2 Neural Female
|
|
1083
|
+
Uzbek (Uzbekistan) uz-UZ uz-UZ-1 Neural Female
|
|
1084
|
+
Uzbek (Uzbekistan) uz-UZ uz-UZ-2 Neural Male
|
|
1085
|
+
Vietnamese (Vietnam) vi-VN vi-VN-1 Neural Female
|
|
1086
|
+
Vietnamese (Vietnam) vi-VN vi-VN-2 Neural Male
|
|
1087
|
+
Vietnamese (Vietnam) vi-VN vi-VN-3 Standard Male
|
|
1088
|
+
Chinese (Mandarin, Simplified) zh-CN zh-CN-1 Neural Female
|
|
1089
|
+
Chinese (Mandarin, Simplified) zh-CN zh-CN-2 Neural Male
|
|
1090
|
+
Chinese (Mandarin, Simplified) zh-CN zh-CN-3 Neural Female
|
|
1091
|
+
Chinese (Mandarin, Simplified) zh-CN zh-CN-4 Neural Female
|
|
1092
|
+
Chinese (Mandarin, Simplified) zh-CN zh-CN-5 Neural Female
|
|
1093
|
+
Chinese (Mandarin, Simplified) zh-CN zh-CN-6 Neural Female
|
|
1094
|
+
Chinese (Mandarin, Simplified) zh-CN zh-CN-7 Neural Female
|
|
1095
|
+
Chinese (Mandarin, Simplified) zh-CN zh-CN-8 Neural Male
|
|
1096
|
+
Chinese (Mandarin, Simplified) zh-CN zh-CN-9 Neural Male
|
|
1097
|
+
Chinese (Mandarin, Simplified) zh-CN zh-CN-10 Neural Female
|
|
1098
|
+
Chinese (Mandarin, Simplified) zh-CN zh-CN-11 Neural Female
|
|
1099
|
+
Chinese (Mandarin, Simplified) zh-CN zh-CN-12 Neural Female
|
|
1100
|
+
Chinese (Mandarin, Simplified) zh-CN zh-CN-13 Neural Female
|
|
1101
|
+
Chinese (Mandarin, Simplified) zh-CN zh-CN-14 Standard Female
|
|
1102
|
+
Chinese (Mandarin, Simplified) zh-CN zh-CN-15 Standard Male
|
|
1103
|
+
Chinese (Mandarin, Simplified) zh-CN zh-CN-16 Standard Female
|
|
1104
|
+
Chinese (Cantonese, Traditional) zh-HK zh-HK-1 Neural Female
|
|
1105
|
+
Chinese (Cantonese, Traditional) zh-HK zh-HK-2 Neural Female
|
|
1106
|
+
Chinese (Cantonese, Traditional) zh-HK zh-HK-3 Neural Male
|
|
1107
|
+
Chinese (Cantonese, Traditional) zh-HK zh-HK-4 Standard Male
|
|
1108
|
+
Chinese (Cantonese, Traditional) zh-HK zh-HK-5 Standard Female
|
|
1109
|
+
Chinese (Taiwanese Mandarin) zh-TW zh-TW-1 Neural Female
|
|
1110
|
+
Chinese (Taiwanese Mandarin) zh-TW zh-TW-2 Neural Female
|
|
1111
|
+
Chinese (Taiwanese Mandarin) zh-TW zh-TW-3 Neural Male
|
|
1112
|
+
Chinese (Taiwanese Mandarin) zh-TW zh-TW-4 Standard Female
|
|
1113
|
+
Chinese (Taiwanese Mandarin) zh-TW zh-TW-5 Standard Female
|
|
1114
|
+
Chinese (Taiwanese Mandarin) zh-TW zh-TW-6 Standard Male
|
|
1115
|
+
Zulu (South Africa) zu-ZA zu-ZA-1 Neural Female
|
|
1116
|
+
Zulu (South Africa) zu-ZA zu-ZA-2 Neural Male
|
|
1117
|
+
</details>
|