ARTICLE DETAIL

资讯详情

深耕网站视觉设计与运营推广的一线实战洞察。

AutoClip 语音识别字幕生成完全指南:Whisper 本地部署、多服务接入与流水线集成

AutoClip 语音识别字幕生成完全指南:Whisper 本地部署、多服务接入与流水线集成 音视频AI 应用后端前端【免费下载链接】autoclipAutoClip : AI-powered video clipping and highlight generation · 一款智能高光提取与剪辑的二创工具项目地址https://gitcode.com/GitHub_Trending/autoc/autoclip点击查看免费下载导读AutoClip 是一款 AI 驱动的智能高光提取与二创工具其自动化流水线依赖字幕文件完成时间点分析、主题聚类与切片生成。当导入的视频本身没有字幕时系统会自动调用语音识别服务生成字幕确保后续处理正常进行。本文基于仓库文档 docs/SPEECH_RECOGNITION_SETUP.md 展开结合 语音识别模块重新设计文档 与后端源码完整讲解 AutoClip 支持的所有语音识别方式、安装配置步骤、Python 调用 API、REST 接口、参数调优与故障排除帮助你从零搭建一套可靠的字幕自动生成链路。语音识别在 AutoClip 中的作用AutoClip 的剪辑流水线大致分为大纲生成、时间点分析、评分、标题生成、聚类与成片等步骤其中时间点分析与切片依赖字幕的时间轴信息。因此在 simple_pipeline_adapter.py 中可以看到当项目没有提供 SRT 文件时流水线会调用generate_subtitle_for_video自动生成字幕import_processing.py 中的导入任务也会在缩略图生成之后、流水线处理之前根据用户在设置页配置的语音转写参数生成字幕并更新进度40% 处提示生成字幕...。# backend/tasks/import_processing.py 中的调用骨架 from backend.utils.speech_recognizer import generate_subtitle_for_video config get_desktop_config() speech_config config.speech_recognition generated_subtitle generate_subtitle_for_video( Path(video_path), languagelanguage, modelmodel, methodspeech_config.method, ... )此外bilibili.py 与 youtube.py 在视频下载完成后同样会按需调用 Whisper 生成字幕。可以说语音识别模块是保证无字幕视频也能跑完整条流水线的关键兜底组件。支持的语音识别方式当前仓库将语音识别方法建模为枚举SpeechRecognitionMethod定义在 backend/utils/speech_recognizer.py方法标识说明可用性判定条件whisper_local本地 Whisper免费离线推荐本地 Whisper 运行时已安装openai_apiOpenAI API准确率高设置了OPENAI_API_KEY环境变量azure_speechAzure Speech Services企业级同时设置了AZURE_SPEECH_KEY与AZURE_SPEECH_REGIONgoogle_speechGoogle Speech-to-Text存在GOOGLE_APPLICATION_CREDENTIALS凭证文件或GOOGLE_SPEECH_API_KEYaliyun_speech阿里云语音识别中文效果好配置了阿里云 API Keycustom_api自定义转写 API配置了custom_api_url与custom_api_key注意早期文档中提到的测试字幕simple方法在语音识别模块重新设计时已被移除。转写失败现在会直接抛出SpeechRecognitionError使任务失败而不是生成 mock 字幕以保证生产环境的数据质量详见 docs/SPEECH_RECOGNITION_REDESIGN.md。本地 Whisper推荐本地 Whisper 完全离线运行、无需 API 密钥、免费、支持多语言是默认推荐方案。AutoClip 桌面端采用faster-whisperCTranslate2 后端作为本地运行时相比官方 whisper 不依赖 PyTorch、体积更小约 200-400MB且解码速度更快跨平台可用。其按需安装逻辑集中在 backend/services/whisper_runtime.py运行时安装到用户可写目录data_dir/whisper-runtime而不是 .app 包内避免只读目录与代码签名问题使用当前后端进程的便携 Pythonsys.executable执行pip install --target install_dir faster-whisper保证解释器一致模型统一缓存到data_dir/whisper-models通过HF_HOME环境变量收口便于管理与卸载所有对faster_whisper/huggingface_hub的 import 都延迟到函数内部避免构建期依赖扫描导致打包失败。如果你希望脱离桌面端、在 Python 环境里手动安装官方 whisper也可以按以下方式# 方法1使用pip安装 pip install openai-whisper # 方法2使用conda安装 conda install -c conda-forge openai-whisper # 方法3从源码安装 git clone https://github.com/openai/whisper.git cd whisper pip install -e .验证安装whisper --help。无论哪种安装方式都需要系统具备 ffmpeg用于音频解码。Ubuntu/Debian 下sudo apt update sudo apt install ffmpegmacOS 下brew install ffmpeg。OpenAI APIOpenAI API 方式准确率高、支持多语言但需要 API 密钥、网络连接且有使用费用。在 AutoClip 中可用性检测逻辑为读取OPENAI_API_KEY环境变量非空即视为可用backend/utils/speech_recognizer.py。export OPENAI_API_KEYyour-api-key-here需要说明的是从当前源码看openai_api、azure_speech、google_speech的分支实现仍是占位状态会抛出功能暂未实现请使用本地Whisper异常而aliyun_speech与custom_api已有完整实现阿里云走 DashScope 百炼的qwen3-asr-flash模型输出 SRT 文本。因此现阶段生产可用的推荐路径是本地 Whisper 与阿里云/自定义 API其余 API 服务属于预留扩展选择时请以源码实际状态为准。阿里云语音识别aliyun_speech的实现路径backend/utils/speech_recognizer.py值得单独说明先用 ffmpeg 从视频提取 16kHz 单声道 PCM WAV 音频_extract_audio_from_video见 backend/utils/speech_recognizer.py将音频 base64 编码POST 到 DashScope 百炼 ASR 接口模型为qwen3-asr-flash请求参数支持enable_timestamps时间戳与enable_punctuation标点输出格式为 srt。export ALIYUN_ACCESS_KEY_IDyour-access-key export ALIYUN_ACCESS_KEY_SECRETyour-secret-key export ALIYUN_SPEECH_APP_KEYyour-app-key语言与模型支持多语种识别LanguageCode枚举backend/utils/speech_recognizer.py定义了完整的语言代码体系中文简体zh、繁体zh-TW英文en、美式en-US、英式en-GB日文ja、韩文ko、法文fr、德文de、西班牙文es、俄文ru、阿拉伯文ar、葡萄牙文pt、意大利文it自动检测auto默认在使用本地 Whisper 时zh-TW、en-US等带方言后缀的代码会被自动截取语言主干如zh、en传给 faster-whisperauto则传None让模型自动检测。Whisper 模型选择模型大小直接影响速度与准确率的权衡配置校验器限定的合法模型为tiny / base / small / medium / largebackend/services/speech_config_validator.py。桌面端模型管理服务 backend/services/whisper_model_manager.py 提供从 HuggingFace 拉取并缓存模型的完整能力各模型的下载体积与定位如下模型下载大小faster-whisper CTranslate2 版速度准确率适用场景tiny约 75 MB最快较低快速预览、实时处理base约 145 MB快中等日常使用、平衡选择默认small约 488 MB中等较好重要内容、知识类视频medium约 1.5 GB较慢高专业用途、演讲内容large-v3约 3 GB最慢最高重要项目、最高质量要求模型下载在后台线程执行snapshot_download支持进度查询、取消与删除取消下载后已下载分片保留可续传backend/services/whisper_model_manager.py。Python API 使用方式语音识别工具的便捷函数入口位于 backend/utils/speech_recognizer.py。注意文档示例中的shared.utils.speech_recognizer是早期路径当前仓库实际导入路径为backend.utils.speech_recognizer。自动模式默认系统按固定优先级自动选择首个可用的方法本地 Whisper → OpenAI API → Azure Speech → Google Speech → 阿里云 → 自定义 API若全部不可用则抛出SpeechRecognitionError(没有可用的语音识别服务...)。from backend.utils.speech_recognizer import generate_subtitle_for_video # 自动选择最佳方法 result generate_subtitle_for_video(video_path, methodauto) print(result) # 生成的字幕文件路径手动指定方法# 强制使用本地Whisper result generate_subtitle_for_video(video_path, methodwhisper_local) # 强制使用OpenAI API result generate_subtitle_for_video(video_path, methodopenai_api) # 强制使用阿里云 result generate_subtitle_for_video(video_path, methodaliyun_speech) # 自定义API result generate_subtitle_for_video(video_path, methodcustom_api)完整参数说明generate_subtitle_for_video(video_path, output_pathNone, methodauto, languageauto, modelbase, enable_fallbackTrue)video_path视频文件路径Path或可转Path的字符串output_path输出字幕路径默认与视频同目录、同名、扩展名取配置的output_formatmethodauto/whisper_local/openai_api/azure_speech/google_speech/aliyun_speech/custom_apilanguage语言代码见上文LanguageCode表model仅对whisper_local生效tiny/base/small/medium/largeenable_fallback主方法失败时是否回退到fallback_method默认whisper_local回退配置会关闭自身回退以避免无限递归backend/utils/speech_recognizer.py。检查可用方法from backend.utils.speech_recognizer import get_available_speech_recognition_methods methods get_available_speech_recognition_methods() print(methods) # 输出示例 # { # whisper_local: True, # openai_api: False, # azure_speech: False, # google_speech: False, # aliyun_speech: False, # custom_api: False # }另有get_supported_languages()与get_whisper_models()两个辅助函数分别返回语言代码列表与模型列表。配置选项配置数据模型桌面端语音识别配置由 backend/core/desktop_config.py 中的SpeechRecognitionSettings承载核心字段包括method主识别方法默认whisper_localwhisper_configWhisperConfigmodel_namebase、languageauto、custom_models_dir、enable_timestampsTrue、enable_punctuationTrue、enable_speaker_diarizationFalse、timeout1800openai_config / azure_config / google_config / aliyun_config / custom_api_configApiConfig各自持有api_key、region、endpoint、language等enable_fallbackTrue、fallback_methodwhisper_local、output_formatsrt。其中SpeechRecognitionConfigbackend/utils/speech_recognizer.py在构造时会自动校验方法、语言、模型名、超时时间与输出格式非法取值直接抛ValueError输出格式合法值为srt / vtt / txt / json。环境变量配置# 语音识别方法 export SPEECH_RECOGNITION_METHODwhisper_local # 语言设置 export SPEECH_RECOGNITION_LANGUAGEzh # Whisper模型 export SPEECH_RECOGNITION_MODELbase # 超时时间 export SPEECH_RECOGNITION_TIMEOUT300 # API密钥根据选择的服务 export OPENAI_API_KEYyour-openai-key export AZURE_SPEECH_KEYyour-azure-key export AZURE_SPEECH_REGIONyour-region export GOOGLE_APPLICATION_CREDENTIALSpath/to/credentials.json export ALIYUN_ACCESS_KEY_IDyour-access-key export ALIYUN_ACCESS_KEY_SECRETyour-secret-key export ALIYUN_SPEECH_APP_KEYyour-app-key设置页配置settings.json在数据目录的settings.json中可以持久化基础语音识别配置{ speech_recognition_method: whisper_local, speech_recognition_language: zh, speech_recognition_model: base, speech_recognition_timeout: 300 }需要提醒的是完整的分服务配置各 API 的 key、region、endpoint以及时间戳/标点/说话人分离开关现在统一由桌面配置层管理导入任务通过get_desktop_config().speech_recognition读取并映射为generate_subtitle_for_video的参数backend/tasks/import_processing.py。REST API语音识别管理接口AutoClip 在 backend/api/v1/speech_recognition.py 中提供了一组完整的语音识别管理 REST 接口前端设置页 SpeechRecognitionConfig.tsx 正是通过它们实现安装运行时 / 下载模型 / 测试服务的可视化操作。Whisper 运行时管理按需安装# 查询运行时安装状态前端轮询 GET /api/v1/whisper/runtime-status # 开始后台安装 Whisper 运行时 POST /api/v1/whisper/install # 卸载 Whisper 运行时不影响已下载的模型缓存 POST /api/v1/whisper/uninstallruntime-status返回statusnot_installed | installing | installed | error、粗粒度progress、message与log_tail等字段前端在installing或模型downloading期间以 2 秒间隔快速轮询其余时间 15 秒轮询一次。配置读写与校验# 获取完整语音识别配置 GET /api/v1/speech-recognition/config # 更新配置method、各服务配置、回退设置、输出格式 PUT /api/v1/speech-recognition/config # 校验配置返回 valid/errors/warnings/recommendations POST /api/v1/speech-recognition/validate # 获取场景化配置建议 GET /api/v1/speech-recognition/recommendations/speech-recognition/recommendations内置了按场景的推荐新手用户whisper_localbase、专业用户openai_api、中文内容aliyun_speech、企业应用azure_speech与模型选择指南。服务与模型管理# 获取各识别方法可用状态 GET /api/v1/speech-methods-status # 测试某个识别服务是否可用 POST /api/v1/test-speech-service # 获取所有Whisper模型信息含下载状态与进度 GET /api/v1/whisper-models # 下载模型 / 查询状态 / 取消下载 / 删除模型 POST /api/v1/whisper-models/download GET /api/v1/whisper-models/{model_name}/status POST /api/v1/whisper-models/{model_name}/cancel-download DELETE /api/v1/whisper-models/{model_name}模型状态枚举为available / downloading / downloaded / errorbackend/services/whisper_model_manager.py其中error通常意味着运行时未安装或下载失败。配置校验与最佳实践backend/services/speech_config_validator.py 提供了配置验证服务会在保存前给出错误、警告与建议常见规则包括模型名必须属于tiny/base/small/medium/large未下载的模型会提示首次使用时会自动下载超时时间建议 60 秒以上、不超过 2 小时API 密钥不能为空长度过短10会告警Azure 必须指定 region自定义 API 必须提供合法的http(s)://endpoint回退方法与主方法相同时会告警并建议在非本地主方法时把whisper_local设为回退以保证离线可用。推荐的超时配置来自重新设计文档短视频5 分钟60 秒中等视频5-30 分钟300 秒长视频30 分钟600 秒故障排除Whisper 未安装或命令找不到# 检查是否安装成功 pip list | grep whisper # 重新安装 pip uninstall openai-whisper pip install openai-whisper # 检查PATH which whisper在桌面端若运行时未安装whisper_local分支会抛出明确提示本地 Whisper 运行时未安装。请到「设置 → 语音识别」里点击安装 Whisper并下载一个模型后再试backend/utils/speech_recognizer.py。依赖缺失# 安装系统依赖Ubuntu/Debian sudo apt update sudo apt install ffmpeg # 安装系统依赖macOS brew install ffmpeg # 安装Python依赖 pip install torch torchvision torchaudioWhisper 运行太慢或内存不足换更小的模型--model tiny使用 GPU 加速如可用桌面端 faster-whisper 默认deviceauto、compute_typeint8量化在 Mac 上走 CPU 也能获得可接受的速度backend/utils/speech_recognizer.py分段处理长视频关闭说话人分离该功能会增加处理时间。转写失败当前设计下转写失败会抛出SpeechRecognitionError并导致任务失败而非生成 mock 字幕。建议的处理方式是捕获异常、记录日志并按需重试或切换回退方法from backend.utils.speech_recognizer import generate_subtitle_for_video, SpeechRecognitionError try: result generate_subtitle_for_video(video_path) except SpeechRecognitionError as e: logger.error(f语音识别失败: {e}) raiseSpeechRecognitionError涵盖的错误场景包括服务不可用、视频文件不存在、执行超时、执行失败、配置错误等。环境推荐配置速查环境推荐方案说明开发环境whisper_localbase模型平衡速度与准确率生产环境whisper_localsmall/medium考虑 GPU更高准确率中文内容aliyun_speech中文识别优化较好测试环境直接使用base模型跑短样本无需额外安装更完整的语音识别模块设计背景与演进说明可进一步阅读 docs/SPEECH_RECOGNITION_REDESIGN.mdWhisper 在长视频/字幕质量层面的策略讨论见 docs/WHISPER_STRATEGY_IMPLEMENTATION.md 与 docs/WHISPER_SUBTITLE_STRATEGY.md。安装运行项目可参考 README.md 与 docs/QUICK_START_GUIDE.md。赞分享音视频AI 应用后端前端【免费下载链接】autoclipAutoClip : AI-powered video clipping and highlight generation · 一款智能高光提取与剪辑的二创工具项目地址https://gitcode.com/GitHub_Trending/autoc/autoclip点击查看免费下载相关推荐FunASR Agent 集成指南HTTP 转写服务、MCP 工具、语音输入与字幕流水线FunASR Agent 集成指南HTTP 转写服务、MCP 工具、语音输入与字幕流水线 本文基于 FunASR 仓库中的 docs/agent_integr语音音频人工智能大模型模型推理服务本地部署OpenAI Whisper本地语音识别完整部署指南OpenAI Whisper本地语音识别完整部署指南 在人工智能技术飞速发展的今天语音识别已成为提升工作效率的重要工具。OpenAI Whisper作为开源领语音/音频深度学习FlatBuffers TypeScript 使用指南从 Schema 生成、缓冲区读写到 Object Based API 实战FlatBuffers TypeScript 使用指南从 Schema 生成、缓冲区读写到 Object Based API 实战 本文以 FlatBuffe人工智能语音音频创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表