本地部署Whisper实现语言转文字

文章目录

  • 本地部署Whisper实现语言转文字
  • 1.前置条件
  • 2.安装chocolatey
  • 3.安装ffmpeg
  • 4.安装whisper
  • 5.测试用例
  • 6.命令行用法
  • 7.本地硬件受限,借用hugging face资源进行转译

本地部署Whisper实现语言转文字

1.前置条件

环境windows10 64位

在这里插入图片描述

2.安装chocolatey

安装chocolatey目的是安装ffpeg

以管理员身份运行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'))

安装成功打入choco

在这里插入图片描述

安装文件夹路径

C:\ProgramData\chocolatey

3.安装ffmpeg

choco install ffmpeg

在这里插入图片描述

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

安装完成

在这里插入图片描述

5.测试用例

直接命令行

whisper yoump3.mp3

在这里插入图片描述

在这里插入图片描述

6.命令行用法

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

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

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

whisper japanese.wav --language Japanese

添加--task translate后将把演讲翻译成英文:

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

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

whisper --help

7.本地硬件受限,借用hugging face资源进行转译

进入huggingface网址,往下拉

https://huggingface.co/openai/whisper-large-v3

在这里插入图片描述

粘贴上述代码

import torch
from transformers import AutoModelForSpeechSeq2Seq, AutoProcessor, pipeline
from datasets import load_datasetdevice = "cuda:0" if torch.cuda.is_available() else "cpu"
torch_dtype = torch.float16 if torch.cuda.is_available() else torch.float32model_id = "openai/whisper-large-v3"model = AutoModelForSpeechSeq2Seq.from_pretrained(model_id, torch_dtype=torch_dtype, low_cpu_mem_usage=True, use_safetensors=True
)
model.to(device)processor = AutoProcessor.from_pretrained(model_id)pipe = pipeline("automatic-speech-recognition",model=model,tokenizer=processor.tokenizer,feature_extractor=processor.feature_extractor,max_new_tokens=128,chunk_length_s=30,batch_size=16,return_timestamps=True,torch_dtype=torch_dtype,device=device,
)dataset = load_dataset("distil-whisper/librispeech_long", "clean", split="validation")
sample = dataset[0]["audio"]result = pipe(sample)
print(result["text"])

修改本地代码,将sample修改为,需要转录的录音,接入代理;

import torch
from transformers import AutoModelForSpeechSeq2Seq, AutoProcessor, pipeline
from datasets import load_datasetimport os
os.environ['CURL_CA_BUNDLE'] = ''
os.environ["http_proxy"] = "http://127.0.0.1:7890"
os.environ["https_proxy"] = "http://127.0.0.1:7890"device = "cuda:0" if torch.cuda.is_available() else "cpu"
torch_dtype = torch.float16 if torch.cuda.is_available() else torch.float32model_id = "openai/whisper-large-v3"model = AutoModelForSpeechSeq2Seq.from_pretrained(model_id, torch_dtype=torch_dtype, low_cpu_mem_usage=True, use_safetensors=True
)
model.to(device)processor = AutoProcessor.from_pretrained(model_id)pipe = pipeline("automatic-speech-recognition",model=model,tokenizer=processor.tokenizer,feature_extractor=processor.feature_extractor,max_new_tokens=128,chunk_length_s=30,batch_size=16,return_timestamps=True,torch_dtype=torch_dtype,device=device,
)dataset = load_dataset("distil-whisper/librispeech_long", "clean", split="validation")
sample = dataset[0]["audio"]result = pipe("myaudio")
print(result["text"])

借用huggingface的速度,速度取决于网速

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

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

相关文章

【调试笔记(目录)】

调试笔记-系列文章目录 第一章 Windows 环境 [1001] 使用VS2019编译edk2(上) [1002] 使用VS2019编译edk2(下) [1003] 调试 ExdiGdbSvr [1004] WSL 修改已安装发行版名称 [1005] 配置 QEMU/x86_64 运行 OpenWrt-23.05 发行版并搭…

mysql驱动版本变更导致查询数据结果一直是空

1 引言 最近接手了一个已离职同事的java项目,这个项目中原来使用了自己的mysql驱动版本,并未使用公司公共依赖中的版本号。我想为了统一版本号,就将当前项目中pom文件中mysql的版本号verson给去除了。没怎么自测,就直接发到测试环…

零基础学Java第二十二天之IO流之内存流,打印流,随机流

IO流之内存流,打印流,随机流 1、内存流 1、理解 内存流"(Memory Stream)在计算机编程中通常指的是一种特殊的数据流,它在内存中存储和操作数据,而不是在外部存储(如硬盘、网络等&#xf…

申请轻纺行业工程设计资乙级对企业有什么要求

注册资金:企业的注册资金应至少达到三百万,这是衡量企业经济实力和承担风险能力的重要指标。独立法人资格:企业应具备独立的法人资格,能够独立承担民事责任,并具备相应的经营自主权。专业技术人员配备:企业…

前端框架选择指南:React vs Vue vs Angular

选择前端框架时,React、Vue 和 Angular 都是流行的选择,各有优缺点。我们可以从各个维度进行比较和选择: React 核心理念: 组件化开发,专注于视图层。学习曲线: 相对平缓,因为重点在于JSX和组…

免费的八字软件

