openai whisper使用

whisper使用

介绍

Whisper是一种通用的语音识别模型。它是在大量不同音频数据集上训练的,也是一个多任务模型,可以执行多语言语音识别、语音翻译和语言识别。

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

论文链接:https://arxiv.org/abs/2212.04356

方法

Transformer序列到序列模型在各种语音处理任务上进行训练,包括多语言语音识别、语音翻译、口语识别和语音活动检测。这些任务被联合表示为将由解码器预测的令牌序列,从而允许单个模型代替传统语音处理流水线的许多级。多任务训练格式使用一组特殊的标记,用作任务说明符或分类目标。

安装

环境:

Python==3.8-3.11

PyTorch==1.10.1

使用pip安装

pip install -U openai-whisper

或者

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

FFmpeg安装

FFmpeg是一款音视频编解码工具。Whisper需要使用FFmpeg工具提取声音数据,所以需要安装配置FFmpeg。

  1. 官网下载:https://ffmpeg.org/download.html

image-20240819213912464

image-20240819214124841

  1. 下载解压后配置环境变量:环境变量 --> path --> 新建 --> 解压目录\bin

image-20240819214256830

  1. 验证:

image-20240819214445325

  1. 在python环境中安装依赖包:
pip install ffmpeg-python

使用whisper

代码

import whispermodel = whisper.load_model("base")  # 共有四种模型:base、small、medium、large
result = model.transcribe("../XX.mp3", language="Chinese")print(result["text"])

base结果

坐平二十七号。我打烈归来,掩着花园的林阴路走着,狗跑在我前边。突然,狗放慢脚步,逆足前行,好像袖到了前边有什么野物。我顺着林阴路望去,看见了一只,嘴边还带黄色,头上升着柔毛的小麻雀。风猛烈地吹打的林阴路上的白话术。麻雀,从朝里低落下来,呆呆地伏在地上,孤立无缘地,张开两只羽毛,还未封满的小翅吧。我的狗慢慢向它靠近。忽然,从附近一颗樹上,飞下一只黑胸铺的老麻雀,像一颗石子似的落到狗的眼前。老麻雀全身道术的羽毛,精恐万状发出绝望七慘的教生。接着,想漏出牙石,大张着的狗嘴铺去。老麻雀是猛铺下来救护右翹的。他用身体掩护着自己的幼儿,但他整个小小的身体,因恐怖而战力着。他小小的声音也变得粗暴思呀,他在犀生自己。在他看来,狗该是多么庞大的怪物吧。然而,他还是不能站在自己高高的安全的树制上。一种比他的理智更强烈的力量,是他从哪铺下身来。我的狗站住了,向后退了退。看来他也赶到了这种力量。我赶紧换住金荒失错的狗,然后我怀着重新的心情走开了。是啊,请不要见笑。我重庆那只小小的英勇的鸟儿,我重庆他那种爱的冲动和力量。爱,我想,比死和死的恐惧更强大。只有依靠他,依靠这种爱,生命才能维持下去,发展下去。欢迎光临普通话时期望,三达六点PTHXX.com。

这base模型,识别效果一般,有很多错别字

small结果

作品二十七号。我打猎龟来,沿着花园的林阴路走着,狗跑在我前边。突然,狗放慢脚步,涅足前行,好像绣到了前边有什么野物。我顺着林阴路望去,看见了一只嘴边还带黄色头上生着柔毛的小麻雀。风猛烈地吹打着林阴路上的白画树,麻雀从朝里跌落下来,呆呆地浮在地上,孤立无缘地张开两只羽毛还未风满的小翅膀。我的狗慢慢向它靠近。忽然,从附近一棵树上飞下一只黑胸脖的老麻雀,像一颗石子似的落到狗的眼前。老麻雀全身倒数着羽毛惊恐万状,发出绝望欺惨的叫声。接着,想露出牙齿,大张着的狗嘴铺去。老麻雀是猛铺下来救护幼雀的。它用身体掩护着自己的幼儿。但它整个小小的身体因恐怖而占力着,它小小的声音也变得粗暴思压,它在牺牲自己。在它看来,狗该是多么庞大的怪物啊。然而,它还是不能站在自己高高的安全的树枝上。一种比它的理智更强烈的力量,是它从哪儿扑下身来。我的狗站住了,向后退了退,看来它也感到了这种力量。我赶紧换住惊慌失措的狗,然后我怀着重庆的心情走开了。是啊,请不要见笑。我重庆那只小小的英勇的鸟儿,我重庆它那种爱的冲动和力量。爱,我想,比死和死的恐惧更强大。只有依靠它,依靠这种爱,生命才能维持下去,发展下去。

