freeswitch 使用 silero-vad 静音拆分使用 fastasr 识别

VAD入门(基于Python) Silero VAD 是 Silero 语音模型系列中的语音活动检测(VAD)工具,基于深度学习实现,相比传统 VAD(如 WebRTC VAD),它在复杂噪声环境下的检测效果更好,且支持更灵活的输入格式。(1)安装 (2)依赖 Python 3.7+ PyTorch 1.10+ TorchAudio 0.10+(1) 语音段检测 输入音频波形,返回语音段的起止时间(单位:毫秒)。 (2) 实时语音检测 支持流式音频输入,逐帧判断是否包含语音。(1) 加载模型 (2)检测语音段 输出示例: (3) 提取语音 阅读详情
AI摘要

文章介绍了在Python环境下,使用Silero-VAD和FastASR(Paraformer模型)进行实时语音识别的流程,包括模型下载、转换及性能测试。通过将音频从8k转换为16k,与FastASR结合,实现语音活动检测(VAD)。最终,作者展示了如何结合Silero-VAD进行数据合并和识别,并提到该系统可能适用于CPU服务器上的实时翻译和机器人应用。

silero-vad 在git 的评分挺高的测试好像比webrtc vad好下面测试下

silero-vad 支持c++ 和py 由于识别c的框架少下面使用py

以下基于python3.8+torch1.12.0+torchaudio 1.12.0 

1.由于fastasr 需要16k  所以 将freeswitch的实时音频mediabug 8k转成16k 用socket传到py   模块代码百度多略 。

pip3 install fastasr

使用阿里的模型吧  感觉还行

下载预训练模型

paraformer预训练模型下载

进入FastASR/models/paraformer_cli文件夹,用于存放下载的预训练模型.

cd ../models/paraformer_cli

从modelscope官网下载预训练模型,预训练模型所在的仓库地址 也可通过命令一键下载。

wget --user-agent="Mozilla/5.0" -c "https://www.modelscope.cn/api/v1/models/damo/speech_paraformer-large_asr_nat-zh-cn-16k-common-vocab8404-pytorch/repo?Revision=v1.0.4&FilePath=model.pb"

mv repo\?Revision\=v1.0.4\&FilePath\=model.pb model.pb 

将用于Python的模型转换为C++的,这样更方便通过内存映射的方式直接读取参数,加快模型读取速度。

../scripts/paraformer_convert.py model.pb

查看转换后的参数文件wenet_params.bin的md5码,md5码为c77bc27e5758ebdc28a9024460e48602,表示转换正确。

md5sum -b wenet_params.bin

测试:

git clone https://github.com/chenkui164/FastASR

 fastasr  ok

2、silero-vad安装

 需要环境 本文torch1.12.0+torchaudio 1.12.0 

  • pytorch >= 1.12.0
  • torchaudio >= 0.9.0 (used only for examples, IO and resampling, can be omitted in production)

 安装好就行

测试:

 silero-vad/parallel_example.ipynb at master · snakers4/silero-vad · GitHub

3. 综合:

fs 每帧数据10ms 用python3 合并了 vad 推荐30ms 核心代码如下:

其他代码参考

FastASR/paraformer_cli.py at main · chenkui164/FastASR · GitHub

silero-vad/parallel_example.ipynb at master · snakers4/silero-vad · GitHub

  with socket.socket(socket.AF_INET, socket.SOCK_DGRAM) as s:
        # 绑定地址和端口
        s.bind(ADDR)
        # 等待接收信息 
        datahe = []
        allokdata=[]  
        index=0;
        sendstate=0
        print("udpstart\n")
        while True:
            #print('UDP服务启动,准备接收数据……')
            # 接收数据和客户端请求地址
            data, address = s.recvfrom(BUFFSIZE) 
            if not data:
                break  
            if (len(data)) < 640: 

  。。。。。

       datahe = np.append( datahe,np.frombuffer( newdata0  , np.int16 )   );   
                    audio_float32 =   int2float(  datahe ) 
                    new_confidence = model(torch.from_numpy(audio_float32), 16000).item()
                    #print("==",new_confidence)    
                    if new_confidence >=0.5: #合并数据为识别
                        print("=================",new_confidence);  
                        if sendstate==1: 
                          allokdata = np.append( allokdata, datahe  )
                        else: 
                          sendstate=1
                          allokdata = datahe
                             
                        #f.write( datahe.tobytes()  ) 
                    else:
                        if sendstate!=0:# 一段有声音的识别
                          start_time = time.time()
                          p.reset()
                          result = p.forward(allokdata)
                          end_time = time.time()
                          print('Result: "{}".'.format(result))
                          print("Model inference takes {:.2}s.".format(end_time - start_time))
                          allokdata =[] 
                        sendstate=0;
                    datahe = []
                    index=0; 

  

