0.Whisper介绍
(1)起因:最近在油管上下载视频,但是下载后发现两个问题,一是下载的视频无字幕;二是找了半天油管的字幕下载途径,结果发现下载的字幕的提取效果不太好。于是乎发现OpenAI发布的字幕提取开源库Whisper可解决我的问题,因此写此博文只是为了记录我学习的过程,与对此工具感兴趣的博友共勉。
(2)Whisper简介:Whisper 是一种通用语音识别模型。它是在大量不同音频数据集上进行训练的,同时也是一个多任务模型,支持多语言的语音识别、语音翻译和语言识别。Git链接地址。
(3)主要用途:一些英文视频没有字幕,且自动生成字幕错误太多。后续将陆续增加(1)将Whisper集成进入到一个小软件中操作类似教程;(2)提取英文字幕后的准确翻译。
1.Whisper安装
whisper的安装不是简简单单一句命令pip install whisper就行,它需要一些依赖,如音频相关的ffmpeg,深度学习pytorch库等。
1.1 依赖库安装
whisper依赖库安装步骤:步骤1.下载ffmpeg并添加环境变量;步骤2安装PyTorch-GPU版本
步骤1.下载ffmpeg并添加环境变量
ffmpeg安装教程(windows版):安装及路径设置
注:博主下载的第二个,如下图红色方框。然后按照上述教程设置好路径即可。
1.2 Whisper安装
pip install whisper
2.Whisper使用
这里的基本使用是以命令形式,而非代码形式,此外默认Whisper的可执行文件路径添加到了系统路径。
2.1 Whisper基本使用(语音识别)
查看Whisper使用说明,在cmd终端中输入
whisper -h
基本使用:whisper +【可选参数】+音频文件.mp3或者视频文件.mp4,这里可选参数默认不添加,如下:
whisper test.mp3
默认输出结果:首先在终端输出检测音频的一些基本信息,然后输出检测的内容输出,当所有检测完成后将在输出文件夹中产生5个文件,文件名和你的源文件一样,但扩展名分别是:.json、.srt、.tsv、.txt、.vtt。除了识别为普通文本,可以直接生成电影字幕,还可以调json格式做开发处理。
可选参数说明:
参数 | 说明 | 可选值 |
---|---|---|
-h|--help | 显示Whisper使用说明 | 无 |
--model | 语音识别的模型 | 共5个,分别是tiny,base,small,medium,large,默认small |
--model_dir | 模型权重文件 | 按照Whisper下载 |
--device | 用于PyTorch推理的设备(可以cpu或者GPU) | 默认:cpu,cuda表示GPU |
--output_dir | 输出文件路径 | 默认与音频文件路径一致,名称一致,后缀不一 |
--output_format | 输出字幕文件格式 | 默认txt,vtt,srt,tsv,json五种格式,若要指定某种格式 -f srt |
--verbose | 是否打印进度和调试消息 | 默认:True,不打印:--verbose False |
--task | 执行翻译任务 | 默认只有其他语言翻译成英文,不支持翻译成其他 |
--language | 提取字幕的语言类型 | 可以指定,若不指定,系统会检测到 |
2.2 Whisper进阶使用
2.2.1 语音识别中更换识别模型
首先是提供给我们的识别模型总5个,默认small,越往下识别整体识别效果越好,但是对电脑硬件配置要求越高,以及识别速度有所减缓。
whisper test.mp3 --model medium
2.2.2 将识别的语言自动翻译成英文
添加**–task translate**选项将把语音翻译成英语,这在为中文视频生成英语字幕时非常有用,但是仅且只支持翻译成英文,
whisper test.mp3 --model medium --task translate
2.2.3 解决幻听的可能方案
有时语音识别会出现幻听,例如一些语气停顿或者发音等原因导致识别出语音与该片段无关。这些问题是由参数引起的。幻听的解决方案是引入 VAD,但 VAD 对动手能力要求较高。如果你的视频转录出现了严重幻听,建议先尝试调节参数阈值。
–no_speech_threshold 无声识别的阈值,默认为 0.6。当 no_speech_threshold 高于阈值且 logprob_threshold 低于预设时,该片段将被标记为静默。对于非英语长视频来说,建议将其调低,否则经常出现大段的重复识别。
–logprob_threshold 转录频次的阈值,默认为 -1.0。当 logprob_threshold 低于预设时,将不对该片段进行转录。建议修改为 None 或更低的值。
–compression_ratio_threshold 压缩比的阈值,默认为 2.4。当 compression_ratio_threshold 高于预设时,将不对该片段进行转录。
–no_speech_threshold 0.5 --logprob_threshold None --compression_ratio_threshold 2.2 是我常用的参数,你可以按视频情况来调节。幻听解决方法参考
3.其他相关
(1)如果你想要在网页上运行whisper,可以安装Whisper Webui。跳转链接,见第7部分
(2)文本转语音库-pyttsx3:pyttsx3安装及使用教程
由于本意想做中英文视频字幕的添加,现在初步解决了英文字幕提取,后续还将完成英文字幕翻译以及视频和字幕的一些操作。
3.1 中英文字幕播放同步
由于视频文件和字幕文件单独分开的,如果字幕和视频文件同名,一般浏览器默认自动加载字幕,但由于博主下载的视频主要支持中英文同步显示,因此需要特别设置下,播放器选择的是免费且使用较多的PotPlayer播放器(一款完全免费,颜值高,画质好,无广告,易上手,功能强大,支持格式多,几乎最完美的,本地视频播放器。)。PotPlayer播放器下载地址
PotPlayer播放器同时显示外挂中英双字幕的设置方法:使用教程
3.2视频和字幕合并
视频和字幕处理工具很多,如ffmpeg、剪映以及专业视频制作软件等,但软件有一定学习成本,所以采用ffmpeg提供的一个命令行操作,在windows下的cmd命令中按照如下输入:
使用说明:ffmpeg -i 视频路径 -vf subtitles=字幕路径 输出视频文件文章来源:https://www.toymoban.com/news/detail-849588.html
#下面操作注意切换到视频和字幕所在的路径
ffmpeg -i test.mp4 -vf subtitles=test.srt release_with_srt.mp4
文章来源地址https://www.toymoban.com/news/detail-849588.html
到了这里,关于【Python实用API】语音转文本-whisper的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!