效果比base好一点,但不多

medium结果

作品二十七號我打獵歸來沿著花園的林蔭路走著狗跑在我前邊突然狗放慢腳步捏足前行好像繡到了前邊有什麼野物我順著林蔭路望去看見了一隻嘴邊還帶黃色頭上生著柔毛的小麻雀風猛烈地吹打著林蔭路上的白樺樹麻雀從巢裡跌落下來呆呆地浮在地上孤立無援地張開兩隻羽毛還未豐滿的小翅膀我的狗慢慢向它靠近忽然從附近一棵樹上飛下一隻黑胸脯的老麻雀像一顆石子似的落到狗的眼前老麻雀全身倒數著羽毛驚恐萬丈發出絕望淒慘的叫聲接著想露出牙齒大張著地狗嘴撲去老麻雀是猛撲下來救護幼雀的它用身體掩護著自己的幼兒但它整個小小的身體因恐怖而站立著它小小的聲音也變得粗暴私養它在犧牲自己在它看來狗該是多麼龐大的怪物啊然而它還是不能站在自己高高的安全的樹枝上一種比它的理智更強烈的力量使它從那兒撲下身來我的狗站住了向後退了退看來它也感到了這種力量我趕緊換住驚慌失措的狗然後我懷著重慶的心情走開了是啊請不要見笑我重慶那只小小的英勇的鳥兒我重慶它那種愛的衝動和力量愛我想比死和死的恐懼更強大只有依靠它依靠這種愛生命才能維持下去發展下去

不知道为什么全是繁体,效果不如small

large结果

作品二十七号我打猎归来,沿着花园的林荫路走着,狗跑在我前边。突然,狗放慢脚步,捏足前行,好像嗅到了前边有什么野物。我顺着林荫路望去,看见了一只,嘴边还带黄色,头上生着绒毛的小麻雀。风猛烈地吹打着林荫路上的白花树,麻雀从巢里跌落下来,呆呆地浮在地上,孤立无援地张开两只羽毛还未丰满的小翅膀。我的狗慢慢向它靠近,忽然从附近一棵树上飞下一只黑胸脯的老麻雀,像一颗石子似的落到狗的眼前。我顺着林荫路望去,看见了一只,嘴边还带黄色,头上生着绒毛的小麻雀。老麻雀全身倒竖着羽毛,惊恐万状,发出绝望凄惨的叫声。接着,想露出牙齿,大张着的狗嘴扑去。老麻雀是猛扑下来救护幼雀的,它用身体掩护着自己的幼儿,但它整个小小的身体因恐怖而站立着。它小小的声音也变得粗暴嘶哑。老麻雀在狗身上,它在牺牲自己。在它看来,狗该是多么庞大的怪物啊。然而,它还是不能站在自己高高的安全的树枝上。一种比它的理智更强烈的力量,是它从那扑下身来。我的狗站住了,向后退了退。看来,它也感到了这种力量。我赶紧唤住惊慌失措的狗,然后我怀着崇敬的心情走开了。老麻雀的狗叫了一声。我说:"是啊,请不要见笑。我崇敬那只小小的英勇的鸟儿。我崇敬它那种爱的冲动和力量。我说:"爱,我想,比死和死的恐惧更强大。只有依靠它,依靠这种爱,生命才能维持下去,发展下去。

使用large模型错别字显著减少,整体效果比base好,但仍然存在一些问题:部分文字重复识别。尚未查明原因

原文:

我打猎归来,沿着花园的林阴路走着。狗跑在我前边。突然,狗放慢脚步,蹑足潜行,好像嗅到了前边有什么野物。我顺着林阴路望去,看见了一只嘴边还带黄色、头上生着柔毛的小麻雀。风猛烈地吹打着林阴路上的白桦树,麻雀从巢里跌落下来,呆呆地伏在地上,孤立无援地张开两只羽毛还未丰满的小翅膀。我的狗慢慢向它靠近。忽然,从附近一棵树上飞下一只黑胸脯的老麻雀,像一颗石子似的落到狗的跟前。老麻雀全身倒竖着羽毛,惊恐万状,发出绝望、凄惨的叫声,接着向露出牙齿、大张着的狗嘴扑去。老麻雀是猛扑下来救护幼雀的。它用身体掩护着自己的幼儿……但它整个小小的身体因恐怖而战栗着,它小小的声音也变得粗暴嘶哑,它在牺牲自己!在它看来,狗该是多么庞大的怪物啊!然而,它还是不能站在自己高高的、安全的树枝上……一种比它的理智更强烈的力量,使它从那儿扑下身来。我的狗站住了,向后退了退……看来,它也感到了这种力量。我赶紧唤住惊慌失措的狗,然后我怀着崇敬的心情,走开了。是啊,请不要见笑。我崇敬那只小小的、英勇的鸟儿,我崇敬它那种爱的冲动和力量。爱,我想,比死和死的恐惧更强大。只有依靠它,依靠这种爱,生命才能维持下去,发展下去。

