[论文] [模型卡] [Colab 示例]

Whisper 是一种通用的语音识别模型。它基于各种音频的大型数据集进行训练,也是一种多任务模型,可以执行多语言语音识别、语音翻译和语言识别。

方法

方法

Transformer 序列到序列模型针对各种语音处理任务进行训练,包括多语言语音识别、语音翻译、口语识别和语音活动检测。这些任务共同表示为解码器要预测的令牌序列,从而允许单个模型替换传统语音处理管道的许多阶段。多任务训练格式使用一组特殊标记,用作任务说明符或分类目标。

设置

我们使用 Python 3.9.9 和 PyTorch 1.10.1 来训练和测试我们的模型,但代码库预计与 Python 3.8-3.11 和最新的 PyTorch 版本兼容。代码库还依赖于一些 Python 包,最值得注意的是 OpenAI 的 tiktoken 用于其快速分词器实现。您可以使用以下命令下载并安装(或更新到)最新版本的 Whisper:

pip install -U openai-whisper

或者,以下命令将从此存储库中提取并安装最新提交及其 Python 依赖项:

pip install git+https://github.com/openai/whisper.git 

要将包更新到此存储库的最新版本,请运行:

pip install --upgrade --no-deps --force-reinstall git+https://github.com/openai/whisper.git

它还需要在系统上安装命令行工具 ffmpeg,大多数包管理器都可以使用该工具:

# on Ubuntu or Debian
sudo apt update && sudo apt install ffmpeg# on Arch Linux
sudo pacman -S ffmpeg# on MacOS using Homebrew (https://brew.sh/)
brew install ffmpeg# on Windows using Chocolatey (https://chocolatey.org/)
choco install ffmpeg# on Windows using Scoop (https://scoop.sh/)
scoop install ffmpeg

您可能还需要安装 rust,以防 tiktoken 没有为您的平台提供预构建的轮子。如果您在执行上述命令时看到安装错误,请按照 入门 页面安装 Rust 开发环境。此外,您可能需要配置环境变量,例如 .如果安装失败并显示 ,则需要安装 ,例如通过运行:pip installPATHexport PATH="$HOME/.cargo/bin:$PATH"No module named 'setuptools_rust'setuptools_rust

pip install setuptools-rust

可用的模型和语言

有六种型号尺寸,其中四种为仅英文版本,提供速度和精度的权衡。 以下是可用模型的名称及其相对于大型模型的近似内存需求和推理速度。 以下相对速度是通过在 A100 上转录英语语音来测量的,实际速度可能会因许多因素(包括语言、语速和可用硬件)而有很大差异。

大小参数纯英文模型多语言模型必需的 VRAM相对速度
39 Mtiny.entiny~1 GB~10 倍
基础74 Mbase.enbase~1 GB~7 倍
244 Msmall.ensmall~2 GB~4 倍
中等769 Mmedium.enmedium~5 吉字节~2 倍
1550 M不适用large~10 GB1 倍
809 M不适用turbo~6 GB~8 倍

纯英语应用程序的模型往往性能更好,尤其是 和 模型。我们观察到 和 模型的差异变得不那么显著。 此外,该模型是其优化版本,可提供更快的转录速度,同时将准确性的下降降至最低。.entiny.enbase.ensmall.enmedium.enturbolarge-v3

Whisper 的性能因语言而异。下图显示了在 Common Voice 15 和 Fleurs 数据集上评估的 WER(单词错误率)或 CER(字符错误率,以体显示)按语言划分的性能细分。与其他模型和数据集对应的其他 WER/CER 指标可在论文的附录 D.1、D.2 和 D.4 中找到,以及附录 D.3 中用于翻译的 BLEU(双语评估研究)分数。large-v3large-v2

命令行用法

以下命令将使用模型转录音频文件中的语音:turbo

whisper audio.flac audio.mp3 audio.wav --model turbo

默认设置(选择模型)适用于转录英语。要转录包含非英语语音的音频文件,您可以使用以下选项指定语言:turbo--language

whisper japanese.wav --language Japanese

添加会将语音翻译成英文:--task translate

whisper japanese.wav --language Japanese --task translate

运行以下命令以查看所有可用选项:

whisper --help

有关所有可用语言的列表,请参阅 tokenizer.py。

Python 用法

转录也可以在 Python 中执行:

import whispermodel = whisper.load_model("turbo")
result = model.transcribe("audio.mp3")
print(result["text"])

