Whisper实现语音识别转文本

#教程

主要参考开源免费离线语音识别神器whisper如何安装,
OpenAI开源模型Whisper——音频转文字

Whisper是一个开源的自动语音识别系统,它在网络上收集了680,000小时的多语种和多任务监督数据进行训练,使得它可以将多种语言的音频转文字。

Whisper的好处是开源免费、支持多语种(包括中文),有不同模型可供选择,最终的效果比市面上很多音频转文字的效果都要好

Whisper目前有5个模型,随着参数的变多,转文字的理解性和准确性会提高,但相应速度会变慢:

这篇文章会介绍怎样安装和使用Whisper进行音频转文字。

系统环境

官方说他们使用的是Python 3.9.9 and PyTorch 1.10.1来训练和检验的程序,但预计兼容python 3.7以后的版本和pytorch近期更新版本。 大家在安装whisper的时候请尽量保证python版本与官方一致或更新版本,或者至少是3.7版本以后,这样可以避免一些版本不同导致的莫名奇妙的错误。 本文测试系统为windows1064位、python版本3.9.13和windows10 64位、python3.7.5版本.

安装步骤

它还需要一些依赖。比如ffmpeg、pytorch等。本文没涉及python的安装,默认读者是已经安装好python的,如果你不会安装python的话,建议去视频平台搜索安装教程,安装好后再来进行下面的步骤。

1、安装chocolatey

安装chocolatey是为了后面方便在Windows中安装ffmpeg

chocolatey安装
以管理员身份打开Powershell,运行:

Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072; iex ((New-Object System.Net.WebClient).DownloadString('https://community.chocolatey.org/install.ps1'))

2、安装ffmpeg

安装好chocolatey后,以管理员身份打开Powershell,输入:

choco install ffmpeg

3.pytorch的安装

这里我们使用pip安装。

打开pytorch.org,下拉页面。

按照下图选择要安装的版本。我选择的是稳定版,windows系统,pip安装方式,python语言、cpu版本的软件。

选择好后上图中框选的那行代码就是使用pip安装pytorch的命令。 在命令行界面运行

pip3 install torch torchvision torchaudio

安装pytorch,安装好后这一步也就完成了。

4.whisper的安装

以上步骤都完成后。 按照官方文档,先运行

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

然后再运行

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

完成whisper的安装。

whisper的简单使用

我们准备一段音频,使用whisper将其转换成文字。 以此音频为例:

  • https://wwvx.lanzoul.com/i2lvw0jrippa

音频所在文件夹中右键打开cmd窗口。 (如果是win10的话就在文件夹的空白处按住shift,然后鼠标右键单击,打开powershell窗口)

输入whisper audio.mp3,回车运行。在命令行窗口中显示的是转写结果,同时在当前文件夹下生成三个字幕文件。以下是三种格式的对比。

更换转写模型

以上whisper audio.mp3的命令形式是最简单的一种,它默认使用的是small模式的模型转写,我们还可以使用更高等级的模型来提高正确率。 比如

whisper audio.mp3 --model medium

medium模型耗费时间更长,但也更精准。一般而言,综合权衡速度与精准度,选择small也够用了,如果你对语言识别的精准度高可以使用medium,medium的精准度已经相当高了,如我文章开头所说,我用medium模式识别了我读的一段5min的音频,400多字。正确率基本百分百,只错了2个英文单词,还是因为我发音不准,尴尬。

当然还有其他的模型可供选择,可以在命令行运行whisper --help查看帮助。 有以下11种模式可供选择。

[--model {tiny.en,tiny,base.en,base,small.en,small,medium.en,medium,large-v1,large-v2,large}]

结语

本文简单介绍了whisper的用途、在windows系统下安装部署whisper的方法以及whisper的简单用法。

关于whisper的使用部分仅介绍了命令行模式的使用方法,如果你会使用python,也可以使用以下代码来运行whisper。

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

了解更多请参考官方文档。

  • https://github.com/openai/whisper

或者如果你想要在网页上运行whisper,可以安装Whisper Webui。 可以参考:

  • https://www.bilibili.com/read/cv19254244

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/428534.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【学位论文】上海交通大学 研究生学位论文 本地保存

上海交大研究生学位论文网:http://thesis.lib.sjtu.edu.cn/ (只能校内访问或SJTU VPN访问) 如果希望下载论文,需要参考:https://github.com/olixu/SJTU_Thesis_Crawler 安装过程 安装过程的几个坑: &a…

【Java开发】Java实现调用微信机器人,发送企业微信通知

请直接看原文: 【Java开发】Java实现调用微信机器人,发送企业微信通知_java 企业微信推送机器人消息-CSDN博客 ------------------------------------------------------------------------------------------------------------------------------- 企业微信机器…

无需安装!7款一键在线UI设计利器

制作完原型后,需要优化界面。此时是UI设计师的任务。UI设计软件对设计师来说非常重要。UI设计工具的使用是否直接影响到最终结果的质量,所以有人会问:UI界面设计使用什么软件?这里有一些UI设计师和对UI设计感兴趣的朋友列出了五款好用免费的U…

Unity 动态加载音频和音效

想要加载音效和音频需要两个组件: 听: 播: 一收一发 在层级中,右键创建 音频源 ,放入物体的子物体中。 播放 方式一 拖动需要播放的音频文件到,音频源组件中。 using System.Collections; using Syst…

java BIO

