如何在矩池云上安装语音识别模型 Whisper

news2025/8/7 3:42:29

如何在矩池云上安装语音识别模型 Whisper

Whisper 是 OpenAI 近期开源的一个语音识别的模型,研究人员基于 680,000 小时的标记音频数据进行训练,它同时也是一个多任务模型,可以进行多语言语音识别以及语音翻译任务,可以将语音音频转录为所讲语言的文本,以及翻译成英语文本。

查看论文:https://cdn.openai.com/papers/whisper.pdf
开源代码:https://github.com/openai/whisper

Whisper 的训练数据中65%为英语音频和相匹配的转录文本,大约18%为非英语音频和英语转录文本,17% 为非英语音频和相应语言的转录文本。非英语的数据中包含了98种不同的语言,而某一特定语言中的性能与所采用这一语言的训练的数据量直接相关,如在英语语音的识别中,模型已接近人类水平的鲁棒性和准确性。

矩池云安装 Whisper 过程

环境配置&租用机器

在 Whisper 的 Setup 中,我们可以看到所需要的都是Python 3.9.9 PyTorch1.10.1,同时也兼容更新的版本。

Setup

打开矩池云-主机市场,在此我们选中 K80 进行尝试,根据 Setup 可以选择Pytorch 1.12系统镜像,点击下单。

选择镜像

运行后,点击 JupyterLab,进而“点击打开”。

打开 JupyterLab

下载代码&模型

进入页面后,点击 Terminal

Terminal

打开 Terminal 后,输入以下代码

pip install git+https://github.com/openai/whisper.git 

如下

安装

安装成功后,页面提示 successfully installed…

安装成功

如果系统中没有安装过 ffmpeg,还需输入以下内容进行安装

sudo apt update && sudo apt install ffmpeg

安装过程中会提示 是否继续,输入 y ,回车即可

安装过程

安装完成后,状态如下

成功状态

使用 Whisper 进行转录

准备文件

方法1: 通过矩池云网盘客户端上传文件

打开网盘客户端,可以点击上传,选择文件,或者直接将文件拖拽到客户端界面。

网盘客户端

方法2:通过 JupyterLab 上传文件

在页面上点击,进入到/mnt,可以直接将音频文件在此进行上传。(此处我们自建了一个文件夹,大家可以根据需要来进行操作)

图片描述

进行转录/翻译

Whisper 在默认条件下,输入音频是进行转录的
我们以转录为例子,在左侧文件夹,复制文件路径,

复制路径

输入 whisper 路径如下

whisper mnt/int/QA2.wav

在不对其他项目进行设定的情况下,系统会自动检测语言,进而进行转录,

转录

以吴恩达 Andrew Ng 和 AI 科学家Christine Payne 的一次访谈 的音频转录为例,系统将自动生成时间轴和文字内容,如下。

文字内容

同时,在默认文件夹还会生成 srt txt vtt三种格式的文件,以方便使用者在不同情境下调用,指定文件夹也可以通过指令 --output_dir 进行指定。

文件格式

针对于多个文件,处理方式为直接将多个文件路径放置于 whisper 之后,即可逐个进行处理。

逐个处理

参数解析

Whisper 指定运行参数方式为:whisper 音频路径 --具体任务。
在 whisper 中,更多可运行参数如下:

