基于OpenAI的Whisper构建的高效语音识别模型:faster-whisper

1 faster-whisper介绍

faster-whisper是基于OpenAI的Whisper模型的高效实现,它利用CTranslate2,一个专为Transformer模型设计的快速推理引擎。这种实现不仅提高了语音识别的速度,还优化了内存使用效率。faster-whisper的核心优势在于其能够在保持原有模型准确度的同时,大幅提升处理速度,这使得它在处理大规模语音数据时更加高效。

项目地址:https://github.com/SYSTRAN/faster-whisper

1.1 whisper

OpenAI 的开源模型 whisper,可以执行 99 种语言的语音识别和文字转写。但是 whisper 模型占用计算资源多,命令行使用门槛高。whisper 模型本身还存在一些问题,例如 模型幻听问题(大部分的类似于不断重复同一句话、无语音部分复读莫名内容等都是由于这个原因造成的)。要更好使用 whsiper 模型就需要能够准确调试模型参数。但 whisper 模型参数众多,且命令行使用对使用者有一定要求,而且只有 torch 版可以做到调整参数。使用 VAD 类工具也需要一定的动手能力。

1.2 faster-whisper

faster-whisper是具有完全的 whsiper 模型参数,且自带 VAD加持的 whisper 版本,该版本使用了 CTranslate2 来重新实现 whsiper 模型,CT2 对 transformer 类网络进行了优化,使模型推理效率更高。 相比于 openai/whisper,该实现在相同准确性下速度提高了 4 倍以上,同时使用的内存更少。

所谓 VAD 即 Voice Activity Detection —— 声音活动检测,在语音信号处理中,例如语音增强,语音识别等领域有着非常重要的作用。它的作用是从一段语音(纯净或带噪)信号中标识出语音片段与非语音片段。在语音转写任务中,可以提前将语音和非语音部分分离出来,从而提升 whisper 网络识别速度,并减少模型幻听。

VAD地址:https://github.com/snakers4/silero-vad

1.3 性能对比

在性能方面,faster-whisper展现了显著的优势。例如,在使用Large-v2模型和GPU进行13分钟音频的转录测试中,faster-whisper仅需54秒,而原始Whisper模型需要4分30秒。这一显著的性能提升,意味着在实际应用中,faster-whisper能够更快地处理大量数据,特别是在需要实时或近实时语音识别的场景中。

1.4 技术优势

faster-whisper的技术优势不仅体现在速度上。它还支持8位量化,这一技术可以在不牺牲太多准确度的情况下,进一步减少模型在CPU和GPU上的内存占用。这使得faster-whisper在资源受限的环境中也能高效运行,如在移动设备或嵌入式系统上。

aster-whisper适用于多种场景,特别是那些需要快速、准确的语音识别的应用。例如,在客户服务中,它可以用于实时语音转文字,提高响应速度和服务质量。在医疗领域,faster-whisper可以辅助医生快速转录病历,提高工作效率。此外,它还适用于实时会议记录、多语言翻译、教育辅助等多个领域。

2 faster-whisper安装及使用

2.1 conda环境下安装

pip install faster-whisper

2.2 模型下载

large-v3模型:https://huggingface.co/Systran/faster-whisper-large-v3/tree/main
large-v2模型:https://huggingface.co/guillaumekln/faster-whisper-large-v2/tree/main
large-v2模型:https://huggingface.co/guillaumekln/faster-whisper-large-v1/tree/main
medium模型:https://huggingface.co/guillaumekln/faster-whisper-medium/tree/main
small模型:https://huggingface.co/guillaumekln/faster-whisper-small/tree/main
base模型:https://huggingface.co/guillaumekln/faster-whisper-base/tree/main
tiny模型:https://huggingface.co/guillaumekln/faster-whisper-tiny/tree/main

国内模型地址:

https://aifasthub.com/models/guillaumekln

2.3 使用fater-whisper进行中文语音识别

from faster_whisper import WhisperModelmodel_size = "large-v3"# Run on GPU with FP16
model = WhisperModel('../model/faster-whisper-large-v3', device="cuda", compute_type="float16")# or run on GPU with INT8
# model = WhisperModel(model_size, device="cuda", compute_type="int8_float16")
# or run on CPU with INT8
# model = WhisperModel(model_size, device="cpu", compute_type="int8")segments, info = model.transcribe("../data/gusuiyizhi.wav", beam_size=5)print("Detected language '%s' with probability %f" % (info.language, info.language_probability))for segment in segments:print("[%.2fs -> %.2fs] %s" % (segment.start, segment.end, segment.text))

