diff --git a/boards/default_src/micropython/blocks/ai_local.js b/boards/default_src/micropython/blocks/ai_local.js
index 6ebcaf22..820b7750 100644
--- a/boards/default_src/micropython/blocks/ai_local.js
+++ b/boards/default_src/micropython/blocks/ai_local.js
@@ -45,7 +45,29 @@ export const CI130X_OPEN_AND_CLOSE = {
this.setInputsInline(true);
}
}
-
+export const CI130X_PLAY_SYSTEM_CMD_SANT = {
+ init: function () {
+ this.setColour(AI_LOCAL_VOICE_HUE);
+ this.appendDummyInput()
+ .appendField(Blockly.Msg.MIXLY_AipSpeech_synthesis);
+ this.appendValueInput('text')
+ .appendField(Blockly.Msg.MIXLY_TEXT);
+ this.appendDummyInput()
+ .appendField(Blockly.Msg.MIXLY_SPEED)
+ .appendField(new Blockly.FieldDropdown([
+ ['0', '0'],
+ ['1', '1'],
+ ['2', '2'],
+ ['3', '3'],
+ ['4', '4'],
+ ['5', '5']
+ ]), 'speed');
+ this.setInputsInline(true);
+ this.setPreviousStatement(true);
+ this.setNextStatement(true);
+ this.setTooltip(Blockly.Msg.MIXLY_AipSpeech_synthesis_SANT_TOOLTIP);
+ }
+};
export const CI130X_IDENTIFY_AND_SAVE_SANT = {
init: function () {
this.setColour(AI_LOCAL_VOICE_HUE);
diff --git a/boards/default_src/micropython/generators/ai_local.js b/boards/default_src/micropython/generators/ai_local.js
index 04c9dbe4..c1194120 100644
--- a/boards/default_src/micropython/generators/ai_local.js
+++ b/boards/default_src/micropython/generators/ai_local.js
@@ -127,6 +127,17 @@ export const CI130X_BROADCAST_SYSTEM_TIME = function (_, generator) {
return code;
}
+export const CI130X_PLAY_SYSTEM_CMD_SANT = function (_, generator) {
+ var version = Boards.getSelectedBoardKey().split(':')[2];
+ if(version == 'mixgo_sant'){
+ generator.definitions_['import_sant_tts'] = 'import sant_tts';
+ var text = generator.valueToCode(this, 'text', generator.ORDER_ATOMIC) || '"你们,米思齐"';
+ var speed = this.getFieldValue('speed') || '3';
+ var code = 'sant_tts.play(' + text + ', speed=' + speed + ')\n';
+ }
+ return code;
+}
+
//graph part
export const CREATE_CAMERA = function (_, generator) {
var version = Boards.getSelectedBoardKey().split(':')[2];
diff --git a/boards/default_src/micropython_esp32s3/template.xml b/boards/default_src/micropython_esp32s3/template.xml
index ad8bf819..0685c351 100644
--- a/boards/default_src/micropython_esp32s3/template.xml
+++ b/boards/default_src/micropython_esp32s3/template.xml
@@ -2482,6 +2482,14 @@
+
+
+
+ 你们,米思齐
+
+
+ 3
+
diff --git a/common/msg/blockly/en.js b/common/msg/blockly/en.js
index 85e5b0cf..70499081 100644
--- a/common/msg/blockly/en.js
+++ b/common/msg/blockly/en.js
@@ -1076,6 +1076,7 @@ En.MIXLY_MATRIX_NAME = 'Matrix Name';
En.MIXLY_MAX7219_INIT_NUM = 'Num';
En.MIXLY_MAX7219_PUTSTR = 'Show';
En.MIXLY_SPEED = 'Speed';
+En.MIXLY_TEXT = 'Text';
En.MIXLY_BRIGHTNESS = 'Brightness';
En.MIXLY_MAX7219_BRIGHTNESS_TOOLTIP = ''
En.MIXLY_MAX7219_LEDARRAY = 'LED Array';
@@ -2534,6 +2535,7 @@ En.MIXLY_AipSpeech_synthesis = 'speech synthesis';
En.MIXLY_AIP_ATTR = 'Attribute';
En.MIXLY_AIP_FUNC = 'Function';
En.MIXLY_AipSpeech_synthesis_TOOLTIP = 'synthesizes a paragraph of text into speech. The attribute is a dictionary that defaults to empty, including SPD (Speed, 0-9, 5), pit (Tone, 0-9, 5), Vol (Vol, 0-15, 5), per (Pronouncer, 0 is female, 1 is male)';
+En.MIXLY_AipSpeech_synthesis_SANT_TOOLTIP = 'Synthesizes text into speech. text is the content to be synthesized';
En.MIXLY_AipImageClassify_advancedGeneral = 'Universal Object';
En.MIXLY_AipImageClassify_dishDetect = 'Vegetable Recognition';
En.MIXLY_AipImageClassify_carDetect = 'Vehicle Recognition';
diff --git a/common/msg/blockly/zh-hans.js b/common/msg/blockly/zh-hans.js
index 7054af2c..50af2e11 100644
--- a/common/msg/blockly/zh-hans.js
+++ b/common/msg/blockly/zh-hans.js
@@ -1088,6 +1088,7 @@ ZhHans.MIXLY_MATRIX_NAME = '点阵名称';
ZhHans.MIXLY_MAX7219_INIT_NUM = '点阵模块数量';
ZhHans.MIXLY_MAX7219_PUTSTR = '点阵屏幕滚动显示';
ZhHans.MIXLY_SPEED = '速度';
+ZhHans.MIXLY_TEXT = '文本';
ZhHans.MIXLY_BRIGHTNESS = '亮度';
ZhHans.MIXLY_MAX7219_BRIGHTNESS_TOOLTIP = '亮度范围0~15'
ZhHans.MIXLY_MAX7219_LEDARRAY = '图案变量';
@@ -2555,6 +2556,7 @@ ZhHans.MIXLY_AipSpeech_synthesis = '语音合成';
ZhHans.MIXLY_AIP_ATTR = '属性';
ZhHans.MIXLY_AIP_FUNC = '功能';
ZhHans.MIXLY_AipSpeech_synthesis_TOOLTIP = '将一段文字合成为语音。属性为一个默认为空的字典,包括spd(语速,取值为0~9,默认为5)、pit(音调,取值为0~9,默认为5)、vol(音量,取值为0~15,默认为5)、per(发音人,0为女声,1为男声)';
+ZhHans.MIXLY_AipSpeech_synthesis_SANT_TOOLTIP = '将一段文字合成为语音';
ZhHans.MIXLY_AipImageClassify_advancedGeneral = '通用物体';
ZhHans.MIXLY_AipImageClassify_dishDetect = '菜品识别';
ZhHans.MIXLY_AipImageClassify_carDetect = '车辆识别';
@@ -4290,4 +4292,5 @@ ZhHans.MIXLY_SOUND_VOLUME_ADD_TOOLTIP='增加音量';
ZhHans.MIXLY_SOUND_EFFECT_SET_TOOLTIP='将音效设为';
ZhHans.MIXLY_SOUND_EFFECT_CLEAR_TOOLTIP='清除音效';
ZhHans.MIXLY_SOUND_EFFECT_ADD_TOOLTIP='将音效增加';
+
})();
\ No newline at end of file
diff --git a/common/msg/blockly/zh-hant.js b/common/msg/blockly/zh-hant.js
index d070dbae..0578dbe5 100644
--- a/common/msg/blockly/zh-hant.js
+++ b/common/msg/blockly/zh-hant.js
@@ -1087,6 +1087,7 @@ ZhHant.MIXLY_MATRIX_NAME = '點陣名稱';
ZhHant.MIXLY_MAX7219_INIT_NUM = '點陣模組數量';
ZhHant.MIXLY_MAX7219_PUTSTR = '點陣屏幕滾動顯示';
ZhHant.MIXLY_SPEED = '速度';
+ZhHant.MIXLY_TEXT = '文本';
ZhHant.MIXLY_BRIGHTNESS = '亮度';
ZhHant.MIXLY_MAX7219_BRIGHTNESS_TOOLTIP = '亮度範圍0~15'
ZhHant.MIXLY_MAX7219_LEDARRAY = '圖案變量';
@@ -2555,6 +2556,7 @@ ZhHant.MIXLY_AipSpeech_synthesis = '語音合成';
ZhHant.MIXLY_AIP_ATTR = '屬性';
ZhHant.MIXLY_AIP_FUNC = '功能';
ZhHant.MIXLY_AipSpeech_synthesis_TOOLTIP = '將一段文字合成為語音。屬性為一個默認為空的字典,包括spd(語速,取值為0~9,默認為5)、pit(音調,取值為0~9,默認為5)、vol(音量,取值為0~15,默認為5)、per(發音人,0為女聲,1為男聲)';
+ZhHant.MIXLY_AipSpeech_synthesis_SANT_TOOLTIP = '將一段文字合成為語音';
ZhHant.MIXLY_AipImageClassify_advancedGeneral = '通用物體';
ZhHant.MIXLY_AipImageClassify_dishDetect = '菜品識別';
ZhHant.MIXLY_AipImageClassify_carDetect = '車輛識別';