当前位置: 首页 > article >正文

视频转音频, 音频转文字

Ubuntu 24

环境准备

# 系统级依赖
sudo apt update && sudo apt install -y ffmpeg python3-venv git build-essential python3-dev# Python虚拟环境
python3 -m venv ~/ai_summary
source ~/ai_summary/bin/activate

核心工具链

工具用途安装命令
Whisper语音识别pip install openai-whisper -i https://pypi.tuna.tsinghua.edu.cn/simple
FFmpeg音视频处理apt install -y ffmpeg

1. 音频提取

ffmpeg -i 视频.mp4 -vn -ar 16000 -ac 1 -b:a 192k 音频.mp3

2. 语音转写(中文优化)

whisper --model tiny  --language zh --threads 4 音频.mp3 --output_format txt --output_dir transcripts# 可用模型对比(内存需求从低到高)
# tiny(1GB) < base(1.2GB) < small(2GB) < medium(5GB) < large(10GB)

whisper 处理内存不足

解决方案(按优先级排序)

方案一:改用更小模型

# 选择内存占用最低的模型
whisper 教学音频.mp3 \--model tiny \--language zh \--device cpu \--threads 2# 可用模型对比(内存需求从低到高)
# tiny(1GB) < base(1.2GB) < small(2GB) < medium(5GB) < large(10GB)

方案二:内存优化配置

# 1. 强制使用CPU模式(避免GPU显存占用)
whisper 教学音频.mp3 --model tiny --device cpu# 2. 启用内存映射加载(仅限Linux)
HF_DATASETS_IN_MEMORY_MAX_SIZE=0 \
PYTORCH_NO_CUDA_MEMORY_CACHING=1 \
whisper 教学音频.mp3 --model tiny# 3. 限制线程数
export OMP_NUM_THREADS=2  # 控制并行计算线程

方案三:系统级优化

# 创建交换文件(临时增加虚拟内存)
sudo fallocate -l 4G /swapfile
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile# 验证交换空间
free -h

方案四:分片处理长音频

# 将音频切分为10分钟片段
ffmpeg -i 教学音频.mp3 -f segment -segment_time 600 -c copy part_%03d.mp3# 分批处理
for file in part_*.mp3; dowhisper "$file" --model tiny --output_dir transcripts
done

方案五:使用优化版工具

# 安装内存优化版的whisper.cpp
git clone https://github.com/ggerganov/whisper.cpp
cd whisper.cpp && make# 转换模型为ggml格式
./models/download-ggml-model.sh tiny# 运行推理
./main -m models/ggml-tiny.bin -l zh -f 教学音频.mp3

验证方法

# 监控内存使用
watch -n 1 "free -h | grep Mem"# 测试最小可行性案例
whisper --model tiny --language zh --output_format txt test.wav

备选方案

如果必须使用大模型:

  1. 升级服务器内存至至少8GB
  2. 使用云服务API(推荐OpenAI官方API)
import openai
audio_file = open("教学音频.mp3", "rb")
transcript = openai.Audio.transcribe("whisper-1", audio_file)

技术说明

优化策略内存节省效果适用场景
使用tiny模型减少80%快速概要生成
CPU模式减少30%无GPU环境
分片处理减少70%超长音频(>1小时)
内存映射减少50%Linux系统

建议优先采用方案一+方案三组合,在保持可用性的同时最大程度降低内存需求。


繁体转简体

# 安装轻量级转换库
pip install zhconv# 在现有处理流程中加入转换步骤
from zhconv import convertdef traditional_to_simple(text):return convert(text, 'zh-cn')  # 大陆简体with open("transcripts/教学音频.txt", "r") as f:content = traditional_to_simple(f.read())

Whisper支持的核心参数

