文章目录
前言
随着AI大模型的不断发展,语音识别等周边内容也再次引发关注,通过语音转文字再与大模型交互,从而实现语音与大模型交互。
今天我们介绍下语音识别领域的顶级选手whisper。
一、whisper是什么?
whisper是openai开源的语音识别模型,也是使用了Transformer架构。
openai宣称whisper的语音识别能力已经到了人类的水平。
接下来我们参考Github结合其他技术博客内容,实操下whisper的使用。
二、使用步骤
1.安装
1)pip安装whisper
pip install -U openai-whisper
2)安装ffmpeg
下载地址:ffmpeg下载地址https://github.com/BtbN/FFmpeg-Builds/releases
选择对应操作系统的安装包即可
Linux系统也可以直接命令方式安装。
对于Windows系统,下载到本地后解压缩即可,但是需要设置环境变量,路径bin(就是在这个路径下有ffmpeg.exe)
特意说明:whisper内部其实调用了ffmpeg,使用的就是cmd形式,应该是将音频文件转为流式以及按时间段分成小段音频(最终识别结果就是按时间段分开的)
2.python调用
python
import whisper
model = whisper.load_model("base")
result = model.transcribe("audio.mp3")
print(result["text"])
第一次运行的时候,首先需要下载模型文件,base属于比较小尺寸的模型,还有small、large等。
另外如果可能报错,可以尝试重启下开发工具再试,可能就好了(我就遇到这种问题,可能没有重启开发工具,找不到ffmpeg)
3.识别效果评估
我使用了一个11分钟的会议录音文件测试。CPU环境。
使用base模型,用时约2分钟,质量还行
使用small模型,用时约4分钟,质量比base模型的好一些,但是有些反而不如base模型的。
整体上,还行吧。
4.一点封装
由于不同大小的模型识别速度上还是差不少,因此还要结合实际情况选择使用哪个模型,基于这个基础对调用做了一点封装
python
import whisper
from datetime import datetime
# 模型根路径
model_root="E:\Models\whisper"
class whisper_utils:
# model_name="base"
# model_name="small"
def __init__(self,model_name="base"):
self.model = whisper.load_model(name=model_name,download_root=model_root)
def audio_to_txt(self,audio_file: str):
now = datetime.now().strftime("%Y-%m-%d %H:%M:%S")
print(f"{now} 开始识别...")
result = self.model.transcribe(audio_file)
now = datetime.now().strftime("%Y-%m-%d %H:%M:%S")
print(f"{now} 识别完成")
return result
这里我把模型路径自己设置了下。
和多数模型文件一样,默认情况下,whisper模型也会下载到C盘Users下当前用户文件夹的.cache下,很容易导致C盘塞满。
5.参考链接
总结
本篇主要介绍了whisper的安装、调用、识别效果评估以及一点调用封装。希望可以帮助正好有需要的小伙伴。