mnhkahn commited on
Commit
c1aede6
·
1 Parent(s): d2309bd

add tts 2D2

Browse files
Files changed (2) hide show
  1. .gitignore +12 -1
  2. app.py +8 -2
.gitignore CHANGED
@@ -1 +1,12 @@
1
- __pycache__/
 
 
 
 
 
 
 
 
 
 
 
 
1
+ __pycache__/
2
+ *.py[cod]
3
+ *$py.class
4
+ *.so
5
+ .env
6
+ .venv
7
+ venv*
8
+ env/
9
+ ENV/
10
+ *.wav
11
+ test_*.py
12
+ .DS_Store
app.py CHANGED
@@ -417,24 +417,30 @@ def generate_tts_with_pauses(text, silence_duration_ms=500):
417
 
418
  # 逐句生成音频
419
  audio_segments = []
 
 
420
  for sentence in sentences:
421
  if sentence:
422
  result = tts(sentence)
423
  audio_segments.append(result["audio"])
 
 
424
 
425
  # 拼接音频,在之间添加静音
426
- silence_samples = int(result["sampling_rate"] * silence_duration_ms / 1000)
427
  silence = np.zeros(silence_samples, dtype=np.float32)
428
 
429
  combined_audio = []
430
  for i, segment in enumerate(audio_segments):
 
 
431
  combined_audio.append(segment)
432
  if i < len(audio_segments) - 1: # 最后一段后面不加静音
433
  combined_audio.append(silence)
434
 
435
  final_audio = np.concatenate(combined_audio)
436
 
437
- return {"audio": final_audio, "sampling_rate": result["sampling_rate"]}
438
 
439
 
440
  @app.post("/upload/text")
 
417
 
418
  # 逐句生成音频
419
  audio_segments = []
420
+ sampling_rate = None
421
+
422
  for sentence in sentences:
423
  if sentence:
424
  result = tts(sentence)
425
  audio_segments.append(result["audio"])
426
+ if sampling_rate is None:
427
+ sampling_rate = result["sampling_rate"]
428
 
429
  # 拼接音频,在之间添加静音
430
+ silence_samples = int(sampling_rate * silence_duration_ms / 1000)
431
  silence = np.zeros(silence_samples, dtype=np.float32)
432
 
433
  combined_audio = []
434
  for i, segment in enumerate(audio_segments):
435
+ # 统一转换为 1D numpy 数组,避免不同环境返回的格式不一致(如 torch Tensor / numpy 多维数组)
436
+ segment = np.asarray(segment).flatten()
437
  combined_audio.append(segment)
438
  if i < len(audio_segments) - 1: # 最后一段后面不加静音
439
  combined_audio.append(silence)
440
 
441
  final_audio = np.concatenate(combined_audio)
442
 
443
+ return {"audio": final_audio, "sampling_rate": sampling_rate}
444
 
445
 
446
  @app.post("/upload/text")