【机器学习】Whisper:开源语音转文本(speech-to-text)大模型实战

简介: 【机器学习】Whisper:开源语音转文本(speech-to-text)大模型实战

一、引言

上一篇对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库。

pip install transformers

当前,语音经常会和视频等其他媒介联系起来,所以我建议您顺带安装多媒体处理工具ffmpeg,没有提供pip库,仅能依靠apt-get安装。

sudo apt-get update && apt-get install ffmpeg

3.2 模型下载

基于pipeline会自动进行模型下载,当然,如果您的网速不行,请替换HF_ENDPOINT为国内镜像。

os.environ["HF_ENDPOINT"] = "https://hf-mirror.com"
 
transcriber = pipeline(task="automatic-speech-recognition", model="openai/whisper-medium")

不同尺寸模型参数量、多语言支持情况、需要现存大小以及推理速度如下

3.3 模型推理

推理函数仅需2行,非常简单,基于pipeline实例化1个模型对象,将要转换的音频文件传至模型对象中即可:

def speech2text(speech_file):
    transcriber = pipeline(task="automatic-speech-recognition", model="openai/whisper-medium")
    text_dict = transcriber(speech_file)
    return text_dict

3.4 完整代码

运行完整代码:

python run_whisper.py -a output_video_enhanced.mp3

完整代码如下:

import os
os.environ["HF_ENDPOINT"] = "https://hf-mirror.com"
os.environ["CUDA_VISIBLE_DEVICES"] = "2"
os.environ["TF_ENABLE_ONEDNN_OPTS"] = "0"
 
from transformers import pipeline
import subprocess
 
def speech2text(speech_file):
    transcriber = pipeline(task="automatic-speech-recognition", model="openai/whisper-medium")
    text_dict = transcriber(speech_file)
    return text_dict
 
import argparse
import json
def 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连+投票。

目录
相关文章
|
2月前
|
人工智能 算法 开发者
开源VLM“华山论剑”丨AI Insight Talk多模态专场直播预告
开源VLM“华山论剑”丨AI Insight Talk多模态专场直播预告
209 10
开源VLM“华山论剑”丨AI Insight Talk多模态专场直播预告
|
20天前
|
机器学习/深度学习 数据采集 人工智能
通义实验室Mobile-Agent-v3开源,全平台SOTA的GUI智能体,支持手机电脑等多平台交互
近日,通义实验室MobileAgent团队正式开源全新图形界面交互基础模型 GUI-Owl,并同步推出支持多智能体协同的自动化框架 Mobile-Agent-v3。该模型基于Qwen2.5-VL打造,在手机端与电脑端共8个GUI任务榜单中全面刷新开源模型性能纪录,达成全平台SOTA。
221 2
|
10天前
|
人工智能 自然语言处理 API
快速集成GPT-4o:下一代多模态AI实战指南
快速集成GPT-4o:下一代多模态AI实战指南
193 101
|
13天前
|
机器学习/深度学习 人工智能 前端开发
通义DeepResearch全面开源!同步分享可落地的高阶Agent构建方法论
通义研究团队开源发布通义 DeepResearch —— 首个在性能上可与 OpenAI DeepResearch 相媲美、并在多项权威基准测试中取得领先表现的全开源 Web Agent。
1332 87
|
2月前
|
数据采集 机器学习/深度学习 编解码
小红书 hi lab开源最强多模态大模型dots.vlm1,性能对标闭源 Gemini 2.5 Pro 和 Seed-VL1.5
小红书 hi lab开源最强多模态大模型dots.vlm1,性能对标闭源 Gemini 2.5 Pro 和 Seed-VL1.5
315 0
小红书 hi lab开源最强多模态大模型dots.vlm1,性能对标闭源 Gemini 2.5 Pro 和 Seed-VL1.5
|
2月前
|
物联网
直播预告 | Qwen-lmage 技术分享+实战攻略直播
通义千问团队最新开源的图像生成模型 Qwen-Image,凭借其出色的中文理解与文本渲染能力,自发布以来获得了广泛关注与好评。
133 0
|
2月前
智谱发布GLM-4.5V,全球开源多模态推理新标杆,Day0推理微调实战教程到!
视觉语言大模型(VLM)已经成为智能系统的关键基石。随着真实世界的智能任务越来越复杂,VLM模型也亟需在基本的多模态感知之外,逐渐增强复杂任务中的推理能力,提升自身的准确性、全面性和智能化程度,使得复杂问题解决、长上下文理解、多模态智能体等智能任务成为可能。
385 0
|
10天前
|
机器学习/深度学习 算法 数据可视化
从零开始训练推理模型:GRPO+Unsloth改造Qwen实战指南
推理型大语言模型兴起,通过先思考再作答提升性能。本文介绍GRPO等强化学习算法,详解其原理并动手用Qwen2.5-3B训练推理模型,展示训练前后效果对比,揭示思维链生成的实现路径。
122 1
从零开始训练推理模型:GRPO+Unsloth改造Qwen实战指南
|
14天前
|
人工智能 Java 开发者
阿里出手!Java 开发者狂喜!开源 AI Agent 框架 JManus 来了,初次见面就心动~
JManus是阿里开源的Java版OpenManus,基于Spring AI Alibaba框架,助力Java开发者便捷应用AI技术。支持多Agent框架、网页配置、MCP协议及PLAN-ACT模式,可集成多模型,适配阿里云百炼平台与本地ollama。提供Docker与源码部署方式,具备无限上下文处理能力,适用于复杂AI场景。当前仍在完善模型配置等功能,欢迎参与开源共建。
444 1
阿里出手!Java 开发者狂喜!开源 AI Agent 框架 JManus 来了,初次见面就心动~

热门文章

最新文章