Skip to content
Merged

Dev #29

Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion library.json
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@
"M5GFX": "*",
"ArduinoJson": "*"
},
"version": "1.6.0",
"version": "1.7.0",
"frameworks": "arduino",
"platforms": "espressif32"
}
2 changes: 1 addition & 1 deletion library.properties
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
name=M5ModuleLLM
version=1.6.0
version=1.7.0
author=M5Stack
maintainer=M5Stack
sentence=M5ModuleLLM is a library for M5ModuleLLM
Expand Down
17 changes: 17 additions & 0 deletions src/api/api_asr.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,23 @@ String ApiAsr::setup(ApiAsrSetupConfig_t config, String request_id, String langu
}
}
if (language == "zh_CN") doc["data"]["model"] = "sherpa-ncnn-streaming-zipformer-zh-14M-2023-02-23";

for (const auto& pair : config.extra_params) {
const String& key = pair.first;
const String& value = pair.second;

if (value == "bool_true") {
doc["data"][key] = true;
} else if (value == "bool_false") {
doc["data"][key] = false;
} else if (value.indexOf('.') != -1) {
doc["data"][key] = value.toFloat();
} else if (value.length() > 0 && (isDigit(value.charAt(0)) || value.charAt(0) == '-')) {
doc["data"][key] = value.toInt();
} else {
doc["data"][key] = value;
}
}
serializeJson(doc, cmd);
}

Expand Down
20 changes: 20 additions & 0 deletions src/api/api_asr.h
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,26 @@ struct ApiAsrSetupConfig_t {
float rule1 = 2.4;
float rule2 = 1.2;
float rule3 = 30.0;

std::map<String, String> extra_params;

template <typename T>
void setParam(const String& key, T value)
{
extra_params[key] = String(value);
}

void setParam(const String& key, bool value)
{
extra_params[key] = value ? "bool_true" : "bool_false";
}

void setParam(const String& key, float value)
{
char buffer[16];
dtostrf(value, 1, 6, buffer);
extra_params[key] = String(buffer);
}
};

class ApiAsr {
Expand Down
17 changes: 17 additions & 0 deletions src/api/api_audio.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,23 @@ String ApiAudio::setup(ApiAudioSetupConfig_t config, String request_id)
doc["data"]["playcard"] = config.playcard;
doc["data"]["playdevice"] = config.playdevice;
doc["data"]["playVolume"] = config.playVolume;

for (const auto& pair : config.extra_params) {
const String& key = pair.first;
const String& value = pair.second;

if (value == "bool_true") {
doc["data"][key] = true;
} else if (value == "bool_false") {
doc["data"][key] = false;
} else if (value.indexOf('.') != -1) {
doc["data"][key] = value.toFloat();
} else if (value.length() > 0 && (isDigit(value.charAt(0)) || value.charAt(0) == '-')) {
doc["data"][key] = value.toInt();
} else {
doc["data"][key] = value;
}
}
serializeJson(doc, cmd);
}

Expand Down
20 changes: 20 additions & 0 deletions src/api/api_audio.h
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,26 @@ struct ApiAudioSetupConfig_t {
int playcard = 0;
int playdevice = 1;
float playVolume = 0.15;

std::map<String, String> extra_params;

template <typename T>
void setParam(const String& key, T value)
{
extra_params[key] = String(value);
}

void setParam(const String& key, bool value)
{
extra_params[key] = value ? "bool_true" : "bool_false";
}

void setParam(const String& key, float value)
{
char buffer[16];
dtostrf(value, 1, 6, buffer);
extra_params[key] = String(buffer);
}
};