语言模型下载

下载地址:https://huggingface.co/ggerganov/whisper.cpp/tree/main

GitHub:https://github.com/ggerganov/whisper.cpp/tree/master/models

遇到的错误信息

  1. FileNotFoundError: [WinError 2] 系统找不到指定的文件。

解决办法: 找到External Libraries —> Python 3.8 —> Libs —> subprocess.py—> Ctrl+F 查找“class POpen” ,将shell=False,改为 shell=True。

image-20240820162548360

  1. UnicodeDecodeError: ‘utf-8’ codec can’t decode byte 0xb2 in position 9: invalid start byte

解决办法: 这个问题一般是是ffmpeg造成的,在读取文件的时候某个位置的编码有问题。实际上是由于上面的代码修改后,需要重新启动(在windows系统有这个问题)。 如果重新启动之后,还是出现上述错误,可以按照如下方式重新设置:Pycharm setting —> Tools —> Terminal —> 找到 shell path,将其修改为本地cmd。

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

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

相关文章

SQL Server 2017上服务端设置强制加密启用SSL

在数据库服务端设置,强制所有客户端使用 SSL,设置完后,后续客户端所有连接,都将以密文传送,不论客户端是否指定安全连接(即EncryptTrue/False) 一、服务端强制加密使用 SSL 1.在数据库服务器上…

微服务事务管理

目录 一、分布式事务问题 1、本地事务 2、分布式事务 3、分布式事务问题 二、理论基础 1、CAP定理 (1)一致性 (2)可用性 (3)分区容错 (4)矛盾 2、BASE理论 3、解决分布式…

Java学习_21_多线程JUC