参数说明:

  • local_files_only=True 表示加载本地模型
  • model_size_or_path=path 指定加载模型路径
  • device="cuda" 指定使用cuda
  • compute_type="int8_float16" 量化为8位
  • language="zh" 指定音频语言
  • vad_filter=True 开启vad
  • vad_parameters=dict(min_silence_duration_ms=1000) 设置vad参数
     

运行结果显示:

Detected language 'zh' with probability 0.998535
[0.00s -> 2.48s] 骨髓抑制的定义、危害和预防
[2.48s -> 4.48s] 骨髓抑制是一种病症
[4.48s -> 8.14s] 其主要特点是骨髓中血细胞生成减少
[8.14s -> 11.62s] 这种减少会影响所有类型的血细胞
[11.62s -> 14.74s] 包括红细胞、白细胞和血小板
[14.74s -> 15.74s] 通常
[15.74s -> 20.16s] 骨髓抑制是癌症治疗中使用的化疗或放疗的副作用
[20.16s -> 23.42s] 因为这些疗法在杀伤癌细胞的同时
[23.42s -> 26.22s] 也会损害骨髓中的健康细胞
[26.22s -> 29.26s] 骨髓抑制可能会带来如下危害
[29.26s -> 30.86s] 一、贫血
[30.86s -> 33.74s] 骨髓抑制导致红细胞生成减少
[33.74s -> 35.64s] 可能会引起贫血
[35.64s -> 39.94s] 表现为疲劳、虚弱、呼吸急促和面色苍白
[39.94s -> 44.58s] 严重的贫血可能导致心脏问题和日常活动能力下降
[44.58s -> 46.92s] 二、中性粒细胞减少
[46.92s -> 49.52s] 骨髓抑制导致白细胞减少
[49.52s -> 51.96s] 尤其是中性粒细胞减少
[51.96s -> 55.94s] 患者更容易受到细菌、病毒和真菌感染
[56.22s -> 58.48s] 某些情况下可能会很严重
[58.48s -> 59.24s] 并危及生长
[59.24s -> 61.68s] 三、血小板减少
[61.68s -> 64.60s] 骨髓抑制导致血小板生成减少
[64.60s -> 67.02s] 增加出血和淤伤的风险
[67.02s -> 71.10s] 患者可能会流鼻血、牙龈出血、容易淤伤
[71.10s -> 74.98s] 严重的血小板减少症可导致自发性出血
[74.98s -> 78.18s] 小伤口出血时间延长和内出血
[78.18s -> 79.72s] 这可能危及生命
[79.72s -> 81.58s] 四、治疗延误
[81.58s -> 84.06s] 如果患者的血细胞技术太低
[84.06s -> 87.24s] 则可能需要延迟化疗周期或放疗
[87.24s -> 88.82s] 以使骨髓功能恢复
[88.82s -> 89.22s] 三、血小板减少
[89.24s -> 90.46s] 如果延迟太久
[90.46s -> 92.38s] 可能会延误癌症的治疗
[92.38s -> 94.38s] 造成危险的后果
[94.38s -> 96.24s] 五、剂量减少
[96.24s -> 100.06s] 骨髓抑制可能需要减少化疗或放疗的剂量
[100.06s -> 103.56s] 这可能会影响癌症治疗的整体有效性
[103.56s -> 105.88s] 六、延长住院时间
[105.88s -> 109.96s] 严重的感染或出血可能需要住院治疗和监测
[109.96s -> 114.16s] 增加了患者癌症治疗的总体时间和经济成本
[114.16s -> 116.44s] 七、降低生活质量
[116.44s -> 119.22s] 疲劳、感染风险增加和出血病毒
[119.24s -> 123.72s] 病发症会对患者的整体健康和日常生活功能产生负面影响
[123.72s -> 127.84s] 预防肿瘤放化疗引起的骨髓抑制虽然并不容易
[127.84s -> 132.42s] 但有一些方法可以帮助减少风险或减轻严重程度
[132.42s -> 134.02s] 一、精确剂量
[134.02s -> 137.20s] 医生会根据您的身体状况和肿瘤大小
[137.20s -> 139.68s] 来选择最佳的化疗和放疗剂量
[139.68s -> 141.70s] 以减少对骨髓的影响
[141.70s -> 143.60s] 二、药物调整
[143.60s -> 144.48s] 如果可能
[144.48s -> 148.06s] 医生会选择具有较低骨髓抑制风险的药物
[148.18s -> 149.02s] 或调整
[149.24s -> 150.72s] 治疗方案来降低风险
[150.72s -> 152.60s] 三、治疗间隔
[152.60s -> 156.16s] 医生可能会增加治疗之间的间隔时间
[156.16s -> 159.04s] 让您的身体有更多时间恢复
[159.04s -> 160.98s] 四、生长因子
[160.98s -> 163.32s] 医生可能会开出生长因子
[163.32s -> 165.36s] 如粒细胞刺激因子
[165.36s -> 167.88s] GCSF或红细胞生成素
[167.88s -> 168.70s] EPO
[168.70s -> 172.48s] 以帮助身体加速产生白细胞和红细胞
[172.48s -> 174.36s] 五、营养支持
[174.36s -> 176.30s] 保持良好的营养状态
[176.30s -> 179.14s] 可以帮助身体应对治疗带来的副作用
[179.14s -> 179.22s] 三、医生可能会增加治疗之间的间隔时间
[179.24s -> 181.38s] 注意摄入充足的蛋白质
[181.38s -> 183.06s] 维生素和矿物质
[183.06s -> 185.08s] 以支持骨髓功能
[185.08s -> 187.20s] 六、免疫增强剂
[187.20s -> 188.82s] 在某些情况下
[188.82s -> 191.98s] 医生可能会推荐使用免疫增强剂
[191.98s -> 194.66s] 以提高您的免疫系统抵抗力
[194.66s -> 196.42s] 需要您注意的是
[196.42s -> 199.10s] 以上建议可能因个人情况而异
[199.10s -> 202.44s] 请务必与您的医生保持紧密沟通
[202.44s -> 206.34s] 制定最适合您的个性化的防治策略
[206.34s -> 209.14s] 以应对放化疗可能引起的骨髓抑制
[209.14s -> 209.44s] 请务必与您的医生保持紧密沟通