class ApiAudio {
Expand Down
17 changes: 17 additions & 0 deletions src/api/api_camera.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,23 @@ String ApiCamera::setup(ApiCameraSetupConfig_t config, String request_id)
doc["data"]["enoutput"] = config.enoutput;
doc["data"]["frame_width"] = config.frame_width;
doc["data"]["frame_height"] = config.frame_height;

for (const auto& pair : config.extra_params) {
const String& key = pair.first;
const String& value = pair.second;

if (value == "bool_true") {
doc["data"][key] = true;
} else if (value == "bool_false") {
doc["data"][key] = false;
} else if (value.indexOf('.') != -1) {
doc["data"][key] = value.toFloat();
} else if (value.length() > 0 && (isDigit(value.charAt(0)) || value.charAt(0) == '-')) {
doc["data"][key] = value.toInt();
} else {
doc["data"][key] = value;
}
}
serializeJson(doc, cmd);
}

Expand Down
19 changes: 19 additions & 0 deletions src/api/api_camera.h
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,25 @@ struct ApiCameraSetupConfig_t {
bool enoutput = false;
int frame_width = 320;
int frame_height = 320;
std::map<String, String> extra_params;

template <typename T>
void setParam(const String& key, T value)
{
extra_params[key] = String(value);
}

void setParam(const String& key, bool value)
{
extra_params[key] = value ? "bool_true" : "bool_false";
}

void setParam(const String& key, float value)
{
char buffer[16];
dtostrf(value, 1, 6, buffer);
extra_params[key] = String(buffer);
}
};

class ApiCamera {
Expand Down
17 changes: 17 additions & 0 deletions src/api/api_depth_anything.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,23 @@ String ApiDepthAnything::setup(ApiDepthAnythingSetupConfig_t config, String requ
inputArray.add(str);
}
doc["data"]["enoutput"] = config.enoutput;

for (const auto& pair : config.extra_params) {
const String& key = pair.first;
const String& value = pair.second;

if (value == "bool_true") {
doc["data"][key] = true;
} else if (value == "bool_false") {
doc["data"][key] = false;
} else if (value.indexOf('.') != -1) {
doc["data"][key] = value.toFloat();
} else if (value.length() > 0 && (isDigit(value.charAt(0)) || value.charAt(0) == '-')) {
doc["data"][key] = value.toInt();
} else {
doc["data"][key] = value;
}
}
serializeJson(doc, cmd);
}

Expand Down
19 changes: 19 additions & 0 deletions src/api/api_depth_anything.h
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,25 @@ struct ApiDepthAnythingSetupConfig_t {
String response_format = "jpeg.base64.stream";
std::vector<String> input = {"depth_anything.jpeg.raw"};
bool enoutput = true;
std::map<String, String> extra_params;

template <typename T>
void setParam(const String& key, T value)
{
extra_params[key] = String(value);
}

void setParam(const String& key, bool value)
{
extra_params[key] = value ? "bool_true" : "bool_false";
}

void setParam(const String& key, float value)
{
char buffer[16];
dtostrf(value, 1, 6, buffer);
extra_params[key] = String(buffer);
}
};

class ApiDepthAnything {
Expand Down
17 changes: 17 additions & 0 deletions src/api/api_kws.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,23 @@ String ApiKws::setup(ApiKwsSetupConfig_t config, String request_id, String langu
}
}
if (language == "zh_CN") doc["data"]["model"] = "sherpa-onnx-kws-zipformer-wenetspeech-3.3M-2024-01-01";

for (const auto& pair : config.extra_params) {
const String& key = pair.first;
const String& value = pair.second;

if (value == "bool_true") {
doc["data"][key] = true;
} else if (value == "bool_false") {
doc["data"][key] = false;
} else if (value.indexOf('.') != -1) {
doc["data"][key] = value.toFloat();
} else if (value.length() > 0 && (isDigit(value.charAt(0)) || value.charAt(0) == '-')) {
doc["data"][key] = value.toInt();
} else {
doc["data"][key] = value;
}
}
serializeJson(doc, cmd);
}

Expand Down
19 changes: 19 additions & 0 deletions src/api/api_kws.h
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,25 @@ struct ApiKwsSetupConfig_t {
String response_format = "kws.bool";
std::vector<String> input = {"sys.pcm"};
bool enoutput = true;
std::map<String, String> extra_params;

template <typename T>
void setParam(const String& key, T value)
{
extra_params[key] = String(value);
}

void setParam(const String& key, bool value)
{
extra_params[key] = value ? "bool_true" : "bool_false";
}

void setParam(const String& key, float value)
{
char buffer[16];
dtostrf(value, 1, 6, buffer);
extra_params[key] = String(buffer);
}
};

