Skip to main content

Silero VAD model for fasr

Project description

fasr-vad-silero

英文文档地址: README_EN.md

Silero 流式 VAD 插件。官方 TorchScript 权重随包分发,启动时不依赖 torch.hub 或网络下载,并封装为 fasr 的流式 VADModel,输出带有 segment_startsegment_midsegment_end 状态的 AudioChunk

安装

pip install fasr-vad-silero

注册模型

注册名 适用场景
silero SileroStreamVAD 轻量流式 VAD

流式使用

from fasr.config import registry

vad = registry.vad_models.get("silero")(
    threshold=0.5,
    silence_duration_ms=500,
)

for input_chunk in audio_chunks:
    for speech_chunk in vad.push_chunk(input_chunk):
        print(speech_chunk.vad_state, speech_chunk.start_ms, speech_chunk.end_ms)

批量使用

from fasr.data import AudioSpan

segments = vad.detect(
    AudioSpan(
        start_ms=0,
        waveform=waveform,
    )
)

detect(...) 会把整段音频按流式路径重放一遍,因此批量分段和实时模式共享同一套 阈值、prefix padding 与端点规则。

目标 写法 效果
减少噪声触发 threshold=0.65 需要更高语音概率
保留轻声 threshold=0.35 更敏感,误检风险更高
更快结束 silence_duration_ms=200 端点延迟更低
避免停顿切碎 silence_duration_ms=700 更容忍短暂停顿

Confection 配置

[vad_model]
@vad_models = "silero"
threshold = 0.5
silence_duration_ms = 500
prefix_padding_ms = 0
sample_rate = 16000
chunk_size_ms = 32

参数

参数 类型 / 范围 默认值 调高时 调低时 什么时候改
threshold float0.01.0 0.5 更严格,噪声起点更少 更敏感,保留更多弱语音 噪声误触发或轻声漏掉
silence_duration_ms int >= 0 500 更久静音才结束 更快结束 语音被切碎或结束太晚
prefix_padding_ms int >= 0 0 更不容易截掉句首,但可能带入更多前置噪声 片段更紧,但更容易丢掉第一个音节 句首被截断,或前置噪声过多
sample_rate int 16000 建议保持 16k 建议保持 16k 通常不要改
chunk_size_ms int 32 输入块更大,调用更少 块更小,延迟更低 流式延迟和调度开销调优

调参建议

现象 优先尝试
背景噪声触发语音 threshold=0.60.7
轻声被漏掉 threshold=0.350.4
语音结束太晚 silence_duration_ms=200300
停顿中被切开 silence_duration_ms=600800
第一个音节被截掉 prefix_padding_ms=64128

运行时断句更新

silero 支持通过 apply_turn_detection(...) 做实时断句参数更新。 这个接口主要给 websocket 这类长连接会话使用。

当前支持的运行时参数:

  • silence_duration_ms
  • threshold
  • prefix_padding_ms

prefix_padding_ms 在 wrapper 状态机层实现:第一次检测到语音时,会把输出片段 起点按设定值向前回退,并在已有缓冲音频范围内做裁剪。

依赖

  • fasr
  • numpy >= 1.24
  • torch >= 2.0.0
  • Python 3.10-3.12

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

fasr_vad_silero-0.5.8.tar.gz (2.0 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

fasr_vad_silero-0.5.8-py3-none-any.whl (2.0 MB view details)

Uploaded Python 3

File details

Details for the file fasr_vad_silero-0.5.8.tar.gz.

File metadata

  • Download URL: fasr_vad_silero-0.5.8.tar.gz
  • Upload date:
  • Size: 2.0 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.17 {"installer":{"name":"uv","version":"0.9.17","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for fasr_vad_silero-0.5.8.tar.gz
Algorithm Hash digest
SHA256 45fcd7e6215167f78b577a38abe4a93db84fa7c5a26bd36b5ca2e7f748fb7669
MD5 da85bc01c348eb663120ccefbe23e6b4
BLAKE2b-256 19f21a4b623bfe4540c81066686812de440e0aaf83e57484aa8dd54f0a26a4ac

See more details on using hashes here.

File details

Details for the file fasr_vad_silero-0.5.8-py3-none-any.whl.

File metadata

  • Download URL: fasr_vad_silero-0.5.8-py3-none-any.whl
  • Upload date:
  • Size: 2.0 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.17 {"installer":{"name":"uv","version":"0.9.17","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for fasr_vad_silero-0.5.8-py3-none-any.whl
Algorithm Hash digest
SHA256 f25ca1dbfbb54a3a798a78ea047f447c88fefa7d137687291543570c93ef032f
MD5 ec2d02ab5a86c101bb1e06eb01dd07f4
BLAKE2b-256 8c2c35ff1c98ba9cf672497fcb03f14d525b338d084912d236857eece3599abc

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page