KGNINJA commited on
Commit
b8cd115
·
verified ·
1 Parent(s): 79bab02

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +22 -5
app.py CHANGED
@@ -37,7 +37,9 @@ def tts_standard(text):
37
  # 2) F0 を関西イントネーション(HL型)へ変換
38
  # ----------------------------------------
39
  def convert_to_kansai_pitch(audio, sr):
40
- """標準TTSの音声 → 関西イントネーションHL型へ"""
 
 
41
 
42
  f0, sp, ap = pw.wav2world(audio.astype(np.float64), sr)
43
 
@@ -45,16 +47,31 @@ def convert_to_kansai_pitch(audio, sr):
45
  if len(nz) < 2:
46
  return audio
47
 
48
- high = np.max(f0[nz])
49
- low = np.min(f0[nz])
50
 
51
- # HL(High → Lowへ滑らかに下降
52
- f0_new = np.linspace(high, low, len(f0))
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
53
 
54
  y = pw.synthesize(f0_new, sp, ap, sr)
55
  return y.astype(np.float32)
56
 
57
 
 
58
  # ----------------------------------------
59
  # 3) Kansai Accent TTS コア関数
60
  # ----------------------------------------
 
37
  # 2) F0 を関西イントネーション(HL型)へ変換
38
  # ----------------------------------------
39
  def convert_to_kansai_pitch(audio, sr):
40
+ """
41
+ 標準TTSの音声 → 大げさな大阪イントネーションHLHL型に変換
42
+ """
43
 
44
  f0, sp, ap = pw.wav2world(audio.astype(np.float64), sr)
45
 
 
47
  if len(nz) < 2:
48
  return audio
49
 
50
+ base = np.mean(f0[nz]) # 標準TTSの基準F0
 
51
 
52
+ # ==== 大げさな大阪イントネーション(HLHL・超誇張版 ====
53
+ L1 = base * 0.65 # 低く溜める
54
+ H1 = base * 1.40 # 盛り上がり最大
55
+ H2 = base * 1.30 # 少し下がって維持(余韻)
56
+ L2 = base * 0.70 # 語尾はしっかり下げる
57
+
58
+ length = len(f0)
59
+
60
+ p1 = int(length * 0.25)
61
+ p2 = int(length * 0.50)
62
+ p3 = int(length * 0.75)
63
+
64
+ f0_new = np.zeros_like(f0)
65
+ f0_new[:p1] = np.linspace(L1, H1, p1)
66
+ f0_new[p1:p2] = np.linspace(H1, H2, p2 - p1)
67
+ f0_new[p2:p3] = np.linspace(H2, H2*0.95, p3 - p2)
68
+ f0_new[p3:] = np.linspace(H2*0.95, L2, length - p3)
69
 
70
  y = pw.synthesize(f0_new, sp, ap, sr)
71
  return y.astype(np.float32)
72
 
73
 
74
+
75
  # ----------------------------------------
76
  # 3) Kansai Accent TTS コア関数
77
  # ----------------------------------------