ZOO Digital oferă servicii de localizare și media end-to-end pentru a adapta conținutul original de televiziune și film la diferite limbi, regiuni și culturi. Face globalizarea mai ușoară pentru cei mai buni creatori de conținut din lume. Cu încredere de către cele mai mari nume din divertisment, ZOO Digital oferă servicii de localizare și media de înaltă calitate la scară, inclusiv dublare, subtitrare, scripting și conformitate.
Fluxurile de lucru tipice de localizare necesită diarizarea manuală a difuzorului, în care un flux audio este segmentat în funcție de identitatea difuzorului. Acest proces care necesită timp trebuie finalizat înainte ca conținutul să poată fi dublat într-o altă limbă. Cu metode manuale, localizarea unui episod de 30 de minute poate dura între 1-3 ore. Prin automatizare, ZOO Digital își propune să realizeze localizarea în mai puțin de 30 de minute.
În această postare, discutăm despre implementarea modelelor scalabile de învățare automată (ML) pentru diarizarea conținutului media folosind Amazon SageMaker, cu accent pe WhisperX model.
Context
Viziunea ZOO Digital este de a oferi o schimbare mai rapidă a conținutului localizat. Acest obiectiv este blocat de natura manuală intensivă a exercițiului, agravată de forța de muncă redusă de oameni calificați care pot localiza manual conținutul. ZOO Digital lucrează cu peste 11,000 de liber profesioniști și a localizat peste 600 de milioane de cuvinte doar în 2022. Cu toate acestea, oferta de oameni calificați este depășită de cererea tot mai mare de conținut, necesitând automatizare pentru a ajuta fluxurile de lucru de localizare.
Cu scopul de a accelera localizarea fluxurilor de lucru de conținut prin învățarea automată, ZOO Digital a angajat AWS Prototyping, un program de investiții al AWS pentru a construi în comun sarcini de lucru cu clienții. Angajamentul sa concentrat pe furnizarea unei soluții funcționale pentru procesul de localizare, oferind în același timp instruire practică pentru dezvoltatorii ZOO Digital pe SageMaker, Transcriere Amazon, și Traducerea Amazon.
Provocarea clientului
După ce un titlu (un film sau un episod dintr-un serial TV) a fost transcris, difuzoarele trebuie alocate fiecărui segment de vorbire, astfel încât să poată fi alocate corect artiștilor vocali care sunt turnați pentru a interpreta personajele. Acest proces se numește diarizare a vorbitorului. ZOO Digital se confruntă cu provocarea de a diariza conținutul la scară, fiind în același timp viabilă din punct de vedere economic.
Prezentare generală a soluțiilor
În acest prototip, am stocat fișierele media originale într-un anumit Serviciul Amazon de stocare simplă (Amazon S3) găleată. Această găleată S3 a fost configurată să emită un eveniment atunci când sunt detectate fișiere noi în el, declanșând un AWS Lambdas funcţie. Pentru instrucțiuni despre configurarea acestui declanșator, consultați tutorialul Utilizarea unui declanșator Amazon S3 pentru a invoca o funcție Lambda. Ulterior, funcția Lambda a invocat punctul final SageMaker pentru inferență folosind Client Boto3 SageMaker Runtime.
WhisperX model, bazat pe Șoapta lui OpenAI, realizează transcripții și diarizare pentru activele media. Este construit pe Faster Şoaptă reimplementare, oferind o transcriere de până la patru ori mai rapidă, cu o aliniere îmbunătățită a marcajului de timp la nivel de cuvânt în comparație cu Whisper. În plus, introduce diarizarea difuzoarelor, care nu este prezentă în modelul original Whisper. WhisperX utilizează modelul Whisper pentru transcripții Wav2Vec2 model pentru a îmbunătăți alinierea marcajelor de timp (asigurând sincronizarea textului transcris cu marcajele de timp audio) și pyannote model de diarizare. fFmpeg este folosit pentru încărcarea audio de pe medii sursă, compatibil cu diverse formate media. Arhitectura modelului transparentă și modulară permite flexibilitate, deoarece fiecare componentă a modelului poate fi schimbată după cum este necesar în viitor. Cu toate acestea, este esențial să rețineți că WhisperX nu are funcții complete de gestionare și nu este un produs la nivel de întreprindere. Fără întreținere și asistență, este posibil să nu fie potrivit pentru implementarea în producție.
În această colaborare, am implementat și evaluat WhisperX pe SageMaker, folosind un punctul final de inferență asincron pentru a găzdui modelul. Punctele finale asincrone SageMaker acceptă dimensiuni de încărcare de până la 1 GB și încorporează caracteristici de scalare automată care atenuează eficient creșterile de trafic și economisesc costurile în perioadele de vârf. Punctele finale asincrone sunt deosebit de potrivite pentru procesarea fișierelor mari, cum ar fi filme și seriale TV în cazul nostru de utilizare.
Următoarea diagramă ilustrează elementele de bază ale experimentelor pe care le-am efectuat în această colaborare.
În secțiunile următoare, analizăm detaliile implementării modelului WhisperX pe SageMaker și evaluăm performanța de diarizare.
Descărcați modelul și componentele acestuia
WhisperX este un sistem care include mai multe modele pentru transcriere, aliniere forțată și diarizare. Pentru o funcționare ușoară a SageMaker, fără a fi nevoie de a prelua artefactele modelului în timpul inferenței, este esențial să predescărcați toate artefactele modelului. Aceste artefacte sunt apoi încărcate în containerul de servire SageMaker în timpul inițierii. Deoarece aceste modele nu sunt direct accesibile, oferim descrieri și exemplu de cod din sursa WhisperX, oferind instrucțiuni despre descărcarea modelului și a componentelor acestuia.
WhisperX folosește șase modele:
Cele mai multe dintre aceste modele pot fi obținute de la Fata îmbrățișată folosind biblioteca huggingface_hub. Folosim următoarele download_hf_model()
funcția de a prelua aceste artefacte model. Este necesar un jeton de acces de la Hugging Face, generat după acceptarea acordurilor de utilizare pentru următoarele modele pyannote:
import huggingface_hub
import yaml
import torchaudio
import urllib.request
import os CONTAINER_MODEL_DIR = "/opt/ml/model"
WHISPERX_MODEL = "guillaumekln/faster-whisper-large-v2"
VAD_MODEL_URL = "https://whisperx.s3.eu-west-2.amazonaws.com/model_weights/segmentation/0b5b3216d60a2d32fc086b47ea8c67589aaeb26b7e07fcbe620d6d0b83e209ea/pytorch_model.bin"
WAV2VEC2_MODEL = "WAV2VEC2_ASR_BASE_960H"
DIARIZATION_MODEL = "pyannote/speaker-diarization" def download_hf_model(model_name: str, hf_token: str, local_model_dir: str) -> str: """ Fetches the provided model from HuggingFace and returns the subdirectory it is downloaded to :param model_name: HuggingFace model name (and an optional version, appended with @[version]) :param hf_token: HuggingFace access token authorized to access the requested model :param local_model_dir: The local directory to download the model to :return: The subdirectory within local_modeL_dir that the model is downloaded to """ model_subdir = model_name.split('@')[0] huggingface_hub.snapshot_download(model_subdir, token=hf_token, local_dir=f"{local_model_dir}/{model_subdir}", local_dir_use_symlinks=False) return model_subdir
Modelul VAD este preluat de pe Amazon S3, iar modelul Wav2Vec2 este preluat din modulul torchaudio.pipelines. Pe baza următorului cod, putem prelua toate artefactele modelelor, inclusiv cele de la Hugging Face și le putem salva în directorul de model local specificat:
def fetch_models(hf_token: str, local_model_dir="./models"): """ Fetches all required models to run WhisperX locally without downloading models every time :param hf_token: A huggingface access token to download the models :param local_model_dir: The directory to download the models to """ # Fetch Faster Whisper's Large V2 model from HuggingFace download_hf_model(model_name=WHISPERX_MODEL, hf_token=hf_token, local_model_dir=local_model_dir) # Fetch WhisperX's VAD Segmentation model from S3 vad_model_dir = "whisperx/vad" if not os.path.exists(f"{local_model_dir}/{vad_model_dir}"): os.makedirs(f"{local_model_dir}/{vad_model_dir}") urllib.request.urlretrieve(VAD_MODEL_URL, f"{local_model_dir}/{vad_model_dir}/pytorch_model.bin") # Fetch the Wav2Vec2 alignment model torchaudio.pipelines.__dict__[WAV2VEC2_MODEL].get_model(dl_kwargs={"model_dir": f"{local_model_dir}/wav2vec2/"}) # Fetch pyannote's Speaker Diarization model from HuggingFace download_hf_model(model_name=DIARIZATION_MODEL, hf_token=hf_token, local_model_dir=local_model_dir) # Read in the Speaker Diarization model config to fetch models and update with their local paths with open(f"{local_model_dir}/{DIARIZATION_MODEL}/config.yaml", 'r') as file: diarization_config = yaml.safe_load(file) embedding_model = diarization_config['pipeline']['params']['embedding'] embedding_model_dir = download_hf_model(model_name=embedding_model, hf_token=hf_token, local_model_dir=local_model_dir) diarization_config['pipeline']['params']['embedding'] = f"{CONTAINER_MODEL_DIR}/{embedding_model_dir}" segmentation_model = diarization_config['pipeline']['params']['segmentation'] segmentation_model_dir = download_hf_model(model_name=segmentation_model, hf_token=hf_token, local_model_dir=local_model_dir) diarization_config['pipeline']['params']['segmentation'] = f"{CONTAINER_MODEL_DIR}/{segmentation_model_dir}/pytorch_model.bin" with open(f"{local_model_dir}/{DIARIZATION_MODEL}/config.yaml", 'w') as file: yaml.safe_dump(diarization_config, file) # Read in the Speaker Embedding model config to update it with its local path speechbrain_hyperparams_path = f"{local_model_dir}/{embedding_model_dir}/hyperparams.yaml" with open(speechbrain_hyperparams_path, 'r') as file: speechbrain_hyperparams = file.read() speechbrain_hyperparams = speechbrain_hyperparams.replace(embedding_model_dir, f"{CONTAINER_MODEL_DIR}/{embedding_model_dir}") with open(speechbrain_hyperparams_path, 'w') as file: file.write(speechbrain_hyperparams)
Selectați containerul AWS Deep Learning adecvat pentru a servi modelul
După ce artefactele modelului sunt salvate utilizând codul exemplu anterior, puteți alege pre-construit Containere de învățare profundă AWS (DLC-uri) din următoarele GitHub repo. Când selectați imaginea Docker, luați în considerare următoarele setări: cadru (Hugging Face), sarcină (inferență), versiunea Python și hardware (de exemplu, GPU). Vă recomandăm să utilizați următoarea imagine: 763104351884.dkr.ecr.[REGION].amazonaws.com/huggingface-pytorch-inference:2.0.0-transformers4.28.1-gpu-py310-cu118-ubuntu20.04
Această imagine are toate pachetele de sistem necesare preinstalate, cum ar fi ffmpeg. Nu uitați să înlocuiți [REGION] cu regiunea AWS pe care o utilizați.
Pentru alte pachete Python necesare, creați un requirements.txt
fișier cu o listă de pachete și versiunile acestora. Aceste pachete vor fi instalate când DLC-ul AWS este construit. Următoarele sunt pachetele suplimentare necesare pentru a găzdui modelul WhisperX pe SageMaker:
Creați un script de inferență pentru a încărca modelele și a rula inferența
Apoi, creăm un personalizat inference.py
script pentru a sublinia modul în care modelul WhisperX și componentele sale sunt încărcate în container și cum ar trebui rulat procesul de inferență. Scriptul conține două funcții: model_fn
și transform_fn
. model_fn
funcția este invocată pentru a încărca modelele din locațiile lor respective. Ulterior, aceste modele sunt trecute la transform_fn
funcţionează în timpul inferenţei, unde sunt efectuate procesele de transcriere, aliniere şi diarizare. Următorul este un exemplu de cod pentru inference.py
:
import io
import json
import logging
import tempfile
import time import torch
import whisperx DEVICE = 'cuda' if torch.cuda.is_available() else 'cpu' def model_fn(model_dir: str) -> dict: """ Deserialize and return the models """ logging.info("Loading WhisperX model") model = whisperx.load_model(whisper_arch=f"{model_dir}/guillaumekln/faster-whisper-large-v2", device=DEVICE, language="en", compute_type="float16", vad_options={'model_fp': f"{model_dir}/whisperx/vad/pytorch_model.bin"}) logging.info("Loading alignment model") align_model, metadata = whisperx.load_align_model(language_code="en", device=DEVICE, model_name="WAV2VEC2_ASR_BASE_960H", model_dir=f"{model_dir}/wav2vec2") logging.info("Loading diarization model") diarization_model = whisperx.DiarizationPipeline(model_name=f"{model_dir}/pyannote/speaker-diarization/config.yaml", device=DEVICE) return { 'model': model, 'align_model': align_model, 'metadata': metadata, 'diarization_model': diarization_model } def transform_fn(model: dict, request_body: bytes, request_content_type: str, response_content_type="application/json") -> (str, str): """ Load in audio from the request, transcribe and diarize, and return JSON output """ # Start a timer so that we can log how long inference takes start_time = time.time() # Unpack the models whisperx_model = model['model'] align_model = model['align_model'] metadata = model['metadata'] diarization_model = model['diarization_model'] # Load the media file (the request_body as bytes) into a temporary file, then use WhisperX to load the audio from it logging.info("Loading audio") with io.BytesIO(request_body) as file: tfile = tempfile.NamedTemporaryFile(delete=False) tfile.write(file.read()) audio = whisperx.load_audio(tfile.name) # Run transcription logging.info("Transcribing audio") result = whisperx_model.transcribe(audio, batch_size=16) # Align the outputs for better timings logging.info("Aligning outputs") result = whisperx.align(result["segments"], align_model, metadata, audio, DEVICE, return_char_alignments=False) # Run diarization logging.info("Running diarization") diarize_segments = diarization_model(audio) result = whisperx.assign_word_speakers(diarize_segments, result) # Calculate the time it took to perform the transcription and diarization end_time = time.time() elapsed_time = end_time - start_time logging.info(f"Transcription and Diarization took {int(elapsed_time)} seconds") # Return the results to be stored in S3 return json.dumps(result), response_content_type
În directorul modelului, alături de requirements.txt
dosar, asigurați prezența inference.py
într-un subdirector de cod. The models
directorul ar trebui să semene cu următorul:
Creați un tarball al modelelor
După ce creați modelele și directoarele de cod, puteți utiliza următoarele linii de comandă pentru a comprima modelul într-un fișier tarball (fișier .tar.gz) și a-l încărca pe Amazon S3. La momentul scrierii, folosind modelul Large V2 cu șoaptă mai rapidă, tarball-ul rezultat reprezentând modelul SageMaker are o dimensiune de 3 GB. Pentru mai multe informații, consultați Modele de găzduire în Amazon SageMaker, Partea 2: Noțiuni introductive cu implementarea modelelor în timp real pe SageMaker.
Creați un model SageMaker și implementați un punct final cu un predictor asincron
Acum puteți crea modelul SageMaker, configurația punctului final și punctul final asincron cu AsyncPredictor folosind tarball-ul model creat la pasul anterior. Pentru instrucțiuni, consultați Creați un punct final de inferență asincron.
Evaluați performanța de diarizare
Pentru a evalua performanța de diarizare a modelului WhisperX în diferite scenarii, am selectat câte trei episoade din două titluri în limba engleză: un titlu dramă format din episoade de 30 de minute și un titlu documentar format din episoade de 45 de minute. Am folosit setul de instrumente de metrice al lui pyannote, pyannote.metrics, pentru a calcula rata de eroare de diarizare (DER). În evaluare, transcrierile manual și diarizate furnizate de ZOO au servit drept adevăr de bază.
Am definit DER după cum urmează:
Total este lungimea videoclipului de adevăr la sol. FA (Alarma falsă) este lungimea segmentelor care sunt considerate ca vorbire în predicții, dar nu în adevărul de bază. domnișoară este lungimea segmentelor care sunt considerate ca vorbire în adevărul de bază, dar nu în predicție. Eroare, De asemenea, numit Confuzie, este lungimea segmentelor care sunt atribuite diferiților vorbitori în predicție și adevăr de bază. Toate unitățile sunt măsurate în secunde. Valorile tipice pentru DER pot varia în funcție de aplicația specifică, setul de date și calitatea sistemului de diarizare. Rețineți că DER poate fi mai mare de 1.0. Un DER mai mic este mai bine.
Pentru a putea calcula DER pentru o bucată de media, este necesară o diarizare a adevărului la sol, precum și rezultatele transcrise și diarizate WhisperX. Acestea trebuie analizate și rezultă în liste de tupluri care conțin o etichetă a vorbitorului, ora de începere a segmentului de vorbire și ora de încheiere a segmentului de vorbire pentru fiecare segment de vorbire din mass-media. Etichetele difuzoarelor nu trebuie să se potrivească între WhisperX și diarizările adevărului de la sol. Rezultatele se bazează în principal pe timpul segmentelor. pyannote.metrics preia aceste tupluri de diarizări de adevăr de bază și diarizări de ieșire (la care se face referire în documentația pyannote.metrics ca referință și ipoteză) pentru a calcula DER. Următorul tabel rezumă rezultatele noastre.
Tipul video | THE | Corect | domnișoară | Eroare | Alarma falsa |
Dramă | 0.738 | 44.80% | 21.80% | 33.30% | 18.70% |
Documentar | 1.29 | 94.50% | 5.30% | 0.20% | 123.40% |
In medie | 0.901 | 71.40% | 13.50% | 15.10% | 61.50% |
Aceste rezultate relevă o diferență semnificativă de performanță între titlurile dramei și cele ale documentarelor, modelul obținând rezultate semnificativ mai bune (folosind DER ca măsură agregată) pentru episoadele dramei în comparație cu titlul documentarului. O analiză mai atentă a titlurilor oferă perspective asupra potențialilor factori care contribuie la acest decalaj de performanță. Un factor cheie ar putea fi prezența frecventă a muzicii de fundal care se suprapune cu discursul în titlul documentarului. Deși preprocesarea media pentru a îmbunătăți acuratețea diarizării, cum ar fi eliminarea zgomotului de fundal pentru a izola vorbirea, a depășit scopul acestui prototip, deschide căi pentru lucrări viitoare care ar putea îmbunătăți performanța WhisperX.
Concluzie
În această postare, am explorat parteneriatul de colaborare dintre AWS și ZOO Digital, folosind tehnici de învățare automată cu SageMaker și modelul WhisperX pentru a îmbunătăți fluxul de lucru de diarizare. Echipa AWS a jucat un rol esențial în asistarea ZOO în crearea de prototipuri, evaluarea și înțelegerea implementării eficiente a modelelor ML personalizate, concepute special pentru diarizare. Aceasta a inclus încorporarea scalarii automate pentru scalabilitate folosind SageMaker.
Valorificarea inteligenței artificiale pentru diarizare va duce la economii substanțiale atât la costuri, cât și la timp atunci când se generează conținut localizat pentru ZOO. Ajutând transcrietorii să creeze și să identifice cu rapiditate și precizie difuzoarele, această tehnologie se adresează naturii în mod tradițional consumatoare de timp și predispuse la erori a sarcinii. Procesul convențional implică adesea treceri multiple prin videoclip și pași suplimentari de control al calității pentru a minimiza erorile. Adoptarea IA pentru diarizare permite o abordare mai direcționată și mai eficientă, crescând astfel productivitatea într-un interval de timp mai scurt.
Am subliniat pașii cheie pentru implementarea modelului WhisperX pe punctul final asincron SageMaker și vă încurajăm să încercați singuri folosind codul furnizat. Pentru mai multe informații despre serviciile și tehnologia ZOO Digital, vizitați Site-ul oficial al ZOO Digital. Pentru detalii despre implementarea modelului OpenAI Whisper pe SageMaker și diferite opțiuni de inferență, consultați Găzduiește modelul Whisper pe Amazon SageMaker: explorarea opțiunilor de inferență. Simțiți-vă liber să vă împărtășiți gândurile în comentarii.
Despre Autori
Ying Hou, dr, este arhitect de prototipare pentru învățare automată la AWS. Domeniile ei principale de interes includ Deep Learning, cu accent pe GenAI, Computer Vision, NLP și predicția datelor în serie de timp. În timpul liber, îi place să petreacă momente de calitate cu familia ei, să se cufunde în romane și să facă drumeții în parcurile naționale din Marea Britanie.
Ethan Cumberland este inginer de cercetare AI la ZOO Digital, unde lucrează la utilizarea AI și Machine Learning ca tehnologii de asistență pentru a îmbunătăți fluxurile de lucru în vorbire, limbaj și localizare. Are o experiență în inginerie software și cercetare în domeniul securității și al poliției, concentrându-se pe extragerea de informații structurate de pe web și pe utilizarea modelelor ML open-source pentru analiza și îmbogățirea datelor colectate.
Gaurav Kaila conduce echipa AWS Prototyping pentru Marea Britanie și Irlanda. Echipa sa lucrează cu clienți din diverse industrii pentru a crea și a dezvolta în comun sarcini de lucru critice pentru afaceri, cu mandatul de a accelera adoptarea serviciilor AWS.
- Distribuție de conținut bazat pe SEO și PR. Amplifică-te astăzi.
- PlatoData.Network Vertical Generative Ai. Împuterniciți-vă. Accesați Aici.
- PlatoAiStream. Web3 Intelligence. Cunoștințe amplificate. Accesați Aici.
- PlatoESG. carbon, CleanTech, Energie, Mediu inconjurator, Solar, Managementul deșeurilor. Accesați Aici.
- PlatoHealth. Biotehnologie și Inteligență pentru studii clinice. Accesați Aici.
- Sursa: https://aws.amazon.com/blogs/machine-learning/streamline-diarization-using-ai-as-an-assistive-technology-zoo-digitals-story/
- :are
- :este
- :nu
- :Unde
- $UP
- 000
- 1
- 10
- 100
- 11
- 140
- 2022
- 220
- 28
- 30
- 350
- 600
- 7
- 8
- a
- Capabil
- accelera
- acceptare
- acces
- accesibil
- precizie
- Obține
- realizarea
- peste
- adapta
- Suplimentar
- În plus,
- adrese
- Adoptare
- După
- agregat
- acorduri
- AI
- cercetare ai
- urmări
- isi propune
- alarmă
- alinia
- alinierea
- aliniere
- TOATE
- permite
- singur
- pe langa
- de asemenea
- Cu toate ca
- Amazon
- Amazon SageMaker
- Amazon Web Services
- an
- Analizand
- analiză
- și
- O alta
- aplicație
- abordare
- adecvat
- arhitectură
- SUNT
- domenii
- Artiști
- AS
- evalua
- Bunuri
- alocate
- ajuta
- asistarea
- At
- audio
- autorizat
- Auto
- Automatizare
- căi
- AWS
- fundal
- bazat
- BE
- deoarece
- fost
- înainte
- fiind
- CEL MAI BUN
- Mai bine
- între
- Dincolo de
- Cea mai mare
- BIN
- atât
- construit
- afaceri
- dar
- by
- calcula
- denumit
- CAN
- caz
- contesta
- caractere
- Alege
- mai aproape
- cod
- colaborare
- colaborativ
- comentarii
- comparație
- Terminat
- conformitate
- component
- componente
- agravată
- calculator
- Computer Vision
- efectuat
- configurat
- configurarea
- Lua în considerare
- luate în considerare
- Constând
- Recipient
- conține
- conţinut
- creatorii de conținut
- contribuind
- Control
- convențional
- Nucleu
- corect
- A costat
- Cheltuieli
- ar putea
- crea
- a creat
- Crearea
- Creatorii
- critic
- culturi
- personalizat
- clienţii care
- de date
- adânc
- învățare profundă
- definit
- livrarea
- Oferă
- se îngropa
- Cerere
- În funcție
- implementa
- dislocate
- Implementarea
- desfășurarea
- proiectat
- detalii
- detectat
- Dezvoltatorii
- dispozitiv
- diagramă
- DICT
- diferenţă
- diferit
- digital
- Digitale
- direct
- directoare
- director
- discuta
- diferit
- Docher
- documentar
- documentaţie
- domeniu
- Dont
- Descarca
- descărcarea
- Dramă
- numit
- în timpul
- fiecare
- mai ușor
- Eficace
- eficient
- eficient
- element
- altfel
- Încorporarea
- angajarea
- permite
- înconjura
- încuraja
- capăt
- un capăt la altul
- Punct final
- angajat
- angajament
- inginer
- Inginerie
- Engleză
- spori
- îmbogățitor
- asigura
- asigurare
- la nivel de întreprindere
- Divertisment
- episod
- eroare
- Erori
- esenţial
- evalua
- evaluat
- evaluarea
- evaluare
- eveniment
- Fiecare
- exemplu
- Exercita
- experimente
- explorat
- Explorarea
- Față
- fete
- factor
- factori
- fals
- familie
- mai repede
- DESCRIERE
- simţi
- Adus
- Fișier
- Fişiere
- Flexibilitate
- Concentra
- concentrat
- concentrându-se
- următor
- urmează
- Pentru
- forțat
- patru
- Cadru
- Gratuit
- frecvent
- din
- Complet
- funcţie
- funcțional
- funcții
- mai mult
- viitor
- decalaj
- genai
- generată
- generator
- obtinerea
- GitHub
- globalizarea
- scop
- GPU
- Teren
- hands-on
- Piese metalice
- he
- ei
- de înaltă calitate
- lui
- gazdă
- găzduire
- ORE
- Cum
- Totuși
- HTML
- http
- HTTPS
- Față îmbrățișată
- identificarea
- Identitate
- if
- ilustrează
- imagine
- import
- îmbunătăţi
- îmbunătățit
- in
- inclus
- include
- Inclusiv
- incorpora
- care încorporează
- crescând
- industrii
- informații
- inițiere
- perspective
- instalat
- instrucțiuni
- interes
- în
- Prezintă
- investiţie
- invocat
- implică
- Irlanda
- IT
- ESTE
- jpg
- JSON
- Cheie
- factorul cheie
- Etichetă
- etichete
- limbă
- Limbă
- mare
- mai mare
- conduce
- Conduce
- învăţare
- Lungime
- efectului de pârghie
- Bibliotecă
- linii
- Listă
- liste
- încărca
- încărcare
- local
- Localizare
- la nivel local
- Locații
- log
- logare
- Lung
- LOWER
- maşină
- masina de învățare
- întreținere
- FACE
- administrare
- Mandat
- manual
- manual
- Meci
- Mai..
- Mass-media
- Metadata
- Metode
- metric
- Metrici
- milion
- minimaliza
- minute
- diminua
- ML
- model
- Modele
- modular
- Module
- Momente
- mai mult
- Mai ales
- film
- Filme
- multiplu
- Muzică
- trebuie sa
- nume
- nume
- național
- Natură
- necesar
- Nevoie
- necesar
- Nou
- nlp
- Zgomot
- în special
- nota
- obținut
- of
- oferi
- oferind
- oficial
- de multe ori
- on
- ONE
- open-source
- OpenAI
- deschide
- operaţie
- Opţiuni
- or
- original
- OS
- Altele
- al nostru
- afară
- schiță
- a subliniat
- producție
- iesiri
- peste
- ofertele
- parte
- în special
- Asociere
- Trecut
- trece
- cale
- căi
- modele
- oameni
- Efectua
- performanță
- efectuată
- efectuează
- bucată
- conducte
- pivot
- Plato
- Informații despre date Platon
- PlatoData
- Joaca
- a jucat
- poliție
- Post
- potenţial
- potenţial
- precedent
- tocmai
- prezicere
- Predictii
- prezenţă
- prezenta
- precedent
- primar
- proces
- procese
- prelucrare
- Produs
- producere
- productivitate
- Program
- prototip
- prototipuri
- furniza
- prevăzut
- furnizează
- furnizarea
- Piton
- calitate
- R
- rată
- Citeste
- real
- în timp real
- recomanda
- trimite
- menționat
- regiune
- regiuni
- minte
- eliminarea
- înlocui
- reprezentând
- solicita
- necesita
- necesar
- Cerinţe
- cercetare
- respectiv
- rezultat
- rezultând
- REZULTATE
- reveni
- Returnează
- dezvălui
- Rol
- Alerga
- funcţionare
- Runtime
- s
- sagemaker
- probă
- Economisiți
- salvate
- Economie
- scalabilitate
- scalabil
- Scară
- scalare
- scenarii
- domeniu
- scenariu
- secunde
- secțiuni
- securitate
- segment
- segmentarea
- segmente
- selectate
- selectarea
- serie
- servit
- Servicii
- servire
- setări
- Distribuie
- ea
- să
- semnificativ
- simplu
- SIX
- Mărimea
- dimensiuni
- calificat
- mic
- netezi
- So
- Software
- Inginerie software
- soluţie
- Sursă
- Vorbitor
- difuzoare
- specific
- specific
- specificată
- discurs
- Cheltuire
- piroane
- Începe
- început
- Pas
- paşi
- depozitare
- stocate
- Poveste
- curent
- simplifica
- structurat
- Ulterior
- substanțial
- astfel de
- potrivit
- livra
- a sustine
- De sprijin
- au schimbat
- rapid
- sincronizare
- sistem
- tabel
- Lua
- ia
- vizate
- Sarcină
- echipă
- tehnici de
- Tehnologii
- Tehnologia
- temporar
- a) Sport and Nutrition Awareness Day in Manasia Around XNUMX people from the rural commune Manasia have participated in a sports and healthy nutrition oriented activity in one of the community’s sports ready yards. This activity was meant to gather, mainly, middle-aged people from a Romanian rural community and teach them about the benefits that sports have on both their mental and physical health and on how sporting activities can be used to bring people from a community closer together. Three trainers were made available for this event, so that the participants would get the best possible experience physically and so that they could have the best access possible to correct information and good sports/nutrition practices. b) Sports Awareness Day in Poiana Țapului A group of young participants have taken part in sporting activities meant to teach them about sporting conduct, fairplay, and safe physical activities. The day culminated with a football match.
- decât
- acea
- Viitorul
- Marea Britanie
- lor
- Lor
- apoi
- astfel
- Acestea
- ei
- acest
- aceste
- trei
- Prin
- timp
- Seria de timp
- consumă timp
- interval de timp
- ori
- timestamp-ul
- temporizări
- Titlu
- titluri
- la
- semn
- a luat
- Toolkit
- lanternă
- tradiţional
- trafic
- Pregătire
- transparent
- declanşa
- declanșând
- de încredere
- Adevăr
- încerca
- tutorial
- tv
- Două
- tipic
- Uk
- în
- în timpul 30
- înţelegere
- de unităţi
- Actualizează
- pe
- utilizare
- carcasa de utilizare
- utilizat
- Utilizator
- utilizări
- folosind
- utilizate
- utilizează
- Valori
- diverse
- varia
- versiune
- Versiunile
- viabil
- Video
- viziune
- Vizita
- Voce
- W
- a fost
- we
- web
- servicii web
- BINE
- cand
- în timp ce
- Şoaptă
- voi
- cu
- în
- fără
- cuvinte
- Apartamente
- flux de lucru
- fluxuri de lucru
- Forta de munca
- fabrică
- lume
- scris
- yaml
- Tu
- Ta
- te
- zephyrnet
- GRĂDINĂ ZOOLOGICĂ