当前位置:AIGC资讯 > AIGC > 正文

【Python实用API】语音转文本-whisper

Whisper安装及使用教程

0.Whisper介绍 1.Whisper安装 1.1 依赖库安装 1.2 Whisper安装 2.Whisper使用 2.1 Whisper基本使用(语音识别) 2.2 Whisper进阶使用 2.2.1 语音识别中更换识别模型 2.2.2 将识别的语言自动翻译成英文 2.2.3 解决幻听的可能方案 3.其他相关 3.1 中英文字幕播放同步 3.2视频和字幕合并

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=字幕路径 输出视频文件

#下面操作注意切换到视频和字幕所在的路径
ffmpeg -i test.mp4 -vf subtitles=test.srt release_with_srt.mp4

更新时间 2024-04-04