【呆板学习】Whisper:开源语音转文本(speech-to-text)大模子实战

[复制链接]
发表于 2026-2-27 14:39:30 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×

目次
一、弁言
二、Whisper 模子原理
2.1 模子架构
2.2 语音处置惩罚
2.3 文本处置惩罚
三、Whisper 模子实战
3.1 环境安装
3.2 模子下载
3.3 模子推理
3.4 完备代码
3.5 模子摆设
四、总结


一、弁言

上一篇对ChatTTS文本转语音模子原理和实战举行了教学,第6次拿到了热榜第一🏆。本日,分享其对称功能(语音转文本)模子:Whisper。Whisper由OpenAI研发并开源,参数目最小39M,最大1550M,支持包罗中文在内的多种语言。由于其低资源资源、优质的生存结果,被广泛应用于音乐辨认、私信谈天、同声传译、人机交互等各种语音转文本场景,且商业化后代价不菲。本日免费分享给各人,不要再去费钱买语音辨认服务啦!
二、Whisper 模子原理

2.1 模子架构

Whisper是一个典范的transformer Encoder-Decoder结构,针对语音和文天职别举行多任务(Multitask)处置惩罚。

2.2 语音处置惩罚

   Whisper语音处置惩罚:基于680000小时音频数据举行练习,包罗英文、其他语言转英文、非英文等多种语言。将音频数据转换成梅尔频谱图,再颠末两个卷积层后送入 Transformer 模子。
  2.3 文本处置惩罚

   Whisper文本处置惩罚:文本token包罗3类:special tokens(标志tokens)、text tokens(文本tokens)、timestamp tokens(时间戳),基于标志tokens控制文本的开始和竣事,基于timestamp tokens让语音时间与文本对其。
  仅用平凡易懂的语言形貌了下Whisper的原理,如果想更深入的相识,请参考OpenAI官方Whisper论文。
三、Whisper 模子实战

3.1 环境安装

本文基于HuggingFace的transfomers库,采取pipeline方式举行极简朴的模子实用实战,具体的pipeline以及其他transformers模子利用方式可以参考我之前的文章。
以是,您仅必要安装transformers库。
  1. pip install transformers
复制代码
当前,语音经常会和视频等其他前言接洽起来,以是我发起您顺带安装多媒体处置惩罚工具ffmpeg,没有提供pip库,仅能依靠apt-get安装。
  1. sudo apt-get update && apt-get install ffmpeg
复制代码
3.2 模子下载

基于pipeline会主动举行模子下载,固然,如果您的网速不可,请更换HF_ENDPOINT为国内镜像。
  1. os.environ["HF_ENDPOINT"] = "https://hf-mirror.com"
  2. transcriber = pipeline(task="automatic-speech-recognition", model="openai/whisper-medium")
复制代码
 差别尺寸模子参数目、多语言支持环境、必要现存巨细以及推理速率如下

3.3 模子推理

推理函数仅需2行,非常简朴,基于pipeline实例化1个模子对象,将要转换的音频文件传至模子对象中即可:
  1. def speech2text(speech_file):
  2.     transcriber = pipeline(task="automatic-speech-recognition", model="openai/whisper-medium")
  3.     text_dict = transcriber(speech_file)
  4.     return text_dict
复制代码
3.4 完备代码

运行完备代码:
  1. python run_whisper.py -a output_video_enhanced.mp3
复制代码
完备代码如下:
  1. import osos.environ["HF_ENDPOINT"] = "https://hf-mirror.com"os.environ["CUDA_VISIBLE_DEVICES"] = "2"os.environ["TF_ENABLE_ONEDNN_OPTS"] = "0"from transformers import pipelineimport subprocessdef speech2text(speech_file):
  2.     transcriber = pipeline(task="automatic-speech-recognition", model="openai/whisper-medium")
  3.     text_dict = transcriber(speech_file)
  4.     return text_dictimport argparseimport jsondef main():    parser = argparse.ArgumentParser(description="语音转文本")    parser.add_argument("--audio","-a", type=str, help="输出音频文件路径")    args = parser.parse_args()    print(args)     text_dict = speech2text(args.audio)    #print("视频内的文本是:\n" +  text_dict["text"])    print("视频内的文本是:\n"+ json.dumps(text_dict,indent=4))if __name__=="__main__":    main()
复制代码
这里采取argparse处置惩罚下令行参数,将mp3音频文件输入后,颠末speech2text语音转文本函数处置惩罚,返回对应的文本,结果如下:

3.5 模子摆设

如果想将该服务摆设成语音辨认API服务,可以参考之前的FastAPI相干文章。
四、总结

本文是上一篇chatTTS文章的夫妻篇,既然教了各人怎样将文本转语音,就肯定要教各人怎样将语音转成文本,如许技能体系才完备。起首扼要概述了Whisper的模子原理,然后基于transformers的pipeline库2行代码实现了Whisper模子推理,渴望可以资助到各人。码字不易,如果喜欢等候您的关注+3连+投票。

如果您还偶然间,可以看看我的其他文章:
《AI—工程篇》
AI智能体研发之路-工程篇(一):Docker助力AI智能体开发提效
AI智能体研发之路-工程篇(二):Dify智能体开发平台一键摆设
AI智能体研发之路-工程篇(三):大模子推理服务框架Ollama一键摆设
AI智能体研发之路-工程篇(四):大模子推理服务框架Xinference一键摆设
AI智能体研发之路-工程篇(五):大模子推理服务框架LocalAI一键摆设
《AI—模子篇》
AI智能体研发之路-模子篇(一):大模子练习框架LLaMA-Factory在国内网络环境下的安装、摆设及利用
AI智能体研发之路-模子篇(二):DeepSeek-V2-Chat 练习与推理实战
AI智能体研发之路-模子篇(三):中文大模子开、闭源之争
AI智能体研发之路-模子篇(四):一文入门pytorch开发
AI智能体研发之路-模子篇(五):pytorch vs tensorflow框架DNN网络结构源码级对比
AI智能体研发之路-模子篇(六):【呆板学习】基于tensorflow实现你的第一个DNN网络
AI智能体研发之路-模子篇(七):【呆板学习】基于YOLOv10实现你的第一个视觉AI大模子
AI智能体研发之路-模子篇(八):【呆板学习】Qwen1.5-14B-Chat大模子练习与推理实战
AI智能体研发之路-模子篇(九):【呆板学习】GLM4-9B-Chat大模子/GLM-4V-9B多模态大模子概述、原理及推理实战
AI智能体研发之路-模子篇(十):【呆板学习】Qwen2大模子原理、练习及推理摆设实战
《AI—Transformers应用》
【AI大模子】Transformers大模子库(一):Tokenizer
【AI大模子】Transformers大模子库(二):AutoModelForCausalLM
【AI大模子】Transformers大模子库(三):特别标志(special tokens)
【AI大模子】Transformers大模子库(四):AutoTokenizer
【AI大模子】Transformers大模子库(五):AutoModel、Model Head及检察模子结构
【AI大模子】Transformers大模子库(六):torch.cuda.OutOfMemoryError: CUDA out of memory办理
【AI大模子】Transformers大模子库(七):单机多卡推理之device_map
【AI大模子】Transformers大模子库(八):大模子微调之LoraConfig
回复

使用道具 举报

登录后关闭弹窗

登录参与点评抽奖  加入IT实名职场社区
去登录
快速回复 返回顶部 返回列表