参数名描述默认值
[–model {tiny.en,tiny,base.en,base,small.en,small,medium.en,medium,large}]–model 模型类型 从小到大的不同模型,分别为tiny.en,tiny,base.en,base,small.en,small,medium.en,medium,large
[–model_dir MODEL_DIR]存储模型文件的路径~/.cache/whisper
[–device DEVICE]使用Pytorch的设备(CPU or GPU)CUDA
[–output_dir OUTPUT_DIR]– output_dir 保存输出的路径None
[–verbose VERBOSE]是否打印过程和debug信息True
[–task {transcribe,translate}][–task {transcribe,translate}] --task 任务:是否执行 X->X 语音识别 (‘transcribe’) 或 X->英文翻译 (‘translate’)transcribe
[–language {af,am,ar,as,az,ba,be,bg,bn,bo,br,bs,ca,cs,cy,da,de,el,en,es,et,eu,fa,fi,fo,fr,gl,gu,ha,haw,hi,hr,ht,hu,hy,id,is,it,iw,ja,jw,ka,kk,km,kn,ko,la,lb,ln,lo,lt,lv,mg,mi,mk,ml,mn,mr,ms,mt,my,ne,nl,nn,no,oc,pa,pl,ps,pt,ro,ru,sa,sd,si,sk,sl,sn,so,sq,sr,su,sv,sw,ta,te,tg,th,tk,tl,tr,tt,uk,ur,uz,vi,yi,yo,zh,Afrikaans,Albanian,Amharic,Arabic,Armenian,Assamese,Azerbaijani,Bashkir,Basque,Belarusian,Bengali,Bosnian,Breton,Bulgarian,Burmese,Castilian,Catalan,Chinese,Croatian,Czech,Danish,Dutch,English,Estonian,Faroese,Finnish,Flemish,French,Galician,Georgian,German,Greek,Gujarati,Haitian,Haitian Creole,Hausa,Hawaiian,Hebrew,Hindi,Hungarian,Icelandic,Indonesian,Italian,Japanese,Javanese,Kannada,Kazakh,Khmer,Korean,Lao,Latin,Latvian,Letzeburgesch,Lingala,Lithuanian,Luxembourgish,Macedonian,Malagasy,Malay,Malayalam,Maltese,Maori,Marathi,Moldavian,Moldovan,Mongolian,Myanmar,Nepali,Norwegian,Nynorsk,Occitan,Panjabi,Pashto,Persian,Polish,Portuguese,Punjabi,Pushto,Romanian,Russian,Sanskrit,Serbian,Shona,Sindhi,Sinhala,Sinhalese,Slovak,Slovenian,Somali,Spanish,Sundanese,Swahili,Swedish,Tagalog,Tajik,Tamil,Tatar,Telugu,Thai,Tibetan,Turkish,Turkmen,Ukrainian,Urdu,Uzbek,Valencian,Vietnamese,Welsh,Yiddish,Yoruba}]
–language 语言:原音频中使用的语言
[–temperature TEMPERATURE]–temperature 温度参数:文章使用的是基于温度系数的采样,这个参数就是采样的温度系数
[–best_of BEST_OF]在温度非0时的抽样使用的候选词数5
[–beam_size BEAM_SIZE]beam搜索中的beam数据的数目,仅在温度为0时可用5
[–patience PATIENCE]beam解码是使用的可选耐性系数
optional patience value to use in beam decoding, as in https://arxiv.org/abs/2204.05424, the default (1.0) is equivalent to conventional beam search (default: None)
None
[–length_penalty LENGTH_PENALTY]– length_penalty 惩罚系数:用于正则化的 optional token length penalty coefficient (alpha) as in https://arxiv.org/abs/1609.08144, uses simple length normalization by default (default: None)
可选的惩罚系数 α \alpha α
None
[–suppress_tokens SUPPRESS_TOKENS]采样期间要抑制的token ID的逗号分隔列表;“-1”时将抑制大多数特殊字符(常用标点符号除外)-1
[–initial_prompt INITIAL_PROMPT]可选文本,作为第一个窗口的提示。None
[–condition_on_previous_text CONDITION_ON_PREVIOUS_TEXT]–condition_on_previous_text 先前文本使用状况:如果为 True,则提供模型的先前输出作为下一个窗口的提示; 禁用可能会使文本跨窗口不一致,但模型变得不太容易陷入故障
[–fp16 FP16]在fp16中进行推理True
[–temperature_increment_on_fallback TEMPERATURE_INCREMENT_ON_FALLBACK]–temperature_increment_on_fallback 回退温度系数:当解码未能满足以下任一阈值时的回退增加的温度0.2
[–compression_ratio_threshold COMPRESSION_RATIO_THRESHOLD]compression_ratio_threshold 压缩率阈值:如果gzip压缩比高于这个值,则认为解码失败2.4
[–logprob_threshold LOGPROB_THRESHOLD]如果平均对数概率低于此值,则将解码视为失败-1.0
[–no_speech_threshold NO_SPEECH_THRESHOLD]–no_speech_threshold 静音阈值:如果 <|nospeech|> 标记的概率高于此值,并且解码由于“logprob_threshold”而失败,则将该段视为静音0.6
[–threads THREADS]使用Pytorch CPU做推理时,使用的CPU线程数0

保存环境,下次直接调用镜像

如果使用比较顺利,希望下次可以直接启动已经安装好的 Whisper 的镜像,可以在此处“保存到个人环境”,如果是团队共享,则可以“保存到团队环境”

保存环境

如果已经矩池云微信公众号上绑定过账户,则在手机上同时会收到保存环境成功的提醒。

提醒

保存环境后,下次使用该环境,可以直接在“我的环境”中迅速打开,无需再重复进行上一次的设置

保存环境

优势和局限性

我们针对一段在 CVPR 2022 会议上一段技术音频同时使用 Youtube 生成的字幕与 Whisper 生成的字幕进行了比对。

句子完整性更好

Whisper 能按照speaker语气停顿断句,断句后有的甚至影响了精准性 vs 不破坏句子完整性,保持原话轮、原语义群;

对比1

精准度更高

