Update app.py
Browse files
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 |
-
"""
|
|
|
|
|
|
|
| 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 |
-
|
| 49 |
-
low = np.min(f0[nz])
|
| 50 |
|
| 51 |
-
#
|
| 52 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 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 |
# ----------------------------------------
|