This commit is contained in:
许允枞 2025-03-11 18:13:09 +08:00
parent 1f98b82090
commit e50e7eac37
4 changed files with 47 additions and 3 deletions

View File

@ -39,10 +39,25 @@ public class ChatHttpApi {
*/
@PostMapping("/getChatInfo")
public AjaxResult getChatInfo(@RequestBody Map<String, String> requestData) throws Exception {
if ("Chinese".equals(requestData.get("lang").toString())) {
if (isChinese(requestData.get("q").toString()) ){
return AjaxResult.success(requestData.get("q").toString());
}
requestData.put("to", "zh-CHS");
requestData.put("strict", "true");
return AjaxResult.success(chatService.textTranslators(requestData));
}
public boolean isChinese(String str) {
for (int i=0; i<str.length(); i++) {
int codePoint = str.codePointAt(i);
if (!(codePoint >= 0x4e00 && codePoint <= 0x9fff) &&
!(codePoint >= 0x3400 && codePoint <= 0x4dbf) &&
!(codePoint >= 0x20000 && codePoint <= 0x2a6df) &&
!(codePoint >= 0xf900 && codePoint <= 0xfaff)) {
return false;
}
}
return true;
}
}

View File

@ -304,6 +304,12 @@ public class ChatService {
*/
public String textTranslators(Map<String, String> requestData) throws Exception {
requestData.put("url", "https://openapi.youdao.com/api");
if (requestData.get("strict") == null || !requestData.get("strict").equals("true")) {
if ((requestData.get("lang").equals("zh-CHS") && requestData.get("to").equals("en")) || (requestData.get("lang").equals("en") && requestData.get("to").equals("zh-CHS"))) {
requestData.remove("to");
requestData.remove("lang");
}
}
JSONObject jsonObject = translatorsCommon(requestData);
// 获取translation数组
JSONArray translationArray = jsonObject.getJSONArray("translation");
@ -338,7 +344,9 @@ public class ChatService {
//翻译
Map<String, String[]> data = new HashMap<>();
data.put("q", new String[]{requestData.get("q")});
data.put("from", new String[]{requestData.get("lang")});
if (requestData.get("lang") != null) {
data.put("from", new String[]{requestData.get("lang")});
}
if (requestData.get("to") != null) {
data.put("to", new String[]{requestData.get("to")});
}

View File

@ -6,4 +6,5 @@ import lombok.Data;
public class TtsRequest {
private String q;
private String voiceName;
private String language;
}

View File

@ -62,7 +62,7 @@ public class YoudaoServiceServiceImpl implements YoudaoService {
@Override
public String tts(TtsRequest ttsRequest, HttpServletResponse response) throws IOException, NoSuchAlgorithmException {
ttsRequest.setVoiceName("youxiaomei");
ttsRequest.setVoiceName(getYInSe(ttsRequest.getLanguage()));
List<String> result = new ArrayList<>();
String appKey = sysConfigMapper.getcheckConfigKeyUnique("YOUDAO_APP_KEY");
String appSecret = sysConfigMapper.getcheckConfigKeyUnique("YOUDAO_APP_SECRET");
@ -78,5 +78,25 @@ public class YoudaoServiceServiceImpl implements YoudaoService {
return "profile/upload/tts"+File.separator +tempPath +".mp3";
}
private String getYInSe(String lang) {
switch (lang) {
case "Japanese":
return "youkejiang";
case "Korean":
return "piaozhiyou";
case "Italian":
return "yixiaomei";
case "French":
return "faxiaomei";
case "Spanish":
return "xixiaomei";
case "German":
return "dexiaomei";
case "Russian":
return "exiaomei";
}
return "youxiaowei";
}
}