Skip to content

Commit a4914f0

Browse files
hannah220Hanna Yoshimochicurufinwe
authored
Add support for new recognizer type (SearchAlgorithmV2) to init-only action of Tools/SpeechRecognizer (#142)
* add new param * fix spelling * add log * add load * Use unique_ptr * reviewer's feedback --------- Co-authored-by: Hanna Yoshimochi <[email protected]> Co-authored-by: Eugen Beck <[email protected]>
1 parent fe0cce6 commit a4914f0

File tree

2 files changed

+41
-6
lines changed

2 files changed

+41
-6
lines changed

src/Search/TreeTimesyncBeamSearch/TreeTimesyncBeamSearch.cc

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -216,6 +216,15 @@ bool TreeTimesyncBeamSearch::setModelCombination(Speech::ModelCombination const&
216216
createSuccessorLookups();
217217

218218
reset();
219+
220+
// Create global cache
221+
if (network_->write(0)) {
222+
log() << "writing network image ready";
223+
}
224+
else {
225+
log() << "writing network image failed";
226+
}
227+
219228
return true;
220229
}
221230

src/Tools/SpeechRecognizer/SpeechRecognizer.cc

Lines changed: 32 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -73,6 +73,13 @@ class SpeechRecognizer : public Core::Application {
7373
static const Core::Choice recognitionModeChoice;
7474
static const Core::ParameterChoice paramRecognitionMode;
7575

76+
enum SearchAlgorithmInterfaceType {
77+
search,
78+
searchV2,
79+
};
80+
static const Core::Choice SearchAlgorithmInterfaceTypeChoice;
81+
static const Core::ParameterChoice paramSearchAlgorithmInterfaceType;
82+
7683
public:
7784
int main(const std::vector<std::string>& arguments);
7885
};
@@ -89,6 +96,15 @@ const Core::ParameterChoice SpeechRecognizer::paramRecognitionMode(
8996
"operation mode: corpus-base (offline) or online",
9097
offlineRecognition);
9198

99+
const Core::Choice SpeechRecognizer::SearchAlgorithmInterfaceTypeChoice(
100+
"search", search,
101+
"search-v2", searchV2,
102+
Core::Choice::endMark());
103+
const Core::ParameterChoice SpeechRecognizer::paramSearchAlgorithmInterfaceType(
104+
"search-algorithm-interface-type", &SearchAlgorithmInterfaceTypeChoice,
105+
"search algorithm interface of type search algorithm or search algorithm v2",
106+
search);
107+
92108
int SpeechRecognizer::main(const std::vector<std::string>& arguments) {
93109
switch (paramRecognitionMode(config)) {
94110
case offlineRecognition:
@@ -111,12 +127,22 @@ int SpeechRecognizer::main(const std::vector<std::string>& arguments) {
111127
delete processor;
112128
} break;
113129
case initOnlyRecognition: {
114-
auto recognizer = Search::Module::instance().createRecognizer(static_cast<Search::SearchType>(Speech::Recognizer::paramSearch(config)), select("recognizer"));
115-
auto modelCombinationRef = Speech::ModelCombinationRef(new Speech::ModelCombination(select("model-combination"), recognizer->modelCombinationNeeded(), Am::AcousticModel::noEmissions));
116-
modelCombinationRef->load();
117-
recognizer->setModelCombination(*modelCombinationRef);
118-
recognizer->init();
119-
delete recognizer;
130+
switch (paramSearchAlgorithmInterfaceType(config)) {
131+
case search: {
132+
auto recognizer = std::unique_ptr<Search::SearchAlgorithm>(Search::Module::instance().createRecognizer(static_cast<Search::SearchType>(Speech::Recognizer::paramSearch(config)), select("recognizer")));
133+
auto modelCombinationRef = Speech::ModelCombinationRef(new Speech::ModelCombination(select("model-combination"), recognizer->modelCombinationNeeded(), Am::AcousticModel::noEmissions));
134+
modelCombinationRef->load();
135+
recognizer->setModelCombination(*modelCombinationRef);
136+
recognizer->init();
137+
break;
138+
}
139+
case searchV2: {
140+
auto recognizer = std::unique_ptr<Search::SearchAlgorithmV2>(Search::Module::instance().createSearchAlgorithmV2(select("recognizer")));
141+
auto modelCombinationRef = Core::ref(new Speech::ModelCombination(select("model-combination"), recognizer->requiredModelCombination(), recognizer->requiredAcousticModel()));
142+
recognizer->setModelCombination(*modelCombinationRef);
143+
break;
144+
}
145+
}
120146
} break;
121147
default: defect();
122148
}

0 commit comments

Comments
 (0)