A-yum1 commited on
Commit
a1b2149
·
1 Parent(s): 91d39c6

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +11 -35
app.py CHANGED
@@ -38,14 +38,11 @@ def upload_audio():
38
  if not data or 'audio_data' not in data:
39
  return jsonify({"error": "音声データがありません"}), 400
40
 
41
- # Base64デコードして音声バイナリを取得
42
- audio_binary = base64.b64decode(data['audio_data'])
43
- audio_dir = "/tmp/data"
44
- os.makedirs(audio_dir, exist_ok=True)
45
- # 固定ファイル名(必要に応じて generate_filename() で一意のファイル名に変更可能)
46
- audio_path = os.path.join(audio_dir, "recorded_audio.wav")
47
- with open(audio_path, 'wb') as f:
48
- f.write(audio_binary)
49
 
50
  # 参照音声ファイルのパスを指定(sample.wav を正しい場所に配置すること)
51
  reference_audio = os.path.abspath('/tmp/data/base_audio/recorded_base_audio.wav')
@@ -69,33 +66,12 @@ def upload_base_audio():
69
  if not data or 'audio_data' not in data or 'name' not in data:
70
  return jsonify({"error": "音声データまたは名前がありません"}), 400
71
 
72
- # Base64デコードして音声バイナリを取得
73
- audio_binary = base64.b64decode(data['audio_data'])
74
- name = data['name'] # 名前を取得
75
-
76
- # 保存先ディレクトリの作成
77
- audio_dir = "/tmp/data/base_audio"
78
- os.makedirs(audio_dir, exist_ok=True)
79
-
80
- # 一時ファイルに保存(実際の形式は WebM などと仮定)
81
- temp_audio_path = os.path.join(audio_dir, "temp_audio")
82
- with open(temp_audio_path, 'wb') as f:
83
- f.write(audio_binary)
84
-
85
- # pydub を使って一時ファイルを WAV に変換
86
- # ※ここでは WebM 形式と仮定していますが、実際の形式に合わせて format の指定を変更してください
87
- try:
88
- audio = AudioSegment.from_file(temp_audio_path, format="webm")
89
- except Exception as e:
90
- # 形式が不明な場合は自動判別させる(ただし変換できない場合もあり)
91
- audio = AudioSegment.from_file(temp_audio_path)
92
- wav_audio_path = os.path.join(audio_dir, f"{name}.wav")
93
- audio.export(wav_audio_path, format="wav")
94
-
95
- # 一時ファイルを削除
96
- os.remove(temp_audio_path)
97
-
98
- return jsonify({"state": "Registration Success!"}), 200
99
  except Exception as e:
100
  print("Error in /upload_base_audio:", str(e))
101
  return jsonify({"error": "サーバーエラー", "details": str(e)}), 500
 
38
  if not data or 'audio_data' not in data:
39
  return jsonify({"error": "音声データがありません"}), 400
40
 
41
+ audio_path=process.save_audio_from_base64(
42
+ base64_audio=data['audio_data'], # 音声データ
43
+ output_dir= "/tmp/data", #保存先
44
+ output_filename="recorded_audio.wav" # 固定ファイル名(必要に応じて generate_filename() で一意のファイル名に変更可能)
45
+ )
 
 
 
46
 
47
  # 参照音声ファイルのパスを指定(sample.wav を正しい場所に配置すること)
48
  reference_audio = os.path.abspath('/tmp/data/base_audio/recorded_base_audio.wav')
 
66
  if not data or 'audio_data' not in data or 'name' not in data:
67
  return jsonify({"error": "音声データまたは名前がありません"}), 400
68
 
69
+ audio_path=process.save_audio_from_base64(
70
+ base64_audio=data['audio_data'], # 音声データ
71
+ output_dir= "/tmp/data", #保存先
72
+ output_filename="recorded_audio.wav" # 固定ファイル名(必要に応じて generate_filename() で一意のファイル名に変更可能)
73
+ )
74
+ return jsonify({"state": "Registration Success!", "path": audio_path}), 200
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
75
  except Exception as e:
76
  print("Error in /upload_base_audio:", str(e))
77
  return jsonify({"error": "サーバーエラー", "details": str(e)}), 500