当前位置: 首页 > article >正文

AI生成字幕模型whisper介绍与使用

文章目录

  • 前言
  • 一、whisper介绍
  • 二、预训练模型下载与环境配置
  • 三、推理


前言

随着人工智能技术的飞速发展,AI生成字幕模型已成为视频内容创作和传播领域的重要工具。其中,OpenAI推出的Whisper模型以其卓越的性能和广泛的应用场景,受到了广大用户和研究者的关注。本文将详细介绍Whisper模型的基本原理、特点、应用场景以及使用方法,旨在帮助读者更好地了解和运用这一先进技术。

一、whisper介绍

Whisper是端到端的语音系统,相比于之前的端到端语音识别,其特点主要是:

  1. 多语种:英语为主,支持99种语言,包括中文。
  2. 多任务:语音识别为主,支持VAD、语种识别、说话人日志、语音翻译、对齐等。
  3. 数据量:68万小时语音数据用于训练,从公开数据集或者网络上获取的多种语言语音数据,远超之前语音识别几百、几千、最多1万小时的数据量。下面会展开介绍。
  4. 鲁棒性:主要还是源于海量的训练数据,并在语音数据上进行了常见的增强操作,例如变速[1]、加噪、谱增强[2]等。
  5. 多模型:提供了从tiny到Turbo,适合不同场景。其中Turbo 模型是 Large-V3 的优化版本,可提供更快的转录速度,同时将准确性的下降降至最低。如下图所示:在这里插入图片描述

Whisper模型的性能因语言而异。下表展示了大型-v3和大型-v2模型在不同语言上的性能分解,使用的是在Common Voice 15和Fleurs数据集上评估的WER(单词错误率)或CER(字符错误率,以斜体显示)。
在这里插入图片描述
模型采用了经典的基于Transformer的Encoder-Decoder的结构。模型输入的特征是80维Fbank特征,输出的label是文本ID,在文本ID之前是语种ID、任务类型、时间戳三个特殊标记。如下图所示。
在这里插入图片描述

二、预训练模型下载与环境配置

本文作者利用CT-Transformer标点模型 对中文开源数据(AISHELL1 AISHELL2 WENETSPEECH HKUST)加标点,基于Belle-whisper-large-v3-zh进行了Lora微调,得到标点能力提升的Belle-whisper-large-v3-zh-punct,在复杂场景下(wenetspeech_meeting)上有进一步提升。模型已经开源到Huggingface,欢迎下载:在这里插入图片描述
点进想要下载的模型界面点击
在这里插入图片描述

可以将下面的文件全部下载并移动到一个文件夹下在这里插入图片描述
在这里插入图片描述
环境配置:
创建虚拟环境并安装pytorch:

conda create -n whisper python=3.9
pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118

下载whisper项目:
cd到下载好的项目路径中
执行:

pip install -r requirement.txt

三、推理

运行下面代码:
model的路径就是刚才下载好的文件夹,transcriber是你准备识别的音频文件



from transformers import pipeline

transcriber = pipeline(
  "automatic-speech-recognition",
  model=r"F:\whisper-main\cccc/",return_timestamps=True
)

transcriber.model.config.forced_decoder_ids = (
  transcriber.tokenizer.get_decoder_prompt_ids(
    language="zh",
    task="transcribe"
  )
)

transcription = transcriber("D:\ApowerREC/1~1.mp3")
print(transcription)


http://www.kler.cn/a/393250.html

相关文章:

  • 【漏洞复现】灵当CRM datapdf.php 任意文件读取漏洞
  • WPF+MVVM案例实战与特效(四十七)-实现一个路径绘图的自定义按钮控件
  • harmony数据保存-数据持久化
  • ES7+ React/Redux/GraphQL/React-Native snippets 使用指南
  • 运行Zr.Admin项目(后端)
  • QT-【常用容器类】-QList类 QLinkedList类
  • 软件开发中的 Pull Request 工作流:逐步指南
  • springboot读取modbus数据
  • 《AI 使生活更美好》
  • 【go从零单排】gin+gorm理解及实现CRUD
  • 机器学习系列----KNN分类
  • 【Linux网络】Linux网络编程套接字,UDP与TCP
  • PCB安全电气间距
  • Python网络爬虫与数据采集实战——网络协议与HTTP
  • linux命令详解,存储管理相关
  • 排序算法 -堆排序
  • SQL面试题——奔驰SQL面试题 车辆在不同驾驶模式下的时间
  • 学Linux的第八天
  • 数字IC实践项目(10)—基于System Verilog的DDR4 Model/Tb 及基础Verification IP的设计与验证(付费项目)
  • uniapp 上传 base64 图片
  • ubuntu22.04上手指南(更新阿里源、安装ssh、安装chrome、设置固定IP、安装搜狗输入法)
  • 【二叉搜素树】——LeetCode二叉树问题集锦:6个实用题目和解题思路
  • 除了 Postman,还有什么好用的 API 测试工具吗
  • uni-app中使用 unicloud 云开发平台③
  • C++生成随机数
  • 信用租赁系统的灵活配置与智能化管理助力租赁市场发展