Python+whisper/vosk实现语音识别

目录

一、Whisper

1、Whisper介绍

2、安装Whisper

3、使用Whisper-base模型

4、使用Whisper-large-v3-turbo模型

二、vosk

1、Vosk介绍

2、vosk安装

3、使用vosk

三、总结


一、Whisper

1、Whisper介绍

Whisper 是一个由 OpenAI 开发的人工智能语音识别模型,它能够将语音转换为文本。Whisper 模型特别之处在于它的设计目标是能够理解和转录多种语言的语音,包括但不限于英语。Whisper 模型在训练时使用了大量不同语言的语音数据,这使得它具有很好的跨语言能力。

2、安装Whisper

pip install openai-whisper# 安装ffmpeg
sudo rpm --import http://li.nux.ro/download/nux/RPM-GPG-KEY-nux.ro
sudo rpm -Uvh http://li.nux.ro/download/nux/dextop/el7/x86_64/nux-dextop-release-0-5.el7.nux.noarch.rpm
sudo yum install ffmpeg

3、使用Whisper-base模型

whisper.load_model方法会自动下载相应的模型,可选:['tiny.en', 'tiny', 'base.en', 'base', 'small.en', 'small', 'medium.en', 'medium', 'large-v1', 'large-v2', 'large-v3', 'large', 'large-v3-turbo', 'turbo']。

下面使用的测试音频放在了百度云,可自行下载:

百度云链接:https://pan.baidu.com/s/16eGkDCOA02YbFY5V4ObZ1w?pwd=smr7 

import whispermodel = whisper.load_model("base")
result = model.transcribe("test.wav")
print(result['text'])

识别结果如下:

特大暴雨再次清洗滑南地區廣東清州與近日凌晨遭遇極端降雨短段數小時內每小時降雨量門增至40-50毫米以上至上50時清州12小時雷技雨量已經超過227毫米突破了最大暴雨標準同時刷新了當地5月份單日降雨記錄根據我國企項標準24小時降雨量超過50毫米定義為暴雨超100毫米為特大暴雨而超過255毫米則為特大特大暴雨

可通过opencc库将繁体字转换为简体字:

pip install opencc-python-reimplemented
import whisper
from opencc import OpenCC# 初始化转换器,从繁体中文转换到简体中文
converter = OpenCC('t2s')
model = whisper.load_model("base")
result = model.transcribe("test.wav")
print(converter.convert(result['text']))

识别结果如下:

特大暴雨再次清洗滑南地区广东清州与近日凌晨遭遇极端降雨短段数小时内每小时降雨量门增至40-50毫米以上至上50时清州12小时雷技雨量已经超过227毫米突破了最大暴雨标准同时刷新了当地5月份单日降雨记录根据我国企项标准24小时降雨量超过50毫米定义为暴雨超100毫米为特大暴雨而超过255毫米则为特大特大暴雨

4、使用Whisper-large-v3-turbo模型

import whispermodel = whisper.load_model("large-v3-turbo")
result = model.transcribe("test.wav")
print(result['text'])

识别结果如下:

特大暴雨再次侵袭华南地区广东,青州于近日凌晨遭遇极端降雨,短短数小时内每小时降雨量猛增至40-50毫米以上。至上午时时,青州12小时累计雨量已经超过227毫米,突破了最大暴雨标准,同时刷新了当地5月份单日降雨记录。根据我国气象标准,24小时降雨量超过50毫米定义为暴雨,超100毫米为特大暴雨,而超过250毫米则为特大特大暴雨。

可以看到,large-v3-turbo模型比base模型的识别准确性更高,并且识别结果为简体中文,不用额外进行繁转简,更加友好的是,识别结果有标点符号,可读性更强。

英文语音识别:

import whispermodel = whisper.load_model("large-v3-turbo")
result = model.transcribe("test_en.mp3")
print(result['text'])

识别结果如下:

In recent years, environmental conservation has become a topic of paramount importance. The rapid industrialization and urbanization have led to numerous environmental challenges, making it crucial for individuals, communities, and governments to take action. This article highlights the significance of environmental conservation and the measures that can be implemented to ensure a sustainable future. The environment provides essential resources for human survival, such as clean air, water, and fertile soil. Unfortunately, human activities have led to the depletion of these resources, causing adverse effects on both the ecosystem and human health. For instance, air pollution from factories and vehicles has resulted in respiratory problems, while water pollution has compromised access to clean drinking water.

二、vosk

1、Vosk介绍

Vosk 是一个开源的语音识别库,它可以在离线环境下工作,不依赖于任何外部服务。 Vosk 基于Kaldi语音识别框架,支持多种语言,包括中文。 Vosk提供了多种预训练模型,可以根据需求选择适合的模型进行语音识别。Vosk的优势在于可以在没有网络连接的情况下进行语音识别,并且支持多种操作系统和编程语言,用户可以根据自己的需求训练和优化模型。

2、vosk安装

模型有small size,也有较大的通用模型,可自行下载需要的语言模型:

https://alphacephei.com/vosk/models

以下下载的是大型通用中文模型vosk-model-cn-0.22.zip。

pip install vosk# 下载模型并解压
wget https://alphacephei.com/vosk/models/vosk-model-cn-0.22.zip
unzip vosk-model-cn-0.22.zip

3、使用vosk

import json
import wave
from vosk import Model, KaldiRecognizerdef recognize_wave(model, file_path):# 打开WAV音频文件with wave.open(file_path, 'rb') as wf:rate = wf.getframerate()  # 采样率frames = wf.readframes(wf.getnframes())  # 读取所有帧rec = KaldiRecognizer(model, rate)rec.SetWords(True)str_ret = ""# 识别音频数据if rec.AcceptWaveform(frames):result = json.loads(rec.Result())if 'text' in result:str_ret += result['text']result = json.loads(rec.FinalResult())if 'text' in result:str_ret += result['text']str_ret = "".join(str_ret.split())return str_retif __name__ == "__main__":model = Model("vosk-model-cn-0.22")file_path = 'test.wav'  # 请确保文件名和路径正确res = recognize_wave(model, file_path)print(res)

识别结果如下:

特大暴雨再次侵袭华南地区广东青州于近日凌晨遭遇极端降雨短短数小时内每小时降水量猛增至四十到五十毫米以上是上午十时青州十二小时累计雨量已经超过二八二七毫米突破了最大暴雨标准同时刷新了当地五月份单日降雨纪录根据我国气象标准二十四小时长相雨量超过五十毫米定义为暴雨超一百毫米为特大暴雨而超过二百五十毫米则为特大特大暴雨

三、总结

Whisper由OpenAI开发,其训练数据的多样性使得它在处理各种口音、背景噪音和专业术语方面具有较好的鲁棒性。large-v3-turbo是Whisper模型的一个改进版本,在保持较高准确性的同时,速度有了很大的提升,这使得它在实时性要求较高的场景下非常有优势。如果需要快速准确地处理语音,并且有足够的计算资源支持大型模型,那么 large-v3-turbo 是很好的选择。

Vosk是一个轻量级的语音识别工具包,基于Kaldi集成,在处理一些复杂语言场景或特殊口音时,可能相对 Whisper 会稍显不足。

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

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

相关文章

Parallels Desktop意外退出,Parallels Desktop安装软件很卡闪退怎么办?

Parallels Desktop是目前很优秀的虚拟机软件,操作简单,兼容性强而且安装也非常方便,备受苹果用户的喜爱和满意。然而,部分用户在使用Parallels Desktop的时候,会遇到意外退出或终端关机的情况,这不仅会影响…

利用 Llama 3.1模型 + Dify开源LLM应用开发平台,在你的Windows环境中搭建一套AI工作流

文章目录 1. 什么是Ollama?2. 什么是Dify?3. 下载Ollama4. 安装Ollama5. Ollama Model library模型库6. 本地部署Llama 3.1模型7. 安装Docker Desktop8. 使用Docker-Compose部署Dify9. 注册Dify账号10. 集成本地部署的 Llama 3.1模型11. 集成智谱AI大模型…

图像分类-demo(Lenet),tensorflow和Alexnet

目录 demo(Lenet) 代码实现基本步骤: TensorFlow 一、核心概念 二、主要特点 三、简单实现 参数: 模型编译 模型训练 模型评估 Alexnet model.py train.py predict.py demo(Lenet) PyTorch提供了一个名为“torchvision”的附加库,其中包含…

修复PDF打印速度慢

详细问题: 当您尝试将 PDF 文件打印到本地或网络打印机时,打印需要很长时间,因为发送打印作业后,打印机开始打印的速度非常慢,在打印任务中可以看到打印传输的数据在缓慢增长。 从其他程序打印时也不会出现打印速度慢…

单点登录Apereo CAS 7.1安装配置教程

笔者目前正在做一个单点登录的课题,历时较长总算摸到一些门路,其中的辛酸不易按下不表。截至本文发布,CAS的最新版本为7.1。由于涉及到课题内容,而且内容比较新,整理试验不容易,暂时只对VIP开放,后续课题完成后会完全开放,敬请谅解。 CAS项目区别 在CAS的项目选择上,…

Vue3 组件封装

1. 组件特性 在Vue中组件是一个独立的实例,每个组件都有共通点,就是:属性、插槽、事件、方法; 在日常我们使用第三方组件库的时候,组件库的文档都会说明上面四个特性,而组件封装就是围绕这四个特性进行的…

AI大模型 向量Embeddings+向量数据库实现文搜文、图搜图

文搜文、图搜图介绍: 文搜文 :即文本搜索文本,是指通过输入关键词或短语,在大量文本数据中检索出与之相关的内容 。 搜 索引擎(百度、谷歌、 360 ) 、 文档管理系统 、 电商搜索 。 图搜图 :即图像搜…

从零开始搭建一个node.js后端服务项目

目录 一、下载node.js及配置环境 二、搭建node.js项目及安装express框架 三、集成nodemon,实现代码热部署 四、Express 应用程序生成器 一、下载node.js及配置环境 网上很多安装教程,此处就不再赘述了 版本信息 C:\Users\XXX>node -v v20.15.0…

IDEA Sping Boot 多配置文件application Maven动态切换

新建application-dev.yml与application-prod.yml pom.xml文件下添加profiles等 让idea识别出配置文件 <profiles><profile><id>dev</id><properties><!-- 环境标识&#xff0c;需要与配置文件的名称相对应 --><profiles.active>dev&…

【系统架构设计师】案例专题六(8大系统架构设计之7): 安全架构设计考点梳理

更多内容请见: 备考系统架构设计师-核心总结目录 文章目录 一、安全架构概述2、信息安全面临的威胁2、安全架构的定义和范围3、与信息安全相关的国内外标准及组织二、安全模型1、状态机模型2、Bell-LaPadula模型3、Biba模型4、Clark-Wilson模型5、Chinese Wall模型三、系统安全…

欧科云链研究院深掘链上数据:洞察未来Web3的隐秘价值

目前链上数据正处于迈向下一个爆发的重要时刻。 随着Web3行业发展&#xff0c;公链数量呈现爆发式的增长&#xff0c;链上积聚的财富效应&#xff0c;特别是由行业热点话题引领的链上交互行为爆发式增长带来了巨量的链上数据&#xff0c;这些数据构筑了一个行为透明但与物理世…

(32)噪声信号的时域分析:均值、方差、与功率

文章目录 前言一、生成噪声信号并画图二、计算信号的均值、方差、与功率三、结果分析 前言 本文对叠加了高斯白噪声的一段整周期余弦信号进行时域分析&#xff0c;使用MATLAB进行信号生成&#xff0c;并计算其均值、方差、与功率。最后给出对计算结果的分析&#xff0c;阐明均…

小程序该如何上架

小程序的上架流程通常包括准备工作、代码审核、人工审核以及上线发布等关键步骤。以下是一个详细的小程序上架指南&#xff1a; 一、准备工作 注册开发者账号&#xff1a; 在微信小程序平台或支付宝开放平台等相应的小程序发布平台上注册开发者账号。 开发小程序&#xff1a; …

开源新生活,社区齐乐活:COSCon'24 社区合作和开源集市招募中,诚邀广大社区参与!...

一年一度的开源盛会&#xff0c;COSCon24第九届中国开源年会暨开源社10周年嘉年华&#xff0c;将于11月2-3日&#xff0c;在北京•中关村国家自主创新示范区展示中心召开&#xff01;本次大会的主题是&#xff1a;「Open Source&#xff0c;Open Life | 开源新生活」&#xff0…

git error: You have not concluded your merge (MERGE_HEAD exists).

本地作了修改并提交远程&#xff0c;但管理员并未合并。此时本地又作了修改&#xff0c;而管理员合并了其它分支&#xff0c;且这个合并分支同时修改了当前本地分支共同的文件。本着提交前同步最新远程代码的原则&#xff0c;结果在合并远程分支时冲突了。其实解决这个冲突再合…

电脑无线网wifi和有线网同时使用(内网+外网同时使用)

一、要求 我这里以无线网wifi为外网&#xff0c;有线网卡为内网为例&#xff1a; 一、基本信息 无线wifi&#xff08;外网&#xff09;&#xff1a;ip是192.168.179.235&#xff0c;网关是192.168.179.95有线网&#xff08;内网&#xff09;&#xff1a;ip是192.168.10.25&…

C语言实现输出空心数字金字塔

如下图所示&#xff0c;那么&#xff0c;该怎么实现呢 #include <stdio.h>void hallow(int n);int main(void) {int n;printf("请输入一个数");scanf("%d",&n);hallow(n);return 0; }void hallow(int n) {int i,j,k1;for (i 1; i <n-1; i) {…

网络爬虫自动化Selenium模拟用户操作

自动化测试和网络爬虫在现代软件开发中占据着重要的位置。它们通过自动化用户操作,减少了人工重复操作的时间成本。Selenium作为一个功能强大且应用广泛的自动化工具,不仅能在不同的浏览器中运行自动化测试,还能进行跨平台测试,并允许与多种编程语言集成。本教程将介绍如何…

Java面向对象编程--高级

目录 一、static关键字 1.1 静态变量 1.2 静态内存解析 1.3 static的应用与练习 二、单例设计模式 2.1 单例模式 2.2 如何实现单例模式 三、代码块 3.1 详解 3.2 练习&#xff0c;测试 四、final关键字 五、抽象类与抽象方法 5.1 abstract 5.2 练习 六、接口 6.…

以JavaScript的学习角度看Axios,并以spring boot+vue3为例具体分析实现

什么是Axios Axios 是一个基于 Promise 的 HTTP 客户端&#xff0c;用于在浏览器和 后端 中发送异步的 HTTP 请求。它功能强大、易用&#xff0c;常用于与 API 交互&#xff0c;发送 GET、POST、PUT、DELETE 等请求。 Axios 的主要特点&#xff1a; 支持 Promise Axios 基于 …