参数缩写默认值说明
--temperature-tmp0采样温度(0为确定性输出,>0增加随机性)
--best_of-b5生成候选结果的数量(选择最佳转录)
--beam_size-bs5Beam搜索的宽度(影响转录质量)
--patience-pa1.0Beam搜索的耐心值(影响转录速度与质量)
--length_penalty-lp1.0长度惩罚系数(>1鼓励长输出,<1鼓励短输出)
--suppress_tokens-stNone禁止生成的token列表(用逗号分隔)
--initial_prompt-pNone初始提示文本(用于引导模型生成特定内容)
--condition_on_previous_text-copTrue是否基于前文生成后续内容
--fp16-fpTrue是否使用FP16加速(仅限GPU)
--temperature_increment_on_fallback-tif0.2回退时温度增量(用于处理低质量音频)
--compression_ratio_threshold-crt2.4压缩比阈值(高于此值可能为低质量转录)
--logprob_threshold-lt-1.0对数概率阈值(低于此值可能为低质量转录)
--no_speech_threshold-nst0.6无语音阈值(高于此值可能为静音段)
--word_timestamps-wtFalse是否生成逐字时间戳
--prepend_punctuations-pp"'“¿([{-"前置标点符号列表
--append_punctuations-ap``后置标点符号列表
--highlight_words-hwFalse是否高亮显示单词(仅限VTT/SRT格式)
--max_line_width-wNone每行最大字符数(用于格式化输出)
--max_line_count-cNone每段最大行数(用于格式化输出)
--max_words_per_line-mwpNone每行最大单词数(用于格式化输出)
--threads-t0CPU线程数(0为自动选择)
--clip_timestamps-ctNone裁剪时间戳(格式:start,end,单位:秒)
--hallucination_silence_threshold-hstNone幻觉静音阈值(用于检测无效转录)