在内部,该方法读取整个文件并使用 30 秒的滑动窗口处理音频,在每个窗口上执行自回归序列到序列预测。transcribe()

下面是 和 的示例用法,它提供对模型的较低级别访问。whisper.detect_language()whisper.decode()

import whispermodel = whisper.load_model("turbo")# load audio and pad/trim it to fit 30 seconds
audio = whisper.load_audio("audio.mp3")
audio = whisper.pad_or_trim(audio)# make log-Mel spectrogram and move to the same device as the model
mel = whisper.log_mel_spectrogram(audio, n_mels=model.dims.n_mels).to(model.device)# detect the spoken language
_, probs = model.detect_language(mel)
print(f"Detected language: {max(probs, key=probs.get)}")# decode the audio
options = whisper.DecodingOptions()
result = whisper.decode(model, mel, options)# print the recognized text
print(result.text)

更多示例

请使用 讨论区 中的 Show and tell 类别来分享 Whisper 和第三方扩展的更多示例用法,例如 Web 演示、与其他工具的集成、不同平台的端口等。 🙌

许可证

Whisper 的代码和模型权重在 MIT 许可证下发布。有关更多详细信息,请参阅 LICENSE 。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/web/84847.shtml
繁体地址,请注明出处:http://hk.pswp.cn/web/84847.shtml
英文地址,请注明出处:http://en.pswp.cn/web/84847.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

回溯----8.N皇后