2.4 使用fater-whisper将中文翻译成英文输出

from faster_whisper import WhisperModelmodel_size = "large-v3"# Run on GPU with FP16
model = WhisperModel('../model/faster-whisper-large-v3', device="cuda", compute_type="float16")# or run on GPU with INT8
# model = WhisperModel(model_size, device="cuda", compute_type="int8_float16")
# or run on CPU with INT8
# model = WhisperModel(model_size, device="cpu", compute_type="int8")segments, info = model.transcribe("../data/gusuiyizhi.wav", beam_size=5, language='en')
print("Detected language '%s' with probability %f" % (info.language, info.language_probability))for segment in segments:print("[%.2fs -> %.2fs] %s" % (segment.start, segment.end, segment.text))

运行结果显示:

Detected language 'en' with probability 1.000000
[0.00s -> 2.46s]  The definition of bone marrow disease, harm and prevention
[2.46s -> 4.32s]  Bone marrow disease is a disease
[4.32s -> 8.06s]  Its main feature is that blood cells in the bone marrow are reduced
[8.06s -> 11.60s]  This reduction will affect all types of blood cells
[11.60s -> 14.56s]  Including red cells, white cells and blood cells
[14.56s -> 20.08s]  Usually, bone marrow disease is a side effect of chemotherapy or chemotherapy used in cancer treatment
[20.08s -> 23.44s]  Because these treatments kill cancer cells at the same time
[23.44s -> 26.20s]  It will also harm the healthy cells in the bone marrow
[26.20s -> 29.24s]  Bone marrow disease may bring the following harm
[29.24s -> 30.86s]  1. Pneumonia
[30.86s -> 33.68s]  Bone marrow disease may cause red cells to decrease
[33.68s -> 35.60s]  It may cause pneumonia
[35.60s -> 39.94s]  It is a sign of fatigue, weakness, respiratory cramps and pale face
[39.94s -> 44.52s]  Severe pneumonia may lead to heart problems and reduced daily activity
[44.52s -> 46.90s]  2. Reducing neutral blood cells
[46.90s -> 49.48s]  Bone marrow disease may lead to reduced white cells
[49.48s -> 51.94s]  Especially reduced neutral blood cells
[51.94s -> 55.52s]  Patients are more likely to be infected with bacteria, viruses and germs
[55.52s -> 59.02s]  In some cases, it may be very serious and critical
[59.02s -> 59.22s]  In some cases, it may be very serious and critical
[59.22s -> 59.70s]  In some cases, it may be very serious and critical
[59.70s -> 61.68s]  3. Reducing neutral blood cells
[61.68s -> 64.54s]  Bone marrow disease may cause reduced blood cells to be generated
[64.54s -> 66.98s]  It may increase the risk of bleeding and bruising
[66.98s -> 71.10s]  Patients may have nosebleeds, gums bleeding, and easy bruising
[71.10s -> 74.98s]  Serious neutral blood cells can lead to auto-blood bleeding
[74.98s -> 78.14s]  Small wound bleeding time is prolonged and internal bleeding
[78.14s -> 79.72s]  This may be fatal to life
[79.72s -> 81.54s]  4. Treating delay
[81.54s -> 84.06s]  If the patient's blood cell technology is too low
[84.06s -> 88.50s]  It may need to delay the chemotherapy cycle or chemotherapy to restore bone marrow function
[88.50s -> 88.94s]  5. Reducing neutral blood cells
[89.22s -> 89.76s]  If the patient's blood cell technology is too low
[89.76s -> 90.60s]  If the patient's blood cell technology is too low
[90.60s -> 92.68s]  It may hinder the treatment of cancer
[92.68s -> 94.50s]  Cause danger
[94.50s -> 97.30s]  5. Reducing the amount of blood
[97.30s -> 101.14s]  Bone marrow disease may require the reduction of chemotherapy or chemotherapy
[101.14s -> 103.46s]  It may affect the overall effectiveness of cancer treatment
[103.46s -> 105.50s]  6. Extending the hospitalization period
[105.50s -> 108.74s]  Severe infection or bleeding may require hospitalization and monitoring
[108.74s -> 113.02s]  It may increase the total time and economic cost of cancer treatment for the patient
[113.02s -> 114.34s]  7. Reducing the quality of life
[114.34s -> 117.06s]  7. Reducing the quality of life
[117.06s -> 118.12s]  3. Reducing the quality of life
[118.12s -> 118.30s]  4. Reduction of life and health

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

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