1. 使用FFmpeg分片
# 将音频按300秒分片
ffmpeg -i 长讲座.mp3 -f segment -segment_time 300 -c copy 分片_%03d.mp3
2. 批量转录分片
# 使用Whisper转录所有分片
for file in 分片_*.mp3; dowhisper "$file" --model large-v3 --language zh --output_dir transcripts
done
3. 合并转录结果
# 合并所有分片的转录文本
cat transcripts/*.txt > 完整转录.txt

示例命令

1. 高精度转录
whisper 教学音频.mp3 --model large-v3 --language zh --beam_size 5 --best_of 5
2. 逐字时间戳
whisper 会议录音.mp3 --model medium --word_timestamps True --output_format vtt
3. 低质量音频优化
whisper 低质量音频.mp3 --model small --temperature_increment_on_fallback 0.4 --compression_ratio_threshold 2.8
4. 自定义标点处理
whisper 音频.mp3 --model base --prepend_punctuations "'“¿([{-" --append_punctuations '"”.。,,!!??::”)]}、'

参数组合建议

场景推荐参数组合
实时转录--model tiny --temperature 0 --threads 2
高精度转录--model large-v3 --beam_size 5 --best_of 5
低质量音频--model small --temperature_increment_on_fallback 0.4 --compression_ratio_threshold 2.8
逐字时间戳--model medium --word_timestamps True --output_format vtt
长音频处理使用FFmpeg分片后批量转录

注意事项

  1. 硬件要求large-v3需要至少10GB显存,建议使用NVIDIA 30系列以上显卡。
  2. 语言支持tinybase模型对非英语支持有限,建议中文场景至少使用small模型。
  3. 精度权衡small模型在大多数场景下已能满足需求,无需盲目追求大模型。

相关文章:

视频转音频, 音频转文字

Ubuntu 24 环境准备 # 系统级依赖 sudo apt update && sudo apt install -y ffmpeg python3-venv git build-essential python3-dev# Python虚拟环境 python3 -m venv ~/ai_summary source ~/ai_summary/bin/activate核心工具链 工具用途安装命令Whisper语音识别pip …...

基于协同过滤推荐算法的景点票务数据系统(python-计算机毕设)

摘 要 I ABSTRACT II 第 1 章 引言 1 研究背景及意义 1 研究背景 1研究意义 1 国内外研究现状 2 智慧旅游 3旅游大数据 3 研究内容 4本章小结 4 第 2 章 相关技术概述 5 基于内容的推荐算法 5 基于内容的推荐算法原理 5基于内容的推荐算法实现 5 协同过滤推荐算法 6 协同过…...

QT学习笔记1

** Qt Creator开发环境配置** 安装流程&#xff08;Windows平台&#xff09; 下载与安装 &#xff1a; 访问Qt官网&#xff0c;下载在线安装工具Qt Online Installer。登录或注册Qt账号&#xff0c;选择开源版本&#xff08;需勾选“接受协议”&#xff09;。勾选组件&#xff…...

Ubuntu 24 常用命令方法

文章目录 环境说明1、账号管理1.1、启用 root 2、包管理工具 apt & dpkg2.1、apt 简介 & 阿里源配置2.2、dpkg 简介2.3、apt 和 dpkg 两者之间的关系2.4、常用命令 3、启用 ssh 服务4、防火墙5、开启远程登录6、关闭交换分区7、build-essential&#xff08;编译和开发软…...

Flask多参数模版使用

需要建立目录templates&#xff1b; 把建好的html文件放到templates目录里面&#xff1b; 约定好参数名字&#xff0c;单个名字可以直接使用&#xff1b;多参数使用字典传递&#xff1b; 样例&#xff1a; from flask import render_template # 模板 (Templates) #Flask 使用…...

torcharrow gflags版本问题

问题描述 其实仍然是很简单的编译问题&#xff0c;但是又弄了一整个下午加几乎整个晚上&#xff0c;进度缓慢&#xff0c;又吸取了教训&#xff0c;因而还是来记录一下。 在试图使用torcharrow进行推荐系统模拟的时候&#xff0c;撰写的python程序报错&#xff1a;ERROR: flag…...

自然语言处理|深入解析 PEGASUS:从原理到实践

一、引言 在信息爆炸的时代&#xff0c;互联网上的文本数据以极快的速度增长。无论是新闻资讯、学术论文、社交媒体动态&#xff0c;还是各类报告文档&#xff0c;我们每天接触到的文字信息量巨大。如何快速、准确地提取关键内容成为一项重要任务。文本摘要技术通过将长篇文本…...

Spring AI Alibaba快速使用

AI 时代&#xff0c;Java 程序员也需要与时俱进&#xff0c;这两个框架必须掌握。 一个是 Spring AI一个是 Spring Alibaba AI。 Spring AI 是一个AI工程领域的应用程序框架&#xff0c;它的目标是将 Spring生态系统的设计原则应用于人工智能领域。 但是&#xff0c; Spring…...

socks 协议介绍

SOCKS协议详解 一、基本定义与核心功能 SOCKS&#xff08;Socket Secure&#xff09;是一种网络传输协议&#xff0c;主要用于通过代理服务器转发客户端与目标服务器之间的通信请求。其核心功能包括隐藏用户真实IP地址、穿透防火墙限制以及支持多种网络协议&#xff08;如TCP…...

Linux --centos安装显卡驱动

显卡下载页面 https://www.nvidia.com/en-us/drivers/unix/ 随便下载一个即可 安装过程 查看当前设备的显卡信息 lspci | grep -i vga安装gcc相关依赖 yum update -y yum update gcc yum install build-essential yum install gcc-multilibdkms yum groupinstall "Dev…...

【软件工程】简答题

真题 2024-10 26.需求验证应验证需求规格说明书中每一单一需求是否满足5个性质,这5个性质是什么? 27.简述RUP和UML的关系。 28.简述五种常见的模块间耦合类型。 29.螺旋模型在笛卡尔坐标的4个象限上,分别表达了哪4个方面的活动? 30.为了表达概念模型和软件模型,UML提供了13…...

统信UOS中使用Vscode编程

写在前面&#xff1a;统信UOS其实就是套壳的Linux系统&#xff0c;所以有问题如果搜不到解决方法&#xff0c;可以参考Linux下的解决方法。 1.环境配置 Vscode : 1.85.0 Vscode就直接下载安装就行&#xff0c;然后安装插件&#xff1a;Volar、中文汉化包 node&#xff1a;18…...

K8s认证(CKA/CKAD/CKS)哪家强?主流证书对比

2024年Kubernetes认证全解析&#xff1a;选对证书&#xff0c;薪资翻倍&#xff01; &#xff08;附CKA/CKAD/CKS最新考试攻略&#xff09; 一、K8s认证哪家强&#xff1f;主流证书对比 认证名称颁发机构考试特点适合人群考试费用CKA&#xff08;认证K8s管理员&#xff09;CN…...

HTTP1.0、HTTP1.1、HTTP2.0对比

HTTP 1.0、HTTP 1.1 和 HTTP 2.0 是 HTTP 协议演进中的三个重要版本&#xff0c;每个版本都针对前一代的不足进行了优化和改进。以下是它们的核心区别和关键特性对比&#xff1a; 1. HTTP 1.0&#xff08;1996年&#xff09; 非持久连接 每个请求/响应对都需要单独建立和关闭 T…...

docker安装向量数据库Milvus及可视化工具 Attu

前置条件 1.安装了docker 2.服务器网络正常&#xff0c;可以连接到容器下载地址 3.服务器磁盘空间正常&#xff0c;docker磁盘占用过大&#xff0c;请参考docker容量占用过大解决办法 一、下载yml文件 可在文章资源下载或者自行下载&#xff1a;下载yml 下载这个单机版本的…...

A l密码学(Deepseek)

我&#xff1a;qwertyuiopasdfghjklzxcvbnm deepseek:深度思考中&#xff0e; Okay, lets see. The user input is "qwertyuiopasdfghjklzxcvbnm". At first glance, it looks like a jumbled sequence of letters with some spaces or maybe other characters in …...

DeepSeek + Kimi 自动生成 PPT

可以先用deepseek生成ppt大纲&#xff0c;再把这个大纲复制到Kimi的ppt助手里&#xff1a; https://kimi.moonshot.cn/kimiplus/conpg18t7lagbbsfqksg 选择ppt模板&#xff1a; 点击生成ppt就制作好了。...

Apache Paimon 在抖音集团多场景中的优化实践

资料来源&#xff1a;火山引擎-开发者社区 本文将基于抖音集团内部两大业务的典型实时数仓场景&#xff0c;介绍Paimon在抖音集团内部的生产实践。 作者&#xff1a;李明、苏兴、文杰 抖音集团大数据工程师 目前抖音集团内部主要使用 Lambda 架构进行实时数仓建设&#xff0c;其…...

Uni-App 双栏联动滚动组件开发详解 (电梯导航)

本文基于提供的代码实现一个左右联动的滚动组件&#xff0c;以下是详细的代码解析与实现原理说明&#xff1a; <!--双栏联动滚动组件 - 技术解析功能特性&#xff1a;1. 左侧导航栏与右侧内容区双向联动2. 自适应容器高度3. 平滑滚动定位4. 动态内容位置计算 --> <te…...

当下主流 AI 模型对比:ChatGPT、DeepSeek、Grok 及其他前沿技术

&#x1f4dd;个人主页&#x1f339;&#xff1a;一ge科研小菜鸡-CSDN博客 &#x1f339;&#x1f339;期待您的关注 &#x1f339;&#x1f339; 1. 引言 人工智能&#xff08;AI&#xff09;领域近年来取得了巨大的突破&#xff0c;特别是在大语言模型&#xff08;LLM&#…...

【自用】NLP算法面经(5)

一、L1、L2正则化 正则化是机器学习中用于防止过拟合并提高模型泛化能力的技术。当模型过拟合时&#xff0c;它已经很好地学习了训练数据&#xff0c;甚至是训练数据中的噪声&#xff0c;所以可能无法在新的、未见过的数据上表现良好。 比如&#xff1a; 其中&#xff0c;x1和…...

体育直播视频源格式解析:M3U8 vs FLV

在体育直播领域&#xff0c;视频源的格式选择直接影响着直播的流畅度、画质以及兼容性。目前&#xff0c;M3U8 和 FLV 是两种最为常见的视频流格式&#xff0c;它们各有优劣&#xff0c;适用于不同的场景。本文将从技术原理、优缺点以及应用场景等方面对 M3U8 和 FLV 进行详细解…...

Ubuntu20.04安装并配置Pycharm2020.2.5

一. 下载pycharm 社区版 1. 下载地址&#xff1a; PyCharm: the Python IDE for data science and web developmentThe Python IDE for data science and web development with intelligent code completion, on-the-fly error checking, quick-fixes, and much more.https:/…...

Filter Solutions学习-02 【高级设计】界面介绍

这是高级界面的各种控件的功能。 其中说一下filter type。这不是根据自己想当然决定的&#xff0c;而是根据实际的需要&#xff0c;比如带外衰减的程度&#xff0c;带内波动&#xff08;平坦&#xff09;如何&#xff0c;还有群时延等等决定的。比如不要求矩形系数选什么。。 …...

用Python实现交互式数据可视化:从基础图表到动态仪表板

用Python实现交互式数据可视化&#xff1a;从基础图表到动态仪表板 一、项目背景 本文将通过一个完整的Python项目&#xff0c;展示如何使用Plotly和ipywidgets构建从基础统计到动态交互的全栈数据可视化方案。 二、核心功能模块 1. 数据生成与预处理 np.random.seed(100)…...

Java面试黄金宝典5

1. ConcurrentHashMap 和 HashTable 有哪些区别 原理 HashTable&#xff1a;它继承自 Dictionary 类&#xff0c;是 Java 早期提供的线程安全哈希表。其线程安全的实现方式是对每个方法都使用 synchronized 关键字进行同步。例如&#xff0c;在调用 put、get 等方法时&#xff…...

【深度学习与大模型基础】第6章-对角矩阵,对称矩阵,正交矩阵

一、对角矩阵 对角矩阵&#xff08;Diagonal Matrix&#xff09;是一种特殊的方阵&#xff0c;其非对角线上的元素均为零&#xff0c;只有对角线上的元素可能非零。具体来说&#xff0c;对于一个 nn的矩阵 A[]&#xff0c;如果满足 则 AA 称为对角矩阵。对角矩阵通常表示为&am…...

初识R语言饼状图

目录 基础饼图 标签个性化 边界修改 密度条纹 边框颜色 基础饼图 rm(list ls())# Create Data Prop <- c(3,7,9,1,2) # Make the default Pie Plot P1 <- pie(Prop) dev.off() 标签个性化 P2 <-pie(Prop , labels c("Gr-A","Gr-B","…...

计算机技术系列博客——目录页(持续更新)

1.1 博客目录专栏 1.1.1 博客文章导航 计算机技术系列博客——目录页 1.1.2 网页资源整理 2.1 计算机科学理论 2.2 软件工程技术 2.2.1.1 编程语言 Java Java语言基础 (1) Java基础知识总结01——Java基础篇 (2) Java基础知识总结02——集合框架篇 (3) Java基础知识总结03—…...

HTTP和RPC的区别

RPC和 HTTP是两种常见的通信方式&#xff0c;它们在设计目标、使用场景和技术实现上有显著区别。以下是它们的详细对比&#xff1a; 1. 定义与核心思想 特性RPCHTTPRemote Procedure Call远程过程调用HyperText Transfer Protocol超文本传输协议定义一种协议或框架&#xff0…...