Узнайте, как создать сумматор видео, используя Whisper от OpenAI и BART от Meta на Hugging Face.

Первоначально опубликовано: https://writings.niharika.me/how-to-improve-youtube-with-llms
Последнее обновление: среда, 13 сентября 2023 г.
То, как люди взаимодействуют с технологиями, прошло долгий путь. На заре вычислительной техники пользователям приходилось вводить команды с помощью перфокарт. На этом этапе, если вам придется сделать паузу и сознательно подумать о «перфокартах», то я достаточно эффективно доказал свою точку зрения;
Люди действительно прошли долгий путь в том, как мы взаимодействуем и ориентируемся в цифровом мире.
История метавселенной быстро развивается, становясь все более естественной и интуитивно понятной. В ближайшем будущем мы будем использовать прикосновения, голос, жесты и, возможно, прямые мозговые связи.
Молниеносный прогресс в области обработки естественного языка (NLP) позволил нам создать еще лучший пользовательский опыт. Когда вы думаете, что возможностей для оптимизации, вероятно, больше не осталось, они есть. НЛП эффективно заставляет машины понимать и генерировать человеческий язык. Это оказывает значительное влияние на то, как мы общаемся с технологиями.
🎯 Цель этого блога — изучить, как можно улучшить YouTube, используя последние революционные достижения в области LLM, и создать видеообобщитель с использованием Whisper от OpenAI и BART от Meta.
Как бы я улучшил YouTube
Для меня, как для менеджера по продукту, важно определить проблемные области продукта и стратегически разработать решения, которые не только решают эти проблемы, но и соответствуют более широкому видению и целям продукта. Речь идет о YouTube.
Группы пользователей
Я не думаю, что мне нужно давать определение, что такое YouTube. Так что я могу пропустить эту часть и перейти к определению ключевых сегментов пользователей YouTube. В общих чертах они делятся на две категории:
- Создатели
- Потребители
В этом блоге я сосредоточусь на потребителях. Без потребителей творцы теряют свою ценность. Поэтому крайне важно повышать качество обслуживания потребителей на каждом этапе пути.
Потенциальные болевые точки/проблемы
- Вводящие в заблуждение значки и названия: кликбейты. Чрезвычайно неприятно для зрителей, ищущих соответствующий контент.
- Неприемлемый контент. Несмотря на усилия YouTube по модерации контента, зрители могут столкнуться с контентом, содержащим оскорбительный, вредный или неприемлемый контент.
- Дублирование контента. Что раздражает больше, чем то, что разные авторы неоднократно загружают одно и то же видео, загромождая результаты поиска и затрудняя поиск оригинального видео.
- Ограниченное обнаружение контента. Если алгоритм рекомендаций YouTube не соответствует интересам зрителя, может быть очень сложно найти новый и релевантный контент.
- Ограниченная доступность контента. Представьте себе, что вы не можете понять видео только потому, что не знаете, на каком оно языке. Большая часть контента на лучших каналах YouTube написана на английском.
Идеи, которые могут помочь улучшить UX потребителей
- Взаимодействие с видео на естественном языке. Зрители могут прочитать текстовое описание видео, прежде чем приступить к его просмотру. Допустим, видео представляет собой 50-минутную панельную дискуссию. Это улучшение также сэкономит много времени зрителям, помогая им сделать более осознанный выбор контента, который они будут потреблять. Пользователь также может задавать вопросы и получать ответы в текстовом виде, не обязательно просматривая видео.
- Обнаружение и пометка неприемлемого и дублированного контента
- Усовершенствованные алгоритмы рекомендаций
- Многоязычная поддержка и доступность. Зрители могут просматривать видео на любом языке тем же голосом, что и рассказчик. Это повысит охват каждого видео и снизит языковые барьеры.
Пришло время создать видеообобщитель
Лично меня кликбейты раздражают, и иногда, прежде чем смотреть длинное видео, я хотел бы оценить видео на основе текстового описания. На данный момент я опираюсь на комментарии к видео. Однако бывают случаи, когда полезных комментариев не так много или, возможно, комментирование было отключено.
Я решу эту проблему, используя LLM, которые будут генерировать текстовое резюме любого видео на YouTube, которое я предоставляю в качестве входных данных.
В двух словах…
веб интерфейс
Пользователь вводит ссылку на видео YouTube и нажимает кнопку «Обобщить видео».
Позвольте мне войти в это видео на YouTube и посмотреть, что получится.
https://www.youtube.com/watch?v=SHw5iZ0tI48
Вот результат:
Резюме:
«Первоначальный iPod был пионером с точки зрения простого дизайна и удобных в использовании функций. Apple приписала идею iPod малоизвестному человеку по имени Кен Крамер. Распространение формата файлов MP3 вызвало большой переполох в музыкальной индустрии».
Неплохо, нет?
Вот скрипт Python, который я использую для этого волшебства:
import pytube
import requests
import os
from dotenv import find_dotenv, load_dotenv
import openai
import streamlit as st
st.title('YouTube Video Summarization')
load_dotenv(find_dotenv())
openai.api_key = os.getenv("OPENAI_API_KEY")
HUGGINGFACEHUB_API_TOKEN=os.getenv("HUGGINGFACE_API_TOKEN")
# Extract audio from YouTube
def get_audio(video_url):
# Create a PyTube object for the video.
youtube_video = pytube.YouTube(video_url)
# Get the audio stream from the video.
audio_stream = youtube_video.streams.filter(only_audio=True)
# Get title
st.write("Now summarizing: ", youtube_video.streams[0].title)
# Download the audio stream to a file.
audio_stream[0].download(output_path="audios", filename="audio.mp3")
# Audio to text
def get_text(filename):
audio_file= open(filename, "rb")
transcript = openai.Audio.transcribe("whisper-1", audio_file)
return transcript
# Summarize
def summarize(transcript):
API_URL = "https://api-inference.huggingface.co/models/facebook/bart-large-cnn"
headers = {"Authorization": f"Bearer {HUGGINGFACEHUB_API_TOKEN}"}
payload = {
"inputs": transcript
}
response = requests.post(API_URL, headers=headers, json=payload)
return response.json()
youtube_link = st.text_input('YouTube Video:', 'Enter URL here')
def process_input(youtube_link):
get_audio(youtube_link)
video_text = get_text("audios/audio.mp3")
video_text = video_text.text
summary = summarize(video_text)
return summary[0]
# Create a button to trigger the function
if st.button("Summarize Video"):
result = process_input(youtube_link)
st.write("Summary", result)
Возвращаясь назад
Внедрение программ LLM в YouTube для улучшения пользовательского опыта и революционных способов взаимодействия с видео буквально на любой платформе — это просто потрясающе.
Предоставляя сводки видео, улучшая поиск и обнаружение, а также повышая доступность и удобство, YouTube может стать еще более удобной и информативной платформой.
Как менеджер по продукту, я считаю, что изучение этих возможностей и решение проблем сделают YouTube более интересным для всех. Пришло время использовать возможности LLM и вывести YouTube на новый уровень удовлетворенности и вовлеченности пользователей.