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

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

前言

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

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

whisper 简介

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

可选的 sizetiny, base, small, medium, large,详细数据如图

下面展示了 whisper 支持语言的种类,以及在 Common Voice 15Fleurs 数据集上使用的 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 应用到自己的工作与生活中

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

相关推荐
七颗糖很甜1 分钟前
预警!超级厄尔尼诺即将登场:2026-2027年全球气候或迎“极端狂暴模式”
java·大数据·python·算法·github
baidu_340998821 分钟前
如何用HTML函数工具测试显卡性能_基准跑分详解【详解】
jvm·数据库·python
格林威2 分钟前
面阵相机 vs 线阵相机:堡盟与Basler选型差异全解析 + Python实战演示
开发语言·网络·人工智能·python·数码相机·yolo·工业相机
深蓝海拓4 分钟前
基于QtPy (PySide6) 的PLC-HMI工程项目(十二)最后的工作
网络·笔记·python·学习·pyqt·plc
武帝为此5 分钟前
【数据质量校验简介】
人工智能·python·机器学习
MFXWW26 分钟前
从 Python 到 3D 开发:Ursina 引擎零基础入门学习路径与核心开发思路
python·游戏引擎·游戏程序·ursina
2301_813599556 分钟前
如何处理MongoDB副本集中节点IP变更_rs.reconfig强制更新配置矩阵
jvm·数据库·python
2301_796588509 分钟前
如何用数据库版本号机制平滑升级前端本地的数据表结构
jvm·数据库·python
盐烟9 分钟前
xpath-csv_doban_slider
开发语言·python
小学生-山海10 分钟前
【安卓逆向】WE Learn登录接口iv、pwd参数分析,加密逆向分析
开发语言·python·安卓逆向