【小沐学AI】Python实现语音识别(faster-whisper-webui)

文章目录

  • 1、简介
    • 1.1 whisper
    • 1.2 faster-whisper
  • 2、安装
  • 3、测试
  • 结语

1、简介

1.1 whisper

https://github.com/openai/whisper
Whisper 是一种通用语音识别模型。它是在各种音频的大型数据集上训练的,也是一个多任务模型,可以执行多语言语音识别、语音翻译和语言识别。

OpenAI 的开源模型 whisper,可以执行 99 种语言的语音识别和文字转写。但是 whisper 模型占用计算资源多,命令行使用门槛高。whisper 模型本身还存在一些问题,例如 模型幻听问题。
在这里插入图片描述

Whisper是可以理解多种语言的自动语音识别()系统。它已经接受了从网络收集的 680,000 小时监督数据的训练。
在这里插入图片描述
Transformer 序列到序列模型针对各种语音处理任务进行训练,包括多语言语音识别、语音翻译、口语识别和语音活动检测。这些任务共同表示为解码器要预测的一系列标记,从而允许单个模型取代传统语音处理管道的许多阶段。多任务训练格式使用一组特殊标记作为任务说明符或分类目标。

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

1.2 faster-whisper

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

2、安装

git clone https://github.com/ycyy/faster-whisper-webui.git

在这里插入图片描述

# 进入项目的目录
cd faster-whisper-webui

在这里插入图片描述

# 安装项目依赖
pip3 install -r requirements.txt# 装一下faster-whisper依赖
pip3 install -r requirements-fasterWhisper.txt

您可以选择使用 或 .Faster Whisper 作为 默认 Whisper 可实现高达 4 倍的加速和 2 倍的内存使用量减少。
在这里插入图片描述
在这里插入图片描述

mkdir models

在这里插入图片描述

cd models#需要配置VAD模型:
git clone https://github.com/snakers4/silero-vad

在这里插入图片描述
在这里插入图片描述

新建文件夹faster-whisper,再在里面新建子文件夹large-v2,里面存放模型文件。
下载faster-whisper模型:

https://huggingface.co/guillaumekln/faster-whisper-large-v2

在这里插入图片描述
最后代码的整个文件夹树如下:

|─faster-whisper-webui|─models├─faster-whisper│  ├─base│  ├─large│  ├─large-v2│  ├─medium│  ├─small│  └─tiny└─silero-vad├─examples│  ├─cpp│  ├─microphone_and_webRTC_integration│  └─pyaudio-streaming├─files└─__pycache__

在代码文件cli.py文件的最前面添加如下代码:

import os
os.environ['KMP_DUPLICATE_LIB_OK']='True'

3、测试

您还可以运行 CLI 接口,该接口类似于 Whisper 自己的 CLI,但也支持以下附加参数:

python cli.py \
[--vad {none,silero-vad,silero-vad-skip-gaps,silero-vad-expand-into-gaps,periodic-vad}] \
[--vad_merge_window VAD_MERGE_WINDOW] \
[--vad_max_merge_size VAD_MAX_MERGE_SIZE] \
[--vad_padding VAD_PADDING] \
[--vad_prompt_window VAD_PROMPT_WINDOW]
[--vad_cpu_cores NUMBER_OF_CORES]
[--vad_parallel_devices COMMA_DELIMITED_DEVICES]
[--auto_parallel BOOLEAN]
python cli.py --model large --vad silero-vad --language Japanese "https://www.youtube.com/watch?v=4cICErqqRSM"python cli.py --model large-v2 --vad silero-vad --language Japanese --output_dir C:\Users\tomcat\Desktop\yxy C:\Users\tomcat\Desktop\yxy\yxy_audio.mp3

在这里插入图片描述
上面只是用了whisper原版的算法,现在添加–whisper_implementation faster-whisper参数来使用faster-whisper改进后的算法:

