Add C++ runtime for silero_vad with RKNN (#2078)

This commit is contained in:
Fangjun Kuang
2025-04-01 15:56:56 +08:00
committed by GitHub
parent 0703bc1b86
commit 8e51a97550
12 changed files with 867 additions and 16 deletions

View File

@@ -7,6 +7,9 @@
#include <sstream>
#include <string>
#include "sherpa-onnx/csrc/macros.h"
#include "sherpa-onnx/csrc/text-utils.h"
namespace sherpa_onnx {
void VadModelConfig::Register(ParseOptions *po) {
@@ -26,7 +29,27 @@ void VadModelConfig::Register(ParseOptions *po) {
"true to display debug information when loading vad models");
}
bool VadModelConfig::Validate() const { return silero_vad.Validate(); }
bool VadModelConfig::Validate() const {
if (provider != "rknn") {
if (!silero_vad.model.empty() && EndsWith(silero_vad.model, ".rknn")) {
SHERPA_ONNX_LOGE(
"--provider is %s, which is not rknn, but you pass an rknn model "
"'%s'",
provider.c_str(), silero_vad.model.c_str());
return false;
}
}
if (provider == "rknn") {
if (!silero_vad.model.empty() && EndsWith(silero_vad.model, ".onnx")) {
SHERPA_ONNX_LOGE("--provider is rknn, but you pass an onnx model '%s'",
silero_vad.model.c_str());
return false;
}
}
return silero_vad.Validate();
}
std::string VadModelConfig::ToString() const {
std::ostringstream os;