Whisper是一个开源的自动语音识别系统,它在网络上收集了680,000小时的多语种和多任务监督数据进行训练,使得它可以将多种语言的音频转文字。
Whisper的好处是开源免费、支持多语种(包括中文),有不同模型可供选择,最终的效果比市面上很多音频转文字的效果都要好。
目前有5个模型:
Model | Required VRAM | Relative speed |
tiny | ~1 GB | ~32x |
base | ~1 GB | ~16x |
small | ~2 GB | ~6x |
medium | ~5 GB | ~2x |
large | ~10 GB | ~1x |
1.创建Python工程
基础操作,不做细述。
2.安装Whisper
pip install openai-whisper
pip install stable-ts
注意:上面安装的两个库,默认使用的是cpu版本的torch和torchaudio,如果要使用gpu推理,请自行安装cuda版本的torch和torchaudio。
分别执行上述的pip命令来安装必要的库。
3.运行
新建一个Python脚本,叫做"test_whisper.py"。然后复制下面的代码:
import whisper
import stable_whisper as whisper
class WhisperTranscriber(object):
def __init__(self, model_name):
self.model = whisper.load_model(model_name)
def whisper_transcribe(self, audio_path):
audio = self.model.transcribe(audio_path, fp16=False, language='Chinese')
# 连接所有片段的文本,加上逗号
transcribed_text = ""
for segment in audio:
for word_timing in segment.words:
transcribed_text += word_timing.word + " "
# 在每一段文本后加上逗号
transcribed_text += ","
return transcribed_text.strip(",")
if __name__ == '__main__':
transcriber = WhisperTranscriber("small")
text = transcriber.whisper_transcribe("test.mp3")
print(text)
根据情况修改使用的模型。
并找一段mp3来放到项目根目录,重命名为"test.mp3"。
然后运行脚本。注意:模型越大,推理的时间越长。
当本地电脑没有模型时,脚本会自动下载,可能时间比较长,耐心等待。如下图:

等到模型下载完成后,可以看到就在推理预测语音中的文字了:

等到推理完成后,就能看到结果了:

可以看到small模型推理出来的有一些错别字(能看出来是什么歌吗?),为了测试效果,接着试试medium模型推理的如何,下面是推理结果:

可以看到medium模型已经很准确了,非常nice!