OpenMontage 语音转写实战指南:ElevenLabs Scribe v2 转录参数全解析
发布时间:2026/9/10 11:46:31 作者:尧图编辑部 阅读量:1,286

OpenMontage 语音转写实战指南ElevenLabs Scribe v2 转录参数全解析【免费下载链接】OpenMontageWorlds first open-source, agentic video production system. 12 production pipelines, 100 tools, 700 agent skill and production-knowledge files. Turn your AI coding assistant into a full video production studio.项目地址: https://gitcode.com/GitHub_Trending/op/OpenMontage本文是 OpenMontage 仓库中 speech-to-text 技能 的配套技术手册完整解读 ElevenLabs Scribe v2 批量转录 API 的 22 项请求参数、三种语言的调用示例、响应数据结构、90 语言支持范围与格式限制。读完本文你将掌握如何为字幕生成、会议纪要、播客转写等场景配置最合适的转录参数并能在 OpenMontage 的转写/字幕流水线中直接复用这些配置模式。本文主体依据 transcription-options.md 展开SDK 安装、API Key 配置与实时流式转录能力见 installation.md 与 SKILL.md。相关能力要求设置环境变量ELEVENLABS_API_KEY。一、核心模型与适用场景Scribe v2模型 IDscribe_v2是 ElevenLabs 的批量转录模型面向字幕生成、长音频转写、会议纪要等离线场景同系列还有面向实时场景的scribe_v2_realtime低延迟约 150ms用于直播字幕与语音 Agent。本文聚焦批量转录接口POST /v1/speech-to-text实时接口请参阅 realtime-client-side.md 与 realtime-server-side.md。二、请求参数总览以下是批量转录请求支持的全部参数来源transcription-options.md参数类型必填说明filefile是待转写的音频或视频文件model_idstring是scribe_v2旧版可用scribe_v1用于批量转录language_codestring否语言提示ISO 639-1 或 ISO 639-3如en或engtimestamps_granularitystring否none、word或character默认worddiarizeboolean否启用说话人分离默认false最多 32 位说话人num_speakersinteger否最大检测说话人数批量最多 32diarization_thresholdnumber否调节分离灵敏度默认约 0.22仅在diarizetrue且未设置num_speakers时生效keytermsarray否用于偏置转录结果的术语最多 100 个每个 ≤50 字符、≤5 词tag_audio_eventsboolean否检测笑声、掌声等非语音声音默认trueentity_detectionstring 或 array否实体检测如pii、phi、pci、offensive_languageno_verbatimboolean否为true时移除填充词、错误起句与非语音声音scribe_v2支持use_multi_channelboolean否将多声道音频拆分为独立转录默认false最多 5 声道、最长 1 小时cloud_storage_urlstring否使用 HTTPS URL 而非上传文件最大 2GBwebhookboolean否异步处理并通过 webhook 发送结果默认falsewebhook_idstring否指定目标 webhook仅当webhooktruewebhook_metadatastring 或 object否包含在 webhook 响应中的自定义元数据最大 16KBtemperaturedouble否输出随机性0.0-2.0默认值随模型而异seedinteger否确定性输出0-2147483647相同 seed 得到相同结果additional_formatsarray否额外导出转录格式docx、html、pdf、srt、txt、segmented_jsonfile_formatstring否pcm_s16le_16更低延迟或other默认enable_loggingboolean否设为false启用零保留模式仅企业版默认true参数分组解读输入源三选一file直接上传最大 3GB、cloud_storage_url远程 HTTPS 文件最大 2GB、或实时流式连接。三者对应不同的延迟与容量权衡。转写质量三件套language_code提供语言提示以提升非英语准确率keyterms让模型偏向识别产品名、专业术语、特殊拼写最多 100 个temperature/seed控制输出随机性与可复现性。说话人维度diarize开启后每个词都会带上speaker_idnum_speakers显式声明人数可提高分离稳定性而diarization_threshold默认约 0.22只在未指定人数时用于调节灵敏度。后处理与导出additional_formats可直接产出srt等字幕/文档格式省去自行拼接时间戳的步骤no_verbatim一键清理口语中的填充词与废话。企业合规entity_detection可识别 PII/PHI/PCI 与冒犯性语言enable_loggingfalse提供零保留模式企业版专属。三、三种语言调用示例Pythonfrom elevenlabs import ElevenLabs client ElevenLabs() with open(audio.mp3, rb) as audio_file: result client.speech_to_text.convert( fileaudio_file, model_idscribe_v2, language_codeeng, timestamps_granularityword, diarizeTrue, keyterms[ElevenLabs, Scribe] )安装与 Key 配置见 installation.mdpip install elevenlabs客户端优先从环境变量ELEVENLABS_API_KEY读取凭证也可显式传入ElevenLabs(api_key...)。JavaScriptimport { ElevenLabsClient } from elevenlabs/elevenlabs-js; import { createReadStream } from fs; const client new ElevenLabsClient(); const result await client.speechToText.convert({ file: createReadStream(audio.mp3), modelId: scribe_v2, languageCode: eng, timestampsGranularity: word, diarize: true, keyterms: [ElevenLabs, Scribe], });注意JS 生态必须使用elevenlabs/elevenlabs-js旧的elevenlabsnpm 包 v1.x 已弃用浏览器端另需elevenlabs/clientReact 项目可使用elevenlabs/react的useScribeHook。cURLcurl -X POST https://api.elevenlabs.io/v1/speech-to-text \ -H xi-api-key: $ELEVENLABS_API_KEY \ -F fileaudio.mp3 \ -F model_idscribe_v2 \ -F language_codeeng \ -F timestamps_granularityword \ -F diarizetrueREST 层通过xi-api-key请求头鉴权multipart/form-data 传文件。OpenMontage 仓库中 ElevenLabs 系的工具如 elevenlabs_tts.py同样采用ELEVENLABS_API_KEY环境变量 xi-api-key请求头的模式可作为后端集成参考。四、响应结构与字段说明响应示例{ text: The complete transcribed text from the audio file., language_code: eng, language_probability: 0.98, words: [ { text: The, start: 0.0, end: 0.15, type: word, speaker_id: speaker_0 }, { text: , start: 0.15, end: 0.16, type: spacing, speaker_id: speaker_0 } ] }响应字段表字段类型说明textstring完整转写文本language_codestring检测到的语言ISO 639-1 或 ISO 639-3language_probabilityfloat语言检测置信度0-1wordsarray词级时间戳若请求了该粒度words[].textstring转录的词或间隔字符words[].startfloat开始时间秒words[].endfloat结束时间秒words[].typestringword、spacing或audio_eventwords[].speaker_idstring说话人标识启用分离时transcription_idstring本次转录的唯一标识additional_formatsarray导出的转录格式若请求了entitiesarray检测到的实体含文本、类型与字符偏移启用实体检测时words[].type是三个枚举值word表示真实语音词spacing表示词间空白可用于精确对齐渲染audio_event表示模型检测到的非语音声音笑声、掌声、音乐等配合tag_audio_events参数。词级start/end秒级时间戳正是 OpenMontage 字幕流水线的核心输入——subtitle-sync.md 技能与 remotion_caption_burn.py 都依赖这类时间戳将转写结果烧录为画面字幕。五、语言支持范围Scribe v2 支持90 种语言。常见语言ISO 639-3 代码CodeLanguageCodeLanguageengEnglishjpnJapanesespaSpanishkorKoreanfraFrenchzhoMandarindeuGermanaraArabicitaItalianhinHindiporPortugueseturTurkishnldDutchsweSwedishpolPolishdanDanishrusRussianfinFinnish完整列表还包括Afrikaans, Amharic, Armenian, Azerbaijani, Belarusian, Bengali, Bosnian, Bulgarian, Burmese, Cantonese, Catalan, Cebuano, Croatian, Czech, Estonian, Filipino, Georgian, Greek, Gujarati, Hausa, Hebrew, Hungarian, Icelandic, Indonesian, Irish, Javanese, Kannada, Kazakh, Khmer, Kyrgyz, Lao, Latvian, Lithuanian, Luxembourgish, Macedonian, Malay, Malayalam, Maltese, Māori, Marathi, Mongolian, Nepali, Norwegian, Odia, Pashto, Persian, Punjabi, Romanian, Serbian, Shona, Sindhi, Slovak, Slovenian, Somali, Swahili, Tamil, Tajik, Telugu, Thai, Ukrainian, Urdu, Uzbek, Vietnamese, Welsh, Wolof, Xhosa, Yoruba, Zulu 等。语言提示参数接受 ISO 639-1如en或 ISO 639-3如eng两种形式。不传language_code时模型自动检测语言并通过响应中的language_codelanguage_probability返回检测结果。六、输入格式与限制音频格式MP3、WAV、M4A、FLAC、OGG、WebM、AAC、AIFF、Opus视频格式MP4、AVI、MKV、MOV、WMV、FLV、WebM、MPEG、3GPP硬性限制最大文件体积3GB文件上传或 2GB云端存储 URL最大时长10 小时标准模式或 1 小时多声道模式use_multi_channeltrue七、典型使用场景场景一带说话人标识的字幕生成配合timestamps_granularityword与diarizeTrue直接从词级时间戳与说话人 ID 生成带发言人的 SRT 式字幕result client.speech_to_text.convert( fileaudio_file, model_idscribe_v2, timestamps_granularityword, diarizeTrue ) # Generate SRT with speaker labels for i, word in enumerate(result.words, 1): if word.type word: print(f[{word.speaker_id}] {word.text} ({word.start:.2f}s))也可直接设置additional_formats[srt]由服务端一次导出字幕文件配合 OpenMontage 的 subtitle_gen.py 与 video_compose.py 可快速完成转写 → 字幕 → 成片闭环。场景二带自定义术语的会议转录keyterms可将人名、专有名词、企业名注入偏置显著降低误听率with open(meeting.mp3, rb) as f: result client.speech_to_text.convert( filef, model_idscribe_v2, diarizeTrue, keyterms[Q4 forecast, revenue target, ACME Corp] ) # Group by speaker current_speaker None for word in result.words: if word.type word: if word.speaker_id ! current_speaker: current_speaker word.speaker_id print(f\n[{current_speaker}]:, end ) print(word.text, end)场景三转写质量与成本控制错误处理SDK 调用建议包裹 try/except常见错误码为 401API Key 无效、422参数无效、429限流详见 SKILL.md。成本追踪通过client.speech_to_text.convert.with_raw_response(...)获取request-id响应头可对接 OpenMontage 的 cost_tracker.py 进行用量核算。确定性输出相同seed复现相同结果便于测试与对比调参。隐私合规需要处理敏感音频时开启entity_detection识别 PII/PHI企业环境可设enable_loggingfalse进入零保留模式。八、与仓库内转录能力的对比选型OpenMontage 仓库同时内置了本地优先的 WhisperX 转录管线transcriber.py配套技能 whisperx.md与 ElevenLabs Scribe 形成互补维度Scribe v2本文transcriberWhisperX运行方式云端 API需ELEVENLABS_API_KEY本地 faster-whisper / WhisperX语言90 种多语种模型决定说话人分离diarizeTrue最多 32 人WhisperX 对齐 pyannote需HF_TOKEN适用场景长音频、多语种、需要 keyterms 偏置离线、隐私敏感、GPU 环境下批量处理从 whisperx.md 的选择建议看单说话人talking head场景可跳过分离以省时多说话人访谈、播客才启用 diarization。这一判断同样适用于 Scribe——diarize会引入额外处理无多说话人需求时保持默认false即可。九、小结ElevenLabs Scribe v2 的批量转录接口围绕高质量文本 词级时间戳 说话人分离三项核心能力设计22 个请求参数覆盖了输入源上传/云端 URL、质量调优语言提示/keyterms/温度、说话人处理分离/人数/阈值、后处理去填充词/多格式导出与合规实体检测/零保留等多个维度。将其与 OpenMontage 仓库现成的字幕合成、视频合成与成本追踪工具链组合即可搭建一条从原始音视频到成片的完整转写驱动流水线。【免费下载链接】OpenMontageWorlds first open-source, agentic video production system. 12 production pipelines, 100 tools, 700 agent skill and production-knowledge files. Turn your AI coding assistant into a full video production studio.项目地址: https://gitcode.com/GitHub_Trending/op/OpenMontage创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考