From 9cfe57761260d56e1ee77a9f32c41a6e50ea9530 Mon Sep 17 00:00:00 2001 From: Daniel Wolf Date: Fri, 21 Oct 2016 21:17:17 +0200 Subject: [PATCH] Fixed bad config when creating language model from dialog --- src/languageModels.cpp | 4 ++-- src/languageModels.h | 8 ++++++-- src/phoneRecognition.cpp | 2 +- 3 files changed, 9 insertions(+), 5 deletions(-) diff --git a/src/languageModels.cpp b/src/languageModels.cpp index 1574a64..093c2e6 100644 --- a/src/languageModels.cpp +++ b/src/languageModels.cpp @@ -172,12 +172,12 @@ void createLanguageModelFile(const vector& words, path filePath) { file << "\\end\\" << endl; } -lambda_unique_ptr createLanguageModel(const vector& words, logmath_t& logMath) { +lambda_unique_ptr createLanguageModel(const vector& words, ps_decoder_t& decoder) { path tempFilePath = getTempFilePath(); createLanguageModelFile(words, tempFilePath); auto deleteTempFile = gsl::finally([&]() { boost::filesystem::remove(tempFilePath); }); return lambda_unique_ptr( - ngram_model_read(nullptr, tempFilePath.string().c_str(), NGRAM_ARPA, &logMath), + ngram_model_read(decoder.config, tempFilePath.string().c_str(), NGRAM_ARPA, decoder.lmath), [](ngram_model_t* lm) { ngram_model_free(lm); }); } diff --git a/src/languageModels.h b/src/languageModels.h index f67d57f..53ddfbf 100644 --- a/src/languageModels.h +++ b/src/languageModels.h @@ -1,6 +1,10 @@ #pragma once -#include #include #include "tools.h" -lambda_unique_ptr createLanguageModel(const std::vector& words, logmath_t& logMath); +extern "C" { +#include +#include +} + +lambda_unique_ptr createLanguageModel(const std::vector& words, ps_decoder_t& decoder); diff --git a/src/phoneRecognition.cpp b/src/phoneRecognition.cpp index 1177058..b2c5e88 100644 --- a/src/phoneRecognition.cpp +++ b/src/phoneRecognition.cpp @@ -267,7 +267,7 @@ lambda_unique_ptr createDecoder(optional dialog) { vector words = tokenizeText(*dialog, [&](const string& word) { return dictionaryContains(*decoder->dict, word); }); words.insert(words.begin(), ""); words.push_back(""); - languageModel = createLanguageModel(words, *decoder->lmath); + languageModel = createLanguageModel(words, *decoder); // Add any dialog-specific words to the dictionary addMissingDictionaryWords(words, *decoder);