Untitled
unknown
c_cpp
3 years ago
3.8 kB
11
Indexable
#include <iostream>
#include <vector>
#include <string>
#include "json.hpp"
using json = nlohmann::json;
class PronunciationAssessment
{
public:
double AccuracyScore{};
double FluencyScore{};
double CompletenessScore{};
double PronScore{};
std::string ErrorType;
};
class Syllable
{
public:
std::string Syllable;
PronunciationAssessment Pronunciation;
int Offset{};
int Duration{};
};
class Phoneme
{
public:
std::string Phoneme;
PronunciationAssessment Pronunciation;
int Offset{};
int Duration{};
};
class Word
{
public:
std::string Word;
int Offset{};
int Duration{};
PronunciationAssessment Pronunciation;
std::vector<Syllable> Syllables;
std::vector<Phoneme> Phonemes;
};
class NBest
{
public:
double Confidence{};
std::string Lexical;
std::string ITN;
std::string MaskedITN;
std::string Display;
PronunciationAssessment pronunciationAssessment;
std::vector<Word> Words;
};
class TranscriptionResult
{
public:
std::string Id;
std::string RecognitionStatus;
int Offset;
int Duration;
int Channel;
std::string DisplayText;
double SNR;
std::vector<NBest> nBest;
explicit TranscriptionResult(const std::string &jsonStr)
{
json j = json::parse(jsonStr);
Id = j["Id"];
RecognitionStatus = j["RecognitionStatus"];
Offset = j["Offset"];
Duration = j["Duration"];
Channel = j["Channel"];
DisplayText = j["DisplayText"];
SNR = j["SNR"];
for (auto &nb : j["NBest"])
{
class NBest nbest;
nbest.Confidence = nb["Confidence"];
nbest.Lexical = nb["Lexical"];
nbest.ITN = nb["ITN"];
nbest.MaskedITN = nb["MaskedITN"];
nbest.Display = nb["Display"];
for (auto &pa : nb["PronunciationAssessment"])
{
nbest.pronunciationAssessment.AccuracyScore = pa["AccuracyScore"];
nbest.pronunciationAssessment.FluencyScore = pa["FluencyScore"];
nbest.pronunciationAssessment.CompletenessScore = pa["CompletenessScore"];
nbest.pronunciationAssessment.PronScore = pa["PronScore"];
}
for (auto &word : nb["Words"])
{
Word w;
w.Word = word["Word"];
w.Offset = word["Offset"];
w.Duration = word["Duration"];
for (auto &pa : word["PronunciationAssessment"])
{
w.Pronunciation.AccuracyScore = pa["AccuracyScore"];
w.Pronunciation.ErrorType = pa["ErrorType"];
}
for (auto &syl : word["Syllables"])
{
Syllable s;
s.Syllable = syl["Syllable"];
s.Offset = syl["Offset"];
s.Duration = syl["Duration"];
for (auto &pa : syl["PronunciationAssessment"])
{
s.Pronunciation.AccuracyScore = pa["AccuracyScore"];
}
w.Syllables.push_back(s);
}
for (auto &phon : word["Phonemes"])
{
Phoneme p;
p.Phoneme = phon["Phoneme"];
p.Offset = phon["Offset"];
p.Duration = phon["Duration"];
for (auto &pa : phon["PronunciationAssessment"])
{
p.Pronunciation.AccuracyScore = pa["AccuracyScore"];
}
w.Phonemes.push_back(p);
}
nbest.Words.push_back(w);
}
nBest.push_back(nbest);
}
};
};
Editor is loading...