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
 



