openai whisper使用

news2024/11/27 12:46:59

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 whisper

model = 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.coloradmin.cn/o/2060663.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

AI-Talk开发板更新CH32固件

一、说明 CSK6011A有33个GPIO,但把WIFI、LCD、TP、CAMERA这些外设全部加上后,CSK6011A的IO不够用,还差6个,所以增加了一颗IO扩展MCU。CSK6-MIX开发板使用的IO扩展MCU为CH32V003F4P6,并且SDK也包含了此MCU的固件。AI-Ta…

机械学习—零基础学习日志(如何理解概率论3)

随机变量的函数分布 一维随机变量分布,可以看到下图,X为不同情况的概率。而x如果是大于等于X,那么当x在40以内时,没有概率,为0。 当x变大,在40-80之间,那么x大于X的概率为,0.7&…

性能测试 —— 系统架构性能优化思路!

这篇文章重点还是谈已经上线的业务系统后续出现性能问题后的问题诊断和优化重点。 系统性能问题分析流程 我们首先来分析下如果一个业务系统上线前没有性能问题,而在上线后出现了比较严重的性能问题,那么实际上潜在的场景主要来自于以下几个方面。 业务出…

回归预测 | Matlab实现BES-ESN秃鹰搜索算法优化回声状态网络多输入单输出回归预测

回归预测 | Matlab实现BES-ESN秃鹰搜索算法优化回声状态网络多输入单输出回归预测 目录 回归预测 | Matlab实现BES-ESN秃鹰搜索算法优化回声状态网络多输入单输出回归预测效果一览基本介绍程序设计参考资料 效果一览 基本介绍 1.Matlab实现BES-ESN秃鹰搜索算法优化回声状态网络…

宿舍管理系统_o4dvi

TOC springboot574宿舍管理系统_o4dvi--论文 第一章 概述 1.1 研究背景 近些年,随着中国经济发展,人民的生活质量逐渐提高,对网络的依赖性越来越高,通过网络处理的事务越来越多。随着宿舍管理的常态化,如果依然采用…

JVM 运行时内存结构简介

JVM 运行时内存结构简介 一、前言二、JVM 运行时内存结构2.1 线程隔离数据区:2.2 线程共享数据区: 三、JVM 内存区域划分1. 程序计数器(PC)2. 虚拟机栈3. 本地方法栈4. Java 堆5. 方法区6. 运行时常量池 附录 一、前言 JVM&#…

LLM RAG检索生成的深度解析:理解其工作原理与应用

前言 2024年随着大模型进一步增强升级,越来越多的大模型应用落地,经过初期的探索和研究,目前业界逐渐收敛聚聚于两个主要的应用方向:RAG和Agents。今天我们就来先聊聊这个RAG~ 一.RAG基本介绍 RAG:全称R…

Linux下enable bbr

最近开通一台VPS,操作系统选择了Ubuntu 22.04,需要启用bbr功能。 BBR 是 Bottleneck Bandwidth(瓶颈带宽)的缩写,而 RTT 是一种拥塞控制系统。您可以在 Linux 桌面上启用 TCP BBR,以改善整体网上冲浪体验。…

IO模型-----聊天室

运行1个服务器和2个客户端 实现效果: 服务器和2个客户端互相聊天,服务器和客户端都需要使用select模型去实现 服务器要监视2个客户端是否连接,2个客户端是否发来消息以及服务器自己的标准输入流 客户端要监视服务器是否发来消息以及客户端自己…

Elasticsearch 安装 windows

1,下载Elasticsearch Download Elasticsearch | Elastic 2,下载的压缩包解压后 3,进入bin文件夹,双击 elasticsearch.bat 启动 4,修改配置 启动成功后先关掉了ctrlc关掉 进入config文件夹,打开文件 elasticsearch.ym…

力扣 1425带限制的子序列和

这是一道 动态规划加单调队列的题,重点加强单调队列知识的学习 回归本题,这个题中,动态规划的部分略去,状态转移方程可求 单调队列部分 1维护队头 if(i-sta.front() k) sta.pop_front(); 2维护队尾 while(!sta.empty() &…

企业级web应用服务器tomcat

目录 一、Web技术 1.1 HTTP协议和B/S 结构 1.2 前端三大核心技术 1.2.1 HTML 1.2.2 CSS(Cascading Style Sheets)层叠样式表 1.2.3 JavaScript 二、tomcat的功能介绍 2.1 安装 tomcat 环境准备 2.1.1 安装java环境 2.1.2 安装并启动tomcat …

C++:模板 II(非类型模板参数,特化,分离编译)

目录 非类型模板参数 模板的特化 函数模板特化 类模板特化 全特化 偏特化 引用特化 指针特化 模板分离编译 非类型模板参数 什么是非类型模板参数? 顾名思义,它的类型形参并不是一个类型,就是用一个常量来作为类模板或函数模板的…

(软件测试)基础2

1.等价类划分法 步骤: 2.编写数据用例 例题:参考基础1中的手机号实例 2.边界值分析法

p8 Run的流程和Docker原理

docker run的运行原理图 docker是怎么工作的? docker是一个cs的一个结构的系统docker的守护进程运行在宿主机上面通过socket进行访问 其实就是看下面的这个图,通过客户端的命令来操作docker的守护进程然后启动一些容器,默认容器是不启动的 …

凡图公益行:凡图家庭教育以行动筑梦,点亮孩子心中的光芒

在教育的路上,每一步都承载着未来的希望,凡图(山东)教育科技集团有限公司一直致力于为每一个孩子及家庭提供最优质的心理咨询服务。 在这样的背景下,凡图家庭教育以独特的使命感和责任感,成为了众多家庭信赖的伙伴。 也因此成为…

【 打印菱形】打印菱形

打印菱形 C语言实现&#xff0c;具体代码&#xff1a; #include<stdio.h>int main(){int i,j,k;// 上半部分for(i0;i<3;i){for(j0;j<2-i;j)printf(" ");for(k0;k<2*i;k)printf("*");printf("\n");}// 下半部分for(i0;i<2;i)…

文件上传真hard

一、SpringMVC实现文件上传 1.1.项目结构 1.1.2 控制器方法 RequestMapping("/upload1.do")public ModelAndView upload1(RequestParam("file1") MultipartFile f1) throws IOException {//获取文件名称String originalFilename f1.getOriginalFilename(…

数据库之Mybatis映射文件、动态SQL

目录 1.XML映射文件 2.动态SQL 1.XML映射文件 之前我们执行sql语句是通过注解的方式&#xff0c;还有另外一种方式是通过XML配置文件执行sql语句&#xff0c;这份文件在Mybatis中也称为XML映射文件。 XML配置文件的规范&#xff1a;只有这三条规范都正确的情况下&#xff0…

基于SSM的二手车交易管理系统的设计与实现 (含源码+sql+视频导入教程+论文)

&#x1f449;文末查看项目功能视频演示获取源码sql脚本视频导入教程视频 1 、功能描述 基于SSM的二手车交易管理系统拥有两种角色&#xff1a;管理员和用户 管理员&#xff1a;二手车信息管理、类型管理、定金支付管理、预约到店管理、二手车评估管理、论坛管理、系统管理、…