Переведите субтитры к видео с помощью большой модели искусственного интеллекта Zhipu.
Переведите субтитры к видео с помощью большой модели искусственного интеллекта Zhipu.

Не так давно отечественный производитель крупномасштабных головных моделей Zhipu AI , только что запустил glm-4-0520 модель, которая считается самой продвинутой моделью на нынешней платформе и имеет 128k длина контекста и по сравнению с моделью предыдущего поколения значительно улучшена возможность соответствия командам. 18,6%. Видно, что Zhipu AI возлагает большие надежды на эту модель.

Чтобы проверить производительность этой большой модели, мы попытались использовать ее для реализации функции [Перевод субтитров видео]. В настоящее время на многих видеосайтах (например, Station B) большое количество высококачественного контента представлено на английском языке и не снабжено переводом субтитров на китайский язык. Это значительно снижает удобство просмотра для многих людей. Поэтому мы решили использовать большую модель для перевода субтитров видео на китайский язык, чтобы мы могли быстро понять общее содержание видео и значительно повысить эффективность работы и обучения.

Ниже в качестве примера реализации этой функции мы возьмем видео на сайте Б. Ссылка на видео: https://www.bilibili.com/video/BV1g84y1R7oE/?vd_source=2fd71d56662056b97691b4d7bdf39151

Без лишних слов, приступим к написанию кода.

Многие видеосайты теперь предоставляют OpenAPI для поддержки получения соответствующей информации, такой как видео и субтитры. Чтобы облегчить разработку, мы напрямую используем BiliBiliLoader, инкапсулированный LangChain, для реализации функции загрузки видеосубтитров:

Во-первых, нам нужно войти на сайт B в браузере и использовать инструменты разработчика браузера для получения информации SESSDATA, JCT и BUVID3 и сохранить ее в переменных среды:

Язык кода:javascript
копировать
# Станция Сопутствующие конфигурации
BiliBili_SESSDATA=xxx
BiliBili_JCT=xxx
BiliBili_BUVID3=xxx

Далее мы используем инструмент BiliBiliLoader для загрузки текста субтитров, соответствующего видео:

Язык кода:javascript
копировать
import os

import dotenv
from langchain_community.document_loaders import BiliBiliLoader

# Загрузить переменные среды
dotenv.load_dotenv()

# 创建Станция Загрузчик документов субтитров
loader = BiliBiliLoader(
    video_urls=["https://www.bilibili.com/video/BV1g84y1R7oE/"],
    sessdata=os.getenv("BiliBili_SESSDATA"),
    bili_jct=os.getenv("BiliBili_JCT"),
    buvid3=os.getenv("BiliBili_BUVID3"),
)

# Загрузить полные субтитры
full_caption = loader.load()
print(f"Полные субтитры: {full_caption[0].page_content[:1000]}")

Некоторые из субтитров следующие:

Название: Название видео: Давайте учить английский в походе! 🍂🚶🏼🎒 [английские субтитры], описание: Вы когда-нибудь изучали английский на природе? На этом уроке английского я отведу вас на пешеходную тропу рядом со мной и научу всем словам и фразам, которые вам нужно знать, чтобы поговорить о походах.

In this free English class you’ll learn words and phrases like: trail, path, treacherous, view, sign, observation deck, gear, hiking boots, dangerous animals, racoon, skunk, and more.

Чтобы облегчить последующий перевод, мы разбили весь длинный текст субтитров на несколько блоков субтитров:

Язык кода:javascript
копировать
# Создайте разделитель документов, чтобы разделить исходный текст субтитров на более мелкие части.
splitter = RecursiveCharacterTextSplitter(chunk_size=200,

chunk_overlap=10)

caption_chunks = splitter.split_documents(full_caption)
print(f"Размер блока после вырезания: {len(caption_chunks)}")

Мы указали размер блока каждого документа равным 200 и перекрытие между блоками равным 10, таким образом разделив исходные субтитры на 46 фрагментов документа.

Далее мы можем использовать искусственный интеллект Zhipu. glm-4-0520 Большая модель с переводом оригинальных английских субтитров на китайский:

Язык кода:javascript
копировать
# Постройте цепочку, чтобы конвертировать оригинальные английские субтитры перевести на китайский
llm = ChatZhipuAI(model="glm-4-0520", temperature=0)  # Используйте большую модель AIglm-4-0520.
chain = (
        {"content": lambda x: x.page_content}
        | ChatPromptTemplate.from_template("Вы эксперт по переводу, пожалуйста, преобразуйте введенный английский перевод на китайский: {content}")
        | llm
        | StrOutputParser()
)
chinese_captions = chain.batch(caption_chunks, config={"max_concurrency": 1})

full_english_caption = "\n".join([caption.page_content for caption in caption_chunks])
full_chinese_caption = "\n".join(chinese_captions)
print(f"Оригинальные английские субтитры: \n{full_english_caption}")
Китайские субтитры после печати(f"перевести: \n{full_chinese_caption}")

Переведенные китайские субтитры следующие:

Название видео: Давайте учить английский во время похода! 🍂🚶🏼🎒【Английские субтитры】

Описание: Вы когда-нибудь изучали английский язык в естественной среде? В этом курсе английского я отведу вас на пешеходную тропу рядом со мной и научу вас всему… (Оригинальный текст приведен не полностью, поэтому перевод не может быть полным)

Слова и фразы, которые вам нужно знать, чтобы вести разговор о походах.