Whisper 在精准度上确实比较高,比如如下这个例子。

对比2

这种精准度,同时体现在弱语气/低语调的插入语/状语的处理结果更优,如下。

对比3

在数字方面,精准度似乎也更胜一筹。

对比4

更重要的是,我们发现一些专业术语的转录方面,Whisper 也呈现出更精准的状态。

对比5

当然,以上并具有统计学意义,只是我们在做尝试的时候发现的一些 Whisper 优秀之处。

局限性

当然,Whisper 也有其局限性,我们也汇集了一些如下情形。

1、目前 Whisper 模型只能对语音识别后,转换为对应语言的文本,或将其翻译为英语,则意味着在翻译这一层面,最终无法实现由英语转换为其他语言,在这一方面,其他模型在多语言方面可能去的了更多的进展;

局限性
2、在实时性方面,Whisper 模型本身不支持即使转录的功能,但是官方认为其速度和规模可以支持实时转译,但仍需在此基础上进行二次开发;
3、如输入的音频中为多语言混合,Whisper 对于这种情景也暂无解决方案;
4、此外,对于环境音比较嘈杂的情况(比如有噪音,或者有背景音乐),如不设定具体的 temperature ,有一定可能转录结果会有所不同,所以如有这种情况可以进行设置,关于 Temperature 的一些信息可以参考https://algowriting.medium.com/gpt-3-temperature-setting-101-41200ff0d0be。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【CVPR 2022】QueryDet:加速高分辨率小目标检测

大连不负众望&#xff0c;疫情了&#xff0c;我们又封校了&#xff0c;可能初步封个5678天&#xff0c;微笑jpg 论文地址&#xff1a;https://arxiv.org/pdf/2103.09136.pdf 项目地址&#xff1a;https://github.com/ ChenhongyiYang/QueryDet-PyTorch 1. 简介 背景&#xf…

java中的线程池

文章目录前言线程池的优点线程池的实现原理线程池的创建线程池提交任务线程池的关闭合理配置线程池线程池的监控总结前言 在处理一些比较复杂或者费时的任务的时候&#xff0c;我们常常会选择多线程的方式去处理。那么怎么创建多个线程呢&#xff0c;当然不可能是一个一个创建…

微信如何制作自己的小程序【微信小程序】

小程序在微信的生态中&#xff0c;一直是比较受到企业商家的欢迎&#xff0c; 由于小程序的制作门槛比较低&#xff0c;开发人员可以根据自己喜欢的风格进行定制开发。 微信平台上&#xff0c;很多商家都在为制作小程序而发愁。那么微信如何制作自己的小程序呢&#xff1f; 一…

[附源码]java毕业设计疫情期间物资分派管理系统

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

ebay卖家开店如何做到稳定出单?自养号测评对eBay卖家有什么优势?

ebay卖家开店如何做到稳定出单&#xff0c;有何方法。 1、上架 ebay新账户快速下单的方式是拍卖&#xff0c;但拍卖价格不稳定&#xff0c;可能会让商家赔钱。为了快速打开新账户的局面&#xff0c;商家不妨在早期阶段开始拍卖&#xff0c;因为拍卖是最能驱动流量的。请注意&…

中国互联网众筹行业

近些年&#xff0c;中国互联网发展迅速&#xff0c;众筹这种起源于美国的新型互联网金融模式更是一直处于风口浪尖。在“大众创业、万众创新”的背景下&#xff0c;这种低门槛的融资模式也深受欢迎&#xff0c;加上阿里、京东、苏宁三大电商的巨头的相继入场&#xff0c;更令这…

HDC2022的无障碍参会体验,手语服务是如何做到的?

华为开发者大会2022&#xff08;HDC&#xff09;上&#xff0c;HMS Core手语数字人以全新形象亮相&#xff0c;并在直播中完成了长达3个多小时的实时手语翻译&#xff0c;向线上线下超过一千万的观众提供了专业、实时、准确的手语翻译服务&#xff0c;为听障人士提供了无障碍参…

组播技术→

基本概念 224.0.0.0-239.255.255.255 组播IP地址是D类。 224.0.0.0-224.0.0.255 本地网络使用,不进行路由转发。 232.0.0.0–232.255.255.255为特定源组播地址 组播mac地址的高24bit为0x01005e,mac 地址的低23bit为组播ip地址的低23bit。 组播协议 组播通信四要素 源发现…

【SpringBoot 】策略模式 之 一键切换文件上传方式

&#x1f3b6; 文章简介&#xff1a;【SpringBoot 】策略模式 之 一键切换文件上传方式 &#x1f4a1; 创作目的&#xff1a;将策略模式的思想融入到java编码中&#xff0c;更加便捷的实现文件上传方式的切换。阿里云Oss对象存储、腾讯云Cos对象存储、七牛云Kodo对象存储以及本…