题目链接 /** 将n个棋子放在n*n的棋盘上,不同列,不同行,不同斜线 大致执行流程: 首先选取第一行第一格放置第一个棋子,再从第二行第一个位置开始选取合法的位置(不同行不同列不同斜线)放置棋子,重复上述流程迭代行数, 直到放置n个棋子。 若放置途中出现无合法位置的情况,回溯将…

微机电子拉伸试验机

对于不同材料的试样,由于其化学成分及组织的不同,在拉伸过程中会体现 出不同的物理现象及力学性质。西安力创(LETRY)公司专业制造WDL/WDW系列微机控制电子万能试验机,主要适用于金属板材、棒材、管材、金属丝、金属箔、…

【数据结构与算法】数据结构核心概念系统梳理

第一章 绪论:基础概念体系 🚩算法:问题求解步骤的描述。 🚩非递归的算法效率更高。 1.1 逻辑结构 vs 存储结构 维度逻辑结构存储结构(物理结构)定义数据元素之间的逻辑关系数据结构在计算机中的实现方式分类线性/树形/图/集合顺序/链式/索引/散列独立性独立于存储结构…

73页PPT | 大数据平台规划与数据价值挖掘应用咨询项目解决方案

推荐摘要:在数字化浪潮中,企业数据量呈几何级增长,却常因缺乏科学规划的大数据平台,陷入数据孤岛、处理效率低下的困境,难以充分挖掘数据价值。特推出大数据平台规划与数据价值挖掘应用咨询项目解决方案,正…

gRPC 与 Protobuf 的深度集成 —— 从服务定义到多语言交互(Go + Java 示例)

在前几篇文章中,我们已经掌握了 Protobuf 的基础语法、高级特性和序列化反序列化操作。本篇文章将深入讲解 gRPC 与 Protobuf 的集成,重点介绍如何通过 .proto 文件定义服务接口,并在 Go 和 Java 中实现 gRPC 服务与客户端的完整交互流程。我…

可信计算的基石:TPM技术深度解析与应用实践

可信计算的基石:TPM技术深度解析与应用实践 引言:数字世界的"信任之锚" 在数据泄露事件频发的时代,传统软件级安全防护已力不从心。TPM(可信平台模块)作为硬件级安全解决方案,正成为现代计算设…

「ECG信号处理——(18)基于时空特征的心率变异性分析」2025年6月23日

一、HRV概述 心率变异性(Heart rate variability ,HRV)分析是通过测量分析连续正常R-R间期的时间变化来反映心率的变化程度的,根据计算RR 序列的统计指标,或者是画出RR间期的直方图和散点图来反映HRV的大小情况。下面我们从男性与…

【学习笔记】深入理解Java虚拟机学习笔记——第10章 前端编译与优化

第10章 前端编译与优化 10.1 概述 1>前端编译器:Javac命令。 【.java文件->.class文件】 2>即时编译器:Hotspot.C1.C2 【.class文件->机器码】 3>提前编译器:JDK的Jaotc等【.java->机器码】 10.2 Javac 编译器 10.2.1 …

Python 区块链与Web3开发指南

https://www.python.org/static/community_logos/python-logo-master-v3-TM.png 区块链基础概念 区块链核心特性 python 复制 下载 class Block:def __init__(self, index, timestamp, data, previous_hash):self.index indexself.timestamp timestampself.data datas…

工业智能体调参闭环:从物料感知到智慧工艺的落地路径

用户定义目标:智能工艺的起点不是机器,而是人 在智能制造系统中,工艺调优的第一步并非直接依赖AI或自动化设备,而是始于用户的明确输入。用户需要在系统中定义产品的工艺要求,包括目标尺寸与规格(如长宽高…

【Linux学习笔记】进程间通信之共享内存

【Linux学习笔记】进程间通信之共享内存 🔥个人主页:大白的编程日记 🔥专栏:Linux学习笔记 文章目录 【Linux学习笔记】进程间通信之共享内存前言一. system V共享内存1.1 共享内存数据结构1.2 共享内存函数1.3 共享内存实现通信…

郭碧婷闯入女团赛道 与刘忻张予曦蔡诗芸组成ROLLING SISTERS

近日,郭碧婷与刘忻、张予曦、蔡诗芸组成的女团ROLLING SISTERS正式官宣,并发布《Rolling Life》《Alpha》两首单曲! 此次几位姐姐的组合让大家眼前一亮,尤其是郭碧婷造型颠覆以往。银灰色挑染短发搭配棱角分明的黑色烟熏妆&#x…

2025再升级:医疗数智立体化体系V2.0架构简介

在医疗数智立体化体系第一版基础上,融入量子物理的第一性原理计算、人工智能(AI)、高性能云计算(HPC)和标准化机器人自动化整合成“医疗数智立体化体系2.0”,代表了医疗研发未来的重要发展方向。这个体系的核心在于深度融合物理世界规律、智能计算与自动化执行,为医疗AI…

Day40 训练和测试的规范写法

目录 一、彩色和灰度图片测试和训练的规范写法:封装在函数中 单通道图片的规范写法 彩色图片的规范写法 二、展平操作:除第一个维度batchsize外全部展平 图像任务中的张量形状 NLP任务中的张量形状 1. Flatten操作 2. view/reshape操作 总结 三…

Linux 文件 I/O 与标准 I/O 缓冲机制详解

一、什么是标准 I/O?(FILE* 接口) 标准 I/O 是 C 标准库为我们提供的一套高级文件操作接口,核心基于结构体 FILE,常见函数如: fopen() / fclose() fread() / fwrite() fprintf() / fscanf() fflush() /…

C++的前世今生-C++11

C98(ISO/IEC 14882:1998) C98 是 C 的第一个标准化版本(ISO/IEC 14882:1998),它正式确立了 C 的核心语言特性和标准库。以下是 C98 的主要特性总结: 一、核心语言特性** 模板(Templates&…

词编码模型怎么进行训练的,输出输入是什么,标签是什么

词编码模型怎么进行训练的,输出输入是什么,标签是什么 词编码模型的训练本质是通过数据驱动的方式,将离散的文本符号映射为连续的语义向量。 一、训练机制:从符号到向量的映射逻辑 1. 核心目标 将单词/子词(Token)映射为低维向量,使语义相关的词在向量空间中距离更近…

【Linux指南】文件管理高级操作(复制、移动、查找)

引言 在Linux系统管理中,文件的复制、移动与查找是比基础操作更进阶的核心技能,它们构成了高效管理文件系统的"三驾马车"。当我们需要备份重要数据、重构目录结构或在庞大的文件系统中定位目标文件时,cp、mv、find等命令将成为最得…

【栈】-----【小C的记事本】

小C的记事本 题目描述 小C最近学会了 Java 小程序的开发,他很开心,于是想做一个简单的记事本程序练练手。 他希望他的记事本包含以下功能: append(str):向记事本插入字符串 str(英文字符)。delete(k)&am…

技能系统详解(2)——特效表现

特效会有个EffectManager用于统一管理所有特效,技能特效只是各类特效中的一种 EffectManager需要提供特效的创建,返回被封装为EffectHandle 每类特效都有各种不同的配置参数,这些配置参数会传递给EffectManager用于生成EffectHandler 为支…