目录 Java BIO基本介绍 Java BIO工作机制 传统的BIO编程实例回顾 1、BIO模式下发送和接收消息 2、BIO模式下多发和多收消息 3、BIO模式下接收多个客户端 伪异步I/O编程 基于BIO形式下的文件上传 Java BIO模式下的端口转发思想 Java BIO基本介绍 Java BIO就是传统的jav…

Pytorch学习 day03(Tensorboard)

Tensorboard Tensorboard能够可视化loss的变化过程,便于我们查看模型的训练状态,也能查看模型当前的输入和输出结果 在Pycharm中,可以通过按住ctrl,并左键点击某个库来进入源文件查看该库的使用方法 SummaryWriter是用来向log_di…

C语言:指针(二)

目录 1.数组名的理解2.使用指针访问数组3.一维数组传参的本质4.二级指针5.指针数组6.字符指针变量7.数组指针变量8.二维数组传参的本质9.函数指针变量10.函数指针数组11.回调函数12.qsort函数13.使用回调函数模拟实现qsort函数 1.数组名的理解 int main() {int arr[] { 1,2,3…

上帝视角看GPU(5):图形流水线里的不可编程单元

【GPU】图形流水线基础【GPU】逻辑上的模块划分【GPU】部署到硬件【GPU】完整的软件栈 前几期我们过了一遍GPU的软硬栈。这次我们将深入GPU图形流水线的一些细节,看看那些不可编程的模块是怎么工作的。 对于GPU的图形流水线来说,最核心最重要的一个组件就…

通过人工智能增强的对话建立有意义的联系

人工智能如何重塑我们的交流?2024年最新对话AI趋势 在技术和人类互动比以往任何时候都更加复杂地交织在一起的时代,人工智能增强的对话已成为建立有意义的联系的关键要素。 这种转变不仅关乎效率,还关乎效率。 这是为了丰富沟通的结构。 在这…

MATLAB--pie函数绘制复杂分类饼图(2)--附案例代码

MATLAB–pie函数绘制复杂分类数据的饼状图 目录 MATLAB--pie函数绘制复杂分类数据的饼状图摘要1. 问题描述2. 具体步骤:3. 绘制结果4. 小结 摘要 在数据可视化中,饼状图是一种常用的展示分类数据的方式。之前,文章介绍了使用MATLAB绘制饼状图…

Vue中的计算属性和方法有什么区别?

Vue.js是一款流行的JavaScript前端框架,提供了丰富的功能和便捷的开发方式。在Vue中,计算属性和方法是常用的两种方式来处理数据和逻辑。但它们之间存在一些区别,本文将详细介绍Vue中计算属性和方法的区别,并通过示例代码加深理解…

654.最大二叉树

这段Java代码实现了一个名为Solution的类,其中包含两个方法:constructMaximumBinaryTree()和constructMaximumBinaryTree1(),目的是从给定的整数数组nums中构建出一个最大二叉树。以下是详细的注释说明: class Solution {// 主方…

GitHub Copilot extension activation error: ‘No access to GitHub Copilot found‘

好不容易学生认证通过了,打开vscode用copilot结果一直报这个错误。我的原因是:还未给copilot授权, 通过了学生认证后要进入这里进行授权:

MCU设计--M3内核整体功能说明

整体架构 内核特性 CM3内核支持3级流水哈佛结构 :数据和指令隔离Blanked SP :两个堆栈,一个堆栈只允许系统操作,另一个堆栈开放给用户。Handler and Thread modes低延迟中断进入和退出支持非对齐操作嵌套中断向量 最大支持1-240个外部中断可设置3-8的优先级可动态配置优先级…

一文了解什么是园区网以及如何部署园区网

目录 一、局域网分类 二、园区网的业务部署内容 1、构建高可靠可冗余网络 2、组播业务的快速开展 3、语音业务的部署 4、网络安全的部署 5、网络管理和维护的应用 一、局域网分类 (1)园区网: 目的:让各种服务器提供服务 …

mysql学习笔记3——授权操作

利用select查询数据库数据时,可以在后面加上参数 意为限制显示条数 对数据库进行远程操作时,为了避免不同用户操作混乱,要设置不同用户的权限,可以使用 具体格式为 其中*代表任意均可 ,这里用户创建采用与授权同时进…

【OJ】求和与计算日期

文章目录 1. 前言2. JZ64 求123...n2.1 题目分析2.2 代码 3. HJ73 计算日期到天数转换3.1 题目分析3.2 代码 4. KY222 打印日期4.1 题目分析4.2 代码 1. 前言 下面两个题目均来自牛客,使用的编程语言是c,分享个人的一些思路和代码。 2. JZ64 求123…n …

北京大学发布,将试错引入大模型代理学习!

引言:探索语言智能的新边界 在人工智能的发展历程中,语言智能始终是一个核心的研究领域。随着大语言模型(LLM)的兴起,我们对语言智能的理解和应用已经迈入了一个新的阶段。这些模型不仅能够理解和生成自然语言&#x…

20240304-1-操作系统

操作系统 知识体系 Questions 1.进程和线程的区别 进程是系统进行资源分配和调度的基本单位;线程是CPU调度和分派的基本单位。 每个进程都有独立的代码和数据空间(程序上下文),程序之间的切换会有较大的开销;线程可…

Java基础 - 7 - 常用API(三)

API(全称 Application Programming Interface:应用程序编程接口) API就是Java帮我们已经写好的一些程序,如类、方法等,可以直接拿过来用 JDK8 API文档:Java Platform SE 8 一. JDK8之前传统的日期、时间 …