ChatGPT开源的whisper音频生成字幕

embedded/2024/9/20 6:48:18/ 标签: 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远程控制 手机电脑看屏幕和摄像头


http://www.ppmy.cn/embedded/34572.html

相关文章

20232831 袁思承2023-2024-2 《网络攻防实践》第8次作业

目录 20232831 袁思承2023-2024-2 《网络攻防实践》第8次作业1.实验内容2.实验过程一、动手实践任务一二、动手实践任务二:分析Crackme程序①crackme1.exe②crackme2.exe 三、分析实践任务一四、分析实践任务二 3.学习中遇到的问题及解决4.学习感悟、思考等参考资料…

linux高性能服务器--Ngix内存池简单实现

文章目录 内存模型:流程图内存对齐code 内存模型: 流程图 内存对齐 对齐计算 要分配一个以指定大小对齐的内存,可以使用如下公式: 假设要分配大小为n,对齐方式为x,那么 size(n(x-1)) & (~(x-1))。 举个…

概念解析 | 互补学习系统

注1:本文系"概念解析"系列之一,致力于简洁清晰地解释、辨析复杂而专业的概念。本次辨析的概念是:互补学习系统(Complementary Learning Systems) 概念解析:互补学习系统 Paper Summary - “Complementary Learning Systems Theory Updated” | Rylan Schaeffer…

第十二章 案例二:配置Trunk,实现相同VLAN的跨交换机通信

1、实验环境 公司的员工人数已达到 100 人,其网络设备如图12.13所示,现在的网络环境导致广播较多网速慢,并且也不安全,公司希望按照部门划分网络,并且能够保证一定的网络安全性 图12.13 实验案例二拓扑图 其网络规划…

Linux的基本指令(下)

各位大佬好 ,这里是阿川的博客 , 祝您变得更强 个人主页:在线OJ的阿川 大佬的支持和鼓励,将是我成长路上最大的动力 阿川水平有限,如有错误,欢迎大佬指正 这篇博客续博主的上篇博客Linux基本指令。 07 …

数据库的乐观锁和悲观锁是什么?怎么实现的?

数据库管理系统(DBMS)中的并发控制的任务是确保在多个事务同时存取数据库中同一数据时不破坏事务的隔离性和统一性以及数据库的统一性。乐观并发控制(乐观锁)和悲观并发控制(悲观锁)是并发控制主要采用的技…

冒泡排序(Bubble Sort)

冒泡排序(Bubble Sort)是一种简单直观的排序算法,它重复地遍历待排序的数列,一次比较两个元素,如果它们的顺序错误就把它们交换过来。遍历数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。 以下是冒泡排序的基本步骤: 比较相邻元素:从数组的第…

【电路笔记】-容抗

容抗 文章目录 容抗1、概述2、容抗示例13、容抗示例 24、容抗示例 35、分压器修订6、总结1、概述 容抗是电容器的复阻抗,其值随应用频率而变化。 与不依赖于频率的电阻不同,在交流电路中,电抗受电源频率的影响,并且其行为方式与电阻类似,两者都以欧姆为单位测量。 电抗会…

MATLAB 数据输出

MATLAB 数据输出 数据导出(或输出)在 MATLAB 的意思是写入文件。MATLAB 允许您在另一个读取 ASCII 文件的应用程序中使用您的数据。为此,MATLAB 提供了几个数据导出选项。 您可以创建以下类型的文件- 数组中的矩形、分隔的ASCII数据文件。 击键的日记&#xff08…

leecode每日一练

打家劫舍 我一开始的思路也是dp&#xff0c;但是转移方程想错了&#xff0c;这个题目转移方程应该是dp[i] max(dp[i-2]nums[i],dp[i-1]) class Solution { public:int rob(vector<int>& nums) {int len nums.size();vector<int> dp(len);int ans 0;if(len&g…

腾讯云服务器之ssh远程连接登录

