File size: 2,931 Bytes
d21d362
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
---
license: mit
---

## 简介
这是一个对 silero_vad (https://github.com/snakers4/silero-vad) 的简易封装,便于开发。

## 目录简介

## 环境安装
### 系统环境

> 1. 在macOS 14.5 版本已验证执行OK。
> 2. mac上安装 onnxruntime(brew 安装未使能 CoreMl, 需下载源码, 手动编译使能, 并安装)
    ```bash
    brew install onnxruntime
    ```
> 3. 下载onnxruntime源码, 手动编译使能, 并安装
    ```bash
    brew install cmake protobuf python # 可选
    git clone https://github.com/microsoft/onnxruntime 
    cd onnxruntime
    ./build.sh --config Release --enable_coreml
    # 或者 ./build.sh --config Release --enable_coreml --build_wheel --parallel
    sudo ./install_to_system.sh # 如果不安装,库目录build/Release,头文件目录 build/Release/include/
    ```
## 目录简介

    ```
    .
    ├── README.md
    ├── bin/  
    │   ├──main_silero.cpp      // 参照 silero_vad中cpp的example封装代码进行测试
    │   ├── main.cpp            // 参照 translator中FixedVADIterator封装代码进行测试
    │   ├── wav.h               // 定义读取 wav 文件类
    │   └── ...
    ├── python/      
    │   ├── processing.py      // translator中FixedVADIterator的python脚本
    │   └── ...
    ├── reference/             // python、cpp参考代码
    ├── silero_vad_onnx/       // 参照 silero_vad中cpp的封装
    │   ├── time_stamp.cpp
    │   ├── time_stamp.h
    │   ├── vad_iterator.cpp
    │   ├── vad_iterator.h 
    │   └── ...
    ├── vad_onnx/               // 参照 translator中FixedVADIterator封装
    │   ├── vad_onnx.cpp
    │   ├── vad_onnx.h
    │   └── ...
    └── ...
    ```

## 编译
    ```bash
    git clone https://huggingface.co/MoYoYoTech/vad_cpp
    cd vad_cpp
    mkdir build
    cd build
    cmake .. -DONNXRUNTIME_DIR=/opt/homebrew/Cellar/onnxruntime/1.21.1   # 或者指定源码编译后的路径,包括 include 和 lib目录
    make
    ```

## 运行&使用
### 接口调用和使用参考 main_silero.cpp 和 main.cpp
    ```bash
    cd bin
    # silero_vad_onnx.dylib 测试程序
    ./main_silero "/Users/.../Translator/moyoyo_asr_models/silero-vad/silero_vad.onnx" "/Users/xxx/zh.wav"
    # vad_onnx.dylib 测试程序
    ./main "/Users/.../Translator/moyoyo_asr_models/silero-vad/silero_vad.onnx" "/Users/xxx/zh.wav"
    ```

###  translator中FixedVADIterator的python测试脚本
    ```bash
    cd vad_cpp
    # python/processing.py中配置 wav_path ; 在python/helpers/vadprocessor.py中配置 VAD_MODEL_PATH
    python -m python.processing
    # 结果显示
    ....
    935936 ->>> {'start': 935456} -> {'start': 5664}
    984576 ->>> {'end': 983008} -> {'start': 5664, 'end': 983008}
    strat: 5664 end: 983008
    ```