OpenAI 在 GitHub 上发布的 Whisper 是一个自动语音识别(ASR)系统。Whisper 是一个端到端的深度学习模型,它对音频片段进行处理,并预测对应的文本输出。
Whisper 个人觉得是目前免费做语音识别最好的系统,使用它的理由:
- 免费,开放源代码,意味着可以自由使用,包括商业化。
- 在数据训练的大模型基础上,识别任务上变现出色,背景噪音的情况下,也有稳定的表现。
- 语言识别模型可自由选择下载,意味着可以离线使用,只要你的机器硬件足够高,识别速度是非常快的。
- 多语言能力以及翻译能力,支持多种语言的音频,同时也支持翻译成英文,目前仅支持英文
- 可以作为命令行工具使用,也提供相关的 python 接口可供编程的能力
下面介绍安装和基本使用方法
安装
$ pip install git+https://github.com/openai/whisper.git
$ sudo apt update && sudo apt install ffmpeg
这里安装了 whisper 的 python 库,同时也需要安装 ffmpeg,因为 whisper 在处理音频文件时,会用到 ffmpeg 来进行音频解码和转码。
使用
Whisper 安装好后,提供了两种使用方式,即 终端使用 和 编程使用。
这里准备了一个音频素材,从 youtube 下载了一段 bbc 的视频,使用 ffmpeg
做了音频提取得到了一个 9秒的音频片段。
关于如何使用
ffmpeg
提取音频,参考文章 音视频处理工具 FFmpeg 的 TOP 10 常用场景
视频链接 ????
音频链接 ????
编程使用
这里使用 medium 模型,模型大小不到2G,初次使用会下载此模型,下载的路径是 ~/.cache/whisper
import whisper
model = whisper.load_model("medium")
result = model.transcribe("dataset/9s.wav")
print(result["text"])
You know, meeting with startups and there's not a startup right now out there that is not applying these AI Generative models these large language models to every interesting problem of the sun
这里只是简单输出语音识别后的文字,更多的API,如生成不同格式的文本,见官方文档
终端使用
语音转文本
# 使用 medium 模型识别音频,生成 json、srt、tsv、txt、vtt 文件
whisper --model medium dataset/9s.wav
上面的命令会将识别的音频输出到控制台,同时生成带时间刻度的5个文本文件,当然也可根据自己的需求指定要生成的文件格式。
- 9s.json json格式的文本
- 9s.srt 文本文件格式,用于存储视频文件的字幕信息
- 9s.tsv 用于存储表格数据,类似于 CSV
- 9s.txt 简单文本
- 9s.vtt 文本文件格式,用于存储视频文件的字幕信息
语音转文本(翻译)
# 带翻译功能,但目前只能讲目标语言翻译到"英文"
whisper --model medium dataset/9s.wav --task translate
结论
OpenAI Whisper 可以说应该是目前最好的 ASR,基于已训练的模型可以自动识别语音,同时支持翻译能力。如果产品级使用,还需要解决模型加载速度以及RT时长的问题。
没有评论:
发表评论