无敌八字排盘软件完全免费使用,即使用不需要付费且无任何限制。同时推出手机版电脑版,两版本数据互通互用,即电脑版的数据可以备份到手机版上导入,手机版的数据也可以备份到电脑版上恢复导入,方便手机和电脑共用的朋友…

Golang实现递归复制文件夹

代码 package zdpgo_fileimport ("errors""os""path/filepath""strings" )// CopyDir 复制文件夹 // param srcPath 源文件夹 // param desPath 目标文件夹 // return error 错误信息 func CopyDir(srcPath, desPath string) error {…

在Java中实现泛型(Generics)的深入解析

在Java中,泛型(Generics)是一个强大的工具,它允许我们在编译时定义类型参数,使代码更加灵活、可重用和类型安全。下面,我将从技术难点、面试官关注点、回答吸引力以及代码举例四个方面,详细解析…

Android-自定义三角形评分控件

效果图 序言 在移动应用开发中,显示数据的方式多种多样,直观的图形展示常常能带给用户更好的体验。本文将介绍如何使用Flutter创建一个自定义三角形纬度评分控件,该控件可以通过动画展示评分的变化,让应用界面更加生动。 实现思…

转行3年涨薪300%,我总结了一套产品经理快速入门指南!

想转行的产品小白,初期一定会遇到这个问题——我要如何 0 基础转行产品经理? 要想 0 基础快速转行产品经理,我通过个人实践总结了 5 个关键点,可以参考。 一、熟悉产品经理的工作全流程 转行的产品小白,首先要建立产…

【刷题日记】最长连续序列

题目描述 给定一个未排序的整数数组 nums ,找出数字连续的最长序列(不要求序列元素在原数组中连续)的长度。 请你设计并实现时间复杂度为 O(n) 的算法解决此问题 实现思路 核心要素两点: 1、当前元素的前驱是否在这个数组中&a…

ABtest假设检验知识|配对检验|比率检验|单向表-列联表检验

文章目录 1 假设检验基础2 一般假设检验2.1 假设检验包2.2 sample - 点击转化率2.2.1 问题描述2.2.2 实验设计2.2.3 数据处理2.2.4 方差齐性检验2.2.5 假设检验2.2.6 结果分析 3 检验两个均值的差:配对3.1 大样本检验3.1.1 单侧检验3.1.2 双侧检验 3.2 小样本检验3.…

【大模型】(记一面试题)使用Streamlit和Ollama构建PDF文件处理与聊天机器人应用

【大模型】(记一面试题)使用Streamlit和Ollama构建PDF文件处理与聊天机器人应用 我在找工作的过程中,遇到一个面试题:搭建一个简易的利用大型 LLM 和 RAG 来实现用户与PDF文件的自然语言交互。 参考链接:https://medium.com/the-ai-forum/ra…

深入理解软件测试:单元测试、集成测试与系统测试

软件测试是软件开发过程中至关重要的一环,旨在确保软件产品的质量和可靠性。根据测试的范围和目标,软件测试可以分为不同的层次和类型,其中最常见的包括单元测试、集成测试和系统测试。下面详细介绍这三种测试类型。 ### 1. 单元测试&#x…

【Python】—— 高阶函数

目录 (一)体验高阶函数 (二)内置高阶函数 2.1 map() 2.2 reduce() 2.3 filter() Python中的高阶函数是指那些接受函数作为参数,或者返回函数作为结果的函数。这种特性让Python的函数编程能力非常强大&…

三生随记——关于工地的恐怖故事

夜色中,月光斑驳地洒落在那片荒凉的工地。高耸的钢筋骨架如同巨大的怪兽,在黑暗中矗立着,散发着令人不安的气息。这里曾是城市的繁华之地,但如今却成了一片废墟,充满了无尽的恐怖和神秘。 工地四周被铁丝网围了起来&am…

Flutter 中的 GlowingOverscrollIndicator 小部件:全面指南

Flutter 中的 GlowingOverscrollIndicator 小部件:全面指南 Flutter 的 GlowingOverscrollIndicator 是一个视觉效果引人注目的组件,用于在列表或网格滚动超出其内容大小时提供视觉反馈。这种组件通常以发光效果指示用户已经滚动到了末端或超出了内容区…

算法题1:电路开关(HW)

题目描述 实验室对一个设备进行通断测试,实验员可以操控开关进行通断,有两种情况: ps,图没记下来,凭印象画了类似的 初始时,3个开关的状态均为断开;现给定实验员操控记录的数组 records ,records[i] = [time, switchId],表示在时刻 time 更改了开关 switchId 的状态…

【大模型】 基于AI和全球化进程的权衡:开源大模型与闭源大模型

【大模型】 基于AI和全球化进程的权衡:开源大模型与闭源大模型 前言 实际上关于开源or闭源,一直以来都是颇有争议的话题,人们争执于数据的隐私性和共享性,到底哪一方能获得的收益更大。而对于开源与闭源哪个更好实际上也就是说是…

Nginx的satisfy指令_ 用途,使用场景及注意事项

什么是satisfy指令? Nginx的satisfy指令用于控制当请求符合多个访问控制条件时,如何对这些条件进行组合判断。具体来说,它决定了是在多个访问控制条件中,只要任意一个条件满足即可还是全部条件都必须满足。 用途与使用场景 sat…