soiz1 commited on
Commit
c9d9c2a
·
verified ·
1 Parent(s): 710844b

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +24 -20
app.py CHANGED
@@ -2,38 +2,42 @@ import gradio as gr
2
  from pydub import AudioSegment
3
  import tempfile
4
  import os
 
5
 
6
- def change_volume(audio_file, mode, value):
7
- # 一時ファイルに保存して読み込む
8
- temp = tempfile.NamedTemporaryFile(delete=False, suffix=".wav")
9
- audio_file.save(temp.name)
10
- audio = AudioSegment.from_file(temp.name)
11
-
12
- # 音量の変更
13
- if mode == "パーセンテージ(%)":
14
- try:
 
15
  multiplier = 1 + float(value) / 100
16
- audio = audio.apply_gain(10 * log10(multiplier))
17
- except:
18
- return "エラー: 数値が不正です"
19
- elif mode == "デシベル(dB)":
20
- try:
21
  db_value = float(value)
22
  audio = audio + db_value
23
- except:
24
- return "エラー: 数値が不正です"
 
 
25
 
26
- # 出力ファイル保存
27
  out_path = tempfile.NamedTemporaryFile(delete=False, suffix=".wav").name
28
  audio.export(out_path, format="wav")
29
  return out_path
30
 
31
- # UI
32
  with gr.Blocks() as app:
33
- gr.Markdown("## 🎚️ 音量調整(% または dB)")
34
 
35
  with gr.Row():
36
- audio_input = gr.Audio(type="file", label="音声ファイルをアップロード")
37
  audio_output = gr.Audio(label="出力音声", interactive=False)
38
 
39
  with gr.Row():
 
2
  from pydub import AudioSegment
3
  import tempfile
4
  import os
5
+ from math import log10
6
 
7
+ def change_volume(audio_path, mode, value):
8
+ if audio_path is None:
9
+ return "エラー: 音声ファイルがありません"
10
+
11
+ # 音声読み込み
12
+ audio = AudioSegment.from_file(audio_path)
13
+
14
+ # 音量調整
15
+ try:
16
+ if mode == "パーセンテージ(%)":
17
  multiplier = 1 + float(value) / 100
18
+ if multiplier <= 0:
19
+ return "エラー: 0%以下にはできません"
20
+ db_gain = 10 * log10(multiplier)
21
+ audio = audio.apply_gain(db_gain)
22
+ elif mode == "デシベル(dB)":
23
  db_value = float(value)
24
  audio = audio + db_value
25
+ else:
26
+ return "エラー: モードが不正です"
27
+ except Exception as e:
28
+ return f"エラー: 数値が不正です ({e})"
29
 
30
+ # 出力
31
  out_path = tempfile.NamedTemporaryFile(delete=False, suffix=".wav").name
32
  audio.export(out_path, format="wav")
33
  return out_path
34
 
35
+ # Gradio UI
36
  with gr.Blocks() as app:
37
+ gr.Markdown("## 🎚️ 音量調整アプリ(% または dB)")
38
 
39
  with gr.Row():
40
+ audio_input = gr.Audio(type="filepath", label="音声ファイルをアップロード")
41
  audio_output = gr.Audio(label="出力音声", interactive=False)
42
 
43
  with gr.Row():