最终呼叫实时测试效果如下,效果还行。:

可以在cpu服务器开启做实时翻译、机器人之类 的 。未测试并发能力。

如果需要支持到:https://shop121230895.taobao.com/index.htm

神经网络实用工具(整活)系列---使用silero-vad标注语音中的人物对话 当我们使用神经网络来进行音频转文字的操作时,往往需要先把存在语音的音频片段筛选出来再送到音频转文字的神经网络中去筛选,否则总会出现奇奇怪怪的问题。在本篇文章中,我们介绍一种比较常用的做法,也就是用pytorch提供的silero-vad语音活性检测网络来标记出语音中存在人物对话的部分。废话不多说,直接上代码(代码的操作很简单,就是将一个名为1.mp3的音频文件进行语音活性检测,然后将检测到的语音片段存在一个叫做1的文件夹中,文件名包含了片段开始的时间戳。 阅读详情

相关推荐

silero-vad:Silero VAD:经过培训的企业级语音活动和数字检测器

Silero VAD Silero VAD:经过培训的企业级语音活动检测器(VAD),数字检测器和语言分类器。 企业级语音产品变得非常简单(请参阅我们的模型)。 当前,除WebRTC语音活动检测器()外,几乎没有任何高质量/现代/免费/公共语音活动检测器。 WebRTC虽然开始显示其年龄,但遭受许多误报。 同样在某些情况下,能够使大型口语语料库匿名(即删除个人数据)也至关重要。 如果个人数据包含(i)名称(ii)某些私人ID,则通常被认为是私人/敏感的。 名称识别是一个非常主观的问题,它取决于语言环境和业务案例,但是语音活动和号码检测是非常常规的任务。 主要特点: 现代,便携; 低内存占用; 优于WebRTC的指标; 在庞大的语音语料库和噪音/声音库上受过训练; 比WebRTC慢,但对于IOT /边缘/移动应用程序足够快; 与WebRTC(大多数情况下会从声音中分辨出静

FastASR离线语音识别库

基于语音开源库的C++语音识别

qq_34548424的博客 5151

从IR Drop到EM分析:数字IC电源规划中那些没人明说的细节(以MTCMOS配置为例)

本文深入探讨数字IC后端设计中电源规划的关键细节,特别关注MTCMOS配置、电源网络电阻最小化和level shifter供电等实战技巧。通过分析IR Drop和EM问题,提供优化floorplan和powerplan的具体策略,帮助工程师避免常见陷阱,提升芯片设计的稳定性和可靠性。

q9w8e7r6t5的博客 511

探索Silero VAD:高效语音活动检测库

是一个由Snakers4团队开发的开源项目,专注于实时和离线语音活动检测(Voice Activity Detection, VAD)。VAD是一种关键技术,在语音识别、通话质量监控、音频剪辑等领域发挥着重要作用。本文将深入解析Silero VAD的项目背景、技术实现、应用场景及核心特点,引导更多开发者了解并尝试这一优秀工具。 ## **项目简介** Silero VAD是一个基于深度学习模型

gitblog_00051的博客 4759

驱动钛丝(SMA)的应用(5)汽车腰托气阀常见问题及解决方案

财哥在前段时间发布的《驱动钛丝(SMA)的应用(1)汽车腰托支撑按摩气阀模块》一文,引发了很多企业的拜访和交流。 目前很多厂家已经启动或正在进行相关研发,同时也遇到了诸如:钛丝选型、驱动位移、响应设计、温度控制、力量设计、点动滞后、铆接工艺、量化生产等问题。

weixin_39168671的博客 1239

MQTT(轻量级消息中间件)基本使用指南

MQTT(Message Queuing Telemetry Transport,消息队列遥测传输)是一种轻量级的发布 / 订阅模式(Pub/Sub)消息传输协议,专为低带宽、不稳定网络环境设计,广泛应用于物联网(IoT)、移动设备、传感器网络等场景(如空气净化器、智能家居设备的远程控制)。Eclipse Mosquitto 是一款轻量级、开源的 MQTT 消息服务器(Broker),由 Eclipse 基金会维护,专为低资源消耗和易用性设计。

墨鸦的博客 1万+

FSMN-VAD与Silero-VAD

FSMN-VAD和Silero-VAD都是用于语音活动检测的先进算法,它们在准确性和效率方面都取得了很好的表现。感兴趣的小伙伴可以尝试一下这两个在ASR中的VAD模型,FSMN-VAD和Silero-VAD都是用于语音活动检测的方法。它们能够自动检测语音和非语音部分,并在不同的环境和场景中都表现出良好的性能。FSMN-Monophone VAD是达摩院语音团队提出的高效语音端点检测模型,用于检测输入音频中有效语音的起止时间点信息,并将检测出来的有效音频片段输入识别引擎进行识别,减少无效语音带来的识别错误。

weixin_45684442的博客 1万+

模电(十四)差分放大电路

目录 差分放大电路 双端输入双端输出 Q点分析 抑制共模信号 放大差模信号 双端输入单端输出 Q点分析 差模信号分析 共模信号分析 单端输入双端输出 单端输入单端输出 四种接法比较 具有恒流源的差分放大电路 差分放大电路的改进 差分放大电路 采用引入支流负反馈,温度补偿来克服零点漂移(温度变化,直流电源波动,元器件老化产生的输入电压为零,输出电压不为零的...

weixin_43674847的博客 2万+

语音活动检测Silero VAD

2025 年 7 月,企业级 VAD 方案 TEN VAD 宣布开源,宣称在帧级精度上超越 Silero VAD,但 Silero 凭借轻量化与低门槛,仍是边缘场景的优先选择。进一步代码示例和 C++ 部署详见。· 结合 卷积层 + LSTM,处理时序音频特征,输入为 16kHz PCM 波形(非重叠 1536 样本块)。· 在噪声环境、多语言场景下表现优异,显著优于传统方案(如 WebRTC VAD),误报率更低。· 输出为 0–1 概率值(>0.5 视为语音),支持动态阈值调整。

专注最新最热的AI知识学习,以实战方式总结心得。 1477

RimWorld Mod开发避坑指南:从Defs命名规范到XML结构详解(附实战代码)

本文深入解析RimWorld Mod开发中Defs文件的编写规范与高级技巧,涵盖命名冲突预防、XML结构优化及高级功能实现。通过实战代码示例,帮助开发者避开常见陷阱,提升Mod兼容性与稳定性,特别适合RimWorld Mod开发者参考。

weixin_30790841的博客 449

2021-10-29【微生物】丨基于qiime2工具16S/ITS分析全套流程(上)

目录摘要工具与方法使用命令结果展示总结二级目录三级目录 摘要 前两个月项目特别多,最近终于有机会闲下来写点文章,把之前搭建的流程梳理一遍。前同事分析16S/ITS使用的qiime1,我接手后感觉不太适应,希望能够使用新版本来搭建,于是花了几天时间重新搭了这个流程, 工具与方法 使用工具:qiime2 使用版本:qiime2-2021.4 参考文档:https://docs.qiime2.org/2021.4/(最新版本2021.8) 使用命令 在这里插入代码片 结果展示 总结 二级目录 三级目录 ...

1万+

【亲测免费】 Silero VAD 安装和配置指南

### 项目介绍 Silero VAD 是一个预训练的企业级语音活动检测器(Voice Activity Detector, VAD)。它能够快速、准确地检测音频中的语音片段,适用于多种场景,如物联网、边缘计算、移动设备等。Silero VAD 具有高精度、快速处理、轻量级和高度便携等特点。 ### 主要编程语言 Silero VAD 主要使用 Python 编程语言进行开发和部署。 ## 2...

gitblog_07753的博客 3646

LVGL v8学习笔记 | 09 - 进度条控件的使用方法(bar)

lv_bar_set_range必须放在lv_bar_set_mode前面,否则不生效。bar对象的API在lv_bar.h中声明,以lv_bar_xxx命名。此事件可以用来在进度条更新值之后更新别的控件(比如进度条旁边的文字)。可以看到,默认创建的进度条值是0到100。(3)设置进度条的范围值(最大值和最小值)(2)获取进度条的起始值。(3)获取进度条的最小值。(4)获取进度条的最大值。(1)设置进度条的当前值。(2)设置进度条的起始值。(1)获取进度条当前值。(5)获取进度条的模式。

Mculover666的博客(嵌入式) 1729

【亲测免费】 Silero VAD 教程

该开源项目 `silero-vad` 的目录结构如下: ```markdown . ├── datasets # 包含示例数据集 └── examples # 存放示例代码 ├── files # 示例音频文件 └── silero-vad.ipynb # Jupyter notebook 示例 ├── src #...

gitblog_00810的博客 1392

【Arduino 动手做】构建一个迷你 Las Vegas RGB LED 球体

《Arduino迷你拉斯维加斯球体项目:15岁少年的创意挑战》 15岁的Ben通过本项目展示了如何利用Arduino平台制作一个经济实惠的迷你拉斯维加斯球体夜灯。该项目涉及LED选择(采用WS2812B可编程灯带)、电子元件配置(含Arduino Nano微控制器和红外遥控)以及3D建模设计(100毫米直径球体)。项目难点包括LED布局优化、供电方案设计和3D打印外壳制作。Ben详细记录了从背景研究、电路设计到最终实现的完整过程,特别强调了分辨率与成本的平衡,以及如何通过白色扩散器改善视觉效果。这个项目不仅

雕爷学编程 1022

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

FastASR: 高效且易于使用的语音识别框架

FastASR: 高效且易于使用的语音识别框架 FastASR 是一个基于 PyTorch 的开源语音识别框架,由 Chenkui164 开发并维护。它旨在提供一个简单、高效且易于使用的工具,以便研究人员和开发者可以快速地训练自己的语音识别模型。 项目简介 FastASR 提供了一个统一的接口,支持多种流行的声学建模算法,如 Connectionist Temporal Classificatio...

gitblog_00005的博客 958

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

开源asr

开源asr

weixin_42264992的博客 685

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

FSMN-VAD与Silero VAD对比:准确率与资源占用全面评测

本文介绍了基于星图GPU平台自动化部署FSMN-VAD离线语音端点检测控制台镜像的完整流程。该平台支持高效部署与运行,适用于会议录音切分、语音识别预处理等场景,助力开发者快速实现本地化、高精度的中文语音活动检测与模型微调应用。

weixin_35949153的博客 438

基于WENET制作AI字幕

基于WENET制作AI字幕 wenet环境配置 获取视频并转音频 安装处理视频工具 安装ffmpeg:https://blog.youkuaiyun.com/zhouyj6516/article/details/107416209 ffmpeg参数:https://www.cnblogs.com/mwl523/p/10856633.html mp4转wav脚本 ffmpeg -i cs.mp4 -vn -ar 16000 -ac 1 -ab 192 -f wav cs.wav 脚本 #!/usr/bin/bash

的博客 4148

7个步骤快速掌握Silero VAD:企业级语音活动检测的完整指南

Silero VAD是一款预训练的企业级语音活动检测器(Voice Activity Detector),能够精准识别音频中的人声活动,广泛应用于语音助手、会议记录、音频分析等场景。本文将通过简单易懂的步骤,帮助新手快速上手这款强大的工具。 ## 📌 什么是Silero VAD? [![Silero VAD Logo](https://raw.gitcode.com/GitHub_Trend

gitblog_01122的博客 698

Silero VAD开源生态:周边工具与插件全景指南

在实时语音交互系统中,语音活动检测(Voice Activity Detection, VAD)是连接物理世界与数字处理的关键桥梁。传统VAD方案常面临三大痛点:工业级模型体积与性能难以平衡、多语言多平台适配成本高、实时流处理延迟控制困难。Silero VAD作为开源领域的标杆解决方案,不仅提供了预训练的企业级模型,更构建了覆盖全开发周期的工具链生态。本文将系统梳理Silero VAD的周边工具与...

gitblog_00727的博客 836

基于FreeSwitch插件实现静音检测(VAD)和语音识别(ASR)

基于FreeSwitch插件实现的静音检测和语音识别功能

shanghaimoon的专栏 6367

【亲测免费】 探索FastASR:一款高效、开源的语音识别工具

在人工智能领域,语音识别技术是至关重要的一部分,它使得机器能够理解和处理人类语言。 是一个由陈奎开发者贡献的开源项目,旨在提供快速且准确的实时语音转文本服务。该项目基于深度学习框架PyTorch实现,并利用Transformer架构,为开发者和研究人员提供了强大的工具。 ## 技术分析 ### Transformer 架构 FastASR的核心是采用了Transformer模型,这是一种在自...

gitblog_00025的博客 731

突破实时瓶颈:Silero VAD多进程部署与吞吐量优化指南

你是否在处理语音流时遭遇过延迟飙升?当并发音频达到20路时,传统VAD部署是否频繁出现漏检?本文将通过多进程架构设计与参数调优,让你在普通服务器上实现每秒30路音频的实时处理,附带完整可复用的代码模板与性能测试数据。 读完本文你将掌握: - 进程隔离模型解决PyTorch多线程冲突的核心方案 - 吞吐量提升300%的四大关键参数调节技巧 - 动态负载均衡的实时监控实现方法 - 跨语言部署的性能对

gitblog_00552的博客 1211

FreeSWITCH 简单图形化界面42 - 使用mod_vad模块进行语音检测

本文介绍了如何在FreeSWITCH中使用mod_vad模块进行语音活动检测(VAD)。

jia198810的博客 1831

介绍 FreeSWITCH mod_simple_vad 模块

FreeSWITCH mod_simple_vad 模块

fs交流的博客 805
上一篇: janus videoroom 对接freeswitch conference 篇1
下一篇: silero-vad 官方新增了java 的demo
java_lilin
博客等级 码龄14年 364粉丝 124原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值