正在显示
2 个修改的文件
包含
11 行增加
和
8 行删除
| @@ -150,7 +150,7 @@ std::vector<TokenIDs> Lexicon::ConvertTextToTokenIds( | @@ -150,7 +150,7 @@ std::vector<TokenIDs> Lexicon::ConvertTextToTokenIds( | ||
| 150 | return ConvertTextToTokenIdsNotChinese(text); | 150 | return ConvertTextToTokenIdsNotChinese(text); |
| 151 | default: | 151 | default: |
| 152 | SHERPA_ONNX_LOGE("Unknown language: %d", static_cast<int32_t>(language_)); | 152 | SHERPA_ONNX_LOGE("Unknown language: %d", static_cast<int32_t>(language_)); |
| 153 | - exit(-1); | 153 | + SHERPA_ONNX_EXIT(-1); |
| 154 | } | 154 | } |
| 155 | 155 | ||
| 156 | return {}; | 156 | return {}; |
| @@ -171,7 +171,7 @@ std::vector<TokenIDs> Lexicon::ConvertTextToTokenIdsChinese( | @@ -171,7 +171,7 @@ std::vector<TokenIDs> Lexicon::ConvertTextToTokenIdsChinese( | ||
| 171 | os << "Input text in bytes:"; | 171 | os << "Input text in bytes:"; |
| 172 | for (uint8_t c : text) { | 172 | for (uint8_t c : text) { |
| 173 | os << " 0x" << std::setfill('0') << std::setw(2) << std::right << std::hex | 173 | os << " 0x" << std::setfill('0') << std::setw(2) << std::right << std::hex |
| 174 | - << c; | 174 | + << static_cast<int32_t>(c); |
| 175 | } | 175 | } |
| 176 | os << "\n"; | 176 | os << "\n"; |
| 177 | os << "After splitting to words:"; | 177 | os << "After splitting to words:"; |
| @@ -261,7 +261,10 @@ std::vector<TokenIDs> Lexicon::ConvertTextToTokenIdsChinese( | @@ -261,7 +261,10 @@ std::vector<TokenIDs> Lexicon::ConvertTextToTokenIdsChinese( | ||
| 261 | if (eos != -1) { | 261 | if (eos != -1) { |
| 262 | this_sentence.push_back(eos); | 262 | this_sentence.push_back(eos); |
| 263 | } | 263 | } |
| 264 | - ans.emplace_back(std::move(this_sentence)); | 264 | + |
| 265 | + if (!this_sentence.empty()) { | ||
| 266 | + ans.emplace_back(std::move(this_sentence)); | ||
| 267 | + } | ||
| 265 | 268 | ||
| 266 | return ans; | 269 | return ans; |
| 267 | } | 270 | } |
| @@ -280,7 +283,7 @@ std::vector<TokenIDs> Lexicon::ConvertTextToTokenIdsNotChinese( | @@ -280,7 +283,7 @@ std::vector<TokenIDs> Lexicon::ConvertTextToTokenIdsNotChinese( | ||
| 280 | os << "Input text in bytes:"; | 283 | os << "Input text in bytes:"; |
| 281 | for (uint8_t c : text) { | 284 | for (uint8_t c : text) { |
| 282 | os << " 0x" << std::setfill('0') << std::setw(2) << std::right << std::hex | 285 | os << " 0x" << std::setfill('0') << std::setw(2) << std::right << std::hex |
| 283 | - << c; | 286 | + << static_cast<int32_t>(c); |
| 284 | } | 287 | } |
| 285 | os << "\n"; | 288 | os << "\n"; |
| 286 | os << "After splitting to words:"; | 289 | os << "After splitting to words:"; |
| @@ -367,7 +367,7 @@ class OfflineTtsVitsImpl : public OfflineTtsImpl { | @@ -367,7 +367,7 @@ class OfflineTtsVitsImpl : public OfflineTtsImpl { | ||
| 367 | SHERPA_ONNX_LOGE( | 367 | SHERPA_ONNX_LOGE( |
| 368 | "Not a model using characters as modeling unit. Please provide " | 368 | "Not a model using characters as modeling unit. Please provide " |
| 369 | "--vits-lexicon if you leave --vits-data-dir empty"); | 369 | "--vits-lexicon if you leave --vits-data-dir empty"); |
| 370 | - exit(-1); | 370 | + SHERPA_ONNX_EXIT(-1); |
| 371 | } | 371 | } |
| 372 | 372 | ||
| 373 | frontend_ = std::make_unique<Lexicon>( | 373 | frontend_ = std::make_unique<Lexicon>( |
| @@ -382,13 +382,13 @@ class OfflineTtsVitsImpl : public OfflineTtsImpl { | @@ -382,13 +382,13 @@ class OfflineTtsVitsImpl : public OfflineTtsImpl { | ||
| 382 | if (meta_data.jieba && config_.model.vits.dict_dir.empty()) { | 382 | if (meta_data.jieba && config_.model.vits.dict_dir.empty()) { |
| 383 | SHERPA_ONNX_LOGE( | 383 | SHERPA_ONNX_LOGE( |
| 384 | "Please provide --vits-dict-dir for Chinese TTS models using jieba"); | 384 | "Please provide --vits-dict-dir for Chinese TTS models using jieba"); |
| 385 | - exit(-1); | 385 | + SHERPA_ONNX_EXIT(-1); |
| 386 | } | 386 | } |
| 387 | 387 | ||
| 388 | if (!meta_data.jieba && !config_.model.vits.dict_dir.empty()) { | 388 | if (!meta_data.jieba && !config_.model.vits.dict_dir.empty()) { |
| 389 | SHERPA_ONNX_LOGE( | 389 | SHERPA_ONNX_LOGE( |
| 390 | "Current model is not using jieba but you provided --vits-dict-dir"); | 390 | "Current model is not using jieba but you provided --vits-dict-dir"); |
| 391 | - exit(-1); | 391 | + SHERPA_ONNX_EXIT(-1); |
| 392 | } | 392 | } |
| 393 | 393 | ||
| 394 | if (meta_data.frontend == "characters") { | 394 | if (meta_data.frontend == "characters") { |
| @@ -419,7 +419,7 @@ class OfflineTtsVitsImpl : public OfflineTtsImpl { | @@ -419,7 +419,7 @@ class OfflineTtsVitsImpl : public OfflineTtsImpl { | ||
| 419 | SHERPA_ONNX_LOGE( | 419 | SHERPA_ONNX_LOGE( |
| 420 | "Not a model using characters as modeling unit. Please provide " | 420 | "Not a model using characters as modeling unit. Please provide " |
| 421 | "--vits-lexicon if you leave --vits-data-dir empty"); | 421 | "--vits-lexicon if you leave --vits-data-dir empty"); |
| 422 | - exit(-1); | 422 | + SHERPA_ONNX_EXIT(-1); |
| 423 | } | 423 | } |
| 424 | frontend_ = std::make_unique<Lexicon>( | 424 | frontend_ = std::make_unique<Lexicon>( |
| 425 | config_.model.vits.lexicon, config_.model.vits.tokens, | 425 | config_.model.vits.lexicon, config_.model.vits.tokens, |
-
请 注册 或 登录 后发表评论