通过Whisper模型将YouTube播放列表中的视频转换成高质量文字稿的项目

项目简介

一个通过Whisper模型将YouTube播放列表中的视频转换成高质量文字稿的项目。

这个基于 Python 的工具旨在将 YouTube 视频和播放列表转录为文本。它集成了多种技术,例如用于转录的 Fast-Whisper、用于自然语言处理的 SpaCy 以及用于 GPU 加速的 CUDA,旨在高效处理视频内容。该脚本能够处理单个视频和整个播放列表,输出准确的文字记录和元数据。项目核心内容:

1、YouTube下载:使用pytube下载YouTube视频或播放列表的音频。
2、音频转录:利用faster_whisper.WhisperModel将音频转换成文字。
3、NLP处理:可选地整合SpaCy,用于改进句子分割,提高文字稿的可读性和结构。
4、CUDA加速:实现CUDA支持,用于兼容硬件的处理速度提升。

这个工具适用于内容分析、辅助创建视频字幕和封闭字幕、教育目的以及视频内容的存档和检索。

功能概述

核心组件

  • YouTube 下载:使用 pytube 从 YouTube 视频或播放列表下载音频。

  • 音频转录:利用 faster_whisper.WhisperModel 将音频转换为文本。该模型是 OpenAI 的 Whisper 的变体,旨在提高速度和准确性。

  • NLP 处理:可以选择集成 SpaCy 以进行复杂的句子分割,从而增强转录本的可读性和结构。

  • CUDA 加速:实现对 GPU 利用率的 CUDA 支持,提高兼容硬件的处理速度。

详细工作流程

  1. 初始化:

    • 该脚本首先根据 convert_single_video 标志确定是处理单个视频还是播放列表。

    • 它设置必要的目录来存储下载的音频、文字记录和元数据。

  2. 环境配置:

    • 将 CUDA Toolkit 路径添加到系统环境以供 GPU 使用。

    • 根据 CPU 核心数配置用于转录的工作线程数量。

  3. 视频处理:

    • 对于播放列表中的每个视频或单个视频,脚本都会下载音频。

    • 它确保每个音频文件的唯一命名以避免覆盖。

  4. 转录:

    • 音频文件被传递到 WhisperModel 进行转录。

    • 如果可用,该脚本会处理 GPU 加速,否则默认为 CPU。

    • 使用 SpaCy 或基于自定义正则表达式的拆分器将转录结果拆分为句子。

  5. 元数据生成:

    • 除了脚本之外,脚本还会生成元数据,包括每个片段的时间戳和置信度分数。

  6. 输出:

    • 记录以纯文本、CSV 和 JSON 格式保存,提供原始记录和结构化元数据。

  7. 显示/读取:

    • 为了使文字记录更易于阅读,提供了一个 html 文件 transcript_reader.html ,它可以进一步清理并提供“阅读器模式”,您可以在其中选择字体、文本大小、文本宽度和切换深色模式。只需在浏览器中打开此 html 文件,然后粘贴 generated_transcript_combined_texts 文件夹中生成的文件之一的转录文本即可。

图片

实际操作的屏幕截图

图片

图片

将成绩单文本粘贴到成绩单阅读器 HTML 文件中使用深色模式和 Cambria 字体的阅读器

项目链接

https://github.com/Dicklesworthstone/bulk_transcribe_youtube_videos_from_playlist

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/183347.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

使用Pytorch从零开始构建LSTM

长短期记忆(LSTM)网络已被广泛用于解决各种顺序任务。让我们了解这些网络如何工作以及如何实施它们。 就像我们一样,循环神经网络(RNN)也可能很健忘。这种与短期记忆的斗争导致 RNN 在大多数任务中失去有效性。不过&a…

解决mv3版本浏览器插件,不能注入js脚本问题

文章目录 背景引入ifream解决ifream和父页面完全跨域问题参考链接 背景 浏览器插件升级mv3版本后,不能再使用content_script内容脚本向原浏览器(top)注入script标签达到注入脚本的目的。浏览器认为插入未经审核的脚本是不安全的行为。 引入…

经常喝羊奶,羊大师告诉你会有何不同

经常喝羊奶,羊大师告诉你会有何不同 羊奶,与人们日常饮用的牛奶相比,一直都没有得到足够的关注。然而,羊奶在一些特定方面却具有独特的优势。它不仅具有丰富的营养价值,还有助于提升人体的健康水平。本文小编羊大师将…

【Skynet 入门实战练习】游戏模块划分 | 基础功能模块 | timer 定时器模块 | logger 日志服务模块

文章目录 游戏模块基础功能模块定时器模块日志模块通用模块 游戏模块 游戏从逻辑方面可以分为下面几个模块: 注册和登录网络协议数据库玩法逻辑其他通用模块 除了逻辑划分,还有几个重要的工具类模块: Excel 配置导表工具GM 指令测试机器人…

【CCF-PTA】第03届Scratch第01题 -- 梦醒时分