swift指针内存管理-闭包的循环引用

swift指针&内存管理-引用 无主引用 和弱引用类似&#xff0c;无主引用不会牢牢保持引用的实例。但是不像弱应用&#xff0c;无主引用假定是永远有值的 当我们去访问一个无主引用的时候&#xff0c;总是假定有值的&#xff0c;所以就可能会发生程序的崩溃 如果两个对象的…

单片机的调试接口 JTAG SWD

JTAG-DP 和 SW-DP DP&#xff1f;debug port SW serial wire PA13 JTMS SWDIO ------JTAG 模式选择引脚&#xff08;JTMS&#xff09; PA14 JTCK SWCLK ------JTAG时钟引脚&#xff08;JTCK&#xff09; PA15 JTDI ------JTAG 数据输入引脚&#xff08;JTDI&#xff09; PB3 J…

基于VitePress创建组件文档

我们准备用vitepress做我们的组件文档&#xff0c;方便我们浏览组件&#xff0c;提供使用指南给用户。 安装VitePress 安装&#xff1a; yarn add -D vitepress创建第一个文档&#xff1a; mkdir docs && echo # Hello VitePress > docs/index.md增加脚本命令&a…

十大跑步运动耳机品牌排行榜,值得推荐的六款运动耳机

除了工作时间&#xff0c;大多数人群都喜欢去运动健身&#xff0c;戴着耳机放着喜爱的音乐&#xff0c;慢跑在城市的每个角落里&#xff0c;看着各种事物&#xff0c;悠然自得释放压力的同时还能更加有动力去运动&#xff0c;不得不说&#xff0c;运动确实能够让我们暂时忘却烦…

算法训练Day28 | LeetCode93.复原IP地址(回溯算法中的切割问题2);78 子集(每个节点都收集结果);90.子集II(子集问题+去重)

前言&#xff1a;算法训练系列是做《代码随想录》一刷&#xff0c;个人的学习笔记和详细的解题思路&#xff0c;总共会有60篇博客来记录&#xff0c;记录结构上分为 思路&#xff0c;代码实现&#xff0c;复杂度分析&#xff0c;思考和收获&#xff0c;四个方面。如果这个系列的…

通过DIN算法进行深度特征组合商品推荐 数据+代码(可作为毕设)

案例知识点 推荐系统任务描述:通过用户的历史行为(比如浏览记录、购买记录等等)准确的预测出用户未来的行为;好的推荐系统不仅如此,而且能够拓展用户的视野,帮助他们发现可能感兴趣的却不容易发现的item;同时将埋没在长尾中的好商品推荐给可能感兴趣的用户。 方法概述:…

美团SemEval 2022结构化情感分析跨语言赛道冠军方法总结

总第547篇2022年 第064篇美团语音交互部针对跨语言结构化情感分析任务中缺少小语种的标注数据、传统方法优化成本高昂的问题&#xff0c;通过利用跨语言预训练语言模型、多任务和数据增强方法在不同语言间实现低成本的迁移&#xff0c;相关方法获得了SemEval 2022结构化情感分析…

使用dispatchEvent解决重叠元素响应事件问题

.npm 下的缓存文件太多怎么办&#xff1f;.npm 下缓存的包长时间未清理&#xff0c;占用空间太大怎么办&#xff1f; 查看磁盘占用情况 linux 系统里&#xff0c;查看磁盘占用情况&#xff1a;df -h 1.查看单个目录磁盘占用情况du -sh /指定目录 2.查看所有目录的磁盘占用情况…

基于VGG与LSTM实现针对图片的问答任务 数据+代码 可以作为毕设

任务描述:本教程将通过深度学习的方式实现一个简单的视觉问答模型,视觉问答的任务内容是将一张图片和一个自然语言问题作为输入,结合这两种信息,机器生成一条自然语言答案。本教程通过数据准备,视觉问答模型构建,视觉问答模型训练,视觉问答模型评估,视觉问答模型预测等…

2022年亚太C题资料汇总更新目录

1.17版本更新内容&#xff1a; 为大家收集了一套网上的成品论文&#xff0c;切记只能借鉴&#xff0c;不可全抄 1.16版本更新内容&#xff1a; 根据半成品论文中提及的加分点&#xff0c;为大家收集了本次比赛中作图较为好看的方式。 1.15版本更新内容&#xff1a; 对上传…

Hbuilder出现 CR LF

今天打开Hbuilder编辑器发现&#xff0c;咦&#xff0c;怎么变成这个样子了&#xff0c;我设置了啥&#xff1f; 最终尝试寻找了半天&#xff0c;原来这是显示了换行符号 &#xff0c;取消这个勾选就OK