2024年4月17日星期三

走进 OpenAI Whisper 开源语音识别技术

openai-whisper.webp

OpenAI 在 GitHub 上发布的 Whisper 是一个自动语音识别(ASR)系统。Whisper 是一个端到端的深度学习模型,它对音频片段进行处理,并预测对应的文本输出。

Whisper 个人觉得是目前免费做语音识别最好的系统,使用它的理由:

  1. 免费,开放源代码,意味着可以自由使用,包括商业化。
  2. 在数据训练的大模型基础上,识别任务上变现出色,背景噪音的情况下,也有稳定的表现。
  3. 语言识别模型可自由选择下载,意味着可以离线使用,只要你的机器硬件足够高,识别速度是非常快的。
  4. 多语言能力以及翻译能力,支持多种语言的音频,同时也支持翻译成英文,目前仅支持英文
  5. 可以作为命令行工具使用,也提供相关的 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,如生成不同格式的文本,见官方文档

终端使用

whisper-help.webp

语音转文本

# 使用 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时长的问题。

Reference

没有评论:

发表评论

Retrieving Secret Values Using REST Services in Infisical

Infisical is the open source secret management platform that developers use to centralize their application configuration and secrets like...