浅试OpenAI免费开源通用语音识别模型Whisper

浅试OpenAI免费开源通用语音识别模型Whisper

四月 10, 2023 阅读量

今年终于度过了忙碌的时期,可以搞搞自己感兴趣的事情了。最近OpenAI的ChatGPT挺火的,就简单尝试了下这个公司开源的Whisper(偶然看到的)。

简介


Whisper是一个由OpenAI训练并开源的神经网络,该神经网络在英语语音识别方面的稳健性和准确性接近人类水平。
Whisper是一种自动语音识别(ASR)系统,基于从网络上收集的680000多小时的语言数据进行训练,支持99种不同语言的转录以及将这些语言翻译成英语,能够生成带时间轴的字幕文件。
有兴趣的可以看看代码论文(我是看不懂)。

安装

Whisper可以离线,本地化部署。以Win10为例,需要电脑有Python环境(直接用安装包安装即可,这里省略)。

下载并安装(或更新到)最新版本的Whisper
pip install -U openai-whisper
或者用以下命令从GitHub中提取并安装最新版的Whisper
pip install git+https://github.com/openai/whisper.git

ps:用这个安装的话,提示git命令无效的话,用pip安装Git会提示找不到版本,Windows系统建议直接自己下载安装Git就好。或者用choco来装,如果有装的话。

安装ffmpeg,用于读取音频

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# on Ubuntu or Debian
sudo apt update && sudo apt install ffmpeg

# on Arch Linux
sudo pacman -S ffmpeg

# on MacOS using Homebrew (https://brew.sh/)
brew install ffmpeg

# on Windows using Chocolatey (https://chocolatey.org/)
choco install ffmpeg

# on Windows using Scoop (https://scoop.sh/)
scoop install ffmpeg

因为电脑里没有Chocolatey和Scoop,就直接从FFmpe官网上直接下载了,然后配置环境变量好了。

安装rust,以防tokenizer无法为您的平台提供预构建的轮子
pip install setuptools-rust

主要命令参数

help

whisper --help查看所有可用选项

task

--task分为transcribe(语音转录,默认)和translate(翻译,只支持英文)

language

--language设置语音转录的语种(范围详见:tokenizer.py,默认截取音频的前30秒来判断语种),如指定日语--language Japanese

model

--model设置转录模型。官方提供5种模型,转录效果为 tiny < base < small < medium < large,转录时间也会变长(英文视频转录则在模型参数上添加后缀.en来提高转录速度,默认使用默认使用small)。

模型 大小 单英语模型 多语言模型 最低显存 转录速率
tiny 39 M tiny.en tiny ~1 GB ~32x
base 74 M base.en base ~1 GB ~16x
small 244 M small.en small ~2 GB ~6x
medium 769 M medium.en medium ~5 GB ~2x
large 1550 M N/A large ~10 GB 1x

第一次使用会先下载模型,模型默认本地存放路径为C:\Users\<username>\.cache\whisper\<model>

演示

Whisper的表现因语言而异,因为笔记本没有GPU,我只尝试了对日语,tiny和small两个模型,结果如下:

tiny根据停顿断句,速度快但是准确率堪忧。最后生成.json.srt.tsv, .txt, .vtt文件。
whisper "西川貴教 - Meteor‐ミーティア‐.mp3" --model tiny --language Japanese

small断句不错,准确率也很高,但是慢点(我用cpu没跑完就停了)。
whisper "西川貴教 - Meteor‐ミーティア‐.mp3" --model small --language Japanese

Whisper除了完美的英语转录效果相比,其他语言还有很大的提升空间,但是生成的字幕文件,大大减少了时间轴的调整,以及文案校对的工作量。加上机翻,自己手动做字幕不是梦。