【机器学习】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连+投票。

目录
相关文章
|
9月前
|
人工智能 算法 开发者
开源VLM“华山论剑”丨AI Insight Talk多模态专场直播预告
开源VLM“华山论剑”丨AI Insight Talk多模态专场直播预告
860 10
开源VLM“华山论剑”丨AI Insight Talk多模态专场直播预告
|
8月前
|
分布式计算 测试技术 Spark
科大讯飞开源星火化学大模型、文生音效模型
近期,科大讯飞在魔搭社区(ModelScope)和Gitcode上开源两款模型:讯飞星火化学大模型Spark Chemistry-X1-13B、讯飞文生音频模型AudioFly,助力前沿化学技术研究,以及声音生成技术和应用的探索。
694 2
|
8月前
|
机器学习/深度学习 数据采集 人工智能
通义实验室Mobile-Agent-v3开源,全平台SOTA的GUI智能体,支持手机电脑等多平台交互
近日,通义实验室MobileAgent团队正式开源全新图形界面交互基础模型 GUI-Owl,并同步推出支持多智能体协同的自动化框架 Mobile-Agent-v3。该模型基于Qwen2.5-VL打造,在手机端与电脑端共8个GUI任务榜单中全面刷新开源模型性能纪录,达成全平台SOTA。
2408 2
|
8月前
|
人工智能 自然语言处理 API
快速集成GPT-4o:下一代多模态AI实战指南
快速集成GPT-4o:下一代多模态AI实战指南
605 101
|
9月前
|
物联网
直播预告 | Qwen-lmage 技术分享+实战攻略直播
通义千问团队最新开源的图像生成模型 Qwen-Image,凭借其出色的中文理解与文本渲染能力,自发布以来获得了广泛关注与好评。
429 0
|
8月前
|
人工智能 Java 开发者
阿里出手!Java 开发者狂喜!开源 AI Agent 框架 JManus 来了,初次见面就心动~
JManus是阿里开源的Java版OpenManus,基于Spring AI Alibaba框架,助力Java开发者便捷应用AI技术。支持多Agent框架、网页配置、MCP协议及PLAN-ACT模式,可集成多模型,适配阿里云百炼平台与本地ollama。提供Docker与源码部署方式,具备无限上下文处理能力,适用于复杂AI场景。当前仍在完善模型配置等功能,欢迎参与开源共建。
2984 58
阿里出手!Java 开发者狂喜!开源 AI Agent 框架 JManus 来了,初次见面就心动~
|
9月前
|
人工智能 算法 测试技术
轻量高效,8B 性能强劲书生科学多模态模型Intern-S1-mini开源
继 7 月 26 日开源『书生』科学多模态大模型 Intern-S1 之后,上海人工智能实验室(上海AI实验室)在8月23日推出了轻量化版本 Intern-S1-mini。
1334 49

热门文章

最新文章