Update README.md
Browse files
README.md
CHANGED
|
@@ -98,6 +98,46 @@ python <NEMO_ROOT>/examples/asr/speech_classification/frame_vad_infer.py \
|
|
| 98 |
out_manifest_filepath=<Path of output manifest file>
|
| 99 |
```
|
| 100 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 101 |
## Software Integration:
|
| 102 |
**Runtime Engine(s):**
|
| 103 |
* NeMo-2.0.0 <br>
|
|
|
|
| 98 |
out_manifest_filepath=<Path of output manifest file>
|
| 99 |
```
|
| 100 |
|
| 101 |
+
### Export a PyTorch model to ONNX
|
| 102 |
+
|
| 103 |
+
```python
|
| 104 |
+
import torch, onnx
|
| 105 |
+
from nemo.core import typecheck
|
| 106 |
+
import nemo.collections.asr as nemo_asr
|
| 107 |
+
typecheck.set_typecheck_enabled(False)
|
| 108 |
+
|
| 109 |
+
ONNX_EXPORT_PATH = "frame_vad_multilingual_marblenet_v2.0.onnx"
|
| 110 |
+
|
| 111 |
+
# Load pretrained frame-level VAD model and move to CPU in eval mode
|
| 112 |
+
vad_model = nemo_asr.models.EncDecFrameClassificationModel.from_pretrained(
|
| 113 |
+
model_name="nvidia/frame_vad_multilingual_marblenet_v2.0"
|
| 114 |
+
).eval().cpu()
|
| 115 |
+
|
| 116 |
+
# Define input example for ONNX export
|
| 117 |
+
B, F, T = 16, 80, 400 # batch, feature dim, sequence length
|
| 118 |
+
inputs = {
|
| 119 |
+
"processed_signal": torch.randn(B, F, T).float(),
|
| 120 |
+
"processed_signal_length": torch.full((B,), T, dtype=torch.long)
|
| 121 |
+
}
|
| 122 |
+
|
| 123 |
+
# Export model to ONNX
|
| 124 |
+
torch.onnx.export(
|
| 125 |
+
model=vad_model,
|
| 126 |
+
args=inputs,
|
| 127 |
+
f="frame_vad_multilingual_marblenet_v2.0.onnx",
|
| 128 |
+
input_names=["processed_signal", "processed_signal_length"],
|
| 129 |
+
output_names=["output"],
|
| 130 |
+
dynamic_axes={
|
| 131 |
+
"processed_signal": {0: "batch_size", 2: "sequence_length"},
|
| 132 |
+
"processed_signal_length": {0: "batch_size"},
|
| 133 |
+
"output": {0: "batch_size", 1: "sequence_length"}
|
| 134 |
+
}
|
| 135 |
+
)
|
| 136 |
+
|
| 137 |
+
# Validate exported ONNX model
|
| 138 |
+
onnx.checker.check_model(onnx.load(ONNX_EXPORT_PATH))
|
| 139 |
+
```
|
| 140 |
+
|
| 141 |
## Software Integration:
|
| 142 |
**Runtime Engine(s):**
|
| 143 |
* NeMo-2.0.0 <br>
|