Comparative-Analysis-of-Speech-Synthesis-Models
/
TensorFlowTTS
/examples
/cpptflite
/src
/TTSFrontend.cpp
| void TTSFrontend::text2ids(const std::string &text) | |
| { | |
| _phonesIds = strSplit(getCmdResult(text)); | |
| } | |
| std::string TTSFrontend::getCmdResult(const std::string &text) | |
| { | |
| char buf[1000] = {0}; | |
| FILE *pf = NULL; | |
| if( (pf = popen((_strCmd + " " + _mapperJson + " \"" + text + "\"").c_str(), "r")) == NULL ) | |
| { | |
| return ""; | |
| } | |
| while(fgets(buf, sizeof(buf), pf)) | |
| { | |
| continue; | |
| } | |
| std::string strResult(buf); | |
| pclose(pf); | |
| return strResult; | |
| } | |
| std::vector<int32_t> TTSFrontend::strSplit(const std::string &idStr) | |
| { | |
| std::vector<int32_t> idsVector; | |
| std::regex rgx ("\\s+"); | |
| std::sregex_token_iterator iter(idStr.begin(), idStr.end(), rgx, -1); | |
| std::sregex_token_iterator end; | |
| while (iter != end) { | |
| idsVector.push_back(stoi(*iter)); | |
| ++iter; | |
| } | |
| return idsVector; | |
| } |