python cli.py --whisper_implementation faster-whisper --model large-v2 --vad silero-vad --language Japanese --output_dir C:\Users\tomcat\Desktop\yxy C:\Users\tomcat\Desktop\yxy\yxy_audio.mp3

在这里插入图片描述
更多AI信息如下:
在这里插入图片描述
2024第四届人工智能、自动化与高性能计算国际会议(AIAHPC 2024)将于2024年7月19-21日在中国·珠海召开。
大会网站:更多会议详情
时间地点:中国珠海-中山大学珠海校区|2024年7月19-21日

结语

如果您觉得该方法或代码有一点点用处,可以给作者点个赞,或打赏杯咖啡;╮( ̄▽ ̄)╭
如果您感觉方法或代码不咋地//(ㄒoㄒ)//,就在评论处留言,作者继续改进;o_O???
如果您需要相关功能的代码定制化开发,可以留言私信作者;(✿◡‿◡)
感谢各位大佬童鞋们的支持!( ´ ▽´ )ノ ( ´ ▽´)っ!!!

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

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

相关文章

软考初级网络管理员_04_硬件单选题

1.进程是程序的一次执行,()是进程存在的唯一标志。 程序 数据 进程控制块 进程标识符 2.(请作答此空)是计算机内部运算部件一次能同时处理的二进制数据位数。计算机的运行速度使用每秒钟所能执行的()指令数目来评估。 字长 带宽 内存 寄存器 3.某银行的一…

安装ant-design-vue的报错集合

20240629vue版本:4.x vue/cli5.x运行项目报错error Replace xxx with xxx prettier/prettier 解决办法_replace 路路路路路路路路 with 路路路路-CSDN博客 Ant Design 使用出现 Error_ Can‘t resolve ‘_antd_dist_antd.css‘-CSDN博客

【JVM基础篇】垃圾回收

文章目录 垃圾回收常见内存管理方式手动回收:C内存管理自动回收(GC):Java内存管理自动、手动回收优缺点 应用场景垃圾回收器需要对哪些部分内存进行回收?不需要垃圾回收器回收需要垃圾回收器回收 方法区的回收代码测试手动调用垃圾回收方法Sy…

Matlab|分时电价环境下用户负荷需求响应分析方法

主要内容 本程序复现《分时电价环境下用户负荷需求响应分析方法》文献中的方法,通过用户对不同时间下用电需求的自弹性和交叉弹性系数分析获得用户需求响应矩阵,进而利用该矩阵对用户在实行基于电价的需求侧管理后的负荷变化情况进行快速分析。 1.1…

Linux 文件系统详解:ext4、XFS、Btrfs

1. 引言 Linux 操作系统支持多种文件系统,其中 ext4、XFS 和 Btrfs 是最为常用的三种。它们各自具有独特的特点和优势,适用于不同的使用场景。本文将详细介绍这三种文件系统的概念、结构、使用场景以及常用命令,帮助读者更好地理解和使用这些…

ONLYOFFICE8.1版本桌面编辑器简单测评

ONLYOFFICE官网链接:在线PDF查看器和转换器 | ONLYOFFICE ONLYOFFICE介绍:https://www.onlyoffice.com/zh/office-suite.aspx OnlyOffice 是一款免费且开源的 Office 协作办公套件,支持桌面端和移动端等多平台,由一家领先的 IT 公…

【python】OpenCV—Aruco

文章目录 Detect ArucoGuess Aruco Type Detect Aruco 学习参考来自:OpenCV基础(19)使用 OpenCV 和 Python 检测 ArUco 标记 更多使用细节可以参考:【python】OpenCV—Color Correction 源码: 链接:http…

在Ubuntu 18.04上安装和配置GitLab的方法

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站。 简介 GitLab 是一个开源应用程序,主要用于托管 Git 仓库,并提供额外的与开发相关的功能,如问题跟踪…

为什么IP地址会被列入黑名单?