梦醒时分 【题目描述】 睡眠是人体正常的生理需要,同年龄男女睡眠时间无明显差别,一般是8小时左右。居家的小明作息生活很规律,晚上11点睡觉,早晨7点起床学习。请你编写程序来判断,每周(共168小时&#x…

Elasticsearch:ES|QL 函数及操作符

如果你对 ES|QL 还不是很熟悉的话,请阅读之前的文章 “Elasticsearch:ES|QL 查询语言简介​​​​​​​”。ES|QL 提供了一整套用于处理数据的函数和运算符。 功能分为以下几类: 目录 ES|QL 聚合函数 AVG COUNT COUNT_DISTINCT 计数为近…

【计算机网络笔记】数据链路层概述

系列文章目录 什么是计算机网络? 什么是网络协议? 计算机网络的结构 数据交换之电路交换 数据交换之报文交换和分组交换 分组交换 vs 电路交换 计算机网络性能(1)——速率、带宽、延迟 计算机网络性能(2)…

IAR为恩智浦S32M2提供全面支持,提升电机控制能力

IAR Embedded Workbench for Arm已全面支持恩智浦最新的S32系列,可加速软件定义汽车的车身和舒适性应用的开发 瑞典乌普萨拉,2023年11月22日 – 嵌入式开发软件和服务的全球领导者IAR现已全面支持恩智浦半导体(NXP Semiconductors&#xff0…

好工具|datamap,一个好用的地图可视化Excel插件,在Excel中实现地理编码、拾取坐标

在做VRP相关研究的时候,需要对地图数据做很多处理,比如地理编码,根据“重庆市沙坪坝区沙正街174号”这样的一个文本地址知道他的经纬度;再比如绘制一些散点图,根据某个位置的经纬度在地图上把它标注出来。还有有的时候…

Redis-Redis高可用集群之水平扩展

Redis3.0以后的版本虽然有了集群功能,提供了比之前版本的哨兵模式更高的性能与可用性,但是集群的水平扩展却比较麻烦,今天就来带大家看看redis高可用集群如何做水平扩展,原始集群(见下图)由6个节点组成,6个节点分布在三…

一致性 Hash 算法 Hash 环发生偏移怎么解决

本篇是对文章《一文彻底读懂一致性哈希算法》的重写,图文并茂,篇幅较长,欢迎阅读完提供宝贵的建议,一起提升文章质量。如果感觉不错不要忘记点赞、关注、转发哦。原文链接: 《一文彻底读懂一致性Hash 算法》 通过阅读本…

界面组件Telerik UI for WinForms中文教程 - 创建明暗模式的桌面应用

黑暗模式现在在很多应用程序中都挺常见的,但如何在桌面应用程序中实现它呢?这很简单,本文将为大家介绍如何使用一个类和命令行调用来实现! Telerik UI for WinForms拥有适用Windows Forms的110多个令人惊叹的UI控件。所有的UI fo…

绝地求生:PGC 2023 赛事直播期间最高可获:2000万G-Coins,你还不来吗?

今年PGC直播期间将有最高2000万G-Coin掉落,究竟花落谁家咱们拭目以待 公告原文:Watch PGC 2023 Live And Earn G-Coins! 如何赚取高额G-Coin? Throughout the PGC 2023, an astounding 20,000,000 G-Coins will be up for grabs as part of …

关于「光学神经网络」的一切:理论、应用与发展

/目录/ 一、线性运算的光学实现 1.1. 光学矩阵乘法器 1.2. 光的衍射实现线性运行 1.3. 基于Rayleigh-Sommerfeld方程的实现方法 1.4. 基于傅立叶变换的实现 1.5. 通过光干涉实现线性操作 1.6. 光的散射实现线性运行 1.7. 波分复用(WDM)实现线性运…

OpenCV快速入门:图像分析——傅里叶变换、积分图像

文章目录 前言一、傅里叶变换1.1 离散傅里叶变换1.1.1 离散傅里叶变换原理1.1.2 离散傅里叶变换公式1.1.3 代码实现1.1.4 cv2.dft 函数解析 1.2 傅里叶变换进行卷积1.2.1 傅里叶变换卷积原理1.2.2 傅里叶变换卷积公式1.2.3 代码实现1.2.4 cv2.mulSpectrums 函数解析 1.3 离散余…

Unity机器学习 ML-Agents第一个例子

上一节我们安装了机器学习mlagents的开发环境,本节我们创建第一个例子,了解什么是机器学习。 我们的例子很简单,就是让机器人自主移动到目标位置,不能移动到地板范围外。 首先我们来简单的了解以下机器学习的过程。 机器学习的过…

读像火箭科学家一样思考笔记07_探月思维

1. 挑战“不可能”的科学与企业 1.1. 互联网 1.1.1. 和电网一样具有革命性,一旦你插上电源,就能让自己的生活充满活力 1.1.2. 互联网的接入可以帮助人们摆脱贫困,拯救生命 1.1.3. 互联网还可以提供与天气相关的信息 1.2. 用廉价、可靠的…

搭配:基于OpenCV的边缘检测实战

引言 计算机中的目标检测与人类识别物体的方式相似。作为人类,我们可以分辨出狗的形象,因为狗的特征是独特的。尾巴、形状、鼻子、舌头等特征综合在一起,帮助我们把狗和牛区分开来。 同样,计算机能够通过检测与估计物体的结构和性…

【Django使用】10大章31模块md文档,第5篇:Django模板和数据库使用

当你考虑开发现代化、高效且可扩展的网站和Web应用时,Django是一个强大的选择。Django是一个流行的开源Python Web框架,它提供了一个坚实的基础,帮助开发者快速构建功能丰富且高度定制的Web应用 全套Django笔记直接地址: 请移步这…

【Docker】从零开始:8.Docker命令:Commit提交命令

【Docker】从零开始:8.Docker命令:Commit命令 基本概念镜像镜像分层什么是镜像分层为什么 Docker 镜像要采用这种分层结构 本章要点commit 命令命令格式docker commit 操作参数实例演示1.下载一个新的ubuntu镜像2.运行容器3.查看并安装vim4.退出容器5提交自己的镜像…