github链接:链接
我这里使用anaconda来部署,debian12系统,其他linux也同样
可以使用gpu或者cpu版本,建议使用n卡,rtx3060以上
一、前期准备
1.linux系统
链接:debian安装
链接:ubuntu安装
2.anaconda
链接:anaconda安装
3.cuda
链接:cuda安装
二、安装部署
1.创建新的conda环境
conda create -n whisper python=3.9
conda activate whisper
2.安装PyTorch
gpu版本
conda install pytorch torchvision torchaudio pytorch-cuda=11.8 -c pytorch -c nvidia
cpu版本
conda install pytorch torchvision torchaudio cpuonly -c pytorch
3.安装ffmpeg
conda install ffmpeg -c conda-forge
4.安装Whisper
pip install -U openai-whisper
5.验证
whisper --help
如果有反应就是安装正确
三、模型说明
可以使用不同尺寸的模型,对硬件的要求也不一样,速度也不一样
模型在第一次使用,如果没有的情况下会下载,如果下载过慢,可以尝试手动下载
会放在 ~/.cache/whisper/文件夹下
0.效果参考
如果主要以中文为目标,tiny、base、small效果差,medium勉强可以用,large效果最好但是速度慢很多,turbo效果仅次于large,但是速度很快,所以是优选。
生成会有多个文件格式,适用不同情况。
1.模型下载地址(.pt)
模型在第一次使用,如果没有的情况下会自动下载,如果下载过慢,可以尝试手动下载,所以先跳过这一步,如果后面太慢再回来
放在 ~/.cache/whisper/文件夹下
tiny:链接
base:链接
small:链接
medium:链接
large-v3:链接
2.模型下载地址(.safetensors)不推荐
下载的是model.safetensors这个模型
safetensors模型不能直接使用,需要转化为.pt格式,如果需要直接可以用,需要下载pt文件
tiny模型下载地址:链接
large模型下载地址:链接
turbo模型下载地址:链接
如果下载过慢,可以使用国内镜像https://hf-mirror.com/
四、使用
1.简单转录
whisper audio.mp3
2.使用特定尺寸模型
whisper audio.mp3 --model large
转录多个(多种)
whisper audio.flac audio.mp3 audio.wav --model turbo
3.指定语言
有多种语言可以选择,需要参考官方,我这里使用汉语来处理
whisper audio.wav --language Chinese --model turbo
4.通过python调用
除了手动输入命令,当然可以用python编程使用,下面是官方的案例,我就直接贴出来了:
import whisper
model = whisper.load_model("turbo")
# load audio and pad/trim it to fit 30 seconds
audio = whisper.load_audio("audio.mp3")
audio = whisper.pad_or_trim(audio)
# make log-Mel spectrogram and move to the same device as the model
mel = whisper.log_mel_spectrogram(audio).to(model.device)
# detect the spoken language
_, probs = model.detect_language(mel)
print(f"Detected language: {max(probs, key=probs.get)}")
# decode the audio
options = whisper.DecodingOptions()
result = whisper.decode(model, mel, options)
# print the recognized text
print(result.text)
五、其它
1.视频转音频
视频占用空间大,可以先在另一台机器进行处理成音频,然后再进行转化
当然是使用ffmpeg,我这里将.ts视频转化为.wav格式,
-vn:去掉视频流。
-ar 16000:调整采样率为 16kHz(Whisper 推荐)。
-ac 1:设置单声道。
ffmpeg -i abcd.ts -vn -acodec pcm_s16le -ar 16000 -ac 1 abcd.wav
2.分段处理
这里分段成300s一个视频
ffmpeg -i abcd.ts -f segment -segment_time 300 -c copy segment_%03d.ts