本地部署接入 whisper + ollama qwen3:14b 總結字幕

1. 實現功能

M4-1 接入 whisper + ollama qwen3:14b 總結字幕

  • 自動下載視頻元數據
  • 如果有字幕,只下載字幕
  • 使用 ollama 的 qwen3:14b 對字幕內容進行總結

2.運行效果

🔍 正在提取視頻元數據…

📝 正在下載所有可用字幕…
[youtube] Extracting URL: https://youtu.be/AU9F-6uWCgE
[youtube] AU9F-6uWCgE: Downloading webpage
[youtube] AU9F-6uWCgE: Downloading tv client config
[youtube] AU9F-6uWCgE: Downloading tv player API JSON
[info] AU9F-6uWCgE: Downloading subtitles: zh-Hans
[info] AU9F-6uWCgE: Downloading 1 format(s): 248+251
Deleting existing file downloads\這AI會做物理題?Skywork-r1v 智商實測,結果出人意料!WebUI 體驗。.zh-Hans.srt
[info] Writing video subtitles to: downloads\這AI會做物理題?Skywork-r1v 智商實測,結果出人意料!WebUI 體驗。.zh-Hans.srt
WARNING: The extractor specified to use impersonation for this download, but no impersonate target is available. If you encounter errors, then see https://github.com/yt-dlp/yt-dlp#impersonation for information on installing the required dependencies
[download] Destination: downloads\這AI會做物理題?Skywork-r1v 智商實測,結果出人意料!WebUI 體驗。.zh-Hans.srt
[download] 100% of 21.61KiB in 00:00:00 at 116.50KiB/s

🤖 正在用 ollama 的 qwen3:14b 總結字幕 …

=== 總結結果 ===

  1. 🎯 本期主要話題:介紹開源多模態模型 Skywork-r1v 的功能、部署方式和實際應用效果。

  2. 📌 內容要點:

  • Skywork-r1v 是由昆侖萬維開發的多模態模型,使用強化學習訓練,能夠理解圖片并進行推理。
  • 該模型可以通過 GitHub 和 Huggingface 下載,并支持兩種推理方式:Transforms 庫和 VLLM。
  • 部署過程中需要安裝依賴組件,并手動配置 WebUI 程序以實現本地運行。
  • 模型在處理圖片和推理問題時表現良好,但也存在部分推理錯誤的情況。
  1. 🌟 精彩片段或亮點:
  • 模型能夠根據圖片內容進行推理,例如分析圖片中的杯子數量和長度關系。
  • 在演示過程中,模型對一張折射圖片的分析正確,展示了其在特定場景下的準確性和理解能力。

3.實現過程

3.1 搭建環境

Python 環境安裝(推薦):
mkdir ytdlp && cd ytdlp
conda create -n ytdlp python=3.10 -y
conda activate ytdlp
pip install -U “yt-dlp[default]”

3.1.1 打開anaconda

在這里插入圖片描述

3.1.2 通過圖像化界面創建ytdlp環境

在這里插入圖片描述

3.1.3 打開ytdlp的open terminal

pip install -U “yt-dlp[default]”
在這里插入圖片描述

3.1.4 vscode python解析器 選擇ytdlp

在這里插入圖片描述

3.1.5 獲得cookies.txt內容

在這里插入圖片描述

3.2 代碼

