当前位置: 首页 > news >正文

FunASR搭建语音识别服务和VAD检测

调整VAD参数

1. 查找VAD模型的配置文件

FunASR中的VAD模型为FSMN-VAD,参数配置类为VADXOptions,可以在以下路径中找到:

/workspace/FunASR/runtime/python/onnxruntime/funasr_onnx/utils/e2e_vad.py

其中,VADXOptions类定义了多个VAD参数。以下是一些常见参数的定义:

class VADXOptions:sample_rate: int = 16000detect_mode: int = VadDetectMode.kVadMutipleUtteranceDetectMode.valuesnr_mode: int = 0max_end_silence_time: int = 800max_start_silence_time: int = 3000do_start_point_detection: bool = Truedo_end_point_detection: bool = Truewindow_size_ms: int = 200sil_to_speech_time_thres: int = 150speech_to_sil_time_thres: int = 150speech_2_noise_ratio: float = 1.0do_extend: int = 1lookback_time_start_point: int = 200lookahead_time_end_point: int = 100max_single_segment_time: int = 60000

这些参数控制了VAD的静音检测、语音与噪音之间的比率等。具体参数意义如下:

max_single_segment_time:单段音频的最大时长,默认60000毫秒(1分钟)。
max_end_silence_time:检测到结束静音的最大时长,默认800毫秒。
max_start_silence_time:检测到开始静音的最大时长,默认3000毫秒。
sil_to_speech_time_thres:从静音到语音的时间阈值,默认150毫秒。
speech_to_sil_time_thres:从语音到静音的时间阈值,默认150毫秒。

2. 修改VAD配置
VAD模型的实际配置是从模型目录中的config.yaml文件读取的。可以在以下路径找到config.yaml文件:

/workspace/models/damo/speech_fsmn_vad_zh-cn-16k-common-onnx/config.yaml

config.yaml文件中的model_conf字段包含了VAD模型的详细配置:

model: FsmnVADStreaming
model_conf:sample_rate: 16000detect_mode: 1snr_mode: 0max_end_silence_time: 800max_start_silence_time: 3000do_start_point_detection: Truedo_end_point_detection: Truewindow_size_ms: 200sil_to_speech_time_thres: 150speech_to_sil_time_thres: 150speech_2_noise_ratio: 1.0do_extend: 1lookback_time_start_point: 200lookahead_time_end_point: 100max_single_segment_time: 60000

3. 修改参数示例
假设你想减少静音端点的检测时间,可以将max_end_silence_time的默认值从800毫秒改为600毫秒。只需编辑config.yaml文件,将以下行:

max_end_silence_time: 800

改为:

max_end_silence_time: 600

这样,你的VAD模型将在600毫秒后检测到结束静音,适用于需要更快速响应的语音识别场景。

调优实践建议

​直播场景配置

{"max_single_segment_time": 30000,  // 30秒分段"max_end_silence_time": 500,       // 快速结束检测"max_start_silence_time": 1000,    // 过滤开场噪音"sil_to_speech_time_thres": 80,    // 敏感语音起始"speech_to_sil_time_thres": 200    // 宽松语音结束
}

​客服录音处理

{"max_single_segment_time": 60000,  // 保留完整对话"max_end_silence_time": 1500,      // 等待客户确认"enable_semantic_sentence_detection": true  // 语义分割
}

性能影响对比

参数	                        低值风险	            高值风险
max_single_segment_time	    语义割裂	            内存溢出
max_end_silence_time	    提前截断(漏识别)	    延迟结束(多噪声)
sil_to_speech_time_thres	噪音误触发	        语音起始漏检

部分参考链接如下:
https://blog.51cto.com/u_16732038/12047312

相关文章:

  • 网站 国外空间不需要icp许可证吗网站如何赚钱
  • 做网站怎样设置搜索引擎最新时事热点
  • 大连专业模板网站制作网站建设优化收费
  • 平顶山网站制作哪家公司好站长网站查询工具
  • 杭州余杭做网站公司免费奖励自己的网站
  • 纯JSP网站开发百度推广方法
  • 第23篇:OpenEuler 24.03系统下的备份与还原技术详解
  • 从牛顿流体到弹性固体:旋转流变仪的高精度流变特性测定与工业应用
  • WebRTC(九):JitterBuffer
  • web布局16
  • Android 开发问题:bluetoothLeScanner.startScan(scanCallback); 扫描不到设备
  • 使用 PyAEDT 设计参数化对数周期偶极子天线 LPDA
  • OSS与NAS混合云存储架构:非结构化数据统一管理实战
  • 【Java高频面试问题】数据库篇
  • Drag-and-Drop LLMs: Zero-Shot Prompt-to-Weights
  • Windows10的任务栏时间显示秒 笔记250624
  • vue3+echarts实现tab切换多个图表
  • redis的安装及操作
  • 数据库AICD特性之--一致性 Consistency
  • 大语言模型训练中的自监督学习和其他训练方式
  • 【技术难题】el-table的全局数据排序实现示例,不受分页影响,以及异步请求带来的页面渲染问题
  • 数据结构与算法:图论——深度优先搜索dfs
  • 数据结构知识点总结--绪论
  • vue2中前端实现图片裁剪上传到服务器
  • go语言 *和
  • IoT创新应用场景,赋能海外市场拓展