初探之基于 openai/whisper 模型实现语音转文本

大家好,欢迎来到前端研习圈。

前言

本期的主题是通过 OpenAi 的语言识别模型 whisper 来实践一个 语音转文本 的功能。

由于技术栈以 python 为主,结合受众群体考虑,本期我们主要完成环境部署,实现呢就不手敲了,直接找社区贡献的 demo 跑通来演示一下。在开始之前,我们先来大致了解一下 whisper。

whisper 简介

通过官方简介我们可以知道 whisper 是一个通用的,经过大量的音频数据训练出来的支持多任务处理的语言识别,语言翻译 模型

可选的 size 有 tiny, base, small, medium, large,详细数据如图

下面展示了 whisper 支持语言的种类,以及在 Common Voice 15 和 Fleurs 数据集上使用的 WER (单词错误率)或 CER (字符错误率) 相关指标

有了以上的了解,那么接下来,我们开始今天的实践~

环境安装

众所周知,凡事涉及到机器学习,模型训练等相关的领域,基本都是 python 技术栈,当然 whisper 也不例外。

在安装指南中我们可以了解到,whisper 虽然是用的 python(3.9.9) 版本 和 pyTorch(1.10.1) 版本来训练的,但也能兼容到比较新的版本

因此我们选择

  • python - 3.11.7 版本
  • pyTorch - 2.2.1 版本

为了方面后续灵活切换 python 的版本,我们先安装 python 的版本管理工具 pyenv

安装 pyenv

Windows 下,我们需要安装 pyenv 的 windows 版本 pyenv-win

pyenv 安装指南

github.com/pyenv-win/p...

这里我们直接选择下载 zip 包的方式,下载完成后将 bin 的路径配置到 环境变量 中即可

安装 python

有了 pyenv,我们直接执行如下命令

复制代码
pyenv install 3.11.7

然后等待安装完成

安装 pyTorch

pyTorch 是基于 python 的一个 深度学习 框架,我们直接到官网去拷贝安装指令即可

pyTorch 官网 https://pytorch.org/

这里 pip3 是 python3 的一个包管理工具,安装 python 时会同步安装。因此我们只需要把 安装指令 拷贝到终端执行,然后等待安装完成

perl 复制代码
pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118

安装 ffmpeg

whisper 在处理音频文件时会用到 ffmpeg ,这里也需要安装一下。我们直接到 github 中去下载 ffmpeg 最新版本的构建产物

github.com/BtbN/FFmpeg...

同样,下载完成后将 bin 目录配置到 环境变量 中即可

之后在终端确认一下是否安装成功

OK,到这里,需要的环境我们就全部安装好啦

DEMO

我们直接从社区提供的 demo 找一个比较具有代表性的来跑一下

github.com/gustavostz/...

先把这个仓库 fork 一下,clone 到我们本地

bash 复制代码
git clone git@github.com:Mumujianguang/whisper-clip.git

然后就是传统的依赖安装环节

复制代码
pip3 install -r requirements.txt

源码中默认用的是仅支持英文的 medium.en 模型,这里我们改成支持多语言的 medium 模型

接下来就可以把程序跑起来了

css 复制代码
python main.py

在启动程序之前,会先将模型下载下来,这里可以看到需要下载 1.42G 的内容

程序跑起来之后会运行一个弹窗面板,功能大致如下

  • 点击后开始录音,再次点击结束录音
  • 这段录音会落盘生成一个 wav 的音频文件
  • 随后交给 whisper 去识别输出音频中的内容

接下来我们说一句 吃饭没 我想吃蛋炒饭 ,结束录音后大概 1-2s,终端就输出了识别结果,丝毫不差,在此感叹一句 AI 的强大~

接着我再多说几句

  • 大家好,欢迎来到前端研习圈
  • 大家好,我是陆星材,请多多关心吧!

虽然有些字不准确,但发音都识别对了,这也还只是个中等模型,还是很不错了

写在最后

对于前端的同学来说,看完是不是觉得 AI 也并非遥不可及,未来类似基于 大模型 的库会越来越多,希望大家时刻关注前沿技术的发展,能早日将 AI 应用到自己的工作与生活中

这期就到这里,我们下期见~

相关推荐
2501_944521591 小时前
Immer 跨端三方库仓颉适配全流程
python·eclipse·django
信誓旦旦的程序猿1 小时前
【Python量化实战宝典 #26】止损与回撤控制手册:移动止损、最大回撤(Python 可跑)
python·1024程序员节·股票数据api·股票数据api接口·股票api数据接口·股票量化数据api·股票量化数据接口
2501_944521591 小时前
Deepmerge 跨端三方库仓颉适配全流程
java·python·eclipse·github
Patrick在香港2 小时前
同一行 strftime,两台机器跑出两种日期
python·datetime·时区·locale·日期处理
2601_967987372 小时前
用Python+OpenCV+YOLO写个游戏脚本:从自动瞄准到自动采集的保姆级教程
python·opencv·yolo·目标检测·游戏自动化
meiying88382 小时前
快递单号批量查询Python脚本:从手动到自动化的完整实现
开发语言·python·自动化
人工智能导论实践课2 小时前
【GUI桌面开发3】PyCharm配置外部工具
ide·python·pycharm
一千柯橘2 小时前
LangChain 的实时输出处理: stream_events 和 Streaming
python·langchain·agent
贾公子2 小时前
图片 AIGC 检测接入实战——URL 与 Base64 的取舍、体积校验与「你送过去的可能不是那张图」
python·aigc
SEO_juper3 小时前
Node.js 重定向链检测工具:301 跳了几跳、有没有成环,一次看清
xml·开发语言·python·node.js·json·bash