Validate input sid (#369)
This commit is contained in:
@@ -25,6 +25,23 @@ class OfflineTtsVitsImpl : public OfflineTtsImpl {
|
||||
|
||||
GeneratedAudio Generate(const std::string &text,
|
||||
int64_t sid = 0) const override {
|
||||
int32_t num_speakers = model_->NumSpeakers();
|
||||
if (num_speakers == 0 && sid != 0) {
|
||||
SHERPA_ONNX_LOGE(
|
||||
"This is a single-speaker model and supports only sid 0. Given sid: "
|
||||
"%d",
|
||||
sid);
|
||||
return {};
|
||||
}
|
||||
|
||||
if (num_speakers != 0 && (sid >= num_speakers || sid < 0)) {
|
||||
SHERPA_ONNX_LOGE(
|
||||
"This model contains only %d speakers. sid should be in the range "
|
||||
"[%d, %d]. Given: %d",
|
||||
num_speakers, 0, num_speakers - 1, sid);
|
||||
return {};
|
||||
}
|
||||
|
||||
std::vector<int64_t> x = lexicon_.ConvertTextToTokenIds(text);
|
||||
if (x.empty()) {
|
||||
SHERPA_ONNX_LOGE("Failed to convert %s to token IDs", text.c_str());
|
||||
|
||||
Reference in New Issue
Block a user