Compare commits

...

1 Commits

Author SHA1 Message Date
Dave Horton 9e3783e138 update default model selection to latest api (#5)
* update default model selection to latest api

Signed-off-by: Dave Horton <daveh@beachdognet.com>

* further fix

Signed-off-by: Dave Horton <daveh@beachdognet.com>

---------

Signed-off-by: Dave Horton <daveh@beachdognet.com>
2024-01-14 10:34:01 -05:00
+45 -45
View File
@@ -38,44 +38,47 @@ namespace {
std::string model; std::string model;
}; };
static const std::unordered_map<std::string, LanguageInfo> languageLookupTable = { static const std::unordered_map<std::string, std::string> languageLookupTable = {
{"zh", {"base", "general"}}, {"zh", "base"},
{"zh-CN", {"base", "general"}}, {"zh-CN", "base"},
{"zh-TW", {"base", "general"}}, {"zh-TW", "base"},
{"da", {"enhanced", "general"}}, {"da", "enhanced"},
{"en", {"nova", "phonecall"}}, {"en", "nova-2"},
{"en-US", {"nova", "phonecall"}}, {"en-US", "nova-2"},
{"en-AU", {"nova", "general"}}, {"en-AU", "nova-2"},
{"en-GB", {"nova", "general"}}, {"en-GB", "nova-2"},
{"en-IN", {"nova", "general"}}, {"en-IN", "nova-2"},
{"en-NZ", {"nova", "general"}}, {"en-NZ", "nova-2"},
{"nl", {"enhanced", "general"}}, {"nl", "nova-2"},
{"fr", {"enhanced", "general"}}, {"fr", "nova-2"},
{"fr-CA", {"base", "general"}}, {"fr-CA", "nova-2"},
{"de", {"enhanced", "general"}}, {"de", "nova-2"},
{"hi", {"enhanced", "general"}}, {"hi", "nova-2"},
{"hi-Latn", {"base", "general"}}, {"hi-Latn", "nova-2"},
{"id", {"base", "general"}}, {"id", "base"},
{"ja", {"enhanced", "general"}}, {"it", "enhanced"},
{"ko", {"enhanced", "general"}}, {"ja", "enhanced"},
{"no", {"enhanced", "general"}}, {"ko", "enhanced"},
{"pl", {"enhanced", "general"}}, {"no", "enhanced"},
{"pt", {"enhanced", "general"}}, {"pl", "enhanced"},
{"pt-BR", {"enhanced", "general"}}, {"pt","nova-2"},
{"pt-PT", {"enhanced", "general"}}, {"pt-BR", "nova-2"},
{"ru", {"base", "general"}}, {"pt-PT", "enhanced"},
{"es", {"nova", "general"}}, {"ru", "base"},
{"es-419", {"nova", "general"}}, {"es","nova-2"},
{"sv", {"enhanced", "general"}}, {"es-419","nova-2"},
{"ta", {"enhanced", "general"}}, {"es-LATAM","enhanced"},
{"tr", {"base", "general"}}, {"sv", "enhanced"},
{"uk", {"base", "general"}} {"ta", "enhanced"},
{"taq", "enhanced"},
{"tr", "base"},
{"uk", "base"}
}; };
static bool getLanguageInfo(const std::string& language, LanguageInfo& info) { static bool getLanguageInfo(const std::string& language, std::string& model) {
auto it = languageLookupTable.find(language); auto it = languageLookupTable.find(language);
if (it != languageLookupTable.end()) { if (it != languageLookupTable.end()) {
info = it->second; model = it->second;
return true; return true;
} }
return false; return false;
@@ -146,24 +149,21 @@ namespace {
const char *customModel = switch_channel_get_variable(channel, "DEEPGRAM_SPEECH_CUSTOM_MODEL"); const char *customModel = switch_channel_get_variable(channel, "DEEPGRAM_SPEECH_CUSTOM_MODEL");
const char *tier = switch_channel_get_variable(channel, "DEEPGRAM_SPEECH_TIER") ; const char *tier = switch_channel_get_variable(channel, "DEEPGRAM_SPEECH_TIER") ;
std::ostringstream oss; std::ostringstream oss;
LanguageInfo info;
oss << "/v1/listen?"; oss << "/v1/listen?";
if (!tier && !model && !customModel) { /* make best choice by language if model not supplied*/
/* make best choice by language */ if (!model && !customModel) {
if (getLanguageInfo(language, info)) { std::string defaultModel;
oss << "tier=" << info.tier << "&model=" << info.model; if (getLanguageInfo(language, defaultModel)) {
oss << "&model=" << defaultModel;
} }
else { else {
oss << "tier=base&model=general"; // most widely supported, though not ideal oss << "tier=base&model=base"; // most widely supported, though not ideal
} }
} }
else { else if (model) oss << "&model=" << model;
if (tier) oss << "tier=" << tier; else if (customModel) oss << "&model=" << customModel;
if (model) oss << "&model=" << model;
if (customModel) oss << "&model=" << customModel;
}
if (var = switch_channel_get_variable(channel, "DEEPGRAM_SPEECH_MODEL_VERSION")) { if (var = switch_channel_get_variable(channel, "DEEPGRAM_SPEECH_MODEL_VERSION")) {
oss << "&version"; oss << "&version";