loveasmrmeeeee commited on
Commit
ff982c3
·
verified ·
1 Parent(s): 8085bd9

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +27 -23
app.py CHANGED
@@ -89,39 +89,43 @@ def generate_script(max_count: int) -> str:
89
  # VOICEVOX API (Web版)
90
  # =========================
91
 
92
- VOICEVOX_API_URL = "https://api.tts.quest/v3/voicevox/synthesis"
93
-
94
- def tts_voicevox(text: str, speaker_id: int = 46) -> str:
95
  """
96
  VOICEVOX Web APIを使用して音声合成
97
- speaker_id: 46 = ずんだもん(ノーマル)
98
  """
99
  try:
100
- # リクエストパラメータ
101
- params = {
102
- "text": text,
103
- "speaker": speaker_id,
104
- "speed": 0.9, # 少しゆっくり
105
- "pitch": 0.0,
106
- "intonation": 1.0,
107
- }
108
 
109
  # API呼び出し
110
- response = requests.post(
111
- VOICEVOX_API_URL,
112
- json=params,
113
- headers={"Content-Type": "application/json"},
114
- timeout=30
115
- )
116
 
117
  if response.status_code == 200:
118
- # 音声デ保存
119
- tmp = tempfile.NamedTemporaryFile(delete=False, suffix=".wav")
120
- tmp.write(response.content)
121
- tmp.close()
122
- return tmp.name
 
 
 
 
 
 
 
 
 
 
 
123
  else:
124
  print(f"VOICEVOX APIエラー: {response.status_code}")
 
125
  return None
126
 
127
  except Exception as e:
 
89
  # VOICEVOX API (Web版)
90
  # =========================
91
 
92
+ def tts_voicevox(text: str, speaker_id: int = 3) -> str:
 
 
93
  """
94
  VOICEVOX Web APIを使用して音声合成
95
+ speaker_id: 3 = ずんだもん(ノーマル)
96
  """
97
  try:
98
+ import urllib.parse
99
+
100
+ # URLエンコード
101
+ encoded_text = urllib.parse.quote(text)
102
+
103
+ # GETリクエスト用URL
104
+ url = f"https://api.tts.quest/v3/voicevox/synthesis?speaker={speaker_id}&text={encoded_text}"
 
105
 
106
  # API呼び出し
107
+ response = requests.get(url, timeout=30)
 
 
 
 
 
108
 
109
  if response.status_code == 200:
110
+ # レスポンスからダウンロドURL取得
111
+ result = response.json()
112
+
113
+ if result.get("success"):
114
+ # WAVファイルをダウンロード
115
+ wav_url = result.get("wavDownloadUrl")
116
+ if wav_url:
117
+ audio_response = requests.get(wav_url, timeout=30)
118
+ if audio_response.status_code == 200:
119
+ tmp = tempfile.NamedTemporaryFile(delete=False, suffix=".wav")
120
+ tmp.write(audio_response.content)
121
+ tmp.close()
122
+ return tmp.name
123
+
124
+ print(f"VOICEVOX APIレスポンス: {result}")
125
+ return None
126
  else:
127
  print(f"VOICEVOX APIエラー: {response.status_code}")
128
+ print(f"レスポンス: {response.text}")
129
  return None
130
 
131
  except Exception as e: