openai whisper 语音转文字尝鲜

最近大模型很火,也试试搭一下,这个是openai 开源的whisper,用来语音转文字。

安装

按照此文档安装,个人习惯先使用第一个pip命令安装,然后再用第二个安装剩下的依赖(主要是tiktoken)

https://github.com/openai/whisper?tab=readme-ov-file

pip install -U openai-whisper #安装pypi包(这个缺少tiktoken
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

测试模型

默认模型是base,模型和需要的显存大小是
在这里插入图片描述

(base) ubuntu@ip-10-0-29-42:~$ time whisper 1.mp4
wDetecting language using up to the first 30 seconds. Use --language to specify the language
Detected language: Chinese
在这里插入图片描述
使用 --model 指定模型,这里使用最大的模型

(base) ubuntu@ip-10-0-29-42:~$ time whisper 1.mp4 --model large

Detecting language using up to the first 30 seconds. Use --language to specify the language
Detected language: Chinese在这里插入图片描述
大模型的显存占用如下:
在这里插入图片描述
这个默认使用cuda 进行,但是并不支持Apple Silicon的MPS。

从htop看还是使用的CPU进行的推理,受用–device mps也不支持。
在这里插入图片描述

脚本清洗

然后使用脚本清洗出现的时间线以及多出来的空格换行。

def remove_timestamps_and_empty_lines(input_file_path, output_file_path):# Read the filewith open(input_file_path, "r", encoding="utf-8") as file:lines = file.readlines()# Remove the timestamp from each line and filter out empty linescleaned_lines = [line.strip().split("] ", 1)[-1].strip()  # Split and remove the timestampfor line in lines if "] " in line and line.strip().split("] ", 1)[-1].strip()  # Check if there is text after removing timestamp]# Write the cleaned, non-empty lines to a new filewith open(output_file_path, "w", encoding="utf-8") as file:file.write(",".join(cleaned_lines))# Example usage
input_file_path = '1.txt'  # Specify the path to your input file
output_file_path = '2.txt'  # Specify the path to your output fileremove_timestamps_and_empty_lines(input_file_path, output_file_path)

利用Apple Silicon

为了不浪费Apple Silicon的性能,查了youtube发现一个可以使用Apple 显存进行加速的项目。https://www.youtube.com/watch?v=lPg9NbFrFPI

Github如下:
https://github.com/ggerganov/whisper.cpp

安装如下:

# Install Python dependencies needed for the creation of the Core ML model:
pip install ane_transformers
pip install openai-whisper
pip install coremltools# using Makefile
make clean
WHISPER_COREML=1 make -j
### 下载模型
make base
### Generate a Core ML model.
./models/generate-coreml-model.sh base# This will generate the folder models/ggml-base.en-encoder.mlmodelc  

各个模型的显存占用与模型大小:在这里插入图片描述
同样推理一个两个半小时的视频,时间如下:

# 先用ffmpeg转码
ffmpeg -i 1.mp4 -ar 16000 -ac 1 output.wav# 执行ggml-{model}.bin
time ./main -m models/ggml-base.bin -l zh -osrt -f 'output.wav'

这个视频在Tesla T4的卡上base模型要17分钟,large 1小时。(传统wispper)

Tiny:210S

在这里插入图片描述

base:301S

在这里插入图片描述

large V3:

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

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

相关文章

云知识库怎么搭建才适合中小企业?用这几个工具很轻松

当我们想到知识库时,可能会联想到庞大的公司和复杂的系统,但实际上,随着技术的发展,中小企业也可以利用各种工具来建立自己的云知识库。这样不仅能够提升企业的知识管理效率,还能优化客户服务流程。这篇文章会介绍三款…

数据线接口类型名称

USB TYPE-A 这个接口其实就是我们当下连接手机充电器的那个端口,该标准一般适用于个人电脑PC和手机适配器中,是应用于最广泛的接口标准。 USB TYPE-B TYPE-B接口想必很多人都没太接触过,因为这类线材一般用于打印机、显示器等连接传输。 US…

两个字的商标现在还可以申请下来不!

