Transformers.js in single HTML, (v.3) 30+ AI models included

āļ§āļīāļāļĩāļāđāļēāļĒāļāļĩāđāļŠāļļāļāļāļāļāļāļēāļĢāđāļĢāļĩāļĒāļāļĢāļđāđāļ§āđāļē AI āđāļāđāļĨāļ° model āļāļģāļāļēāļāļāļĒāđāļēāļāđāļĢ āđāļāđāļāđāļāđāđāļŦāļ āļāđāļēāļāļ°āđāļāđāļāļāļēāļĢāļāļāļĨāļāļāļŠāđāļ input āđāļāđāļēāđāļ āđāļĨāđāļ§āļŠāļąāļāđāļāļ output āļāļĩāđāļāļāļāļĄāļē āđāļāđāļ§āļīāļāļĩāļĨāļāļāļāļīāļāļĨāļāļāļāļđāļāđāļāđāļĢāļ·āđāļāļĒ āđ āđāļĢāļĩāļĒāļāļĢāļđāđāļāļēāļāļāļĢāļ°āļŠāļāļāļēāļĢāļāđāļāļĢāļāļāļģāđāļŦāđāđāļāđāļēāđāļāļ āļēāļāļāļ§āđāļēāļāđāļāđāļāļĩāļāļ§āđāļē āđāļŠāļĄāļ·āļāļāđāļāļ§āļĢāļ°āļāļēāļāļāļēāļĄāđāļŠāđāļāđāļāļ§āļāļāļāļāļāļāļāļąāļ§āļāļąāļāļĐāļĢ T
āļŦāļĨāļąāļāļāļēāļāļāļąāđāļāļŦāļēāļāļŠāļāđāļāļāđāļēāļāđāļŦāļāđāļāđāļāļāļīāđāļĻāļĐ āļāđāļāļĒāđāļĢāļīāđāļĄāđāļāđāļēāļŠāļđāđāđāļŦāļĄāļāļĻāļķāļāļĐāļēāļāļĢāļīāļāļāļąāļāļāļģāļāļīāđāļāđāļāļŠāļđāđāđāļŠāđāļāđāļāļ§āļāļąāđāļāļāļāļāļāļąāļ§ T āļāļķāļāđāļāđāļāđāļĢāļ·āđāļāļāļāļĩāđāļāđāļāļāļāđāļāļāļ§āđāļēāļāļēāļāļāļģāļāļāļīāļāļēāļĒāļāļāļāļāļđāđāļŠāļĢāđāļēāļ model āļāļąāđāļ āļ§āđāļēāđāļāđāđāļāļāļāļīāļāļāļĒāđāļēāļāđāļĢāļŦāļĢāļ·āļ train āļāđāļ§āļĒāļāļąāļ§āļāļĒāđāļēāļāđāļāļāđāļŦāļ āđāļŦāļĄāļ·āļāļāļāļąāļāļāļđ CV āļāļāļāļāļđāđāļŠāļĄāļąāļāļĢāļāļēāļāļāļĩāđāļāđāļēāļ qualified āļ§āđāļēāđāļĢāļĩāļĒāļāļāļāļŠāļēāļāļēāļ§āļīāļāļēāđāļŦāļ āđāļāļ·āđāļāļāļĢāļ°āđāļĄāļīāļāļ§āđāļēāļāđāļāļāļļāļāļŦāļĢāļ·āļāļāļ§āļēāļĄāļĢāļđāđāļāļ·āđāļāļāļēāļāļāļĩāđāļĄāļĩāļŠāļēāļĄāļēāļĢāļāđāļāđāļāđāļāļĒāļāļāļāđāļ§āļĒāļāļģāļāļēāļāļāļĩāđāđāļĢāļēāļāđāļāļāļāļēāļĢāđāļāđāļŦāļĢāļ·āļāđāļĄāđ
āļāļąāļāļŦāļēāļāļĒāļđāđāļāļĩāđ AI āļŦāļĨāļēāļĒāļāļąāļ§āļĒāļąāļāļāļĒāļđāđāđāļāļĢāļ°āļĒāļ°āļāļģāļĨāļąāļāļāļąāļāļāļē āļāļđāđāļŠāļĢāđāļēāļāđāļāļāļāđāđāļĄāđāļāļąāļāđāļāđāļāļāļīāļāļēāļĒāļĨāļ°āđāļāļĩāļĒāļ āđāļāļĢāļēāļ°āļāļēāļāļĒāļąāļāđāļĄāđāļāļ āļāļēāļāļāļĒāđāļēāļāļĒāļąāļāđāļĄāđāļĨāļāļāļąāļ§ āđāļŦāļĄāļ·āļāļāļāļēāļāđāļāļīāļāđāļāļāļķāļāļāļĩāđāļāļģāļĨāļąāļāļāđāļāļŠāļĢāđāļēāļ āđāļĄāđāđāļāđāđāļāļĨāļĩāļĒāļĢāđāļāļēāļāļāļāļāļĨāļāļāļ āļąāļĒāļŠāļģāļŦāļĢāļąāļāļāļāļāļąāđāļ§āđāļ āļāļđāđāđāļāđāļāļēāļāļāđāļāđāļāļāļĢāļđāđāļ§āđāļēāļŦāļĨāļāļŦāļĨāļĩāļāļāļĒāđāļēāļāđāļĢ āđāļāļĩāļĒāļāđāļāđāđāļŦāđāļāđāļāđāļēāļĨāļēāļāļāļāļāļāļ§āļēāļĄāđāļāđāļāđāļāđāļāđ āļŦāļēāļāđāļĢāļēāļŠāļāđāļāļāđāļāđāļāļāļŦāļēāļāļēāļāļāļģāļāļ§āļēāļĄāđāļāđāļēāđāļ āļāđāļ§āļĒāļāļēāļĢāļāđāļēāļāļāļēāļ code āļŦāļĢāļ·āļ project repository āļāļāļāđāļāļē āđāļāļĒ setup āđāļĨāļ°āļāļāļŠāļāļāđāļāļēāđāļāļ
āļāđāļāļāļĩāļāļāļ Transformers āļāļĩāđāļāļāļāđāļāļāļĄāļēāđāļŦāđāđāļāļĩāļĒāļāđāļāđāļāđāļĢāļĩāļĒāļāđāļāđāļāļēāļāđāļ browser āđāļāđ āļāļģāđāļŦāđāļŠāļ°āļāļ§āļāļāđāļāļāļēāļĢāļāļāļĨāļāļāđāļĨāđāļ AI āđāļāļĒāđāļĄāđāļāđāļāļāļāļāļāđāļĢāļāļĄāļēāļ āđāļāļĩāļĒāļāļŠāđāļ input āļāđāļēāļ API āļāļāļ transformers āđāļĨāļ°āļĢāļāļĢāļąāļ output āļāļĩāđāđāļāđāļāļāļĨāļĨāļąāļāļāđāļĄāļēāđāļŠāļāļ āđāļĄāđāļ§āđāļēāļāļ°āđāļĢāļĩāļĒāļāđāļāđ model āđāļŦāļāļāđāļĄāļĩāļĄāļēāļāļĢāļāļēāļāļāļēāļĢāļāļīāļāļāđāļāđāļāļāđāļāļĩāļĒāļ§āļāļąāļ
āļāļąāļāļāļąāđāļāļ§āļīāļāļĩāļāļĩāđāļŠāļ°āļāļ§āļāļŠāļģāļŦāļĢāļąāļāļāļēāļĢāļāļāļŠāļāļāļāļ·āļ āļāļąāļāđāļāļĢāļĩāļĒāļĄ sample āļŠāļģāļŦāļĢāļąāļāđāļāđāļĨāļ° model āđāļŦāđāļāļāļŠāļāļāļāđāļēāļĒ āđāļāļ·āđāļāđāļāđāļāđāļāđāļāļĩāļĒ āđāļĨāđāļ§āļŦāļēāļāļŠāļāđāļāļāđāļŠāļēāļĄāļēāļĢāļāļāļāļŠāļāļāđāļāļīāđāļĄāđāļāļīāļĄāļāđāļ§āļĒāļāļąāļ§āđāļāļ āļŦāļĢāļ·āļāļāđāļāļāļ§āđāļēāđāļāļīāđāļĄāđāļāļīāļĄāļāļēāļ link āļāļāļ model āļāļąāđāļ
āļŠāļģāļŦāļĢāļąāļāļāļđāđāļāļĩāđāļāđāļāļāļāļēāļĢāļāļāļŠāļāļ āļŠāļēāļĄāļēāļĢāļāļāļāļŠāļāļāđāļāđāļāļĩāđ github pages test-transformers-v3.html
source code āļāļĒāļđāđāđāļ github jojosati/singleHTML
model spec
input/output āļāļĩāđāđāļāļāļāđāļēāļāļāļąāļāļāļāļāđāļāđāļĨāļ° model āļāļĩāđāļŠāļēāļĄāļēāļĢāļāđāļāđāļāđāļēāļ Transformers āļāļĢāļ°āļāļāļāļāđāļ§āļĒ āļāđāļāļāļ§āļēāļĄ (text), āļ āļēāļ (image) āđāļĨāļ° āđāļŠāļĩāļĒāļ (audio)
āđāļ version 3 āļāļĩāđāđāļāđāļāļĢāļąāļāļāļĢāļļāļāđāļāđāļāđāļŦāđāļĢāļāļāļĢāļąāļ model āļāļēāļĄāđāļāļ·āđāļāļāđāļ input/output āļāļĩāđāđāļāļāļāđāļēāļāļāļąāļāđāļāđāđāļāđāļēāļāļĩāđāļĄāļĩāļāļđāđāļĄāļ·āļāđāļāļ°āļāļģāđāļ Hugging Face
āļāļĄāđāļāđāļ§āļīāļāļĩāļāļģāļŦāļāļ spec āļāļāļ model āđāļāļ·āđāļāļāļāļāđāļŦāđāđāļāļĢāđāļāļĢāļĄāļĢāļđāđāļ§āđāļē input/output āđāļāđāļāļāļ°āđāļĢ
text translator
āđāļāđāđāļāļĨāļ āļēāļĐāļē āļŠāđāļāļāđāļāļāļ§āļēāļĄ (text) āđāļāđāļēāđāļ āđāļĨāđāļ§āđāļāđāļāđāļāļāļ§āļēāļĄ (text) āļāļāļāļĄāļē āđāļĄāđāļāđāļāļāļĢāļ°āļāļļāđāļāļ·āđāļāļāđāļ input/output āļāļīāđāļĻāļĐ
{
label: 'text translator /m2m100',
task: 'translation',
model: 'Xenova/m2m100_418M',
sample: 'įæīŧå°ąåäļįå·§å
åã',
options: {
src_lang: 'zh',
tgt_lang: 'en'
},
},
image classifier
āđāļāđāļ§āļīāđāļāļĢāļēāļ°āļŦāđāļāļāļāđāļāļĢāļ°āļāļāļāļ āļēāļĒāđāļāļĢāļđāļāļ āļēāļ āļāđāļāļāļāļēāļĢ input āđāļāđāļāļĢāļđāļāļ āļēāļ (image) āđāļāļĒāļĢāļ°āļāļļ src: imageāļŠāđāļ§āļ output āļāļĩāđāđāļāđāđāļāđāļāļāđāļāļāļ§āļēāļĄ (text) āļāļēāļĄāļāļāļāļī āđāļĄāđāļāđāļāļāļĢāļ°āļāļļāđāļāļ·āđāļāļāđāļāļāļīāđāļĻāļĐ
{
label: 'image classifier',
task: 'image-classification',
model: 'Xenova/vit-base-patch16-224',
src: 'image',
sample: 'https://huggingface.co/datasets/Xenova/transformers.js-docs/resolve/main/tiger.jpg',
options: { topk: 3 },
},
image upscaler
āđāļāđāļ AI āļāļĩāđāđāļāđāļāļĒāļēāļĒāļĢāļđāļāļ āļēāļ āļāļąāļāļāļąāđāļāļāļķāļāļāđāļāļāļāļģāļŦāļāļāđāļŦāđāđāļāđāļ image āļāļąāđāļ input āđāļĨāļ° output
{
label: 'image upscaler',
task: 'image-to-image',
model: 'Xenova/swin2SR-classical-sr-x2-64',
src: 'image',
out: 'image',
sample: 'https://huggingface.co/datasets/Xenova/transformers.js-docs/resolve/main/butterfly.jpg',
},
Natural Language Processing
src: text out: text
āđāļāđāļ AI model āļāļĩāđāļĢāļąāļ input āđāļāđāļ text āļŦāļĨāļąāļāļāļēāļāļāļĢāļ°āļĄāļ§āļĨāļāļĨāđāļĨāđāļ§āļāļ°āđāļāđāļāļĨāļĨāļąāļāļāđāļāļāļāļĄāļēāđāļāđāļ text
āļāļēāļĢāļāļāļāđāļāļāđāļāļĢāđāļāļĢāļĄāđāļŦāđāļĢāļąāļ input āđāļāđāļāļāđāļāļāļ§āļēāļĄ āđāļĨāļ°āđāļŠāļāļāļāļĨāļĨāļąāļāļāđ (output) āļāļĩāđāđāļāđāļāļāđāļāļāļ§āļēāļĄāļāļķāļāļāļģāđāļāđāļāđāļēāļĒ āđāļāļĢāļēāļ°āđāļāđāļāļāļ·āđāļāļāļēāļāļāļĩāđāļĄāļāļļāļĐāļĒāđāđāļāđāļāļīāļāļāđāļāļāļąāļāļāļāļĄāļāļīāļ§āđāļāļāļĢāđāļĄāļēāļāļąāđāļāđāļāđāđāļĢāļ āļāļēāļĢāļāļāļŠāļāļāļāđāļāđāļēāļĒāđāļāđāļāļāļąāļ

