ZOO Digital ให้บริการการแปลและสื่อแบบ end-to-end เพื่อปรับเนื้อหาทีวีและภาพยนตร์ต้นฉบับให้เป็นภาษา ภูมิภาค และวัฒนธรรมที่แตกต่างกัน ช่วยให้โลกาภิวัตน์ง่ายขึ้นสำหรับผู้สร้างเนื้อหาที่เก่งที่สุดของโลก ได้รับความไว้วางใจจากบริษัทยักษ์ใหญ่ในวงการบันเทิง ZOO Digital นำเสนอบริการโลคัลไลเซชันและบริการสื่อคุณภาพสูงในวงกว้าง รวมถึงการพากย์เสียง ซับไตเติ้ล สคริปต์ และการปฏิบัติตามข้อกำหนด
เวิร์กโฟลว์การแปลโดยทั่วไปจำเป็นต้องมีการแยกเสียงของผู้พูดด้วยตนเอง โดยที่สตรีมเสียงจะถูกแบ่งส่วนตามตัวตนของผู้พูด กระบวนการที่ใช้เวลานานนี้จะต้องทำให้เสร็จสิ้นก่อนจึงจะสามารถพากย์เนื้อหาเป็นภาษาอื่นได้ เมื่อใช้วิธีแบบแมนนวล ตอนความยาว 30 นาทีอาจใช้เวลาประมาณ 1-3 ชั่วโมงในการแปล ZOO Digital ตั้งเป้าที่จะบรรลุการแปลเป็นภาษาท้องถิ่นผ่านระบบอัตโนมัติภายใน 30 นาที
ในโพสต์นี้ เราจะหารือเกี่ยวกับการปรับใช้โมเดลการเรียนรู้ของเครื่องที่ปรับขนาดได้ (ML) เพื่อแยกแยะเนื้อหาสื่อโดยใช้ อเมซอน SageMakerโดยเน้นที่ วิสเปอร์เอ็กซ์ แบบ
พื้นหลัง
วิสัยทัศน์ของ ZOO Digital คือการให้บริการเนื้อหาที่แปลเป็นภาษาท้องถิ่นอย่างรวดเร็วยิ่งขึ้น เป้าหมายนี้มีปัญหาคอขวดเนื่องจากลักษณะของแบบฝึกหัดที่เข้มข้นด้วยตนเอง ประกอบกับแรงงานขนาดเล็กที่มีทักษะซึ่งสามารถแปลเนื้อหาได้ด้วยตนเอง ZOO Digital ทำงานร่วมกับฟรีแลนซ์มากกว่า 11,000 คนและแปลมากกว่า 600 ล้านคำในปี 2022 เพียงปีเดียว อย่างไรก็ตาม อุปทานของบุคลากรที่มีทักษะกำลังแซงหน้าความต้องการเนื้อหาที่เพิ่มขึ้น โดยต้องใช้ระบบอัตโนมัติเพื่อช่วยในขั้นตอนการทำงานแบบโลคัลไลเซชัน
ด้วยเป้าหมายที่จะเร่งการแปลเวิร์กโฟลว์เนื้อหาผ่านการเรียนรู้ของเครื่อง ZOO Digital ได้ว่าจ้าง AWS Prototyping ซึ่งเป็นโปรแกรมการลงทุนของ AWS เพื่อสร้างปริมาณงานร่วมกับลูกค้า การมีส่วนร่วมมุ่งเน้นไปที่การนำเสนอโซลูชันที่ใช้งานได้สำหรับกระบวนการโลคัลไลเซชัน ขณะเดียวกันก็ให้การฝึกอบรมแบบลงมือปฏิบัติจริงแก่นักพัฒนา ZOO Digital บน SageMaker ถอดความจากอเมซอนและ อเมซอนแปลภาษา.
ความท้าทายของลูกค้า
หลังจากถอดเสียงชื่อเรื่อง (ภาพยนตร์หรือตอนของละครโทรทัศน์) แล้ว จะต้องกำหนดผู้พูดให้กับแต่ละส่วนของคำพูด เพื่อให้สามารถกำหนดให้กับนักพากย์ที่คัดเลือกมารับบทตัวละครได้อย่างถูกต้อง กระบวนการนี้เรียกว่าการแยกเสียงของผู้พูด ZOO Digital เผชิญกับความท้าทายในการลดทอนเนื้อหาในวงกว้างในขณะที่ยังคงดำเนินไปในเชิงเศรษฐกิจได้
ภาพรวมโซลูชัน
ในต้นแบบนี้ เราได้จัดเก็บไฟล์สื่อต้นฉบับไว้ในที่ที่ระบุ บริการจัดเก็บข้อมูลอย่างง่ายของ Amazon (อเมซอน S3) ที่เก็บข้อมูล บัคเก็ต S3 นี้ได้รับการกำหนดค่าให้ปล่อยเหตุการณ์เมื่อมีการตรวจพบไฟล์ใหม่ภายใน ซึ่งทำให้เกิดเหตุการณ์ AWS แลมบ์ดา การทำงาน. หากต้องการคำแนะนำในการกำหนดค่าทริกเกอร์นี้ โปรดดูบทช่วยสอน การใช้ทริกเกอร์ Amazon S3 เพื่อเรียกใช้ฟังก์ชัน Lambda. ต่อมา ฟังก์ชัน Lambda เรียกใช้ตำแหน่งข้อมูล SageMaker สำหรับการอนุมานโดยใช้ ไคลเอ็นต์รันไทม์ Boto3 SageMaker.
พื้นที่ วิสเปอร์เอ็กซ์ รุ่นขึ้นอยู่กับ เสียงกระซิบของ OpenAIดำเนินการถอดเสียงและแปลงข้อมูลสำหรับเนื้อหาสื่อ มันถูกสร้างขึ้นบน กระซิบเร็วขึ้น การปรับใช้ใหม่ ให้การถอดเสียงเร็วขึ้นสูงสุดสี่เท่าพร้อมการจัดตำแหน่งการประทับเวลาระดับคำที่ได้รับการปรับปรุงเมื่อเปรียบเทียบกับ Whisper นอกจากนี้ยังแนะนำการแยกเสียงของผู้พูด ซึ่งไม่มีในรุ่น Whisper ดั้งเดิม WhisperX ใช้โมเดล Whisper สำหรับการถอดเสียง Wav2Vec2 แบบจำลองเพื่อปรับปรุงการจัดตำแหน่งการประทับเวลา (รับประกันการซิงโครไนซ์ข้อความที่ถอดเสียงกับการประทับเวลาเสียง) และ เปียโนโน้ต แบบจำลองสำหรับการถอดเสียง FFmpeg ใช้สำหรับโหลดเสียงจากสื่อต้นทางรองรับต่างๆ รูปแบบสื่อ สถาปัตยกรรมโมเดลแบบโมดูลาร์ที่โปร่งใสช่วยให้มีความยืดหยุ่น เนื่องจากแต่ละองค์ประกอบของโมเดลสามารถสลับออกได้ตามความจำเป็นในอนาคต อย่างไรก็ตาม โปรดทราบว่า WhisperX ขาดคุณสมบัติการจัดการเต็มรูปแบบและไม่ใช่ผลิตภัณฑ์ระดับองค์กร หากไม่มีการบำรุงรักษาและการสนับสนุน อาจไม่เหมาะสำหรับการปรับใช้การผลิต
ในการทำงานร่วมกันนี้ เราได้ปรับใช้และประเมิน WhisperX บน SageMaker โดยใช้ จุดสิ้นสุดการอนุมานแบบอะซิงโครนัส เพื่อโฮสต์โมเดล ตำแหน่งข้อมูลแบบอะซิงโครนัสของ SageMaker รองรับขนาดการอัปโหลดสูงสุด 1 GB และรวมคุณสมบัติการปรับขนาดอัตโนมัติที่ช่วยลดปริมาณการรับส่งข้อมูลที่พุ่งสูงขึ้นอย่างมีประสิทธิภาพและประหยัดค่าใช้จ่ายในช่วงเวลาที่มีการใช้งานน้อย ตำแหน่งข้อมูลแบบอะซิงโครนัสเหมาะอย่างยิ่งสำหรับการประมวลผลไฟล์ขนาดใหญ่ เช่น ภาพยนตร์และละครโทรทัศน์ในกรณีการใช้งานของเรา
แผนภาพต่อไปนี้แสดงองค์ประกอบหลักของการทดลองที่เราดำเนินการในการทำงานร่วมกันนี้
ในส่วนต่อไปนี้ เราจะเจาะลึกรายละเอียดของการปรับใช้โมเดล WhisperX บน SageMaker และประเมินประสิทธิภาพการแยกไดอะแกรม
ดาวน์โหลดโมเดลและส่วนประกอบต่างๆ
WhisperX คือระบบที่มีโมเดลหลายแบบสำหรับการถอดเสียง การบังคับการจัดตำแหน่ง และการแยกแยะ เพื่อให้การทำงานของ SageMaker ราบรื่นโดยไม่จำเป็นต้องดึงข้อมูลสิ่งประดิษฐ์ของโมเดลในระหว่างการอนุมาน จำเป็นต้องดาวน์โหลดสิ่งประดิษฐ์ของโมเดลทั้งหมดล่วงหน้า จากนั้นอาร์ติแฟกต์เหล่านี้จะถูกโหลดลงในคอนเทนเนอร์ที่ให้บริการ SageMaker ในระหว่างการเริ่มต้น เนื่องจากโมเดลเหล่านี้ไม่สามารถเข้าถึงได้โดยตรง เราจึงเสนอคำอธิบายและโค้ดตัวอย่างจากแหล่ง WhisperX โดยให้คำแนะนำในการดาวน์โหลดโมเดลและส่วนประกอบต่างๆ
WhisperX ใช้หกรุ่น:
โมเดลเหล่านี้ส่วนใหญ่หาได้จาก กอดหน้า ใช้ไลบรารี่huggingface_hub เราใช้สิ่งต่อไปนี้ download_hf_model()
ฟังก์ชั่นเพื่อดึงสิ่งประดิษฐ์แบบจำลองเหล่านี้ จำเป็นต้องมีโทเค็นการเข้าถึงจาก Hugging Face ที่สร้างขึ้นหลังจากยอมรับข้อตกลงผู้ใช้สำหรับรุ่น 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
โมเดล VAD ถูกดึงมาจาก Amazon S3 และโมเดล Wav2Vec2 ถูกดึงมาจากโมดูล torchaudio.pipelines ตามโค้ดต่อไปนี้ เราสามารถดึงข้อมูลสิ่งประดิษฐ์ของโมเดลทั้งหมด รวมถึงสิ่งประดิษฐ์จาก Hugging Face และบันทึกลงในไดเร็กทอรีโมเดลในเครื่องที่ระบุ:
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)
เลือก AWS Deep Learning Container ที่เหมาะสมสำหรับการให้บริการโมเดล
หลังจากบันทึกสิ่งประดิษฐ์ของแบบจำลองโดยใช้โค้ดตัวอย่างก่อนหน้าแล้ว คุณสามารถเลือกที่สร้างไว้ล่วงหน้าได้ คอนเทนเนอร์การเรียนรู้เชิงลึกของ AWS (DLC) จากรายการต่อไปนี้ repo GitHub. เมื่อเลือกอิมเมจ Docker ให้พิจารณาการตั้งค่าต่อไปนี้: เฟรมเวิร์ก (Hugging Face) งาน (การอนุมาน) เวอร์ชัน Python และฮาร์ดแวร์ (เช่น GPU) เราขอแนะนำให้ใช้รูปภาพต่อไปนี้: 763104351884.dkr.ecr.[REGION].amazonaws.com/huggingface-pytorch-inference:2.0.0-transformers4.28.1-gpu-py310-cu118-ubuntu20.04
อิมเมจนี้มีแพ็คเกจระบบที่จำเป็นทั้งหมดติดตั้งไว้ล่วงหน้า เช่น ffmpeg อย่าลืมแทนที่ [REGION] ด้วยภูมิภาค AWS ที่คุณใช้
สำหรับแพ็คเกจ Python ที่จำเป็นอื่น ๆ ให้สร้างไฟล์ requirements.txt
ไฟล์พร้อมรายการแพ็กเกจและเวอร์ชัน แพ็คเกจเหล่านี้จะถูกติดตั้งเมื่อมีการสร้าง AWS DLC ต่อไปนี้คือแพ็คเกจเพิ่มเติมที่จำเป็นในการโฮสต์โมเดล WhisperX บน SageMaker:
สร้างสคริปต์การอนุมานเพื่อโหลดโมเดลและรันการอนุมาน
ต่อไปเราจะสร้างแบบกำหนดเอง inference.py
เพื่อสรุปวิธีการโหลดโมเดล WhisperX และส่วนประกอบต่างๆ ลงในคอนเทนเนอร์ และวิธีดำเนินการกระบวนการอนุมาน สคริปต์ประกอบด้วยสองฟังก์ชัน: model_fn
และ transform_fn
. model_fn
มีการเรียกใช้ฟังก์ชันเพื่อโหลดโมเดลจากตำแหน่งที่เกี่ยวข้อง ต่อมาโมเดลเหล่านี้จะถูกส่งต่อไปยัง transform_fn
ฟังก์ชั่นในระหว่างการอนุมาน โดยที่กระบวนการถอดความ การจัดตำแหน่ง และการแยกไดอะไรเซชันจะดำเนินการ ต่อไปนี้เป็นตัวอย่างโค้ดสำหรับ 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
ภายในไดเร็กทอรีของโมเดล ข้างๆ requirements.txt
ไฟล์ตรวจสอบให้แน่ใจว่ามี inference.py
ในไดเรกทอรีย่อยของรหัส ที่ models
ไดเรกทอรีควรมีลักษณะดังต่อไปนี้:
สร้าง tarball ของโมเดล
หลังจากที่คุณสร้างโมเดลและไดเร็กทอรีโค้ดแล้ว คุณสามารถใช้บรรทัดคำสั่งต่อไปนี้เพื่อบีบอัดโมเดลลงใน tarball (ไฟล์ .tar.gz) และอัปโหลดไปยัง Amazon S3 ในขณะที่เขียน เมื่อใช้รุ่น Large V2 ที่กระซิบเร็วขึ้น ผลลัพธ์ tarball ที่เป็นตัวแทนของรุ่น SageMaker คือขนาด 3 GB สำหรับข้อมูลเพิ่มเติม โปรดดูที่ รูปแบบการโฮสต์โมเดลใน Amazon SageMaker ตอนที่ 2: เริ่มต้นใช้งานโมเดลเรียลไทม์บน SageMaker.
สร้างโมเดล SageMaker และปรับใช้ตำแหน่งข้อมูลด้วยตัวทำนายแบบอะซิงโครนัส
ตอนนี้คุณสามารถสร้างโมเดล SageMaker, การกำหนดค่าตำแหน่งข้อมูล และตำแหน่งข้อมูลแบบอะซิงโครนัสได้แล้ว AsyncPredictor โดยใช้โมเดล tarball ที่สร้างขึ้นในขั้นตอนก่อนหน้า สำหรับคำแนะนำ โปรดดูที่ สร้างจุดสิ้นสุดการอนุมานแบบอะซิงโครนัส.
ประเมินประสิทธิภาพการทำไดอะไรเซชัน
เพื่อประเมินประสิทธิภาพการแยกเสียงของโมเดล WhisperX ในสถานการณ์ต่างๆ เราได้เลือกตอนสามตอนจากชื่อภาษาอังกฤษสองเรื่อง: ชื่อละครหนึ่งเรื่องประกอบด้วยตอน 30 นาที และชื่อสารคดีหนึ่งเรื่องประกอบด้วยตอน 45 นาที เราใช้ชุดเครื่องมือเมตริกของ pyannote pyannote.metricsเพื่อคำนวณ อัตราความผิดพลาดในการแปลงค่า (DER). ในการประเมิน การถอดเสียงและการถอดเสียงด้วยตนเองที่จัดทำโดย ZOO ทำหน้าที่เป็นความจริงภาคพื้นดิน
เรากำหนด DER ดังนี้:
รวม คือความยาวของวิดีโอความจริงภาคพื้นดิน FA (สัญญาณเตือนที่ผิดพลาด) คือความยาวของส่วนที่ถือเป็นคำพูดในการทำนาย แต่ไม่ใช่ความจริงภาคพื้น นางสาว คือความยาวของส่วนที่ถือเป็นคำพูดตามความเป็นจริงแต่ไม่ใช่ในการทำนาย ความผิดพลาดหรือที่เรียกว่า ความสับสนคือความยาวของช่วงที่กำหนดให้กับวิทยากรที่แตกต่างกันในการทำนายและความจริงภาคพื้นดิน หน่วยทั้งหมดวัดเป็นวินาที ค่าทั่วไปสำหรับ DER อาจแตกต่างกันไปขึ้นอยู่กับแอปพลิเคชัน ชุดข้อมูล และคุณภาพของระบบไดอะไรเซชัน โปรดทราบว่า DER สามารถมีขนาดใหญ่กว่า 1.0 DER ที่ต่ำกว่าจะดีกว่า
เพื่อให้สามารถคำนวณ DER สำหรับสื่อชิ้นหนึ่งได้ จำเป็นต้องมีการแยกส่วนความจริงภาคพื้นดินตลอดจนเอาต์พุต WhisperX ที่ถอดเสียงและถอดเสียง สิ่งเหล่านี้จะต้องถูกแยกวิเคราะห์และส่งผลให้เกิดรายการทูเปิลที่มีป้ายกำกับผู้พูด เวลาเริ่มต้นส่วนของคำพูด และเวลาสิ้นสุดของส่วนของคำพูดสำหรับแต่ละส่วนของคำพูดในสื่อ ป้ายกำกับผู้พูดไม่จำเป็นต้องตรงกันระหว่าง WhisperX และการแยกความจริงภาคพื้นดิน ผลลัพธ์จะขึ้นอยู่กับเวลาของกลุ่มเป็นส่วนใหญ่ pyannote.metrics ใช้ tuples ของ diarizations ความจริงภาคพื้นดินและ diarizations เอาท์พุต (อ้างถึงในเอกสาร pyannote.metrics เป็น การอ้างอิง และ สมมติฐาน) เพื่อคำนวณ DER ตารางต่อไปนี้สรุปผลลัพธ์ของเรา
ประเภทวิดีโอ | DER | แก้ไข | นางสาว | ความผิดพลาด | ปลุกเท็จ |
ละคร | 0.738 | 44.80% | 21.80% | 33.30% | 18.70% |
สารคดี | 1.29 | 94.50% | 5.30% | 0.20% | 123.40% |
กลาง | 0.901 | 71.40% | 13.50% | 15.10% | 61.50% |
ผลลัพธ์เหล่านี้เผยให้เห็นความแตกต่างด้านประสิทธิภาพที่สำคัญระหว่างชื่อละครและชื่อสารคดี โดยที่แบบจำลองได้รับผลลัพธ์ที่ดีกว่าอย่างเห็นได้ชัด (โดยใช้ DER เป็นตัวชี้วัดรวม) สำหรับตอนของละครเมื่อเปรียบเทียบกับชื่อสารคดี การวิเคราะห์ชื่ออย่างใกล้ชิดจะให้ข้อมูลเชิงลึกเกี่ยวกับปัจจัยที่เป็นไปได้ที่ทำให้เกิดช่องว่างด้านประสิทธิภาพนี้ ปัจจัยสำคัญประการหนึ่งคือการมีเพลงพื้นหลังซ้อนทับกับคำพูดในชื่อสารคดีบ่อยครั้ง แม้ว่าสื่อที่ประมวลผลล่วงหน้าเพื่อเพิ่มความแม่นยำในการแยกเสียง เช่น การลบเสียงรบกวนในพื้นหลังเพื่อแยกคำพูด จะอยู่นอกเหนือขอบเขตของต้นแบบนี้ แต่ก็เปิดช่องทางสำหรับการทำงานในอนาคตที่อาจปรับปรุงประสิทธิภาพของ WhisperX ได้
สรุป
ในโพสต์นี้ เราได้สำรวจความร่วมมือในการทำงานร่วมกันระหว่าง AWS และ ZOO Digital โดยใช้เทคนิคการเรียนรู้ของเครื่องกับ SageMaker และโมเดล WhisperX เพื่อปรับปรุงเวิร์กโฟลว์การแยกคำ ทีม AWS มีบทบาทสำคัญในการช่วยเหลือ ZOO ในการสร้างต้นแบบ ประเมิน และทำความเข้าใจการใช้งานโมเดล ML แบบกำหนดเองอย่างมีประสิทธิภาพ ซึ่งออกแบบมาเพื่อการแยกวิเคราะห์โดยเฉพาะ ซึ่งรวมถึงการรวมการปรับขนาดอัตโนมัติเพื่อความสามารถในการปรับขนาดโดยใช้ SageMaker
การควบคุม AI เพื่อการแยกแยะจะช่วยประหยัดทั้งต้นทุนและเวลาได้อย่างมากเมื่อสร้างเนื้อหาที่แปลเป็นภาษาท้องถิ่นสำหรับ ZOO ด้วยการช่วยผู้ถอดเสียงในการสร้างและระบุผู้พูดอย่างรวดเร็วและแม่นยำ เทคโนโลยีนี้จึงจัดการกับลักษณะของงานที่ใช้เวลานานและมีแนวโน้มที่จะเกิดข้อผิดพลาดได้ กระบวนการแบบเดิมๆ มักเกี่ยวข้องกับการส่งวิดีโอหลายครั้งและขั้นตอนการควบคุมคุณภาพเพิ่มเติมเพื่อลดข้อผิดพลาด การนำ AI มาใช้เพื่อการแยกแยะทำให้มีแนวทางที่ตรงเป้าหมายและมีประสิทธิภาพมากขึ้น ซึ่งจะช่วยเพิ่มประสิทธิภาพการทำงานภายในกรอบเวลาที่สั้นลง
เราได้สรุปขั้นตอนสำคัญในการปรับใช้โมเดล WhisperX บนจุดสิ้นสุดแบบอะซิงโครนัสของ SageMaker และขอแนะนำให้คุณลองใช้ด้วยตนเองโดยใช้โค้ดที่ให้มา หากต้องการข้อมูลเชิงลึกเพิ่มเติมเกี่ยวกับบริการและเทคโนโลยีของ ZOO Digital โปรดไปที่ เว็บไซต์อย่างเป็นทางการของ ZOO Digital. สำหรับรายละเอียดเกี่ยวกับการปรับใช้โมเดล OpenAI Whisper บน SageMaker และตัวเลือกการอนุมานต่างๆ โปรดดูที่ โฮสต์ Whisper Model บน Amazon SageMaker: สำรวจตัวเลือกการอนุมาน. อย่าลังเลที่จะแบ่งปันความคิดของคุณในความคิดเห็น
เกี่ยวกับผู้เขียน
หยิงโหว, PhDเป็นสถาปนิกต้นแบบการเรียนรู้ของเครื่องที่ AWS ความสนใจหลักของเธอ ได้แก่ Deep Learning โดยมุ่งเน้นไปที่ GenAI, Computer Vision, NLP และการทำนายข้อมูลอนุกรมเวลา ในเวลาว่าง เธอเพลิดเพลินกับการใช้ช่วงเวลาดีๆ กับครอบครัว ดื่มด่ำไปกับนิยาย และเดินป่าในอุทยานแห่งชาติของสหราชอาณาจักร
อีธาน คัมเบอร์แลนด์ เป็นวิศวกรวิจัย AI ที่ ZOO Digital ซึ่งเขาทำงานเกี่ยวกับการใช้ AI และการเรียนรู้ของเครื่องเป็นเทคโนโลยีช่วยเหลือเพื่อปรับปรุงขั้นตอนการทำงานในด้านคำพูด ภาษา และการแปลเป็นภาษาท้องถิ่น เขามีพื้นฐานด้านวิศวกรรมซอฟต์แวร์และการวิจัยในโดเมนความปลอดภัยและการรักษา โดยมุ่งเน้นที่การแยกข้อมูลที่มีโครงสร้างออกจากเว็บ และใช้ประโยชน์จากโมเดล ML แบบโอเพ่นซอร์สสำหรับการวิเคราะห์และเพิ่มคุณค่าให้กับข้อมูลที่รวบรวม
เการาฟ ไกลา เป็นผู้นำทีม AWS Prototyping สำหรับสหราชอาณาจักรและไอร์แลนด์ ทีมของเขาทำงานร่วมกับลูกค้าในอุตสาหกรรมที่หลากหลายเพื่อคิดค้นและร่วมพัฒนาปริมาณงานที่สำคัญทางธุรกิจโดยมีเป้าหมายเพื่อเร่งการปรับใช้บริการของ AWS
- เนื้อหาที่ขับเคลื่อนด้วย SEO และการเผยแพร่ประชาสัมพันธ์ รับการขยายวันนี้
- PlatoData.Network Vertical Generative Ai เพิ่มพลังให้กับตัวเอง เข้าถึงได้ที่นี่.
- เพลโตไอสตรีม. Web3 อัจฉริยะ ขยายความรู้ เข้าถึงได้ที่นี่.
- เพลโตESG. คาร์บอน, คลีนเทค, พลังงาน, สิ่งแวดล้อม แสงอาทิตย์, การจัดการของเสีย. เข้าถึงได้ที่นี่.
- เพลโตสุขภาพ เทคโนโลยีชีวภาพและข่าวกรองการทดลองทางคลินิก เข้าถึงได้ที่นี่.
- ที่มา: https://aws.amazon.com/blogs/machine-learning/streamline-diarization-using-ai-as-an-assistive-technology-zoo-digitals-story/
- :มี
- :เป็น
- :ไม่
- :ที่ไหน
- $ ขึ้น
- 000
- 1
- 10
- 100
- 11
- 140
- 2022
- 220
- 28
- 30
- 350
- 600
- 7
- 8
- a
- สามารถ
- เร่งความเร็ว
- ยอมรับ
- เข้า
- สามารถเข้าถึงได้
- ความถูกต้อง
- บรรลุ
- การบรรลุ
- ข้าม
- ปรับ
- เพิ่มเติม
- นอกจากนี้
- ที่อยู่
- การนำมาใช้
- หลังจาก
- สรุป
- ข้อตกลง
- AI
- วิจัยไอ
- จุดมุ่งหมาย
- จุดมุ่งหมาย
- ปลุก
- จัดแนว
- สอดคล้อง
- การวางแนว
- ทั้งหมด
- ช่วยให้
- คนเดียว
- คู่ขนาน
- ด้วย
- แม้ว่า
- อเมซอน
- อเมซอน SageMaker
- Amazon Web Services
- an
- วิเคราะห์
- การวิเคราะห์
- และ
- อื่น
- การใช้งาน
- เข้าใกล้
- เหมาะสม
- สถาปัตยกรรม
- เป็น
- พื้นที่
- ศิลปิน
- AS
- ประเมินผล
- สินทรัพย์
- ที่ได้รับมอบหมาย
- ช่วยเหลือ
- การให้ความช่วยเหลือ
- At
- เสียง
- มีอำนาจ
- รถยนต์
- อัตโนมัติ
- ลู่ทาง
- AWS
- พื้นหลัง
- ตาม
- BE
- เพราะ
- รับ
- ก่อน
- กำลัง
- ที่ดีที่สุด
- ดีกว่า
- ระหว่าง
- เกิน
- ที่ใหญ่ที่สุด
- BIN
- ทั้งสอง
- สร้าง
- ธุรกิจ
- แต่
- by
- คำนวณ
- ที่เรียกว่า
- CAN
- กรณี
- ท้าทาย
- อักขระ
- Choose
- ใกล้ชิด
- รหัส
- การทำงานร่วมกัน
- การทำงานร่วมกัน
- ความคิดเห็น
- เมื่อเทียบกับ
- เสร็จ
- การปฏิบัติตาม
- ส่วนประกอบ
- ส่วนประกอบ
- ประกอบ
- คอมพิวเตอร์
- วิสัยทัศน์คอมพิวเตอร์
- ดำเนินการ
- การกำหนดค่า
- การกำหนดค่า
- พิจารณา
- ถือว่า
- ประกอบด้วย
- ภาชนะ
- มี
- เนื้อหา
- ผู้สร้างเนื้อหา
- การบริจาค
- ควบคุม
- ตามธรรมเนียม
- แกน
- ได้อย่างถูกต้อง
- ราคา
- ค่าใช้จ่าย
- ได้
- สร้าง
- ที่สร้างขึ้น
- การสร้าง
- ผู้สร้าง
- วิกฤติ
- วัฒนธรรม
- ประเพณี
- ลูกค้า
- ข้อมูล
- ลึก
- การเรียนรู้ลึก ๆ
- กำหนด
- การส่งมอบ
- มอบ
- คุ้ย
- ความต้องการ
- ทั้งนี้ขึ้นอยู่กับ
- ปรับใช้
- นำไปใช้
- ปรับใช้
- การใช้งาน
- ได้รับการออกแบบ
- รายละเอียด
- ตรวจพบ
- นักพัฒนา
- เครื่อง
- แผนภาพ
- Dict
- ความแตกต่าง
- ต่าง
- ดิจิตอล
- digitals
- โดยตรง
- ไดเรกทอรี
- ไดเรกทอรี
- สนทนา
- หลาย
- นักเทียบท่า
- สารคดี
- เอกสาร
- โดเมน
- Dont
- ดาวน์โหลด
- ดาวน์โหลด
- ละคร
- ขนานนามว่า
- ในระหว่าง
- แต่ละ
- ง่ายดาย
- มีประสิทธิภาพ
- ที่มีประสิทธิภาพ
- อย่างมีประสิทธิภาพ
- องค์ประกอบ
- อื่น
- การฝัง
- จ้าง
- ช่วยให้
- ห้อมล้อม
- ส่งเสริม
- ปลาย
- จบสิ้น
- ปลายทาง
- หมั้น
- มีส่วนร่วม
- วิศวกร
- ชั้นเยี่ยม
- ภาษาอังกฤษ
- เสริม
- เพิ่มคุณค่า
- ทำให้มั่นใจ
- การสร้างความมั่นใจ
- ระดับองค์กร
- ความบันเทิง
- ตอน
- ความผิดพลาด
- ข้อผิดพลาด
- จำเป็น
- ประเมินค่า
- ประเมิน
- การประเมินการ
- การประเมินผล
- เหตุการณ์
- ทุกๆ
- ตัวอย่าง
- การออกกำลังกาย
- การทดลอง
- สำรวจ
- สำรวจ
- ใบหน้า
- ใบหน้า
- ปัจจัย
- ปัจจัย
- เท็จ
- ครอบครัว
- เร็วขึ้น
- คุณสมบัติ
- รู้สึก
- ดึงข้อมูลแล้ว
- เนื้อไม่มีมัน
- ไฟล์
- ความยืดหยุ่น
- โฟกัส
- มุ่งเน้น
- โดยมุ่งเน้น
- ดังต่อไปนี้
- ดังต่อไปนี้
- สำหรับ
- ถูกบังคับ
- สี่
- กรอบ
- ฟรี
- บ่อย
- ราคาเริ่มต้นที่
- เต็ม
- ฟังก์ชัน
- การทำงาน
- ฟังก์ชั่น
- ต่อไป
- อนาคต
- ช่องว่าง
- ยีน
- สร้าง
- การสร้าง
- ได้รับ
- GitHub
- โลกาภิวัตน์
- เป้าหมาย
- GPU
- พื้น
- มือบน
- ฮาร์ดแวร์
- he
- เธอ
- ที่มีคุณภาพสูง
- ของเขา
- เจ้าภาพ
- โฮสติ้ง
- ชั่วโมง
- สรุป ความน่าเชื่อถือของ Olymp Trade?
- อย่างไรก็ตาม
- HTML
- ที่ http
- HTTPS
- กอดใบหน้า
- ระบุ
- เอกลักษณ์
- if
- แสดงให้เห็นถึง
- ภาพ
- นำเข้า
- ปรับปรุง
- การปรับปรุง
- in
- รวม
- รวมถึง
- รวมทั้ง
- รวมเข้าด้วยกัน
- ผสมผสาน
- ที่เพิ่มขึ้น
- อุตสาหกรรม
- ข้อมูล
- การเริ่มต้น
- ข้อมูลเชิงลึก
- การติดตั้ง
- คำแนะนำการใช้
- อยากเรียนรู้
- เข้าไป
- เปิดตัว
- การลงทุน
- เรียก
- ที่เกี่ยวข้องกับการ
- ไอร์แลนด์
- IT
- ITS
- jpg
- JSON
- คีย์
- ปัจจัยสำคัญ
- ฉลาก
- ป้ายกำกับ
- ภาษา
- ภาษา
- ใหญ่
- ที่มีขนาดใหญ่
- นำ
- นำไปสู่
- การเรียนรู้
- ความยาว
- การใช้ประโยชน์
- ห้องสมุด
- เส้น
- รายการ
- รายการ
- โหลด
- โหลด
- ในประเทศ
- การปรับเนื้อหาให้สอดคล้องกับท้องถิ่น
- ในท้องถิ่น
- วันหยุด
- เข้าสู่ระบบ
- การเข้าสู่ระบบ
- นาน
- ลด
- เครื่อง
- เรียนรู้เครื่อง
- การบำรุงรักษา
- ทำให้
- การจัดการ
- อาณัติ
- คู่มือ
- ด้วยมือ
- การจับคู่
- อาจ..
- ภาพบรรยากาศ
- เมตาดาต้า
- วิธีการ
- เมตริก
- ตัวชี้วัด
- ล้าน
- ลด
- นาที
- บรรเทา
- ML
- แบบ
- โมเดล
- โมดูลาร์
- โมดูล
- Moments
- ข้อมูลเพิ่มเติม
- ส่วนใหญ่
- หนัง
- Movies
- หลาย
- ดนตรี
- ต้อง
- ชื่อ
- ชื่อ
- แห่งชาติ
- ธรรมชาติ
- จำเป็น
- จำเป็นต้อง
- จำเป็น
- ใหม่
- NLP
- สัญญาณรบกวน
- ยวด
- หมายเหตุ
- ที่ได้รับ
- of
- เสนอ
- การเสนอ
- เป็นทางการ
- มักจะ
- on
- ONE
- โอเพนซอร์ส
- OpenAI
- เปิด
- การดำเนินการ
- Options
- or
- เป็นต้นฉบับ
- OS
- อื่นๆ
- ของเรา
- ออก
- เค้าโครง
- ที่ระบุไว้
- เอาท์พุต
- เอาท์พุท
- เกิน
- แพคเกจ
- ส่วนหนึ่ง
- โดยเฉพาะ
- พาร์ทเนอร์
- ผ่าน
- ผ่าน
- เส้นทาง
- เส้นทาง
- รูปแบบ
- คน
- ดำเนินการ
- การปฏิบัติ
- ดำเนินการ
- ดำเนินการ
- ชิ้น
- ท่อ
- เป็นจุดสำคัญ
- เพลโต
- เพลโตดาต้าอินเทลลิเจนซ์
- เพลโตดาต้า
- เล่น
- เล่น
- การรักษา
- โพสต์
- ที่มีศักยภาพ
- ที่อาจเกิดขึ้น
- มาก่อน
- อย่างแม่นยำ
- คำทำนาย
- การคาดการณ์
- การมี
- นำเสนอ
- ก่อน
- ประถม
- กระบวนการ
- กระบวนการ
- การประมวลผล
- ผลิตภัณฑ์
- การผลิต
- ผลผลิต
- โครงการ
- ต้นแบบ
- การสร้างต้นแบบ
- ให้
- ให้
- ให้
- การให้
- หลาม
- คุณภาพ
- R
- คะแนน
- อ่าน
- จริง
- เรียลไทม์
- แนะนำ
- อ้างอิง
- เรียกว่า
- ภูมิภาค
- ภูมิภาค
- จำ
- ลบ
- แทนที่
- เป็นตัวแทนของ
- ขอ
- ต้องการ
- จำเป็นต้องใช้
- ความต้องการ
- การวิจัย
- ว่า
- ผล
- ส่งผลให้
- ผลสอบ
- กลับ
- รับคืน
- เปิดเผย
- บทบาท
- วิ่ง
- วิ่ง
- รันไทม์
- s
- sagemaker
- ตัวอย่าง
- ลด
- ที่บันทึกไว้
- เงินออม
- scalability
- ที่ปรับขนาดได้
- ขนาด
- ปรับ
- สถานการณ์
- ขอบเขต
- ต้นฉบับ
- วินาที
- ส่วน
- ความปลอดภัย
- ส่วน
- การแบ่งส่วน
- กลุ่ม
- เลือก
- การเลือก
- ชุด
- ให้บริการ
- บริการ
- การให้บริการ
- การตั้งค่า
- Share
- เธอ
- น่า
- สำคัญ
- ง่าย
- หก
- ขนาด
- ขนาด
- มีฝีมือ
- เล็ก
- เรียบ
- So
- ซอฟต์แวร์
- วิศวกรรมซอฟต์แวร์
- ทางออก
- แหล่ง
- ลำโพง
- ลำโพง
- โดยเฉพาะ
- เฉพาะ
- ที่ระบุไว้
- การพูด
- การใช้จ่าย
- แหลม
- เริ่มต้น
- ข้อความที่เริ่ม
- ขั้นตอน
- ขั้นตอน
- การเก็บรักษา
- เก็บไว้
- เรื่องราว
- กระแส
- เพรียวลม
- โครงสร้าง
- ต่อจากนั้น
- เป็นกอบเป็นกำ
- อย่างเช่น
- เหมาะสม
- จัดหาอุปกรณ์
- สนับสนุน
- ที่สนับสนุน
- สลับ
- อย่างรวดเร็ว
- การประสาน
- ระบบ
- ตาราง
- เอา
- ใช้เวลา
- เป้าหมาย
- งาน
- ทีม
- เทคนิค
- เทคโนโลยี
- เทคโนโลยี
- ชั่วคราว
- ข้อความ
- กว่า
- ที่
- พื้นที่
- ก้าวสู่อนาคต
- สหราชอาณาจักร
- ของพวกเขา
- พวกเขา
- แล้วก็
- ดังนั้น
- ล้อยางขัดเหล่านี้ติดตั้งบนแกน XNUMX (มม.) ผลิตภัณฑ์นี้ถูกผลิตในหลายรูปทรง และหลากหลายเบอร์ความแน่นหนาของปริมาณอนุภาคขัดของมัน จะทำให้ท่านได้รับประสิทธิภาพสูงในการขัดและการใช้งานที่ยาวนาน
- พวกเขา
- นี้
- เหล่านั้น
- สาม
- ตลอด
- เวลา
- อนุกรมเวลา
- ต้องใช้เวลามาก
- ระยะเวลา
- ครั้ง
- การประทับเวลา
- การกำหนดเวลา
- ชื่อหนังสือ
- ชื่อ
- ไปยัง
- โทเค็น
- เอา
- เครื่องมือ
- ไฟฉาย
- ตามธรรมเนียม
- การจราจร
- การฝึกอบรม
- โปร่งใส
- เรียก
- วิกฤติ
- ที่เชื่อถือ
- ความจริง
- ลอง
- เกี่ยวกับการสอน
- tv
- สอง
- ตามแบบฉบับ
- Uk
- ภายใต้
- ในระหว่าง 30
- ความเข้าใจ
- หน่วย
- บันทึก
- เมื่อ
- ใช้
- ใช้กรณี
- มือสอง
- ผู้ใช้งาน
- ใช้
- การใช้
- ใช้
- ใช้ประโยชน์
- ความคุ้มค่า
- ต่างๆ
- แตกต่าง
- รุ่น
- รุ่น
- ทำงานได้
- วีดีโอ
- วิสัยทัศน์
- เยี่ยมชมร้านค้า
- เสียงพูด
- W
- คือ
- we
- เว็บ
- บริการเว็บ
- ดี
- เมื่อ
- ในขณะที่
- กระซิบ
- จะ
- กับ
- ภายใน
- ไม่มี
- คำ
- งาน
- เวิร์กโฟลว์
- ขั้นตอนการทำงาน
- กำลังแรงงาน
- โรงงาน
- ของโลก
- การเขียน
- มันแกว
- คุณ
- ของคุณ
- ด้วยตัวคุณเอง
- ลมทะเล
- สวนสัตว์