A-yum1 commited on
Commit
dad02e9
·
1 Parent(s): bc6ed4d

Update process.py

Browse files
Files changed (1) hide show
  1. process.py +41 -1
process.py CHANGED
@@ -7,6 +7,8 @@ import random
7
  from datetime import datetime
8
  from pyannote.audio import Model, Inference
9
  from pydub import AudioSegment
 
 
10
 
11
  class AudioProcessor():
12
  def __init__(self,cache_dir = "/tmp/hf_cache"):
@@ -142,4 +144,42 @@ class AudioProcessor():
142
  return matched_time
143
 
144
 
145
-
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
7
  from datetime import datetime
8
  from pyannote.audio import Model, Inference
9
  from pydub import AudioSegment
10
+ import base64
11
+ import binascii
12
 
13
  class AudioProcessor():
14
  def __init__(self,cache_dir = "/tmp/hf_cache"):
 
144
  return matched_time
145
 
146
 
147
+ def save_audio_from_base64(self,base64_audio,output_dir,output_filename,temp_format='webm'):
148
+ try:
149
+ # Base64デコードして音声バイナリを取得
150
+ try:
151
+ audio_binary = base64.b64decode(base64_audio)
152
+ except binascii.Error:
153
+ raise ValueError("Invalid Base64 input data")
154
+
155
+ # 保存するディレクトリを作成
156
+ os.makedirs(output_dir,exist_ok=True)
157
+
158
+ # 一時ファイルに保存(実際の形式は WebM などと仮定)
159
+ temp_audio_path = os.path.join(output_dir,"temp_audio")
160
+ try:
161
+ with open(temp_audio_path,'wb') as f:
162
+ f.write(audio_binary)
163
+
164
+ # pydub を使って一時ファイルを WAV に変換
165
+ # ※ここでは WebM 形式と仮定していますが、実際の形式に合わせて format の指定を変更してください
166
+ try:
167
+ audio = AudioSegment.from_file(temp_audio_path,format=temp_format)
168
+ except Exception as e:
169
+ audio = AudioSegment.from_file(temp_audio_path) #形式が不明な場合は自動判別させる(ただし変換できない場合もあり)
170
+
171
+ # 音声ファイルを保存
172
+ wav_audio_path = os.path.join(output_dir,output_filename)
173
+ audio.export(wav_audio_path,format="wav")
174
+ finally:
175
+ #一時ファイルを削除
176
+ if os.path.exists(temp_audio_path):
177
+ os.remove(temp_audio_path)
178
+ return wav_audio_path
179
+ except ValueError as e:
180
+ print(f"Value Error: {e}")
181
+ except FileNotFoundError as e:
182
+ print(f"File Not Found Error: {e}")
183
+ except Exception as e:
184
+ print(f"Unexpected Error: {e}")
185
+ return None