You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
26 lines
686 B
26 lines
686 B
2 years ago
|
#include "utils/blank_process.h"
|
||
|
|
||
|
namespace ppspeech {
|
||
|
|
||
|
std::string BlankProcess(const std::string& str) {
|
||
|
std::string out = "";
|
||
|
int p = 0;
|
||
|
int end = str.size();
|
||
|
int q = -1; // last char of the output string
|
||
|
while (p != end) {
|
||
|
while (p != end && str[p] == ' ') {
|
||
|
p += 1;
|
||
|
}
|
||
|
if (p == end)
|
||
|
return out;
|
||
|
if (q != -1 && isalpha(str[p]) && isalpha(str[q]) && str[p-1] == ' ')
|
||
|
// add a space when the last and current chars are in English and there have space(s) between them
|
||
|
out += ' ';
|
||
|
out += str[p];
|
||
|
q = p;
|
||
|
p += 1;
|
||
|
}
|
||
|
return out;
|
||
|
}
|
||
|
|
||
|
} // namespace ppspeech
|