ChatGPT开源的whisper音频生成字幕

1、前言

好了,那接下来看一下whisper开源库的介绍

image.png

有五种模型大小,其中四种仅支持英语,提供速度和准确性的权衡。上面便是可用模型的名称、大致的内存需求和相对速度。如果是英文版的语音,直接想转换为英文。

本来我是想直接在我的本地电脑上安装环境的,也就是无非安装python、ffmpeg、以及whisper,但是发现电脑配置太低了,而且我想测试一下large模型,CPU 肯定是不行,但是如果用本机的 GPU也是快不到哪里去的。 所以这里我想到谷歌的colab.research.google.com 免费在线运行,而且我可以启用GPU硬件加速,感觉上还是非常快的,当然如果需要你还可以购买。

image.png

下面是我的免费配置 colab.research.google.com

image.png

运行起来还是非常流畅,真的香喷喷,如果需要我都想付费了。

可以应用于那些场景

  • 会议记录: 直接将录音转换为文字

  • 个人视频制作: 很多时候都希望有字幕的效果,听说剪映的效果都没有这个好

  • 课堂记录转写:将课堂上的内容记录下来,这样后面直接查看文字版本也是非常方便

  • 通话记录:有些重要的电话可将其录音,转换为文字以备后面查询也是非常不错的

  • 字幕组:这个就不用说了 有可能还涉及到多语言,准备率很高的话 可以省很多事情

  • 实时语音翻译:这个服务器配置够高的话,理论上就非常快速

2、开始实践

2.1、检查colab环境

!nvidia-smi -L
!nvidia-smi

运行两个指令结果如下:

image.png

1.!nvidia-smi -L-L 参数用于列出系统上安装的所有 NVIDIA GPU 设备。运行此命令后,您将看到关于可用 GPU 的信息,包括其型号和 UUID。

2.!nvidia-smi:不带任何参数运行 nvidia-smi 会显示有关 NVIDIA GPU 的详细信息,包括:

    • GPU 设备的编号、名称、总内存和温度。
    • GPU 使用率(如计算、内存和显存使用率)。
    • 运行在 GPU 上的进程以及它们的相关信息(如进程 ID、显存占用等)。

只不过这里我还没开始使用GPU而已,所以显示的是空的。

2.2、安装whisper

!pip install requests beautifulsoup4
!pip install git+https://github.com/openai/whisper.git
import torch
import sys
device = torch.device('cuda:0')
print('正在使用的设备:', device, file=sys.stderr)
print('Whisper已经被安装请执行下一个单元')

这里主要就是安装whisper

image.png

2.3、 whisper模型选择

#@markdown # ** whisper Model选择** 🧠
Model = 'large-v2' #@param ['tiny.en', 'tiny', 'base.en', 'base', 'small.en', 'small', 'medium.en', 'medium', 'large', 'large-v2']
import whisper
from IPython.display import Markdown
whisper_model = whisper.load_model(Model)
if Model in whisper.available_models():
    display(Markdown(
        f"**{Model} model is selected.**"
    ))
else:
    display(Markdown(
        f"**{Model} model is no longer available.** Please select one of the following: - {' - '.join(whisper.available_models())}"
    ))

这里我选择的是最大的模型 large-v2,因为我要转换中文字幕,前面四个都只支持英文,这个在文章开头也说了的。

2.4、 开始音频转字幕

audio_path = "/content/downloads/test1.m4a"
audio_path_local = Path(audio_path).resolve()
transcription = whisper.transcribe(
    whisper_model,
    str(audio_path_local),
    temperature=temperature,
    **args,
)
# Save output
whisper.utils.get_writer(
    output_format=output_format,
    output_dir=audio_path_local.parent
)(
    transcription,
    title
)

我首先要准备一个m4a的音频文件,这里可以直接上传到colab

image.png

左侧当前目录是 content,然后右键新建文件夹downloads,然后在downloads文件夹上点击上传m4a文件

image.png

上传完毕后可以看到m4a文件已经在目录下了。

whisper.transcribe 方法有好多的参数

  • whisper_model主要是设置model模型
  • output_format 主要是设置字幕输出的文件格式
  • temperature 值设置的较低,那么表述相对精准一些,值越大表述可能更加抽象一点
  • args中有一个language语言,比如这里我要将音频转换为中文字幕 设置为cn 或者chinese这里主要可以查看 whisper/tokenizer.py at main · openai/whisper · GitHub

