Add jieba for Chinese TTS models (#797)
This commit is contained in:
@@ -19,6 +19,7 @@
|
||||
#include "fst/extensions/far/far.h"
|
||||
#include "kaldifst/csrc/kaldi-fst-io.h"
|
||||
#include "kaldifst/csrc/text-normalizer.h"
|
||||
#include "sherpa-onnx/csrc/jieba-lexicon.h"
|
||||
#include "sherpa-onnx/csrc/lexicon.h"
|
||||
#include "sherpa-onnx/csrc/macros.h"
|
||||
#include "sherpa-onnx/csrc/offline-tts-character-frontend.h"
|
||||
@@ -290,9 +291,26 @@ class OfflineTtsVitsImpl : public OfflineTtsImpl {
|
||||
void InitFrontend() {
|
||||
const auto &meta_data = model_->GetMetaData();
|
||||
|
||||
if (meta_data.jieba && config_.model.vits.dict_dir.empty()) {
|
||||
SHERPA_ONNX_LOGE(
|
||||
"Please provide --vits-dict-dir for Chinese TTS models using jieba");
|
||||
exit(-1);
|
||||
}
|
||||
|
||||
if (!meta_data.jieba && !config_.model.vits.dict_dir.empty()) {
|
||||
SHERPA_ONNX_LOGE(
|
||||
"Current model is not using jieba but you provided --vits-dict-dir");
|
||||
exit(-1);
|
||||
}
|
||||
|
||||
if (meta_data.frontend == "characters") {
|
||||
frontend_ = std::make_unique<OfflineTtsCharacterFrontend>(
|
||||
config_.model.vits.tokens, meta_data);
|
||||
} else if (meta_data.jieba && !config_.model.vits.dict_dir.empty()) {
|
||||
frontend_ = std::make_unique<JiebaLexicon>(
|
||||
config_.model.vits.lexicon, config_.model.vits.tokens,
|
||||
config_.model.vits.dict_dir, model_->GetMetaData(),
|
||||
config_.model.debug);
|
||||
} else if ((meta_data.is_piper || meta_data.is_coqui ||
|
||||
meta_data.is_icefall) &&
|
||||
!config_.model.vits.data_dir.empty()) {
|
||||
|
||||
Reference in New Issue
Block a user