视频转音频, 音频转文字

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模型在大多数场景下已能满足需求,无需盲目追求大模型。

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

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

相关文章

MCP和Function Calling的区别

文章目录 1、什么是MCP1.1、定义和特点1.2、架构和工作原理3.3、MCP 的主要优势 2、什么是Function Calling3、MCP和Function Calling的区别4、总结 &#x1f343;作者介绍&#xff1a;双非本科大四网络工程专业在读&#xff0c;阿里云专家博主&#xff0c;前三年专注于Java领域…

裂缝识别系统 Matlab GUI设计

使用说明 裂缝识别系统 Matlab GUI设计 &#xff0c;运行环境Matlab2023b及以上&#xff1b; 一种基于MATLAB图形用户界面&#xff08;GUI&#xff09;的裂缝自动识别系统&#xff0c;该系统利用数字图像处理技术实现裂缝图像的预处理&#xff0c;集成均衡化、噪声滤波、对比…

【源码分析】Nacos实例注册流程分析-事件驱动框架

【踩坑记录】 本人下载的Nacos 服务端版本是2.3.2&#xff0c;在开始进行源码编译便遇到问题&#xff0c;下面是各个问题记录 源码大量爆红 在最开始用Idea加载Maven项目的时候&#xff0c;发现项目中大量的代码爆红&#xff0c;提示其类或者包不存在&#xff0c;后来结果查…

51单片机指令系统入门

目录 基本概念讲解 一、机器指令​ 二、汇编指令​ &#xff08;一&#xff09;汇编指令的一般格式 &#xff08;二&#xff09;按字节数分类的指令 三、高级指令 总结​ 基本概念讲解 指令是计算机&#xff08;或单片机&#xff09;中 CPU 能够识别并执行的基本操作命令…

mysql5.x和mysql8.x查看和设置隔离级别

MySQL的隔离级别 级别标志值描述读未提交READ-UNCOMMITTED0存在脏读、不可重复读、幻读的问题读已提交READ-COMMITTED1解决脏读的问题&#xff0c;存在不可重复读、幻读的问题可重复读REPEATABLE-READ2mysql 默认级别&#xff0c;解决脏读、不可重复读的问题&#xff0c;存在幻…

【函数式编程】【C#/F#】第四讲:单子与函子 - 抽象的编程模式

在第二讲中我们探讨了一个诚实的函数应该要做到什么事&#xff0c;并运用了一种方法&#xff0c;让我们可以去准确的描述数据。 不过有一种情况让我们始料未及&#xff0c;例如网站需要收集一些信息&#xff0c;但有些信息不是必须的&#xff0c;是可有可无的。如果我们要去准…

【vue2 + Cesium】使用Cesium、添加第三方地图、去掉商标、Cesium基础配置、地图放大缩小事件、获取可视区域、层级、高度

参考文章&#xff1a; vue2 使用 cesium 篇【第一篇】 vue2 使用 cesium 【第二篇-相机视角移动添加模型】 vue2 项目模版&#xff1a; vue2-common 安装 cesium npm install cesium --save这个就很简单&#xff0c;只需要一句简简单单的命令就可以实现在 vue 项目中安装 ce…

vllm-openai多服务器集群部署AI模型

服务器配置是两台ubantu系统电脑,每台电脑安装两张4090-48G显存的显卡,共计192G显存。 服务器1 服务器2 准备工作: 1.两台电脑都已经安装了docker 2.两台电脑都已经安装了nvidia驱动 参考vllm官方资料 https://docs.vllm.ai/en/latest/serving/distributed_serving.html…

【电源】斩波电路

文章目录 前言定义概念 缩写降压斩波电路使用步骤总结参考文献 前言 进行大创项目开发的学习 bilibili 定义概念 缩写 斩波电路&#xff1a;分为降压&#xff0c;电荷泵&#xff0c;升压&#xff0c;升降压&#xff0c;Cuk&#xff0c;Speic&#xff0c;Zeta 等等 降压斩…

Hadoop集群组成

&#xff08;一&#xff09;Hadoop的组成 对普通用户来说&#xff0c; Hadoop就是一个东西&#xff0c;一个整体&#xff0c;它能给我们提供无限的磁盘用来保存文件&#xff0c;可以使用提供强大的计算能力。 在Hadoop3.X中&#xff0c;hadoop一共有三个组成部…

c++基础知识-图论进阶

一、拓扑排序 1、基础知识 1&#xff09;什么是拓扑排序 对一个有向无环图G进行拓扑排序&#xff0c;是将G中所有顶点排成一个线性序列&#xff0c;使得图中任意一对顶点u和v&#xff0c;若&#xff0c;则u在线性序列中出现在v之前。 2&#xff09;拓扑排序的操作方法 重复执行…

从Scaling Laws中解析大模型训练的边际递减临界点

前言 当我们拆解GPT-4到DeepSeek的演进路径&#xff0c;会发现一个反直觉的真相&#xff1a;​AI的智能跃迁不依赖参数堆砌&#xff0c;而取决于对"结构-能量-信息"三元关系的精准把控。就像人类大脑在进化中通过皮层折叠而非单纯增大体积来实现智能突破&#xff0c…

Word 小黑第20套

对应大猫21 特定一页设为横向 上下用分页符

【从0到1搞懂大模型】RNN基础(4)

先说几个常用的可以下载数据集的地方 平台&#xff1a;kaggle&#xff08;https://www.kaggle.com/datasets&#xff09; 和鲸社区&#xff08;https://www.heywhale.com/home&#xff09; 阿里天池&#xff08;https://tianchi.aliyun.com/&#xff09; 其他&#xff1a;海量公…

openEuler24.03 LTS下安装MySQL8

前提条件 拥有openEuler24.03 LTS环境&#xff0c;可参考&#xff1a;Vmware下安装openEuler24.03 LTS 步骤 卸载原有mysql及mariadb sudo systemctl stop mysql mysqld 2>/dev/null sudo rpm -qa | grep -i mysql\|mariadb | xargs -n1 sudo rpm -e --nodeps 2>/dev/…

如何在Odoo 18中实现OWL通知服务

如何在Odoo 18中实现OWL通知服务 OWL&#xff08;Odoo Web Library&#xff09;是Odoo的前端框架&#xff0c;用于构建现代化的动态响应式用户界面。在早期版本中&#xff0c;Odoo 前端设计与开发使用的是诸如 QWeb 这类较为老旧的框架&#xff0c;而随着 Odoo 每发布一个新版本…

Unet nn-Unet

Unet && nn-Unet&#xff1a; 文章题目&#xff1a;U-Net: Convolutional Networks for Biomedical Image Segmentation 代码&#xff1a;https://lmb.informatik.uni-freiburg.de/people/ronneber/u-net/ 文章题目&#xff1a;nnU-Net: Self-adapting Framework for U…

【扩散模型入门】Latent Diffusion

1. 概述 扩散模型为公众所知的一个主要原因是Stable Diffusion(SD)的推出展现出了远超以往的图像合成效果,而SD的主要技术就是Latent Diffusion Model(LDM)。 实际上,LDM的核心idea非常简单: 为了确保生成质量,LDM尽可能提升去噪模型的规模。提升模型规模往往也会同步…

搭建主从服务器

任务需求 客户端通过访问 www.nihao.com 后&#xff0c;能够通过 dns 域名解析&#xff0c;访问到 nginx 服务中由 nfs 共享的首页文件&#xff0c;内容为&#xff1a;Very good, you have successfully set up the system. 各个主机能够实现时间同步&#xff0c;并且都开启防…

SAP HANA on AWS Amazon Web Services

SAP HANA on AWS Amazon Web Services