文章目录 前言多线程并发与并行多线程的实现方式Thread类Runnable接口Callable接口和Future接口 Thread类的相关方法线程对象线程优先级守护线程出让线程/礼让线程插入线程/插队线程 线程的相关问题生命周期安全问题Lock锁死锁等待唤醒机制(生产者和消费者&#xff…

Flex的基本使用+综合案例

组成 弹性盒子没有设置高&#xff0c;就会自动拉伸 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta http-equiv"X-UA-Compatible" content"IEedge"><meta name"viewport&q…

GCB | 首次揭示!气候变化对常绿和落叶植物物候差异化影响的机制

气候变化引起的植物物候改变已对全球范围内生物多样性和生态系统产生重大影响&#xff08;Nature高引文章 | 北京大学朴世龙院士等&#xff1a;全球变暖对植被物候的影响及其机制&#xff1b;Nature Ecology & Evolution | 南京大学张永光教授团队揭示延长的植被物候期受CO…

【日记】狗尾巴草与暗恋(1519 字)

写在前面 消极内容注意 正文 好想吃火龙果。 下周会变得异常艰难。因为事情已经垒到天上去了&#xff0c;还要来检查。 上午&#xff0c;同事送了一点水果&#xff0c;我从来没见过。问了一下别人&#xff0c;有的说是灯笼果&#xff0c;有的说是菇凉果、姑娘果。搜了一下&am…

go const(常量)

常量介绍 示例 package mainimport ("fmt" )func main() {const name "tom"fmt.Println(name)const tax float64 0.8fmt.Println(tax) }go run const.go tom 0.8package mainimport ("fmt" )func main() {const a intfmt.Println(a) }go run…

【Excal】OR 函数

语法&#xff1a; OR&#xff08;判断条件1&#xff0c;判断条件2&#xff0c;判断体件3&#xff0c;****&#xff09; 评优条件&#xff1a; 语文成绩高于90 数学成绩高于90 英语成绩高于85 物理成绩高于85 点击回车键 选中填充 回车 选中填充

SpringBootWeb 篇-深入了解 SpringBoot + Vue 的前后端分离项目部署上线与 Nginx 配置文件结构

&#x1f525;博客主页&#xff1a; 【小扳_-CSDN博客】 ❤感谢大家点赞&#x1f44d;收藏⭐评论✍ 文章目录 1.0 云服务器的准备 2.0 Xshell 和 Xftp 软件 2.1 Xshell 介绍 2.2 Xftp 介绍 3.0 在云服务器进行环境配置 3.1 安装 JDK 3.2 安装 MySQL 3.3 安装 Nginx 4.0 SpringB…

论文降重,Kimi如何助你一臂之力?

在学术研究的浪潮中&#xff0c;原创性和学术诚信是每位研究者必须坚守的灯塔。然而&#xff0c;随着研究领域的不断扩展和深化&#xff0c;论文写作过程中难免会遇到内容重复的问题&#xff0c;这不仅影响论文的独创性&#xff0c;也对学术声誉构成挑战。本文将介绍Kimi的核心…

darnet 识别检测本地视频 保存本地视频

darnet 识别检测本地视频 保存本地视频 darknet的github下载 darknet的github下载 darknet地址 将这个下载后&#xff0c;保存在catkin_ws的src目录下

红黑树、B+Tree、B—Tree

红黑树 B-Tree 这三个通常都是把内存全部加载到内存里,然后再内存中进行处理的,数据量通常不会很大。 内存一般容量都在GB级别,比如说现在常见的4G、8G或者16G。 如果要处理的数据规模非常大,大到内存根本存不下的时候。这个时候只能先存到硬盘里,硬盘呢 容量又比内存大…

谈一谈什么是接口测试?怎样做接口测试?

扫盲内容&#xff1a; 1.什么是接口&#xff1f; 2.接口都有哪些类型&#xff1f; 3.接口的本质是什么&#xff1f; 4.什么是接口测试&#xff1f; 5.问什么要做接口测试&#xff1f; 6.怎样做接口测试&#xff1f; 7.接口测测试点是什么&#xff1f; 8.接口测试都要掌…

mysql数据库----简单认识库的操作

目录 1.区分概念 2.什么是数据库 3.数据库的创建和销毁 4.数据库编码初识 5.查询系统默认编码配置 6.两个查询编码表的指令 7.创建指定编码的数据库 8.不同编码的区别 第一个编码方式&#xff1a; 第二个编码方式&#xff1a; 查询结果说明&#xff1a; 9.数据库的增…

React学习day01-React-开发环境配置、JSX基础-本质、JSX中js表达式的用法、JSX的条件渲染

1、React &#xff08;1&#xff09;概念&#xff1a;由Meta公司研发&#xff0c;是一个用于构建Web和原生交互页面的库 &#xff08;2&#xff09;优点&#xff1a; 1&#xff09;相较于传统基于DOM开发的优势&#xff1a;组件化的开发方式、不错的性能 2&#xff09;相较于…

QT实例1--使用UI文件创建登陆窗口

基础信息 平台&#xff1a;window 10 QT版本 &#xff1a;5.14.2 时间:2024.08.25 本工程是QLayout专题,使用UI文件创建一个登陆窗体 本例程原始资料来源于B站&#xff0c;UP主“爱编程的大丙”的视频教程《QT开发编程-入门基础教程QT5–6.2窗口布局举例-制作一个登陆界面》…

Web开发:ORM框架之Freesql的入门和技巧使用小结

目录 零、官网链接 一、字段映射表 二、基础查询 1.freesql独特封装&#xff1a;between关键字查日期 2.分页&#xff08;每页 20 条数据&#xff0c;查询第 1 页&#xff09; 3.Withsql&#xff08;子查询&#xff0c;不建议&#xff09; 3.简单查询、映射查询 4.参数查…

数据结构(Java):揭开二叉搜索树删除机制的奥秘

目录 1、二叉搜索树 1.1 概念 2、代码模拟实现 2.1 插入操作 2.2 查找操作 2.3 &#x1f31f;删除操作&#x1f31f;&#xff08;难点&#xff09; 2.3.1 要删除节点的左子树为空 2.3.2 要删除节点的右子树为空 2.3.3 要删除节点的左右子树均不为空 2.3.4 删除操作代码…

ollma 本地部署大模型

因为我本地是 windows 的系统&#xff0c;所以这里直接写的是通过 docker 来实现本地大模型的部署。 windows 下 WSl 的安装这里就不做重复&#xff0c;详见 windows 部署 mindspore GPU 开发环境&#xff08;WSL&#xff09; 一、Docker 部署 ollma 1. 拉取镜像&#xff08;…

【PyTorch】关于Tensorboard的简单使用

前提文章目录 【PyTorch】深度学习PyTorch环境配置及安装【详细清晰】 【PyTorch】深度学习PyTorch加载数据 文章目录 前提文章目录SummaryWriter使用add_image()的使用&#xff08;常用来观察训练结果&#xff09;利用Tensorboard观察图片 SummaryWriter使用 from torch.util…