image.png

2.4、运行查看效果

点击运行后可以看到一段一段的在执行转换了,整体感觉运行还是非常流畅了,这比看别人在本地运行速度可是快多了

image.png

最后可以看到srt字幕文件也已经生成了,可以直接点击左侧文件点击下载即可。 生成的srt文件如下

image.png

3、总结

这个whisper相当于离线版本,可以自己部署到本地或者服务器提供给自己使用,相信后续OpenAI应该还会有更新,提供更多精彩的功能使用。

from:

5、ChatGPT开源的whisper音频生成字幕,可本地搭建环境运行,效果质量很棒-阿里云开发者社区

kkview远程控制 手机电脑看屏幕和摄像头

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

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

相关文章

Java 变量类型

Java 变量类型 在 Java 语言中,所有的变量在使用前必须声明。 声明变量的基本格式如下: type identifier [ value][, identifier [ value] …] ; 格式说明: type – 数据类型。 identifier – 是变量名,可以使用逗号 , 隔开来…

【mysql】mysql导入导出数据详解

✨✨ 欢迎大家来到景天科技苑✨✨ 🎈🎈 养成好习惯,先赞后看哦~🎈🎈 🏆 作者简介:景天科技苑 🏆《头衔》:大厂架构师,华为云开发者社区专家博主,…

使用规则进行命名实体识别(NER)

使用规则进行命名实体识别(NER) 命名实体识别(Named Entity Recognition,NER)是自然语言处理(NLP)中的一项基础任务,它旨在从文本中识别出具有特定意义的实体,如人名、地…

idea java 后缀补全

ArrayList<$EXPR$> enters new ArrayList<>();for (int i 0; i < enters.size(); i) {$EXPR$ enter enters.get(i);enter$END$} 让编程效率翻倍的IDEA快捷键—自定义后缀补全_哔哩哔哩_bilibili

每日两题 / 2. 两数相加 19. 删除链表的倒数第 N 个结点(LeetCode热题100)

2. 两数相加 - 力扣&#xff08;LeetCode&#xff09; 高精度加法&#xff0c;用vector保存两个操作数&#xff0c;进行高精度加法后&#xff0c;将保存结果的vector转换成链表即可 /*** Definition for singly-linked list.* struct ListNode {* int val;* ListNod…

最长递增子序列 详解 CPP

目录 前言思路梳理题解最优思路 我的思路思路一 考虑连续 对一半 思路二 基于思路一的优化 思路三 基于思路二的优化 √ 通过了但是效率太低 我的代码 前言 今天继续做动态dp的第三题&#xff0c;最大子序和&#xff0c;昨天做最大连续子数组的和已经有一些写状态转移方程的经…

Docker Compose:简化多容器应用部署

序言 在当今的软件开发中&#xff0c;容器化技术的使用已经很普遍了。而 Docker 作为其中最流行的容器化平台之一&#xff0c;为开发者提供了方便、快捷、一致的开发和部署环境。但是&#xff0c;当我们的应用开始变得更加复杂&#xff0c;涉及到多个容器时&#xff0c;手动管…

kafka(七)——消息偏移(消费者)

概念 消费者消费完消息后&#xff0c;向_consumer_offset主题发送消息&#xff0c;用来保存每个分区的偏移量。 流程说明 consumer发送JoinGroup请求&#xff1b;coordinator选出一个consumer作为leader&#xff0c;并将topics发送给leader消费者&#xff1b;leader consumer…

4. Python的深拷贝、浅拷贝

文章目录 0、先说结论1、浅拷贝修改元素值2、深拷贝修改元素值学习链接 0、先说结论 无论深拷贝还是浅拷贝都会为新对象分配一块新的内存&#xff0c;因此新老对象id不相同。 对于浅拷贝&#xff0c;新老对象内部的可变and不可变元素id都是相同的(在没修改元素值之前)。 对于深…

springboot -多数据源管理方案

多数据源的配置有多种方式 方式一 、依赖dataSource的配置 1.建立多数据源配置 spring:# 数据源配置datasource:pdm:driver-class-name: oracle.jdbc.driver.OracleDriverjdbc-url: jdbc:oracle:thin:10.216.xxx.xxx:3000:orclusername: cfpdmpassword: capecapp:driver-cla…

