mirror of
https://github.com/jambonz/freeswitch-modules.git
synced 2026-01-25 02:08:27 +00:00
Compare commits
1 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 9e3783e138 |
@@ -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";
|
||||||
|
|||||||
Reference in New Issue
Block a user