Vision Processing
src: image out: text
āđāļāđāļ AI model āļāļĩāđāļĢāļąāļ input āđāļāđāļāļĢāļđāļāļ āļēāļ (image) āđāļĨāļ°āđāļāđāļāļĨāļĨāļąāļāļāđāđāļāđāļāļāđāļāļāļ§āļēāļĄ āđāļāđāļŠāļģāļŦāļĢāļąāļāđāļĒāļāđāļĒāļ°āļĢāļđāļāļ āļēāļ (image classification) āļŦāļĢāļ·āļāđāļāļĨāļāļāļąāļ§āļāļąāļāļĐāļĢāđāļāļĢāļđāļāļ āļēāļ (character recognition) āļāļēāļĢāļāļāļāđāļāļāđāļŦāđāļĢāļąāļ input āļāđāļāļāļāđāļēāļāļĒāļļāđāļāļĒāļēāļāđāļĨāđāļāļāđāļāļĒ āļāļēāļĢāļŠāđāļāļĢāļđāļāļ āļēāļāđāļāļāļĢāļ°āļĄāļ§āļĨāļāļĨāļāđāļāļāđāļāđāđāļāļāļāļīāļāđāļĨāđāļāļāđāļāļĒ
āļŠāļģāļŦāļĢāļąāļ input āļāļĩāđāļāļ°āļŠāđāļāđāļāđāļŦāđ AI āļāļĢāļāļĩāļĢāļđāļāļ āļēāļāđāļāļāļīāļāđāļāļāļĢāđāđāļāđāļ āļŠāļēāļĄāļēāļĢāļāđāļāđ url (āļāļķāđāļāļāđāļāļāđāļ§āļĒ https: āļŦāļĢāļ·āļ http:) āļāļāļāļĢāļđāļāļāļąāđāļāđāļāđāđāļĨāļĒ āđāļāđāļāđāļēāđāļāđāļāđāļāļĨāđāļĢāļđāļāļ āļēāļāļāļĩāđāļāļĒāļđāđāđāļāđāļāļĢāļ·āđāļāļ āļāļ°āļāđāļāļāđāļāļĩāļĒāļāđāļāđāļāļāđāļēāļāđāļāļĨāđāļāļąāđāļāļĄāļēāđāļĨāđāļ§āđāļāļĨāļāđāļāđāļ data URL (āļāļķāđāļāļāđāļāļāđāļ§āļĒ data:)
src: image out: image
āļĄāļĩ model āļāļīāđāļĻāļĐāļāļĒāļđāđāļāļąāļ§āļŦāļāļķāđāļāļāļ·āļ image upscaler āļāļĩāđāđāļāđ input āđāļāđāļāļĢāļđāļāļ āļēāļāđāļĨāđāļ§āļāļāļāļāļĨāļąāļāļĄāļēāđāļāđāļāļĢāļđāļāļ āļēāļ āļāļąāļāļŦāļēāļāļķāļāļāļĒāļđāđāļāļĩāđāļāļ°āđāļāļēāļĢāļđāļāļ āļēāļāļāļąāđāļāļāļĨāļąāļāļĄāļēāđāļŠāļāļāđāļāđāļāļĒāđāļēāļāđāļĢ āļŦāļĨāļąāļāļāļēāļāļŦāļēāļāđāļāļĄāļđāļĨāļāđāļ§āļĒāļāļēāļĢāļāļēāļĄ Bard AI āđāļĨāļ° Stack Overflow āļāļķāļāļāļāļ§āđāļē JavaScript āđāļĄāđāļĢāļāļāļĢāļąāļāļāļēāļĢāđāļāļēāļāđāļāļĄāļđāļĨāļĢāļđāļāļ āļēāļāļāļąāđāļāļĄāļēāđāļŠāļāļāđāļāđāļāļĒāđāļēāļāļāđāļēāļĒ āđ āļāļķāļāļāđāļāļāđāļāļĩāļĒāļ function āļāļķāđāļāđāļāđāđāļāļ