相关文章

DCDC--电感的选择和影响

1、感值L的影响 1.1、纹波Ripple的影响:感值越大,纹波越小 1.2、负载瞬态响应Load Transient的影响:感值越大,负载瞬态响应越差 2、直流电阻DCR的影响 2.1、效率Efficiency的影响 相同型号,感值越大,DC…

浅学Vue3

安装 vue项目 npm init vuelatest 回车装包 npm install 路由 安装 Router npm install vue-router4 -S项目根目录新建 router --> index.js vue2中 index.jsimport Vue from vue; import VueRouter from vue-router; import Home from ../views/Home.vue;Vue.use(V…

2023年度总结:技术旅程的杨帆远航⛵

文章目录 职业规划与心灵成长 ❤️‍🔥我的最大收获与成长 💪新年Flag 🚩我的技术发展规划 ⌛对技术行业的深度思考 🤔祝愿 🌇 2023 年对我来说是一个充实而令人难以忘怀的一年。这一年,我在CSDN上发表了 1…

Arduino驱动VL6180X光学测距传感器(OLED显示)

Arduino驱动VL6180X光学测距传感器(OLED显示) 简介原理模块参数接线图代码结果 简介 VL6108X三合一光电模块,芯片内集成了IR VSEL(vertical-cavity surface-emitting laser)红外垂直腔面发射激光器光源、接近传感器、环境光传感器&#xff0…

Windows搭建RTMP视频流服务(Nginx服务器版)

文章目录 引言1、安装FFmpeg2、安装Nginx服务器3、实现本地视频推流服务4、使用VLC或PotPlayer可视化播放器播放视频5、RTSP / RTMP系列文章 引言 RTSP和RTMP视频流的区别 RTSP (Real-Time Streaming Protocol)实时流媒体协议。 RTSP定义流格式&#xff…

2023总结与展望--Empirefree

今年一篇博客都没写过了,好像完全在忙在工作和生活上面了,珍惜自我,保持热情,2024对我好点 文章目录 🔥1. 年终总结1.1.学习工作计划1.2. 生活计划1.3 个人总结 🔥2. 未来展望 🔥1. 年终总结 1…

MySQL函数、AVG | MIN | MAX | COUNT | SUM、慢查询

MySQL函数、慢查询 1、函数1.日期函数2.两个日期的时间差3.查询距离时间的间隔时间4.常用的字符串函数5.常用的数学函数6.常用的聚合函数 2、慢查询1.什么是慢查询? 从需求出发,在数据的操作过程中经常会有以下的问题;求和、最大值、最小值、…

未来十年,量子计算将改变物流行业

近年来,供应链和物流行业面临的挑战越来越多,从劳动力短缺到无法预测的天气以及供需变化,都使物流行业变得更加复杂。 因此,现在急需一种不同的方法来解决这些挑战,优化单个功能或整个业务的传统方法已无法应对这些困…

Mysql使用Mybatis进行时间操作

MySQL中支持以下日期时间类型: DATE:存储年月日(例如:2023-04-05)。范围从"1000-01-01"到"9999-12-31" TIME:存储时分秒(例如:11:22:22)。范围从&q…

Authing 分级管理员重磅上线,实现权限超细粒度分级管

数字化时代企业的现代化建设日益重要,身份权限管理系统的数字化变革已经成为企业数字化转型的核心要素之一,同时也对身份权限管理的“最后一公里”提出了更高的要求。管理员作为关键人员,往往掌握整个企业的数据核心访问权限,需要…

Seata AT TM->RC->RM一次完整的交互过程

原理 TM两阶段: 阶段1:TM向TC申请全局事务,netty客户端发起了一次记录xid的请求 阶段2:TC协调之后,决定执行RM是否提交或者回滚。 spring公共组件部分 1、SeataAutoConfiguration类加载 利用springboot自动装配机…

js实现前端下载图片和文件资料

说明:下载图片和文档资料是两种不同的方式,所以需要先判断下载的是图片还是word,excel等文件资料 目录 1.文件资料下载: 2.图片资源下载 1.文件资料下载: window.location.href 文件路径; handleClick(item) {let…

如何使用Spoofy检测目标域名是否存在欺骗攻击风险

关于Spoofy Spoofy是一款功能强大的域名安全检测工具,在该工具的帮助下,广大研究人员可以轻松检测单个目标域名或域名列表中的域名是否存在遭受欺诈攻击的风险。 该工具基于纯Python开发,可以根据SPF和DMARC记录来检测和判断目标域名是否可…

C++ 类和对象 (上)

类的引入: 由于C语言是面向过程的编程语言,我们在完成一件事的时候通常习惯将一件事拆分成一个一个小过程来实现,而到了C就习惯将一件事分成不同的模块,交给不同的对象来处理,每一个对象中承载着数据类型和函数。 &am…

Jackson进行Json反序列化对于一个小写字母开头后跟大写字母无法识别反序列成功问题

问题描述 json数据:{“pTargetId”:“123”} javaBean: Datapublic static class Test {private String pTargetId;}运行下面代码: public static void main(String[] args) throws JsonProcessingException {String json "{\"pT…

We are a team - 华为OD统一考试

OD统一考试 题解&#xff1a; Java / Python / C 题目描述 总共有 n 个人在机房&#xff0c;每个人有一个标号 (1<标号<n) &#xff0c;他们分成了多个团队&#xff0c;需要你根据收到的 m 条消息判定指定的两个人是否在一个团队中&#xff0c;具体的: 消息构成为 a b …

智慧启航:机场管理系统的革新与飞机航天展馆的视觉盛宴

随着科技的飞速发展&#xff0c;我们的生活方式正在不断地被改变和提升。而在航空领域&#xff0c;这种变化则更加明显。从机场的智慧管理系统大屏&#xff0c;到飞机航天展馆的三维可视化&#xff0c;再到飞机涡轮发动机的3D模型&#xff0c;科技的力量正在带我们进入一个前所…

ArkUI按钮组件深入学习:通过点击按钮实现图片大小调整效果

文章目录 前言Button组件控制 Button 样式实现点击按钮改变图片大小文章总结技术回顾前言 在前面几节课中,我们已经学习了 ArkUI 提供的一些常见组件,通过一个小案例实现了 image text 和 text input 组件的使用。我们成功地让用户通过输入来改变图片的宽度,从而实现了一个…

bat命令清理Window应用注册表(Unity开发Window应用)

bat命令清理Window应用注册表&#xff08;Unity开发Window应用&#xff09; 介绍出现的问题方案一方案二方案二解决方案1. 首先使用【Win】【R】组合快捷键&#xff0c;快速打开运行命令框&#xff0c;在打开后面键入命令&#xff1a;【Regedit】2. 完后后按回车键&#xff08;…

【Unity美术】Unity工程师对3D模型需要达到的了解【一】

&#x1f468;‍&#x1f4bb;个人主页&#xff1a;元宇宙-秩沅 &#x1f468;‍&#x1f4bb; hallo 欢迎 点赞&#x1f44d; 收藏⭐ 留言&#x1f4dd; 加关注✅! &#x1f468;‍&#x1f4bb; 本文由 秩沅 原创 &#x1f468;‍&#x1f4bb; 收录于专栏&#xff1a;Uni…