前几天有个申请主体给普推知产老杨发来多个两个字的商标名称,说要申请商标,而且还是日常用词组合,这样的就是想出来几十个大概率有相同或高近的,两个常用词及组合名称的商标名称基本都有注册的,但是也有捡漏的。 以前…

pycharm 更换Eclipse 的按键模式 keymap

流程 整体来说比较简单,其实只要下载一个eclipse keymap插件就可以完成 首先 ctrl alt s 打开设置页面,找到 plugin 安装完成后还是在 settings 下切换到 keymap即可以看到eclipse 的按键设置出现了,应用后ok 即可完成 再去试试&#x…

【java】(软考)面向对象---责任链解析

目录 责任链的意义 手写笔记 ​编辑 责任链的意义 当您把请求给出时,如果某对象不能实现您的操作,责任链会自动把您的请求传给它的下一级 从而避免请求的发送者和接受者之间的耦合关系 这里以2007年下半年试题七进行说明 题目描述 某企业的采购审批…

【声呐仿真】学习记录1-配置dave、uuv_simulator

【声呐仿真】学习记录1-配置dave、uuv_simulator 1.介绍2.配置3.一些场景 1.介绍 家|DAVE项目 — Home | Project DAVE 2.配置 参考官方教程安装|DAVE项目 — Installation | Project DAVE mkdir -p ~/uuv_ws/src cd ~/uuv_ws/src git clone https://github.com/Field-Robot…

第7章 Kafka-Kraft模式【Kafka】

第7章 Kafka-Kraft模式【Kafka】 前言推荐第7章 Kafka-Kraft模式7.1 Kafka-Kraft架构7.2 Kafka-Kraft集群部署7.3 Kafka-Kraft集群启动停止脚本 最后 前言 2024-3-27 22:46:07 本文是根据尚硅谷学习所做笔记 仅供学习交流使用,转载注明出处 推荐 【尚硅谷】Kaf…

【漏洞复现】WordPress_Wholesale_Market admin-ajax.php 任意文件读取漏洞

0x01 产品简介 WordPress Wholesale Market是一个WordPress主题,专门设计用于创建批发市场和在线商城网站。该主题提供了许多功能和设计元素,使您能够轻松地构建一个功能强大的批发市场平台,以满足批发商和零售商的需求。 0x02 漏洞概述 WordPress Wholesale Market存在任…

vue快速入门(三十五)组件通信-父传子

注释很详细&#xff0c;直接上代码 上一篇 新增内容 父组件传值子组件接收父组件传来的数据 源码 App.vue <template><div id"app"><!-- :item"item"为将item的值传递给MyTest组件 --><MyTest v-for"item in roles" :key&q…

【LAMMPS学习】八、基础知识(3.6)计算热导率

8. 基础知识 此部分描述了如何使用 LAMMPS 为用户和开发人员执行各种任务。术语表页面还列出了 MD 术语&#xff0c;以及相应 LAMMPS 手册页的链接。 LAMMPS 源代码分发的 examples 目录中包含的示例输入脚本以及示例脚本页面上突出显示的示例输入脚本还展示了如何设置和运行各…

【介绍下WebStorm开发插件】

&#x1f3a5;博主&#xff1a;程序员不想YY啊 &#x1f4ab;CSDN优质创作者&#xff0c;CSDN实力新星&#xff0c;CSDN博客专家 &#x1f917;点赞&#x1f388;收藏⭐再看&#x1f4ab;养成习惯 ✨希望本文对您有所裨益&#xff0c;如有不足之处&#xff0c;欢迎在评论区提出…

第62天:服务攻防-框架安全CVE 复现SpringStrutsLaravelThinkPHP

目录 思维导图 常见语言开发框架&#xff1a; 案例一&#xff1a;PHP-开发框架安全-Thinkphp&Laravel Thinkphp3.2.x日志泄露 自动化脚本检测 如何getshell 手工注入 ​ThinkPHP5 5.0.23 手工注入 工具检测 laravel-cve_2021_3129 案例二&#xff1a;JAVAWEB-开…