āļāđāļāļĄāļđāļĨāļĢāļđāļāļ āļēāļāļāļĩāđāđāļāđāļĢāļąāļāļĄāļēāļāļēāļ AI āļāļĄāđāļĢāļĩāļĒāļāļ§āđāļēāđāļāđāļ pixel data āļāļķāđāļāļĄāļĩāđāļāļĢāļāļŠāļĢāđāļēāļāļāļąāļāļāļĩāđ
{ // pixel data
"width": <number>,
"height": <number>,
"channels": <number>,
"data": <byteArray> [00, 255, ... ],
}
āļāļāļ°āļāļĩāđāđāļāļĢāļāļŠāļĢāđāļēāļ ImageData āļāļĩāđ JavaScript āđāļāđ āđāļāđāļāļāļąāļāļāļĩāđ
{ // ImageData type
"width": <number>,
"height": <number>,
"colorSpace": <string>,
"data": <byteArray> [00, 255, ... ],
}
āļāļĨāđāļēāļĒāļāļąāļ āđāļāđāđāļĄāđāđāļŦāļĄāļ·āļāļāļāļąāļ āđāļāļĒāđāļāļāļēāļ°āļŠāđāļ§āļāļāļāļ data āļāļĩāđāđāļāđāļ byteArray
pixel data āđāļāđāļāđāļē channels āļāļāļāļāļģāļāļ§āļ bytes āļāđāļ pixel (3 = RGB) āļŦāļĢāļ·āļ (1 = gray scale)
ImageData āļĄāļĩāļāļāļēāļ 4 bytes āļāđāļ pixel āđāļŠāļĄāļ āđāļāļĩāļĒāļāđāļāđāļēāļāļąāļ RGBA (byte āļāļĩāđāļŠāļĩāđāđāļāđāļāļāđāļē Alpha āļāļ§āļēāļĄāđāļāļĢāđāļāđāļŠāļ)
āđāļĄāļ·āđāļāđāļāđāļēāđāļāđāļāļĢāļāļŠāļĢāđāļēāļāđāļĨāđāļ§ āļāļķāļāđāļāđ function āđāļāļĨāļ pixel data āđāļāđāļ ImageData āđāļāļ·āđāļāđāļāđāđāļ browser āļāļąāļāļāļĩāđ
utils.imageFromPixel = function (pixeldata) {
const width = pixeldata.width
const height = pixeldata.height
const channels = pixeldata.channels
const imageData = new ImageData(width, height)
for (let y = 0; y < height; y++) {
for (let x = 0; x < width; x++) {
const index = (y * width + x) * 4;
const rgbindex = (y * width + x) * channels
imageData.data[index] = pixeldata.data[rgbindex]; // Red value
imageData.data[index + 1] = pixeldata.data[rgbindex + (1 % channels)]; // Green value
imageData.data[index + 2] = pixeldata.data[rgbindex + (2 % channels)]; // Blue value
imageData.data[index + 3] = 255; // Alpha value (default to opaque)
}
}
return imageData
}
input: image output: imagemask
image segmenter āđāļāđāļŠāļģāļŦāļĢāļąāļāļāļĢāļ§āļāļŦāļēāļāļāļāđāļāļĢāļ°āļāļāļāļŠāļģāļāļąāļāđāļāļ āļēāļ āđāļĨāđāļ§āļāļāļāļāļĨāļąāļāļĄāļēāđāļāđāļāļĢāļđāļāļ āļēāļāđāļāļāļāļīāđāļĻāļĐ āđāļāđāļāđāļāļāļāļąāļāļĢāļđāļāļ āļēāļāļāđāļāļāļāļąāļ āđāļŠāļāļāļāļāļāđāļāļāļāļāļāļŠāļīāđāļāļāļĩāđāļāļĢāļ§āļāļāļąāļāđāļāđ
āļāđāļāļĄāļđāļĨāļĢāļđāļāļ āļēāļāļāļĩāđāđāļāđāļ pixel mask āļĄāļĩāđāļāļĢāļāļŠāļĢāđāļēāļāđāļŦāļĄāļ·āļāļ pixel data āļāļāļāļī āđāļāđāđāļāđ channels = 1 āļāļĨāļēāļĒāđāļāđāļāļ āļēāļāļāļēāļ§-āļāļģ āđāļĄāļ·āđāļāđāļāļēāđāļāļāđāļāļāļāļąāļāļ āļēāļāļāđāļāļāļāļąāļ āļāđāļāļ°āđāļŦāļĨāļ·āļāļ āļēāļāļāđāļāļāļāļąāļāđāļāļāļēāļ°āļŠāđāļ§āļāļāļĩāđāļāđāļāļāļāļąāļāļŠāļĩāļāļēāļ§

