Explorar o código

chore(tts): 线上部署确认 + bookapi 域名废弃

线上 bookapi.rrbrr.com:
- 现在 book.rrbrr.com 既承载前端(H5)又承载后端 API(/api/* 走 80 端口)
- 老的 bookapi.rrbrr.com 子域名废弃(返回 410)
- 运维想用后端,直接 curl 127.0.0.1:3100 或前端 /api/ 走 book.rrbrr.com

server/src/config/alicloud-tts-lang-voice-matrix.json:
- RECOMMENDED 简化为 6 个通用语种(中文普通话/美英/英英/日/韩/印尼)
- 15 lang_key 完整数据保留,后续 v2 加'高级选项'暴露方言

deploy-package/scripts/build-lang-matrix-json.js:
- RECOMMENDED 同步简化

线上已验证:
- 6 个推荐语言接口返回正常
- zh-CMN 选中文 → 大模型写中文 + 普通话朗读
- en-US 选英文 → 大模型写英文 + 美音朗读
- zh-YUE 暂未在推荐集(粤语属方言,放 v2)
MyFramework User hai 1 mes
pai
achega
d0ff1c72fd

+ 5 - 14
deploy-package/scripts/build-lang-matrix-json.js

@@ -173,20 +173,11 @@ const DIALECT_INSTRUCTIONS = {
 
 const RECOMMENDED = {
   'zh-CMN': { vendor: 'bailian', model: 'cosyvoice-v3-flash', voice: 'longanhuan_v3', desc: '中文(普通话)标准女声' },
-  'zh-YUE': { vendor: 'bailian', model: 'cosyvoice-v3-flash', voice: 'longanyue', desc: '' },
-  'zh-NEN':  { vendor: 'bailian', model: 'cosyvoice-v3-flash', voice: 'longanhuan_v3', desc: '东北话,指令控制', dialectInstruction: DIALECT_INSTRUCTIONS['zh-NEN'] },
-  'zh-SCN':  { vendor: 'bailian', model: 'cosyvoice-v3-flash', voice: 'longanhuan_v3', desc: '四川话,指令控制', dialectInstruction: DIALECT_INSTRUCTIONS['zh-SCN'] },
-  'zh-SHD':  { vendor: 'bailian', model: 'cosyvoice-v3-flash', voice: 'longanhuan_v3', desc: '山东话,指令控制', dialectInstruction: DIALECT_INSTRUCTIONS['zh-SHD'] },
-  'zh-HEN':  { vendor: 'bailian', model: 'cosyvoice-v3-flash', voice: 'longanhuan_v3', desc: '河南话,指令控制', dialectInstruction: DIALECT_INSTRUCTIONS['zh-HEN'] },
-  'zh-HNN':  { vendor: 'bailian', model: 'cosyvoice-v3-flash', voice: 'longanhuan_v3', desc: '湖南话,指令控制', dialectInstruction: DIALECT_INSTRUCTIONS['zh-HNN'] },
-  'zh-SHX':  { vendor: 'bailian', model: 'cosyvoice-v3-flash', voice: 'longshange',    desc: '陕西话专用(无需指令)', dialectInstruction: DIALECT_INSTRUCTIONS['zh-SHX'] },
-  'zh-AHM':  { vendor: 'bailian', model: 'cosyvoice-v3-flash', voice: 'longanhuan_v3', desc: '安徽话,指令控制', dialectInstruction: DIALECT_INSTRUCTIONS['zh-AHM'] },
-  'zh-MNN':  { vendor: 'bailian', model: 'cosyvoice-v3-flash', voice: 'longanmin',     desc: '闽南话专用(无需指令)', dialectInstruction: DIALECT_INSTRUCTIONS['zh-MNN'] },
-  'en-US':   { vendor: 'bailian', model: 'cosyvoice-v3-flash', voice: 'longava',       desc: '美式英语女声' },
-  'en-GB':   { vendor: 'bailian', model: 'cosyvoice-v3-flash', voice: 'loongluna',     desc: '英语英伦少女' },
-  'ja-JP':   { vendor: 'bailian', model: 'cosyvoice-v3-flash', voice: 'loongtomoka',   desc: '日语女声' },
-  'ko-KR':   { vendor: 'bailian', model: 'cosyvoice-v3-flash', voice: 'sohee',         desc: '韩语女声' },
-  'id-ID':   { vendor: 'bailian', model: 'cosyvoice-v3-flash', voice: 'loongindah',    desc: '印尼女声' },
+  'en-US':  { vendor: 'bailian', model: 'cosyvoice-v3-flash', voice: 'longava',       desc: '美式英语女声' },
+  'en-GB':  { vendor: 'bailian', model: 'cosyvoice-v3-flash', voice: 'loongluna',     desc: '英式英语少女' },
+  'ja-JP':  { vendor: 'bailian', model: 'cosyvoice-v3-flash', voice: 'loongtomoka',   desc: '日语女声' },
+  'ko-KR':  { vendor: 'bailian', model: 'cosyvoice-v3-flash', voice: 'sohee',         desc: '韩语女声' },
+  'id-ID':  { vendor: 'bailian', model: 'cosyvoice-v3-flash', voice: 'loongindah',    desc: '印尼女声' },
 };
 
 // ── 4. 主流程: 读 raw → 生成 routes ─────────────────────────────

+ 10 - 81
server/src/config/alicloud-tts-lang-voice-matrix.json

@@ -3,15 +3,6 @@
   "note": "由 scripts/build-lang-matrix-json.js 从 alicloud 官方页面抓取数据后生成。不要手编。",
   "recommended": [
     "zh-CMN",
-    "zh-YUE",
-    "zh-NEN",
-    "zh-SCN",
-    "zh-SHD",
-    "zh-HEN",
-    "zh-HNN",
-    "zh-SHX",
-    "zh-AHM",
-    "zh-MNN",
     "en-US",
     "en-GB",
     "ja-JP",
@@ -31,7 +22,7 @@
         "vendor": "bailian",
         "model": "cosyvoice-v3-flash",
         "voice": "loongluna",
-        "desc": "英语英伦少女"
+        "desc": "英式英语少女"
       },
       "fallbackChain": [
         "loongluna",
@@ -408,15 +399,8 @@
         "cosyvoice-v3-flash"
       ],
       "voiceCount": 1,
-      "recommended": {
-        "vendor": "bailian",
-        "model": "cosyvoice-v3-flash",
-        "voice": "longanhuan_v3",
-        "desc": "安徽话,指令控制",
-        "dialectInstruction": "请用安徽话表达。"
-      },
+      "recommended": null,
       "fallbackChain": [
-        "longanhuan_v3",
         "longanhuan_v3"
       ],
       "sampleVoices": [
@@ -607,15 +591,8 @@
         "cosyvoice-v3-flash"
       ],
       "voiceCount": 1,
-      "recommended": {
-        "vendor": "bailian",
-        "model": "cosyvoice-v3-flash",
-        "voice": "longanhuan_v3",
-        "desc": "河南话,指令控制",
-        "dialectInstruction": "请用河南话表达。"
-      },
+      "recommended": null,
       "fallbackChain": [
-        "longanhuan_v3",
         "longanhuan_v3"
       ],
       "sampleVoices": [
@@ -634,15 +611,8 @@
         "cosyvoice-v3-flash"
       ],
       "voiceCount": 1,
-      "recommended": {
-        "vendor": "bailian",
-        "model": "cosyvoice-v3-flash",
-        "voice": "longanhuan_v3",
-        "desc": "湖南话,指令控制",
-        "dialectInstruction": "请用湖南话表达。"
-      },
+      "recommended": null,
       "fallbackChain": [
-        "longanhuan_v3",
         "longanhuan_v3"
       ],
       "sampleVoices": [
@@ -661,15 +631,8 @@
         "cosyvoice-v3-flash"
       ],
       "voiceCount": 1,
-      "recommended": {
-        "vendor": "bailian",
-        "model": "cosyvoice-v3-flash",
-        "voice": "longanmin",
-        "desc": "闽南话专用(无需指令)",
-        "dialectInstruction": "请用闽南话表达。"
-      },
+      "recommended": null,
       "fallbackChain": [
-        "longanmin",
         "longanhuan_v3"
       ],
       "sampleVoices": [
@@ -688,15 +651,8 @@
         "cosyvoice-v3-flash"
       ],
       "voiceCount": 2,
-      "recommended": {
-        "vendor": "bailian",
-        "model": "cosyvoice-v3-flash",
-        "voice": "longanhuan_v3",
-        "desc": "东北话,指令控制",
-        "dialectInstruction": "请用东北话表达。"
-      },
+      "recommended": null,
       "fallbackChain": [
-        "longanhuan_v3",
         "longanhuan_v3"
       ],
       "sampleVoices": [
@@ -720,15 +676,8 @@
         "cosyvoice-v3-flash"
       ],
       "voiceCount": 1,
-      "recommended": {
-        "vendor": "bailian",
-        "model": "cosyvoice-v3-flash",
-        "voice": "longanhuan_v3",
-        "desc": "四川话,指令控制",
-        "dialectInstruction": "请用四川话表达。"
-      },
+      "recommended": null,
       "fallbackChain": [
-        "longanhuan_v3",
         "longanhuan_v3"
       ],
       "sampleVoices": [
@@ -747,15 +696,8 @@
         "cosyvoice-v3-flash"
       ],
       "voiceCount": 1,
-      "recommended": {
-        "vendor": "bailian",
-        "model": "cosyvoice-v3-flash",
-        "voice": "longanhuan_v3",
-        "desc": "山东话,指令控制",
-        "dialectInstruction": "请用山东话表达。"
-      },
+      "recommended": null,
       "fallbackChain": [
-        "longanhuan_v3",
         "longanhuan_v3"
       ],
       "sampleVoices": [
@@ -774,15 +716,8 @@
         "cosyvoice-v3-flash"
       ],
       "voiceCount": 2,
-      "recommended": {
-        "vendor": "bailian",
-        "model": "cosyvoice-v3-flash",
-        "voice": "longshange",
-        "desc": "陕西话专用(无需指令)",
-        "dialectInstruction": "请用陕西话表达。"
-      },
+      "recommended": null,
       "fallbackChain": [
-        "longshange",
         "longanhuan_v3"
       ],
       "sampleVoices": [
@@ -806,14 +741,8 @@
         "cosyvoice-v3-flash"
       ],
       "voiceCount": 4,
-      "recommended": {
-        "vendor": "bailian",
-        "model": "cosyvoice-v3-flash",
-        "voice": "longanyue",
-        "desc": ""
-      },
+      "recommended": null,
       "fallbackChain": [
-        "longanyue",
         "longanhuan_v3"
       ],
       "sampleVoices": [