一、创建密钥绑定实例 创建密钥会自动下载一个私钥&#xff0c;把这个私钥复制到c盘 二、设置私钥权限 1、删除所有用户权限 2、添加当前用户权限 查看当前用户名 echo %USERNAME%三、ssh远程连接到服务器 ssh ubuntu175.xxx.xxx.112 -i C:\Crack\cs2.pem四、修改root密码 s…

[C++] 小游戏 斗破苍穹2.11.1 版本 zty出品

前言 大家好&#xff0c;&#xff0c;今天zty带来的是新版本 2.11.1 &#xff0c;这个版本的主要内容是合成系统&#xff0c;在2.11.5版本时还会加入新的UI界面和声音系统&#xff08;Beep函数&#xff09;&#xff0c;这次也不要很多赞&#xff0c;就要20个吧&#xff01; 先…

微信小程序 【关键部分】

1. 动机 最近在开发小程序&#xff0c;小程序既需兼顾针对新用户的内容预览&#xff0c;又要为注册用户提供服务&#xff0c;简单梳理下&#xff0c;基本需求如下&#xff1a; 小程序共三个tab页&#xff0c;所有用户都可以浏览首页内容&#xff0c;了解我们可以提供的优质服…

2024年Q1季度果酒行业线上市场数据分析:女性消费力量强劲!

随着短视频推广和健康饮酒理念的盛行&#xff0c;果酒凭借酒精度数低、口味丰富、富含多种营养成分等优势逐渐受到了消费者的青睐。 Q1季度&#xff0c;消费者对果酒需求依旧旺盛。根据鲸参谋数据显示&#xff0c;今年Q1季度&#xff0c;线上电商平台&#xff08;某猫&#xf…

UE5(射线检测)学习笔记

这一篇会讲解射线检测点击事件、离开悬停、进入悬停事件的检测&#xff0c;以及关闭射线检测的事件&#xff0c;和射线检测蓝图的基础讲解。 创建一个简单的第三人称模板 创建一个射线检测的文件夹RadiationInspection&#xff0c;并且右键蓝图-场景组件-命名为BPC_Radiation…

RK3568 学习笔记 : 精简 u-boot env 默认复杂的多种引导启动设置

前言 环境&#xff1a; 正点原子 Atompi-CA1 RK3568 开发板、正点原子 DLRK3568 开发板&#xff0c;&#xff08;一时脑热买了两块 RK3568 开发板&#xff09;&#xff0c;Atompi-CA1 RK3568 开发板比较小巧&#xff0c;利于一些前期的嵌入式 Linux 开发学习与实践。 RK3568 开…

【C】67 二进制求和

给你两个二进制字符串 a 和 b &#xff0c;以二进制字符串的形式返回它们的和。 #include <stdio.h> #include <stdlib.h> #include <string.h>char* addBinary(char* a, char* b) {if (a NULL || b NULL) {return NULL;}int len_a strlen(a);int len_b …

shamefully-hoist = true

在根目录下创建npm的配置文件.npmrc&#xff0c;增加配置项 shamefully-hoist true 是一个在 pnpm&#xff08;一个快速的、磁盘效率高的包管理器&#xff09;中使用的配置选项。pnpm 的主要特点之一是它使用硬链接和符号链接来避免复制相同的包到每个项目的 node_modules 文件…

数据结构===树

文章目录 概要概念相关概念 有哪些常用的树小结 概要 树是一种新的数据结构&#xff0c;不同于数组&#xff0c;链表。就像大自然中的树&#xff0c;看下这个数据结构&#xff0c;很有意思&#xff0c;有一个主干&#xff0c;然后还有很多树叉&#xff0c;即支干。不错&#xf…

uniapp 应用闪退、崩溃异常日志捕获插件(可对接网络上报)插件 Ba-Crash

应用闪退、崩溃异常日志捕获插件&#xff08;可对接网络上报&#xff09; Ba-Crash 简介&#xff08;下载地址&#xff09; Ba-Crash 是一款uniapp应用闪退、崩溃异常日志捕获插件&#xff0c;支持对接网络上报、设置提示等等&#xff0c;方便对一些远程问题、原生问题进行分…