āđāļāđāļāļŠāļģāļŦāļĢāļąāļāļŠāļĢāđāļēāļāļ āļēāļāļāđāļāļ āđāļāđāļ§āļīāļāļĩāđāļāļĨāļ pixel data āđāļāđāļ ImageData āđāļŦāļĄāļ·āļāļāļ āļēāļāļāļāļāļī āđāļĨāđāļ§āđāļāļē ImageData āļāļāļāļ āļēāļāļāļąāđāļāļŠāļāļāļĄāļēāļāļģ bitwise AND
āļŠāļĩāļāļģ āļāđāļē mask pixel 0 āļāļģāđāļŦāđāļāļĨāļēāļĒāļŠāļĩāļāļģāļāļēāļĄ mask
āļŠāļĩāļāļēāļ§ āļāđāļē mask pixel āđāļāđāļ 255 āđāļĄāļ·āđāļ AND āđāļĨāđāļ§āļāļģāđāļŦāđāđāļāđāļāđāļē pixel āļāļēāļĄāļ āļēāļāļāđāļāļāļāļąāļ
utils.imageMask = function (img1, img2) {
const width1 = img1.width
const height1 = img1.height
const width2 = img2.width
const height2 = img2.height
if (!img1 || !img2)
return img1 || img2;
const imageData = new ImageData(width1, height1)
for (let y = 0; y < height1; y++) {
for (let x = 0; x < width1; x++) {
const index1 = (y * width1 + x) * 4;
imageData.data[index1] = img1.data[index1]; // Red value
imageData.data[index1 + 1] = img1.data[index1 + 1]; // Green value
imageData.data[index1 + 2] = img1.data[index1 + 2]; // Blue value
imageData.data[index1 + 3] = img1.data[index1 + 3]; // Alpha value (default to opaque)
if (y < height2 && x < width2) {
const index2 = (y * width2 + x) * 4;
imageData.data[index1] &= img2.data[index2]; // Red value
imageData.data[index1 + 1] &= img2.data[index2 + 1]; // Green value
imageData.data[index1 + 2] &= img2.data[index2 + 2]; // Blue value
}
}
}
return imageData
Audio Processing
src: audio out: text
AI model āđāļāļāļĨāļļāđāļĄāļāļĩāđāđāļāļĩāđāļĒāļ§āļāđāļāļāļāļąāļāļāļēāļĢāļāļĢāļ°āļĄāļ§āļĨāļāļĨāđāļŠāļĩāļĒāļ āđāļĨāđāļ§āđāļŦāđāļāļĨāļĨāļąāļāļāđāļāļĨāļąāļāļĄāļēāđāļāđāļāļāđāļāļāļ§āļēāļĄ āļŠāđāļ§āļāđāļŦāļāđāđāļāļĩāđāļĒāļ§āļāđāļāļāļāļąāļāļāļēāļĢāđāļĒāļāđāļĒāļ°āđāļŠāļĩāļĒāļ (audio classification) āļŦāļĢāļ·āļāļāļāļāđāļŠāļĩāļĒāļāļāļđāļāđāļŦāđāļāļĨāļēāļĒāđāļāđāļāļāđāļāļāļ§āļēāļĄ (transcribe / speech recognition)

āđāļāđāļāđāļāļĩāļĒāļ§āļāļąāļāļĢāļđāļāļ āļēāļ āļāđāļāļĄāļđāļĨāđāļŠāļĩāļĒāļāļāļĩāđāđāļāđāļ url āļāļĒāļđāđāđāļāļāļīāļāđāļāļāļĢāđāđāļāđāļāļŠāļēāļĄāļēāļĢāļāļŠāđāļāđāļāļāļĢāļ°āļĄāļ§āļĨāļāļĨāđāļāđāļāļąāļāļāļĩ āđāļāđāļāđāļēāđāļāđāđāļāļĨāđāđāļŠāļĩāļĒāļāļāļĩāđāļāļĒāļđāđāđāļāļāļāļĄāļāļīāļ§āđāļāļāļĢāđāļāđāļāļāđāļāļĨāļāđāļāđāļ data URL
āđāļāļāļāļĩāļāļĩāđ HTML5 āļĄāļĩ tag <audio> āđāļŦāđāđāļāđāđāļāđāļ player āđāļāđāļāļĨāđāļēāļĒāļāļąāļāļāļēāļĢāđāļāđ <img> āđāļŠāļāļāļĢāļđāļāļ āļēāļ
<audio controls ng-src="{{ trustResourceUrl(expr) }}"></audio>
āļāļīāļāļāļąāļāđāļāļĩāļĒāļ AngularJS āđāļĄāđāļĢāļđāđāļāļąāļ tag āļāļĩāđ āđāļĨāļ°āđāļĄāđāļāļāļļāļāļēāļāđāļŦāđāđāļāđ url āđāļāļĒāļāļĢāļ āļāđāļāļāļāļģāđāļŦāđāđāļāđāļ trust resource āļāđāļāļ
$scope.trustResourceUrl = function (url) {
return $sce.trustAsResourceUrl(url)
}
src: text out: audio
āļāļąāļ§āļāļĒāđāļēāļ AI model āļāļĨāđāļļāļĄāļāļĩāđ āļāļ·āļ text to speech āđāļāđāļāđāļēāļāļāđāļāļāļ§āļēāļĄāļāļąāđāļāđāļāļ

āđāļāļāļāļĩāļāļĩāđāļāđāļāļĄāļđāļĨāđāļŠāļĩāļĒāļ āļāļĩāđāđāļāđāļĢāļąāļāļĄāļēāļāļēāļ AI āļŠāļēāļĄāļēāļĢāļāđāļāđ lib wavefile āļĄāļēāļāđāļ§āļĒāđāļāļĨāļāđāļŦāđāđāļāđāļ data URL āđāļāļ·āđāļāđāļāđāļāļąāļ <audio> āđāļāđ
if (spec.out=='audio' && result.audio) {
var wav = new wavefile.WaveFile()
wav.fromScratch(1, result.sampling_rate, '32f', result.audio)
$scope.result.audio = wav.toDataURI()
}
Multimodal
src: image out: text (āđāļĄāđāļāđāļāļāļĢāļ°āļāļļ)
image document Q&A
āđāļāđāļ AI model āļāļĩāđāļāļŠāļĄāļĢāļ°āļŦāļ§āđāļēāļ Vision Processing āļāđāļēāļāļāđāļāļāļ§āļēāļĄāļāļēāļāļĢāļđāļāļ āļēāļ āļāļąāļ NLP āļ§āļīāđāļāļĢāļēāļ°āļŦāđāļāļ§āļēāļĄāļŦāļĄāļēāļĒāļāđāļāļāļ§āļēāļĄāļāļąāđāļ āđāļāļ·āđāļāļāļāļāļāļģāļāļēāļĄ
āļāļ§āļēāļĄāļāļąāļāļāđāļāļāđāļāđāļāđāļĢāļ·āđāļāļāļ āļēāļĒāđāļāļāļāļāļāļđāđāļŠāļĢāđāļēāļ model āđāļāđāļāļēāļĢāđāļāļĩāļĒāļāđāļāļĢāđāļāļĢāļĄāđāļāļ·āđāļāđāļĢāļĩāļĒāļāđāļāđāļāļēāļ āļāļģāđāļŦāļĄāļ·āļāļāļāļąāļ model āļāļ·āđāļāļāđāļēāļāļāđāļ

image captioner
āđāļāđ Vision Processing āđāļĒāļāđāļĒāļ°āļāļāļāđāļāļĢāļ°āļāļāļāļāļāļāļ āļēāļ āđāļĨāđāļ§āđāļāđ NLP āļŠāļĢāđāļēāļāļāđāļāļāļ§āļēāļĄāļāļāļīāļāļēāļĒāļĢāļđāļāļ āļēāļāļāļąāđāļ

src: image|audio + choices out: text (āđāļĄāđāļāđāļāļāļĢāļ°āļāļļ)
zero-shot model
āđāļāđāļŠāļģāļŦāļĢāļąāļāļ§āļīāđāļāļĢāļēāļ°āļŦāđ input āļāļĩāđāđāļāđāļĢāļąāļ āđāļāļ·āđāļāđāļŦāđāļāđāļēāļāļ§āļēāļĄāļāđāļēāļāļ°āđāļāđāļ (score) āļāļēāļĄ choices āļāļĩāđāļĢāļ°āļāļļāļĄāļē

āļāļ!
unlisted model
āđāļĨāđāļ§āļĒāļąāļāļĄāļĩ model āļāļ·āđāļāļāļģāđāļāđāđāļŦāļĄāļ·āļāļāļāļąāļāļāļĩāļāđāļŦāļĄ ?
āļāđāļāļāļāļĩāđāļāļ°āļŠāđāļāđāļāđāļ v3 āđāļāđāļ§āđāđāļ gist āļāļĄāļāļ·āđāļāļĄāļēāļāļāļāđāļāđāļēāļāļĢāđāļāļĄāļāļąāļāļāļ§āļēāļĄāļāļīāļāļ§āđāļē āļāđāļēāļāļ°āļāļģāđāļŦāđāļŠāļēāļĄāļēāļĢāļāđāļŠāđāļāļ·āđāļ model āļāļĩāđāļĒāļąāļāđāļĄāđāļĄāļĩāđāļ list āđāļāđāļāđāļ§āļĒ āđāļāļ·āđāļāļāļ°āđāļāđāļāļāļŠāļāļāđāļāļāđāļĢāđāļ§ āđ āđāļāđāļĄāļ·āđāļ input āļāļąāļ output āļāļąāđāļāļŦāļĨāļēāļĒāļāđāļĄāļĩāļĄāļēāļāļĢāļāļēāļāļāļĨāđāļēāļĒ āđ āļāļąāļāļāļĒāļđāđāđāļĨāđāļ§
āļāļēāļāļāļ°āđāļāđāļ model āļāļĩāđāđāļāļīāđāļāļāļĢāļąāļāļāļĢāļļāļāļāļāļāļĄāļēāđāļŦāļĄāđ āļŦāļĢāļ·āļāđāļāđāļ model āļāļĩāđāļāļđāđāļŠāļĢāđāļēāļāđāļĄāđāđāļāđāđāļāļĩāļĒāļāļāļāļīāļāļēāļĒāđāļāļēāđāļ§āđ
āđāļĢāļīāđāļĄāļāļēāļāđāļĨāđāļāļđāļĢāļēāļĒāļāļ·āđāļ model āļāļąāđāļāļŦāļĄāļāļāļāļ task āļāļĩāđāđāļāđāļāļąāļ Transformer.js āđāļāđ (āļāļēāļāđāļāļāļāļāļ Hugging Face) āđāļāđāļ task: fill-task

āļāļāļ§āđāļēāļĄāļĩ model āļāļĩāđāļāļĒāļđāđāđāļāļŦāļĄāļ§āļ fill-mask āļāļĩāļāļŦāļĨāļēāļĒāļāļąāļ§ āļāļķāļāļāļāļĨāļāļāđāļāđ model Xenova/wangchanberta-base-att-spm-uncased (āļŠāļąāļāļŦāļĢāļāđāļ§āđāļēāļāļąāđāļāļāļ·āđāļāđāļāļĒāļāļąāļāļāļąāļāļāļēāđāļāļĒ) āļŠāļąāļāđāļāļāļ§āđāļēāđāļĄāđāļĄāļĩāļāļđāđāļĄāļ·āļ āđāļāļ°āļāļģāļāļēāļĢāđāļĢāļĩāļĒāļāđāļāđāļāļēāļāđāļ āđ āđāļĨāļĒ āļāļāļāļāļēāļāļāđāļāļāļ§āļēāļĄāļĄāļēāļāļĢāļāļēāļāļāļēāļĄ template āđāļĢāļēāļāļķāļāļāļāļĨāļāļāđāļāļēāđāļāđāļāļ·āđāļ model āđāļāđāļāđāļāļāļŠāļāļ

āļāļĨāļāļēāļĢāļāļāļŠāļāļāļĨāļāļāđāļŠāđ input āļŦāļĨāļēāļĒ āđ āđāļāļ āļāļāļ§āđāļē model āļāļĩāđāļāđāļāļāđāļāđāļāļąāļ§āļāļąāļāļĐāļĢ lowercase āđāļāđāļēāļāļąāđāļ āđāļĨāļ°āđāļāđāļŠāļąāļāļāļĨāļąāļāļĐāļāđ <mask> āļāļķāļāļŠāļēāļĄāļēāļĢāļāļāļāļāļāļĨāļąāļāļĄāļēāđāļāđāļāļēāļĄāļ āļēāļ āđāļāļēāđāļāđāļ§āđāļēāđāļāđāļ model āļāļĩāđ train āļāđāļ§āļĒāļāđāļāļĄāļđāļĨāļāļĩāđāļĄāļĩāļ āļēāļĐāļēāđāļāļĒāļāđāļ§āļĒ āđāļāļĢāļēāļ°āđāļāđāļāļĨāļĨāļąāļāļāđāđāļāđāļāļāļģāđāļāļĒāļāļāļāļĄāļē

āļŠāļĢāļļāļ
āļāļĄāđāļĢāļīāđāļĄāđāļāđāļēāļŠāļđāđāđāļ§āļāļ§āļ AI āđāļāđāļāđāļĄāļļāļĄāļāļāļāļāļēāļĢāđāļāļĩāļĒāļāđāļāļĢāđāļāļĢāļĄāđāļāļ·āđāļāđāļĢāļĩāļĒāļāđāļāđ āļāļĒāļēāļĒāļēāļĄāļĄāļāļāļŦāļēāļāđāļāļāļāļēāļāđāļāļāļēāļĢāļāļĢāļ°āļĒāļļāļāļāđāđāļāđ āļāļķāđāļāļāđāļĒāļąāļāđāļĄāđāļāļ°āđāļĢāļāļĩāđāđāļāđāļāđāļāđāļēāļŦāļĄāļēāļĒāļāļąāļāđāļāļ āļāļ§āļēāļĄāļĢāļđāđāļŠāļķāļāđāļĢāļāļāļĩāđāđāļāđāļĨāļāļāļŠāļģāļĢāļ§āļāļāļĢāļĢāļāļē big name āđāļāđāļ OpenAI, Google āđāļĨāļ° Microsoft āļĄāļĩāļāļēāļāļēāļĢāđāļŦāļĄāļ·āļāļāđāļāđāļēāļĄāļēāđāļāļāļēāļāļāļĩāđāļĄāļĩāļāļāļĄāļēāļāļĄāļēāļĒ āđāļāđāđāļĄāđāđāļŦāđāļāđāļāļĢāļāļĩāđāļāļļāđāļāđāļāļĒāđāļĨāļĒ āļāļāđāļāļāļąāđāļāļāļđāļāļāļļāļĒāļāļąāļāļāđāļ§āļĒāļāļģāļĻāļąāļāļāđāļāļĩāđāļāļąāļāđāļĄāđāđāļāđāļēāđāļ
pipeline
āđāļĢāļīāđāļĄāđāļĢāļāļāļēāļāļāļēāļĢāļāļāļĨāļāļāđāļāļĩāļĒāļāđāļāļĢāđāļāļĢāļĄāļāļīāļāļāđāļāļāļąāļ PaLM API āđāļāđāđāļāļ·āđāļāļāļāļēāļāđāļāđāļ LM (Language Model) āđāļāđāļāđāļāļāļ§āļēāļĄ text āđāļāđāļ input/output āđāļŦāļĄāļ·āļāļāļāļąāļāđāļāđ ChatGPT āđāļĨāļ° Bard āļāļāđāļĄāđāļĄāļĩāđāļāļāļĒāđāļŦāļĨāļąāļāļāļēāļāđāļāļĩāļĒāļāđāļāļĢāđāļāļĢāļĄāļāļīāļāļāđāļāđāļāđāđāļĨāđāļ§ āđāļĨāļĒāļĒāļąāļāļāļīāļāđāļĄāđāļāļāļāļ§āđāļēāļāļ°āļāļāļŠāļāļāļāļ°āđāļĢāļāđāļ
āļāļāļĄāļēāđāļāļ Hugging Face āđāļĨāđāļ§āđāļāđāļĨāļāļāđāļāļĩāļĒāļāđāļāđāļāļāđāļēāļ Transformer.js āļāļģāđāļŦāđāđāļŦāđāļāļāļīāđāļāļŠāđāļ§āļāđāļĨāđāļ āđ āļāļĩāđāđāļāđāļ AI āđāļāļāļēāļ°āļāļēāļ āļŠāļēāļĄāļēāļĢāļāđāļāļēāļĄāļēāļāļĢāļ°āļāļāļāļāļąāļāđāļŦāđāļāļĨāļēāļĒāđāļāđāļ model āđāļŦāļāđāļāļķāđāļāđāļāđ
āļāļąāļ§āļāļĒāđāļēāļāđāļāđāļ āļŦāļēāļāļāđāļāļāļāļēāļĢāđāļāļĨāļāđāļŠāļĩāļĒāļāļāļĩāđāļāļđāļāļ āļēāļĐāļēāđāļāļĒāđāļāđāļāđāļŠāļĩāļĒāļāļāļđāļāļ āļēāļĐāļēāļāļąāļāļāļĪāļĐ āļāļ°āļāđāļāļāđāļāđ AI āļŦāļĨāļēāļĒ model āļĄāļēāļāđāļāđāļāđāļ pipeline āļāļĨāļĨāļąāļāļāđāļāļēāļāļāļąāđāļāļāļāļāļŦāļāļķāđāļāļāļ°āļŠāđāļāļāđāļāđāļāđāļāđāļāļāļīāļāļāļļāļāļŠāļģāļŦāļĢāļąāļāļāļąāđāļāļāļāļāļāđāļāđāļ
auto-speech-recognition āđāļĢāļīāđāļĄāļāđāļāļāļēāļāđāļŠāļĩāļĒāļāļāļđāļāļ āļēāļĐāļēāđāļāļĒ āđāļāļĨāļāđāļāđāļāļāđāļāļāļ§āļēāļĄāļ āļēāļĐāļēāđāļāļĒ
text-translation āļāļēāļāļāđāļāļāļ§āļēāļĄāļ āļēāļĐāļēāđāļāļĒ āđāļāļĨāđāļāđāļāļāđāļāļāļ§āļēāļĄāļ āļēāļĐāļēāļāļąāļāļāļĪāļĐ
text-to-speech āļāļēāļāļāđāļāļāļ§āļēāļĄāļ āļēāļĐāļēāļāļąāļāļāļĪāļĐ āđāļāļĨāļāđāļāđāļāđāļŠāļĩāļĒāļāļāļđāļ
..āđāļĨāļ°āđāļāļāļāļĩāđāļĢāļĩāļĒāļāđāļĄāļĩāļāļāļāļēāļāļŦāļĨāļąāļāđāļāđāļāđāļāļĒāđāļāļāļēāļĢāļ§āļīāļ§āļąāļāļāđāđāļāļāļāļīāļĄāđāļāđāļāļāļīāļŠ āđāļĄāļ·āđāļāđāļāļāļāļĩāđāļĢāļĩāļĒāļāļāļēāļāđāļĨāđāļāļāļēāļāļāļāļīāļāļāļāļ§āļāļĢāļ§āļĄāļāļąāļāđāļāļĨāļĨāđāļāļĩāđāđāļŦāļāđāļāļ§āđāļēāļāļĒāđāļēāļāđāļāļ·āđāļāļāļđāļĨāļāļąāļ āđāļĨāļ°āļĒāļąāļāļāļĒāļđāđāđāļāđāļāļĨāļĨāđāđāļŦāļĨāđāļēāļāļąāđāļāđāļĢāļ·āđāļāļĒāļĄāļēāđāļāļāļēāļāļ°āđāļāđāļāļāļāļāđāļāļĢāļ°āļāļāļāļāļāļāđāļāļĨāļĨāđ āļāļĨāļāļĩāđāđāļāļīāļāļāļķāđāļāļāļēāļĄāļĄāļēāļāđāļāļ·āļāļāđāļēāļ§āļāļāļēāļāļĒāļąāļāļĐāđāđāļāļ§āļīāļ§āļąāļāļāļēāļāļēāļĢ āļāļąāđāļāļāļ·āļāļāļēāļĢāļāđāļāđāļāļīāļāļāļāļāđāļāļĨāļĨāđāļāļ·āļāđāļĨāļ°āļŠāļąāļāļ§āđāļāļķāđāļāļŠāļ·āļāļāļąāļāļāļļāđāļāđāļ§āļĒāđāļāļĻ āđāļĨāļ°āđāļāļāļĩāđāļŠāļļāļāļāđāļ§āļīāļ§āļąāļāļāđāļāļķāđāļāđāļāđāļāļŠāļīāđāļāļĄāļĩāļāļĩāļ§āļīāļāļāđāļēāļāđ āļāļĩāđāđāļŦāđāļāļāļąāļāļāļĒāļđāđāđāļāļŠāļīāđāļāđāļ§āļāļĨāđāļāļĄāļāļāļāđāļĢāļē ..āđāļĄāļ·āđāļāļāļ°āļāļāļĄāļāļēāļĢāđāļāļāļ āļāļāļāļāļīāđāļāļ āđāļĨāļ°āđāļŪāđāļāļĢāđāļāļ āđāļāļēāļ°āđāļāļĩāđāļĒāļ§āļāļąāļāđāļāļāļŦāļāļķāđāļāđāļāļ·āđāļāļŠāļĢāđāļēāļāļāđāļģāļāļēāļĨ āļŠāļēāļĢāļāļĢāļ°āļāļāļāļāļĩāđāđāļāđāļāļ°āļĄāļĩāļĢāļŠāļŦāļ§āļēāļ āļāļ§āļēāļĄāļŦāļ§āļēāļāļāļąāđāļāđāļĄāđāđāļāđāļāļĒāļđāđāđāļ C āļŦāļĢāļ·āļ O āļŦāļĢāļ·āļ H āđāļāđāļāļĒāļđāđāđāļāđāļāļāđāļāļāļāļĩāđāļāļļāļāļāļąāļāđāļāļīāļāļāļēāļāļāļāļīāļŠāļąāļĄāļāļąāļāļāđāļāļāļāļāļ°āļāļāļĄāđāļŦāļĨāđāļēāļāļąāđāļ āļĄāļąāļāđāļāđāļāļāļļāļāļŠāļĄāļāļąāļāļīāļāļĩāđāļāļļāļāļāļąāļāđāļāļīāļāļāļķāđāļāļĄāļē āđāļĨāļ°āļāđāļēāļāļ°āļāļđāļāđāļŦāđāļāļąāļāļāļķāđāļāļāļĩāļ āļāļ§āļēāļĄāļŦāļ§āļēāļāļāđāđāļĄāđāđāļāđāļāļļāļāļŠāļĄāļāļąāļāļīāļāļēāļĢāđāļāļēāļ°āđāļāļĩāđāļĒāļ§āļāļēāļāđāļāļĄāļĩ āđāļāđāđāļāđāļāļāļĢāļ°āļŠāļāļāļēāļĢāļāđāļāļāļāļāļĢāļ°āļŠāļēāļāļŠāļąāļĄāļāļąāļŠāļāļāļāđāļĢāļē āļāļĩāđāđāļāļīāļāļāļķāđāļāđāļĄāļ·āđāļāđāļĄāđāļĨāļāļļāļĨāļāđāļģāļāļēāļĨāļāļģāļāļāļīāļāļīāļĢāļīāļĒāļēāļāļąāļāļāļĢāļēāļāļāļāļēāļĢāļāđāļāļēāļāđāļāļĄāļĩāđāļāļāđāļāļĄāļĢāļąāļāļĢāļŠ āļāļķāđāļāļŠāđāļāļāļĨāđāļŦāđāđāļāļĨāļĨāđāļāļĢāļ°āļŠāļēāļāļāļļāļāļŦāļāļķāđāļāļŠāđāļāļŠāļąāļāļāļēāļāđāļāļāļŦāļāļķāđāļāļāļķāđāļāļĄāļē āļāļĢāļ°āļŠāļāļāļēāļĢāļāđāļāļāļāļāļ§āļēāļĄāļŦāļ§āļēāļāļāļķāļāļāļļāļāļāļąāļāđāļāļīāļāļāļķāđāļāļāļēāļāļāļīāļāļāļĢāļĢāļĄāļāļāļāļĢāļ°āļāļāļāļĢāļ°āļŠāļēāļ āđāļĒāļāđāļĒāļāļĩāđāļāđāļāļāđāļĢāđāļ / (2002) Fritjof Capraāļ§āļīāļĻāļīāļĐāļāđââāļāļąāļāļŽāļŠ āļ§āļąāļāļ§āļīāļāļāļđ āđāļĨāļ°āļŠāļ§āđāļēāļāļāļāļĻāđāļĻāļīāļĢāļīāļāļąāļāļāđ āđāļāļĨ
āļŠāđāļāļāļāļāļĄāļāļīāļ§āđāļāļāļĢāđ
āļāļāļāļīāļāļĄāļŠāļĨāļąāļāđāļāđāđāļāđāļāļāļļāđāļāļŦāļĨāļēāļĒāđāļāļĢāļ·āđāļāļ āļĄāļĩāļŠāđāļāļāļāļāļ CPU/memory āđāļāļāļāđāļēāļāļāļąāļ āļŦāļēāļāļāļąāđāļāļāļģāļāļēāļāļāđāļēāļāļāļāļāļāļ°āđāļāđāđāļāļĢāļ·āđāļāļāļāļĩāđāļāđāļģāļŦāļāļąāļāđāļāļē (Pentium M/4GB) āļŦāļēāļāļāļĒāļđāđāļāđāļēāļāļāđāđāļāđ 2 āđāļāļĢāļ·āđāļāļ (i5 gen8/8GB) āļŦāļĢāļ·āļ (i5 gen10/16GB)
āļāļļāļāđāļāļĢāļ·āđāļāļāļŠāļēāļĄāļēāļĢāļāđāļĢāļĩāļĒāļāđāļāđāđāļāļĢāđāļāļĢāļĄāļāļāļŠāļāļāļāđāļēāļ browser āđāļāđ āđāļāļĩāļĒāļāđāļāđāļāđāļēāđāļĢāđāļ§āļāđāļēāļāļāļąāļāļāđāļāļāļāđāļēāļāļāļąāļāđāļāļ āđāļĨāļ°āđāļāļĢāļ·āđāļāļāļāļĩāđ memory āļāđāļāļĒ āļāļēāļāļāļĢāļąāđāļāđāļĄāđāļŠāļēāļĄāļēāļĢāļāļāļāļŠāļāļāļŦāļĨāļēāļĒ model āļāđāļāđāļāļ·āđāļāļāļāļąāļāđāļāđ āļāđāļāļāļŠāļąāđāļ refresh browser āļāđāļāļ
āđāļĄāļ·āđāļāļāļ·āļāļāļĩāđāđāļāļāļāļĩāđāļāļĄāđāļāļīāđāļāļŠāļąāļāđāļāļāļ§āđāļē āļāļļāļāļāļĢāļąāđāļāļāļĩāđāļŠāļąāđāļāđāļŦāđāļāļĢāļ°āļĄāļ§āļĨāļāļĨāđāļŠāļĩāļĒāļāļāļąāļāļĨāļĄāđāļāđāļāļāļļāđāļāļāļąāļāļāļķāđāļāļāļąāļāđāļāļāļāđāļēāļĄāļāļĨāļēāļāļāļ§āļēāļĄāđāļāļĩāļĒāļ āļāļķāļāļāļīāļāļ§āđāļēāļŦāļēāļāļāļ°āđāļāđāļŦāđāđāļāļĨāļāļ§āđāļēāļāļĩāđ āļāđāļāđāļāļāđāļāđāļāļĨāļąāļ CPU āđāļĨāļ° memory āļāļĒāđāļēāļāļāļĩāđāļāļąāļāļāļąāļāļāļē AI āļŦāļĨāļēāļĒāļāļāļāļāļāļāļĢāļīāļ āđ āļāļĩāđāļŠāļģāļāļąāļāļāļēāļāļāļ°āđāļĄāđāļŠāļēāļĄāļēāļĢāļāļāļģāđāļāđāļĨāļāļāđāļĨāđāļāļŠāļāļļāļāđ āđāļāļāļāļĩāđāļāļĩāļāđāļĨāđāļ§ āđāļāđāļāļŠāļīāđāļāļāļĩāđāļĒāļąāļāļāļāļāļāļąāļ§āđāļāļāđāļĄāđāđāļāđ āļŦāļēāļāļāļ°āđāļĨāļ·āļāļāđāļāļāļēāļĄāđāļŠāđāļāđāļāļ§āļāļąāđāļāļāļāļāļāļąāļ§ T
āļāļģāđāļāļāļģāđāļĄ āđāļĨāļ° āļāđāļāļāđāļĨāļāļāļąāļāļāļ°āđāļĢ āđāļ§āļĨāļē āļŠāļļāļāļ āļēāļ āļŦāļĢāļ·āļāļāļ§āļēāļĄāļŠāļąāļĄāļāļąāļāļāđ?
20231210