class ApiKws {
Expand Down
17 changes: 17 additions & 0 deletions src/api/api_llm.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,23 @@ String ApiLlm::setup(ApiLlmSetupConfig_t config, String request_id)
inputArray.add(str);
}
}

for (const auto& pair : config.extra_params) {
const String& key = pair.first;
const String& value = pair.second;

if (value == "bool_true") {
doc["data"][key] = true;
} else if (value == "bool_false") {
doc["data"][key] = false;
} else if (value.indexOf('.') != -1) {
doc["data"][key] = value.toFloat();
} else if (value.length() > 0 && (isDigit(value.charAt(0)) || value.charAt(0) == '-')) {
doc["data"][key] = value.toInt();
} else {
doc["data"][key] = value;
}
}
serializeJson(doc, cmd);
}

Expand Down
20 changes: 20 additions & 0 deletions src/api/api_llm.h
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,26 @@ struct ApiLlmSetupConfig_t {
bool enkws = true;
int max_token_len = 127;
// int max_token_len = 512;

std::map<String, String> extra_params;

template <typename T>
void setParam(const String& key, T value)
{
extra_params[key] = String(value);
}

void setParam(const String& key, bool value)
{
extra_params[key] = value ? "bool_true" : "bool_false";
}

void setParam(const String& key, float value)
{
char buffer[16];
dtostrf(value, 1, 6, buffer);
extra_params[key] = String(buffer);
}
};

class ApiLlm {
Expand Down
17 changes: 17 additions & 0 deletions src/api/api_melotts.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,23 @@ String ApiMelotts::setup(ApiMelottsSetupConfig_t config, String request_id, Stri
}
doc["data"]["enoutput"] = config.enoutput;
doc["data"]["enaudio"] = config.enaudio;

for (const auto& pair : config.extra_params) {
const String& key = pair.first;
const String& value = pair.second;

if (value == "bool_true") {
doc["data"][key] = true;
} else if (value == "bool_false") {
doc["data"][key] = false;
} else if (value.indexOf('.') != -1) {
doc["data"][key] = value.toFloat();
} else if (value.length() > 0 && (isDigit(value.charAt(0)) || value.charAt(0) == '-')) {
doc["data"][key] = value.toInt();
} else {
doc["data"][key] = value;
}
}
serializeJson(doc, cmd);
}

Expand Down
19 changes: 19 additions & 0 deletions src/api/api_melotts.h
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,25 @@ struct ApiMelottsSetupConfig_t {
std::vector<String> input = {"tts.utf-8.stream"};
bool enoutput = false;
bool enaudio = true;
std::map<String, String> extra_params;

template <typename T>
void setParam(const String& key, T value)
{
extra_params[key] = String(value);
}

void setParam(const String& key, bool value)
{
extra_params[key] = value ? "bool_true" : "bool_false";
}

void setParam(const String& key, float value)
{
char buffer[16];
dtostrf(value, 1, 6, buffer);
extra_params[key] = String(buffer);
}
};

class ApiMelotts {
Expand Down
17 changes: 17 additions & 0 deletions src/api/api_tts.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,23 @@ String ApiTts::setup(ApiTtsSetupConfig_t config, String request_id, String langu
doc["data"]["model"] = "single_speaker_fast";
}
}

for (const auto& pair : config.extra_params) {
const String& key = pair.first;
const String& value = pair.second;

if (value == "bool_true") {
doc["data"][key] = true;
} else if (value == "bool_false") {
doc["data"][key] = false;
} else if (value.indexOf('.') != -1) {
doc["data"][key] = value.toFloat();
} else if (value.length() > 0 && (isDigit(value.charAt(0)) || value.charAt(0) == '-')) {
doc["data"][key] = value.toInt();
} else {
doc["data"][key] = value;
}
}
serializeJson(doc, cmd);
}

Expand Down
Loading