如何在矩池云上安装语音识别模型 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.9PyTorch1.10.1,同时也兼容更新的版本。

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

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

下载代码&模型

进入页面后,点击 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 不破坏句子完整性,保持原话轮、原语义群;

精准度更高

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

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

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

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

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

局限性

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

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


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

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

  1. 如何在矩池云上安装java

    在矩池云上安装java其实非常简单,按照下面的办法安装即可 安装 OpenJDK 11 apt update apt install openjdk-11-jdk java -version 安装 O ...

  2. 矩池云上安装CUDA头文件教程

    简介 CUDA头文件(cuda header files)在进行CUDA编程的时候会经常遇到.下面我介绍了一些常用的CUDA头文件及其安装. 英伟达官方源 矩池云cuda10及以上 https://d ...

  3. 矩池云上安装ikatago及链接教程

    https://github.com/kinfkong/ikatago-resources/tree/master/dockerfiles 从作者的库中可以看到,该程序支持cuda9.2.cuda10 ...

  4. 矩池云上安装AlphaFold教程

    AlphaFold官方只提供了docker镜像,但是因为矩池云本身就是docker所以比较不方便. 项目官方地址 https://github.com/deepmind/alphafold 这里我是参 ...

  5. 矩池云上安装yolov4 darknet

    这里我是用PyTorch 1.8.1来安装的 拉取仓库 官方仓库 git clone https://github.com/AlexeyAB/darknet 镜像仓库 git clone https: ...

  6. 矩池云上安装MATLAB R2020a遇到的坑

    解压 # 矩池云换apt源脚本 sh /public/script/switch_apt_source.sh # 安装7-Zip准备解压 apt-get install p7zip-full -y # ...

  7. 矩池云上安装yolov5并测试

    官方仓库:https://github.com/ultralytics/yolov5 官方文档:https://docs.ultralytics.com/quick-start/ 此案例我是租用了k8 ...

  8. 矩池云上安装 NVCaffe教程

    使用的是P100,cuda11.1base镜像 创建虚拟环境 conda create -n py36 python=3.6 conda deactivate conda activate py36 ...

  9. 矩池云上安装caffe gpu教程

    选用CUDA10.0镜像 添加nvidia-cuda和修改apt源 curl -fsSL https://mirrors.aliyun.com/nvidia-cuda/ubuntu1804/x86_6 ...

最新文章

  1. 统计学习方法笔记(三)-朴素贝叶斯原理及python实现
  2. [Android]生成heap dump文件(.hprof)
  3. jovi智慧场景运动步怎么是零_Jovi智慧场景,赛事直播提前提醒,让你不错过任何一刻的精彩...
  4. P5039 [SHOI2010]最小生成树(网络流)
  5. Android L系统mtk平台下AAL自动背光调整服务亮度曲线调试需要涉及的地方
  6. solr mysql 分词_solr学习篇(二) solr 分词器篇
  7. 岗位理解_如何正确理解策划岗位
  8. 日本区块链项目Jasmy与索尼VAIO联合发售笔记本电脑
  9. linux apache压缩包安装目录,源码包安装Apache服务
  10. 每日算法系列【LeetCode 面试题 17.05】字母与数字
  11. rpm和yum的使用
  12. [置顶] c++播放Flash文件
  13. 爱心函数可视化 python
  14. 记录一次实战破解无线wifi——Aircrack-ng
  15. mysql interval啥意思_MySQL interval()函数
  16. Latex 排版相关(一)
  17. mysql启动参数(/etc/my.cnf)详解汇总
  18. Python基础学习之 os 模块详解
  19. oracle中怎么判断为周五,求一年中所有星期五的日期
  20. 在sql执行横表转换过程中,出现特殊字符‘∞’

热门文章

  1. 服务器里的文件怎么删除
  2. UNLIMITED TABLESPACE权限
  3. python3字符串格式化
  4. 【浅谈电商】如何防止重复支付
  5. 第5周编程题在线测试
  6. 安全远程办公的十大技巧
  7. 阿里云买的域名备案成功了 后续怎么建站 ?
  8. 使用Validation框架检查数据格式
  9. Redis客户端访问
  10. 海行Newlifest M1骨传导耳机开箱,这音质真的碉堡了