移动安全测试框架-MobSF window环境配置

一. 介绍&#xff1a; MOBSF&#xff08;Mobile Security Framework&#xff09;是一个开源的移动安全渗透测试框架&#xff0c;用于评估移动应用程序的安全性。它提供了一组功能强大的工具和技术&#xff0c;帮助安全专业人员和开发人员发现和修复移动应用程序中的安全漏洞。 …

React 第二十六章 Hook useCallback

useCallback 是 React 提供的一个 Hook 函数&#xff0c;用于优化性能。它的作用是返回一个记忆化的函数&#xff0c;当依赖发生变化时&#xff0c;才会重新创建并返回新的函数。 在 React 中&#xff0c;当一个组件重新渲染时&#xff0c;所有的函数都会被重新创建。这可能会…

【npm】解决npm包突然消失MODULE_NOT_FOUND

今天折腾新特性时需要升级nodejs&#xff0c;安装新版后npm离奇消失了。C:\Users\**用户名\AppData\Roaming\npm\node_modules下只有cnpm&#xff0c;没有npm的目录。重装nodejs也不好使。 机智如我&#xff0c;试了下cnpm -v是正常的&#xff0c;而且能看到nodejs&#xff0c;…

CSP-j 2022csp-j完善程序易错题

易错题 答案23&#xff1a; 对 解析23&#xff1a; 函数 g 就是把函数 f 改成递推的形式 答案24&#xff1a; 对 解析23&#xff1a; 无。 答案25&#xff1a; C 解析25&#xff1a; m n ( m - 1 ) * ( 1 2 3 4 ... n ) O(mn^2) 答案26&#xff1a; C 解析26&#x…

跨境电商行业蓬勃发展,武汉星起航引领卖家孵化新潮流

近年来&#xff0c;我国跨境电商行业在政府的大力扶持下呈现出强劲的发展势头。随着国内制造业结构的加速调整与居民消费需求升级态势的持续凸显&#xff0c;跨境出口规模占比稳步提升&#xff0c;跨境进口规模同样不断扩大&#xff0c;行业市场规模持续增长。在这一背景下&…

vue3+ant design实现表格数据导出Excel

提示:实现表格数据导出Excel 文章目录 前言 一、安装ant design? 二、引用ant design 1.搭建框架 2.获取表格数据 三、封装导出表格的代码 四、导出 1.获取导出地址 2.在下载导出事件中添加导出代码 五、全部代码 前言 今天终于有时间来更新文章了,最近公司项目比较紧…

【ArcGIS Pro微课1000例】0058:玩转NetCDF多维数据集

一、NetCDF介绍 NetCDF(network Common Data Form)网络通用数据格式是由美国大学大气研究协会(University Corporation for Atmospheric Research,UCAR)的Unidata项目科学家针对科学数据的特点开发的,是一种面向数组型并适于网络共享的数据的描述和编码标准。NetCDF广泛应…

pgsql查看指定模式的存储过程

pgsql查看指定模式的存储过程 在 PostgreSQL 中&#xff0c;如果你想要查看指定模式的存储过程&#xff08;也称为函数&#xff09;&#xff0c;你可以使用 \df 或 \df 命令在 psql 命令行工具中&#xff0c;或者使用 SQL 查询来从 pg_catalog 系统模式中查询。 \df命令行查询…

吴恩达2022机器学习专项课程C2(高级学习算法)W1(神经网络):Lab01 神经元和层

目录 导入Tensorflow的库无激活函数 vs 有激活函数&#xff1f;1.无激活函数2.有激活函数 无激活函数的神经元-回归/线性模型1.创建训练集散点图2.创建层3.层输入4.获取层参数5.层参数的形状6.手动设置层的参数7.层计算vs线性回归模型计算 有激活函数sigmoid的神经元1.创建训练…

武汉星起航深耕亚马逊跨境电商,引领中国卖家开拓全球市场新篇章

在全球经济深度融合的当下&#xff0c;跨境电商已成为连接中国与世界市场的重要桥梁。作为跨境电商领域的佼佼者&#xff0c;武汉星起航电子商务有限公司凭借对亚马逊平台的深入了解和丰富经验&#xff0c;成功引领了中国卖家开拓全球市场的新篇章。 亚马逊&#xff0c;这家起…