xref: /aosp_15_r20/external/armnn/samples/SpeechRecognition/src/Decoder.cpp (revision 89c4ff92f2867872bb9e2354d150bf0c8c502810)
1*89c4ff92SAndroid Build Coastguard Worker //
2*89c4ff92SAndroid Build Coastguard Worker // Copyright © 2020 Arm Ltd and Contributors. All rights reserved.
3*89c4ff92SAndroid Build Coastguard Worker // SPDX-License-Identifier: MIT
4*89c4ff92SAndroid Build Coastguard Worker //
5*89c4ff92SAndroid Build Coastguard Worker 
6*89c4ff92SAndroid Build Coastguard Worker #include "Decoder.hpp"
7*89c4ff92SAndroid Build Coastguard Worker 
8*89c4ff92SAndroid Build Coastguard Worker namespace asr
9*89c4ff92SAndroid Build Coastguard Worker {
10*89c4ff92SAndroid Build Coastguard Worker 
Decoder(std::map<int,std::string> & labels)11*89c4ff92SAndroid Build Coastguard Worker Decoder::Decoder(std::map<int, std::string>& labels) :
12*89c4ff92SAndroid Build Coastguard Worker             m_labels(labels) {}
13*89c4ff92SAndroid Build Coastguard Worker 
FilterCharacters(std::vector<char> & unfiltered)14*89c4ff92SAndroid Build Coastguard Worker std::string Decoder::FilterCharacters(std::vector<char>& unfiltered)
15*89c4ff92SAndroid Build Coastguard Worker {
16*89c4ff92SAndroid Build Coastguard Worker     std::string filtered;
17*89c4ff92SAndroid Build Coastguard Worker 
18*89c4ff92SAndroid Build Coastguard Worker     for (int i = 0; i < unfiltered.size(); ++i)
19*89c4ff92SAndroid Build Coastguard Worker     {
20*89c4ff92SAndroid Build Coastguard Worker         if (unfiltered.at(i) == '$')
21*89c4ff92SAndroid Build Coastguard Worker         {
22*89c4ff92SAndroid Build Coastguard Worker             continue;
23*89c4ff92SAndroid Build Coastguard Worker         }
24*89c4ff92SAndroid Build Coastguard Worker         else if (i + 1 < unfiltered.size() && unfiltered.at(i) == unfiltered.at(i + 1))
25*89c4ff92SAndroid Build Coastguard Worker         {
26*89c4ff92SAndroid Build Coastguard Worker             continue;
27*89c4ff92SAndroid Build Coastguard Worker         }
28*89c4ff92SAndroid Build Coastguard Worker         else
29*89c4ff92SAndroid Build Coastguard Worker         {
30*89c4ff92SAndroid Build Coastguard Worker             filtered += unfiltered.at(i);
31*89c4ff92SAndroid Build Coastguard Worker         }
32*89c4ff92SAndroid Build Coastguard Worker     }
33*89c4ff92SAndroid Build Coastguard Worker     return filtered;
34*89c4ff92SAndroid Build Coastguard Worker }
35*89c4ff92SAndroid Build Coastguard Worker } // namespace asr
36*89c4ff92SAndroid Build Coastguard Worker 
37