您是否曾经历过网站访客数量骤减或电子邮件投递失败的困扰?这背后或许隐藏着一个常被忽略的原因:您的IP地址可能已经被列入了黑名单内。尽管您并没有进行任何违法的网络操作,但这个问题依然可能出现。那么,究竟黑名单是什么&#…

PostgreSQL 性能优化与调优(六)

1. 索引优化 1.1 创建索引 索引可以显著提高查询性能。创建索引的基本语法如下: CREATE INDEX index_name ON table_name (column_name);例如,为 users 表的 username 列创建索引: CREATE INDEX idx_username ON users (username); 1.2 …

【VMware】VMware 开启的虚拟机无法联网的解决方案

目录 🌊1. 问题说明 🌊2. 解决方案 🌍2.1 查看虚拟网络编辑器 🌍2.2 设置 vmnet 🌍2.3 设置虚拟机网络 🌍2.4 Xshell连接虚拟机 🌊1. 问题说明 虚拟机 ping 其他网页显示失败,比如&#…

数据质量管理-时效性管理

前情提要 根据GB/T 36344-2018《信息技术 数据质量评价指标》的标准文档,当前数据质量评价指标框架中包含6评价指标,在实际的数据治理过程中,存在一个关联性指标。7个指标中存在4个定性指标,3个定量指标; 定性指标&am…

Linux内存管理--系列文章陆——可执行文件的装载

应届生面试时,经常会有人问程序和进程有什么区别。简单来讲,程序是一个静态物品,就是存放在磁盘上的一些预先编译好的指令和数据的文件。而进程是一种运行的实例,它是程序在操作系统中的一次运行活动,具有生命周期。进…

汇编语言中的内存管理与寻址方式

在计算机科学中,内存管理是确保程序和数据能够高效、安全地存储和访问的关键环节。汇编语言,作为最接近硬件的编程语言,为程序员提供了直接控制内存的能力。 内存管理基础 内存管理涉及到数据如何在内存中存储、访问和操作。在汇编语言层面…

创建一个快速、高效的网络爬虫:PHP和Selenium示例

随着互联网的不断发展,数据爬取已经成为了许多人的必备技能。而网络爬虫则是实现数据爬取的重要工具之一。 网络爬虫可以自动化地访问网站、获取内容、分析页面并提取所需数据。其中,Selenium是一款非常优秀的网络自动化测试工具,能够模拟真…

Window安全配置

任何本地登录的用户都属于Interactive组Ipconfig/all :用于显示所有网络适配器的完整TCP/IP配置信息route print:用于显示路由表中的当前项目tracert –d:禁止tracert将中间路由器的IP地址解析为名称。这样可以加速显示tracert的结果nslookup…

面向对象分析与设计

文章目录 设计的重点在于模块间的通信,而不在于模块的属性和方法程序就是一群对象,通过消息要求对方做点事情对象间相互协作(消息)以完成系统功能 设计的重点在于模块间的通信,而不在于模块的属性和方法 程序就是一群对象,通过消…

【旭日x3派】部署官方yolov5全流程

地平线旭日x3派部署yolov5--全流程 前言一、深度学习环境安装二、安装docker三、部署3.1、安装工具链镜像3.2、配置天工开物OpenExplorer工具包3.3、创建深度学习虚拟空间,安装依赖:3.4、下载yolov5项目源码并运行3.5、pytorch的pt模型文件转onnx3.6、最…

前端git约定式规范化提交-commitizen

当使用commitizen进行代码提交时,commitizen会提示你在提交代码时填写所必填的提交字段信息内容。 1、全局安装commitizen npm install -g commitizen4.2.4 2、安装并配置 cz-customizeable 插件 2.1 使用 npm 下载 cz-customizeable npm i cz-customizeable6.…

Spark SQL----Troubleshooting

Spark SQL----Troubleshooting JDBC驱动程序类必须对客户端会话和所有executor上的原始类加载器可见。这是因为Java的DriverManager类进行安全检查,导致它在打开连接时忽略所有原始类加载器不可见的驱动程序。一种方便的方法是在所有worker节点上修改compute_classp…