from yt_dlp import YoutubeDL
import os
import subprocessdef get_parent_cookies():return os.path.join(os.path.dirname(os.path.dirname(__file__)), 'cookies.txt')def extract_video_metadata(url):ydl_opts = {'cookiefile': get_parent_cookies(),'quiet': True,'no_warnings': False,'extract_flat': False,'extractor_args': {'youtube': {'player_client': ['tv_embedded', 'web'],}}}with YoutubeDL(ydl_opts) as ydl:try:info = ydl.extract_info(url, download=False)return infoexcept Exception as e:print(f"提取元數據失敗: {e}")return Nonedef download_subtitles(url, info):subtitles = info.get('subtitles', {})if not subtitles:print("\n📝 沒有可用字幕,跳過下載和總結。")return Noneprint("\n📝 正在下載所有可用字幕...")ydl_opts = {'cookiefile': get_parent_cookies(),'skip_download': True,'writesubtitles': True,'allsubtitles': True,'subtitlesformat': 'srt','outtmpl': 'downloads/%(title).80s.%(ext)s','quiet': False,}with YoutubeDL(ydl_opts) as ydl:ydl.download([url])# 查找下載的srt字幕文件downloads_dir = os.path.join(os.path.dirname(__file__), 'downloads')srt_files = [f for f in os.listdir(downloads_dir) if f.endswith('.srt')]if not srt_files:print("? 沒有找到下載的字幕文件")return Nonesrt_path = os.path.join(downloads_dir, srt_files[0])print(f"? 已下載字幕: {srt_path}")return srt_pathdef summarize_with_ollama(srt_path):print(f"\n🤖 正在用 ollama 的 qwen3:14b 總結字幕 ...")# 自動安裝ollama包(如未安裝)try:import ollamaexcept ImportError:import sys, subprocesssubprocess.check_call([sys.executable, '-m', 'pip', 'install', 'ollama'])import ollama# 讀取并清洗SRT字幕內容,拼接為段落def srt_to_text(srt_content):import relines = srt_content.splitlines()text_lines = []for line in lines:# 跳過序號和時間軸if re.match(r"^\d+$", line):continueif re.match(r"^\d{2}:\d{2}:\d{2},\d{3} --> ", line):continueif line.strip() == '':continuetext_lines.append(line.strip())# 合并為段落,去重相鄰重復from itertools import groupbymerged = [k for k, _ in groupby(text_lines)]return ' '.join(merged)with open(srt_path, 'r', encoding='utf-8') as f:srt_content = f.read()clean_text = srt_to_text(srt_content)# 構造 promptprompt = f"""
你是一名專業的視頻內容總結助手,請對下列中文視頻字幕內容進行總結。目標:讓用戶能在30秒內了解這期視頻的核心內容。請按以下格式輸出:
1. 🎯 本期主要話題(用一句話概括主題)
2. 📌 內容要點(3-5條,每條 1 句話)
3. 🌟 精彩片段或亮點(選出最值得一提的內容,1-2條)?? 不要加入你的思考過程,不要說“我認為”或“可能”,只根據字幕原文總結。字幕內容如下:
———
{clean_text}
———
/no_think
"""try:response = ollama.chat(model='qwen3:14b',messages=[{"role": "user", "content": prompt}])print("\n=== 總結結果 ===\n")print(response['message']['content'])except Exception as e:print(f"調用 ollama 失敗: {e}")def main():url = "https://youtu.be/AU9F-6uWCgE"print("🔍 正在提取視頻元數據...")info = extract_video_metadata(url)if not info:print("? 無法獲取視頻信息")returnsrt_path = download_subtitles(url, info)if srt_path:summarize_with_ollama(srt_path)if __name__ == "__main__":main()

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/918416.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/918416.shtml
英文地址,請注明出處:http://en.pswp.cn/news/918416.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【13-向量化-高效計算】

研究者能夠擴展神經網絡并構建非常大型網絡的原因之一,就是神經網絡可以被向量化,vectorized;可以非常高效地用矩陣地乘法實現。 事實上,并行計算硬件,例如GPU,一些CPU的功能,非常擅長進行非常大…

論文中PDF的公式如何提取-公式提取

Mathcheap - An AI-powered, free alternative to Mathpix Snip. 從PDF中截圖公式,之后 ctrl V 轉換成功 ,提取成功 復制到word中,是這樣的 這顯然不是我們需要的。 可以使用Axmath 復制進去Axmath 就能正常顯示公式。 之后再插入word…

用 Flink SQL 和 Paimon 打造實時數倉:深度解析與實踐指南

1. 實時數倉的魅力:從離線到分鐘級的飛躍實時數倉,聽起來是不是有點高大上?其實它沒那么神秘,但確實能讓你的數據處理能力像坐上火箭一樣飆升!傳統的離線數倉,像 Hadoop 生態的 Hive,動輒小時級…

【已解決】報錯:WARNING: pip is configured with locations that require TLS/SSL

一、問題背景二、問題分析1. SSL模塊缺失的本質2. Anaconda環境特點三、問題表現四、解決方案詳解1. 完整配置環境變量2. 添加環境變量的步驟3. 測試驗證五、實戰示例六、附加建議七、總結八、參考鏈接一、問題背景 在Windows 10系統中使用Python的包管理工具pip時&#xff0c…

Java項目基本流程(三)

一、頁面初始化階段(加載即執行)加載欄目列表(同步請求)發送同步 AJAX 請求到SearchChannel接口,獲取所有欄目數據。清空下拉框(.channelid)后,先添加 “全部” 選項,再循…

鷓鴣云光伏仿真:項目前期決策的“數據明燈”

曾有一處光伏項目,在精心籌備數月后終于建成,卻在運行初期即因未充分評估山體遮擋影響,導致實際發電量較預期大幅降低近一成。前期決策中的微小疏漏,往往成為項目經濟性與可行性的致命傷。而鷓鴣云光伏仿真軟件正是一盞照亮前路的…

開發指南129-基礎類-BaseController

所有接口都需要繼承BaseControllerBaseController里有很多有用的方法,現舉例最重要的幾個:1、getURI返回接口地址,就是PostMapping或GetMapping中定義的接口地址。常用于返回值中,例如接口的異常處理:try {// 處理邏輯…

C++高頻知識點(十八)

文章目錄86. C多線程中,鎖的實現方式有哪些?1. 互斥鎖(Mutex)2. 遞歸互斥鎖(Recursive Mutex)3. 讀寫鎖(Shared Mutex)4. 自旋鎖(Spinlock)5. 條件變量&#…

【C語言強化訓練16天】--從基礎到進階的蛻變之旅:Day1

🔥個人主頁:草莓熊Lotso 🎬作者簡介:C研發方向學習者 📖個人專欄: 《C語言》 《數據結構與算法》《C語言刷題集》《Leetcode刷題指南》 ??人生格言:生活是默默的堅持,毅力是永久的…

【軟考中級網絡工程師】知識點之 TCP 協議深度剖析

目錄一、TCP 協議簡介二、TCP 協議的特點2.1 面向連接2.2 可靠性高2.3 擁塞控制2.4 全雙工通信2.5 高效性2.6 支持多種應用協議2.7 可靠的錯誤恢復三、TCP 協議的工作機制3.1 三次握手建立連接3.2 數據傳輸3.3 四次揮手關閉連接四、TCP 協議的數據包格式五、TCP 協議在實際應用…

操作系統1.5:操作系統引導

目錄 總覽 什么是操作系統引導? 磁盤里邊有哪些相關數據? 操作系統引導(開機過程) 總覽 什么是操作系統引導? 操作系統引導(boot)——開機的時候,怎么讓操作系統運行起來? 磁盤里邊有哪些相關數據? 一個剛買來的磁盤(硬…

[鷓鴣云]光伏AI設計平臺解鎖電站開發新范式

1.[鷓鴣云]平臺概述[鷓鴣云]是由鷓鴣云(徐州)信息技術有限公司傾力打造的,可以媲美?PVsyst的光伏AI設計平臺。它為光伏項目不同階段的開發提供了快速設計、衛星地圖設計、無人機3D設計、Unity3D設計、專業繪圖設計與場區設計多種設計方式&am…

docker compose和docker-compose命令的區別

Docker Compose 有兩種命令形式:docker compose(空格連接)docker-compose(短橫線連接)其核心區別如下:一、技術特性docker-compose(短橫線)獨立可執行文件:作為獨立程序安…

基于Strands Agent開發輔助閱讀Agent

序 本篇由來,在COC上我當面感謝了組委會和姜寧老師,隨即被姜寧老師催稿,本來當天晚上寫了一個流水賬,感覺甚為不妥。于是決定慢慢寫,緩緩道來。要同時兼顧Show me the code,Show me the vide。希望能形成一…

20250807簡單樹上問題

引入 樹是一種特殊的圖,因其看起來像一顆倒掛的樹而得名。 樹有許多等價的形式化定義,我們這里只取一個:nnn個點n?1n-1n?1條邊的無向連通圖。 樹的直徑 定義樹上任意兩點之間最長的簡單路徑為樹的直徑。 一棵樹可能有很多直徑&#xff0c…

諾基亞就4G/5G相關專利起訴吉利對中國汽車及蜂窩模組企業的影響

諾基亞于2025年7月18日向歐洲統一專利法院(UPC)曼海姆分庭和德國慕尼黑法院提起訴訟,控訴中國吉利控股集團及其極氪、領克、路特斯、Smart等關聯品牌在未經許可的情況下使用諾基亞4項蜂窩通信標準必要專利 。涉案專利包括1項覆蓋4G/5G的標準必…

Kotlin反射詳解

反射是一種機制,它允許我們在運行時檢查、修改和操作類或對象的內部結構。反射開啟了動態編程的可能性,在開發庫、框架或工具等場景中非常有用。Java 中的反射 在 Java 中,反射一直是實現動態編程的重要基石。它允許開發者在不提前知道類名的…

學習嵌入式-IMX6ULL學習——中斷

volatile:易變的,防止系統優化對寄存器做處理的時候使用,在進行寫1清零操作時,防止該操作被系統優化;一、GIC通用中斷控制器1.GIC通用中斷控制器GIC接收眾多外部中斷,然后對其進行處理,最終通過…

HENGSHI SENSE 6.0 功能-AI 查數助手

面向所有AI Agent開放BI和數據分析能力 AI 查數助手 6.0版本中,我們AI助手的優化是比較深入且全面的。從問答效率到集成能力,都得到了大的躍升,是智能問數應用場景的重大升級以及體驗的全方位優化。我們優化了 AI 助手執行流程,…

降壓型DCDC電源芯片推薦-芯伯樂XBL4001 40V/5A

在電子設備不斷追求高性能與低功耗的今天,電源管理芯片的重要性不言而喻。芯伯樂主推的XBLW-XBL4001芯片,憑借其出色的設計與穩定的性能,為電源管理領域帶來了一款實用的新選擇。一、芯片概述XBLW-XBL4001是一款降壓型(Buck&#…