На этом бесплатном курсе английского языка вы выучите такие слова и фразы, как: тропа, тропа, опасность, пейзаж, знак, вид, снаряжение, походные ботинки, опасное животное, енот, скунс и многое другое.

Все готово! Теперь у нас есть переведенные китайские субтитры. Вообще говоря, семантика и грамматика относительно гладкие. Но это всего лишь наше интуитивное ощущение. Есть ли какой-нибудь количественный способ оценить эффект перевода? Некоторые из них еще есть. Мы можем использовать возможности встраивания большой модели для расчета лингвистического сходства между оригинальными английскими субтитрами и переведенными китайскими субтитрами. Если сходство между ними очень велико, существует высокая вероятность того, что перевод сможет. быть в основном воспроизведено оригинальное содержание. Конечно, существуют более точные методы оценки, о которых мы пока не будем здесь говорить.

Наконец, мы можем воспользоваться тем, что только что запустил Zhipu AI. embedding-3 этот Embedding Смоделируйте, посчитайте смысловое сходство следующих двух субтитров:

Язык кода:javascript
копировать
# Вычислить семантическое сходство китайских субтитров после оригинальных английских субтитров иперевести
embeddings = ZhipuAIEmbeddings(model="embedding-3")
english_embedding = embeddings.embed_documents([full_english_caption])

chinese_embedding = embeddings.embed_documents([full_chinese_caption])

similarity = cosine_similarity(X=english_embedding,Y=chinese_embedding)[0]

print(f"Семантическое сходство двух субтитров: {similarity}")

Семантическое сходство двух субтитров: [0.73141426]

Видно, что итоговое косинусное сходство двух вложений субтитров превышает 0,7, что указывает на то, что эффект перевода большой модели по-прежнему хорош.

Подведем итоги: перевести работу над корпусом,glm-4-0520 Должно быть хороший выбор.

boy illustration
Неразрушающее увеличение изображений одним щелчком мыши, чтобы сделать их более четкими артефактами искусственного интеллекта, включая руководства по установке и использованию.
boy illustration
Копикодер: этот инструмент отлично работает с Cursor, Bolt и V0! Предоставьте более качественные подсказки для разработки интерфейса (создание навигационного веб-сайта с использованием искусственного интеллекта).
boy illustration
Новый бесплатный RooCline превосходит Cline v3.1? ! Быстрее, умнее и лучше вилка Cline! (Независимое программирование AI, порог 0)
boy illustration
Разработав более 10 проектов с помощью Cursor, я собрал 10 примеров и 60 подсказок.
boy illustration
Я потратил 72 часа на изучение курсорных агентов, и вот неоспоримые факты, которыми я должен поделиться!
boy illustration
Идеальная интеграция Cursor и DeepSeek API
boy illustration
DeepSeek V3 снижает затраты на обучение больших моделей
boy illustration
Артефакт, увеличивающий количество очков: на основе улучшения характеристик препятствия малым целям Yolov8 (SEAM, MultiSEAM).
boy illustration
DeepSeek V3 раскручивался уже три дня. Сегодня я попробовал самопровозглашенную модель «ChatGPT».
boy illustration
Open Devin — инженер-программист искусственного интеллекта с открытым исходным кодом, который меньше программирует и больше создает.
boy illustration
Эксклюзивное оригинальное улучшение YOLOv8: собственная разработка SPPF | SPPF сочетается с воспринимаемой большой сверткой ядра UniRepLK, а свертка с большим ядром + без расширения улучшает восприимчивое поле
boy illustration
Популярное и подробное объяснение DeepSeek-V3: от его появления до преимуществ и сравнения с GPT-4o.
boy illustration
9 основных словесных инструкций по доработке академических работ с помощью ChatGPT, эффективных и практичных, которые стоит собрать
boy illustration
Вызовите deepseek в vscode для реализации программирования с помощью искусственного интеллекта.
boy illustration
Познакомьтесь с принципами сверточных нейронных сетей (CNN) в одной статье (суперподробно)
boy illustration
50,3 тыс. звезд! Immich: автономное решение для резервного копирования фотографий и видео, которое экономит деньги и избавляет от беспокойства.
boy illustration
Cloud Native|Практика: установка Dashbaord для K8s, графика неплохая
boy illustration
Краткий обзор статьи — использование синтетических данных при обучении больших моделей и оптимизации производительности
boy illustration
MiniPerplx: новая поисковая система искусственного интеллекта с открытым исходным кодом, спонсируемая xAI и Vercel.
boy illustration
Конструкция сервиса Synology Drive сочетает проникновение в интрасеть и синхронизацию папок заметок Obsidian в облаке.
boy illustration
Центр конфигурации————Накос
boy illustration
Начинаем с нуля при разработке в облаке Copilot: начать разработку с минимальным использованием кода стало проще
boy illustration
[Серия Docker] Docker создает мультиплатформенные образы: практика архитектуры Arm64
boy illustration
Обновление новых возможностей coze | Я использовал coze для создания апплета помощника по исправлению домашних заданий по математике
boy illustration
Советы по развертыванию Nginx: практическое создание статических веб-сайтов на облачных серверах
boy illustration
Feiniu fnos использует Docker для развертывания личного блокнота Notepad
boy illustration
Сверточная нейронная сеть VGG реализует классификацию изображений Cifar10 — практический опыт Pytorch
boy illustration
Начало работы с EdgeonePages — новым недорогим решением для хостинга веб-сайтов
boy illustration
[Зона легкого облачного игрового сервера] Управление игровыми архивами
boy illustration
Развертывание SpringCloud-проекта на базе Docker и Docker-Compose