语音端点识别(FSMN 模型)
更新时间:2026-06-15
简介
语音端点检测模块 - 基于 FSMN VAD 的高效音频分割解决方案
功能描述
- 语音端点检测:自动识别音频中的语音片段起止时间,实现语音与静音的精准分割
- 批量处理:支持大批量音频数据的高效端点检测
- 多格式输入:兼容原始二进制、Base64 编码、BOS/HTTP 链接等多种音频输入方式
- GPU 加速:支持 GPU 环境下的高性能推理
- 建议输入 16k 采样率、单声道的 WAV 格式音频,提升检测准确率
- 长音频建议分段处理,单次处理时长建议不超过 1 小时
- 适用于语音活动检测、语音切分等场景
iic/speech_fsmn_vad_zh-cn-16k-common-pytorch(中文通用 FSMN VAD)- 每条音频输出二维浮点数列表,表示所有语音片段的起止时间戳(单位:秒),如:[[0.0, 4.34], [5.50, 7.12]]
- 处理失败时返回 None
算子参数
输入
| 输入 | 含义 |
|---|---|
| videos | 包含音频数据的列,支持以下格式: - audio_base64: base64 编码的音频字符串 - audio_url: 音频文件的 URL 路径 - audio_binary: 原始音频字节数据 |
输出
| 输出 | 含义 |
|---|---|
| result | 包含语音端点时间戳的列,每个元素为二维浮点数列表,表示音频中各语音片段的起止时间戳(单位:秒), 例如:[[0.0, 4.34], [5.50, 7.12]]。若处理失败则为 None。 |
参数
| 参数名称 | 类型 | 默认值 | 描述 |
|---|---|---|---|
| audio_src_type | str | 必填 | 音频格式类型 支持的音频格式类型,包含: - bos/http 地址(audio_url) - base64 编码(audio_base64) - 二进制流(audio_binary) 可选值:["audio_binary", "audio_url", "audio_base64"] |
| batch_size_s | int | 3600 | 批量计算的秒数 每批次处理的音频时长(秒),仅在使用GPU时生效。 默认值:3600 |
| model_path | str | '/opt/aihc/models' | 模型路径 本地模型存储路径。 默认值:"/opt/aihc/models" |
| model_name | str | 'iic/speech_fsmn_vad_zh-cn-16k-common-pytorch' | 模型名称 使用的模型名称,包含: - iic/speech_fsmn_vad_zh-cn-16k-common-pytorch 可选值:["iic/speech_fsmn_vad_zh-cn-16k-common-pytorch"] 默认值:"iic/speech_fsmn_vad_zh-cn-16k-common-pytorch" |
| model_revision | str | 'v2.0.4' | 模型版本 指定模型的版本号,包含: - v2.0.4 可选值:["v2.0.4"] 默认值:"v2.0.4" |
| rank | int | 0 | 指定使用的GPU设备编号(多卡环境有效)。例如:0表示第一张GPU,1表示第二张GPU 默认值:None |
调用示例
Python
1from __future__ import annotations
2
3import os
4
5import daft
6from daft import col
7
8from daft.aihc.common.udf import aihc_udf
9from daft.aihc.functions.audio.audio_vad_fsmn import AudioVadFsmn
10
11if __name__ == "__main__":
12 if os.getenv("DAFT_RUNNER", "native") == "ray":
13 import ray
14 ray.init(dashboard_host="0.0.0.0", ignore_reinit_error=True)
15 daft.set_runner_ray()
16 daft.set_execution_config(actor_udf_ready_timeout=6000, min_cpu_per_task=0)
17
18 # TODO: 根据实际场景准备样本数据
19 samples = {"videos": [...]}
20 ds = daft.from_pydict(samples)
21 constructor_kwargs = {
22 "batch_size_s": 3600,
23 "model_path": '/opt/aihc/models',
24 "model_name": 'iic/speech_fsmn_vad_zh-cn-16k-common-pytorch',
25 "model_revision": 'v2.0.4',
26 }
27 ds = ds.with_column(
28 "result",
29 aihc_udf(
30 AudioVadFsmn,
31 construct_args=constructor_kwargs,
32 num_cpus=1,
33 concurrency=4,
34 batch_size=8,
35 )(col("videos")),
36 )
37 ds.show()
评价此篇文章
