Youtu-Parsing-Omni音频解析指南ASR转写、说话人分离与声学事件一次全搞定Youtu-Parsing-Omni是腾讯优图实验室开源的 5B 参数全模态解析模型给一段音频输入即可一次性输出ASR 语音转写、说话人分离Speaker、时间戳分段与声学事件检测全部打包进一份结构化 JSON——不用在 Whisper 转写、pyannote 分离、事件分类器之间来回拼接流水线。本文带你从能力介绍到上手命令快速跑通音频解析全流程。一、音频任务能解析出什么在 README.md 的任务对照表中--task audio对应的输出覆盖以下三类内容能力说明对应输出字段️ ASR 转写语音内容逐段转成文字含时间戳segments[].asrvocal/non_vocal分段 说话人分离识别片段来自哪位说话人segments[].speaker 声学事件笑声、掌声、门声等声音事件acoustic events 音色/场景描述全局音色、场景摘要global_descriptiontimbre / scene也就是说一段会议录音或播客切片进来模型会按时间轴切成若干segments每段带上HH:MM:SS格式的时间戳、说话人标识、转写文本非人声片段也会被标注出来同时给出整段音频的全局描述。在官方 OmniParsingBench 评测中Youtu-Parsing-Omni 的Audio 单项得分 78.08是开源权重模型中的最高分超过 Gemini-3-Pro 的 76.74可见其音频解析能力相当能打。二、输出长什么样所有任务的输出都遵循同一套OmniSchema信封顶层是modality/subtype字段加segments时间轴数组音频任务的modality为audio。结构示意如下{ modality: audio, segments: [ { start_time: 00:00:01, end_time: 00:00:08, type: vocal, speaker: speaker_1, asr: 大家好欢迎收听本期节目……, acoustic_event: laughter } ], global_description: { caption: ……, narrative: ……, scene: 室内播客录制两位说话人交替对话 } }时间戳统一使用HH:MM:SS格式长音频会被切分处理无需自己预处理切段。这套统一 schema 的意义在于同一份代码、同一套解析逻辑同时支持文档、图片、图表、音频和视频——音频只是它七大解析家族之一这也是它叫 Parsing-Omni 的原因。三、一键上手安装与运行命令 1. 环境安装git clone https://gitcode.com/tencent_hunyuan/Youtu-Parsing-Omni # 进入 youtu-parsing/youtu_parsing_omni 后二选一 bash scripts/setup_env.sh # vLLM 推理服务transformers5.2.0 bash scripts/setup_env.sh --transformers # Transformers 本地推理transformers5.10.2两点提醒需要Python 3.10 和 CUDA GPU两种模式固定了不同的 transformers 版本请装入独立的 Python 环境系统需可访问ffmpeg音频/视频输入依赖2. 启动推理服务vLLM 方式MODELtencent/Youtu-Parsing-Omni DATA_ROOT/path/to/media GPU0 bash scripts/vllm.sh服务启动在http://127.0.0.1:8000/v1为 OpenAI 兼容接口。注意DATA_ROOT是服务端唯一允许读取本地音频的目录音频文件必须放在其下。3. 解析你的第一个音频文件 python examples/infer_vllm.py --task audio --media /path/to/media/speech.wav如果用 Transformers 本地推理命令几乎一致MODELtencent/Youtu-Parsing-Omni python examples/infer_transformers.py --model $MODEL --task audio --media /path/to/media/speech.wav请求时注意两个关键设置详见 README.md 的 Output format 部分开启解析模式chat_template_kwargs {enable_thinking: false, enable_parsing: true}对应模板 chat_template.jinja贪心解码temperature0以EO/|end_of_text|停止并保留特殊 token坐标、边界信息就藏在其中四、音频是怎么被处理的对好奇原理的朋友仓库里的源码可以直接看门道音频前端feature_extraction_youtu_vita.py 中YoutuVITAFeatureExtractor默认按16kHz 采样率处理长音频会被切成230 秒的块audio_chunk_min_second2、audio_chunk_max_second30每个块前自动注入HH:MM:SS时间戳——这正是输出时间戳的来源统一编码器由 config.json 可见图像、音频、视频共享同一个 Youtu-Omni-Encodervideo_fusion_layer_freq控制音视频在哪些层做跨模态融合音频 token 与视觉 token 共享同一套时间坐标系听 和 看 在编码器内部就完成了对齐模型配置configuration_youtu_vita.py 定义了youtu_vita架构音频编码器为 28 层、128 mel 频带的 Transformer对新手来说了解这些参数的用处在于长录音不用手动切段模型自己分块并保时间戳转写完直接按时间戳检索定位。五、常见问题 FAQ ❓Q1只想要文字转写不用说话人分离可以吗可以。输出是完整的 JSON直接取segments中的asr字段拼接即可多余字段忽略不影响。Q2支持哪些音频格式常见格式wav、mp3 等均可服务端通过audio_url接收本地解码依赖ffmpeg能解的格式它基本都能吃。Q3音频和视频能一起解析吗能。--task natural_video/textrich_video会把视频帧和音轨一起送入模型输出同时包含视觉元素和音频轨道ASR 事件且附带整段视频的 Markdown 结构化报告。Q4效果如何量化参考OmniParsingBench 的 Audio 单项 78.08 分开源最高文档解析在 OmniDocBench v1.6 上 Overall 达 96.96。写在最后 ✍️Youtu-Parsing-Omni 把 ASR 转写、说话人分离、声学事件检测塞进了同一个 5B 模型和同一份 JSON 输出对想快速给音频上结构化的场景非常友好。更多任务文档、图表、几何图形、视频的用法可继续阅读 README.md音频处理细节可翻阅 processing_youtu_vita.py 与 tokenization_youtu_vita.py。创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考