Explorar o código

fix(tts): 优先使用 edge-tts 命令而非 python -m

原因:python -m edge_tts 解析长文本(>500字)会触发 argparse code=2 错误,
    而 edge-tts 命令行工具能直接处理任意长度文本

修复:把 spawn('python', ['-m', 'edge_tts', ...]) 改为
     spawn('edge-tts', args, { shell: true }),并保留原 fallback
MyFramework User hai 2 meses
pai
achega
1fb1979447
Modificáronse 1 ficheiros con 3 adicións e 2 borrados
  1. 3 2
      server/src/modules/tts/edge-tts.provider.ts

+ 3 - 2
server/src/modules/tts/edge-tts.provider.ts

@@ -122,8 +122,9 @@ export class EdgeTtsProvider implements ITtsProvider {
     const startTime = Date.now();
 
     return new Promise<string>((resolve, reject) => {
-      // 优先用 python -m edge_tts(兼容性更好),fallback 到 edge-tts
-      const edgeCmd = spawn('python', ['-m', 'edge_tts', ...args], {
+      // 优先用 edge-tts 命令(避免 python -m 解析长文本的 argparse 问题),fallback 到 python -m
+      const edgeCmd = spawn('edge-tts', args, {
+        shell: true,
         stdio: ['pipe', 'pipe', 'pipe'],
       });