Zw07 commited on
Commit
4cf7ea6
·
verified ·
1 Parent(s): 3fce3da

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +239 -127
app.py CHANGED
@@ -59,64 +59,44 @@ def main():
59
  st.markdown(markdown_text)
60
 
61
  audio_file = st.file_uploader("Upload Audio", type=["wav", "mp3"], accept_multiple_files=False)
 
 
 
 
 
 
 
 
 
 
62
 
63
- if audio_file:
64
- # 保存文件到本地:
65
- # tmp_input_audio_file = os.path.join("/tmp/", audio_file.name)
66
- # st.markdown(tmp_input_audio_file)
67
- # with open(tmp_input_audio_file, "wb") as f:
68
- # f.write(audio_file.getbuffer())
69
- # st.audio(tmp_input_audio_file, format="mp3/wav")
70
 
 
 
 
71
 
72
- #1st attempt
73
- #audio_path = " audio_file.name"
74
-
75
- # audio, sr = torchaudio.load(audio_file)
76
- # st.audio(audio_file, format="audio/mpeg")
77
- # audio= audio.unsqueeze(0)
78
-
79
- # st.markdown("SR")
80
- # st.markdown(sr)
81
- # st.markdown("after unsqueeze wav or mp3")
82
- # st.markdown(audio)
83
-
84
- #2nd attempt
85
- # Save file to local storage
86
- tmp_input_audio_file = os.path.join("/tmp/", audio_file.name)
87
- file_extension = os.path.splitext(tmp_input_audio_file)[1].lower()
88
- #st.markdown(file_extension)
89
- if file_extension in [".wav", ".flac"]:
90
- with open("test.wav", "wb") as f:
91
- f.write(audio_file.getbuffer())
92
-
93
- st.audio("test.wav", format="audio/wav")
94
-
95
- elif file_extension == ".mp3":
96
- with open("test.mp3", "wb") as f:
97
- f.write(audio_file.getbuffer())
98
-
99
- st.audio("test.mp3", format="audio/mpeg")
100
 
101
  #Load the WAV file using torchaudio
102
- if file_extension in [".wav", ".flac"]:
103
- wav, sample_rate = torchaudio.load("test.wav")
104
  # st.markdown("Before unsquueze wav")
105
  # st.markdown(wav)
106
- file_extension_ori =".wav"
107
  #Unsqueeze for line 176
108
- wav= wav.unsqueeze(0)
109
 
110
- elif file_extension == ".mp3":
111
- # Load an MP3 file
112
- audio = AudioSegment.from_mp3("test.mp3")
113
 
114
  # Export it as a WAV file
115
- audio.export("test.wav", format="wav")
116
- wav3, sample_rate = torchaudio.load("test.wav")
117
- wav= wav3.unsqueeze(0)
118
- file_extension_ori =".mp3"
119
- file_extension =".wav"
120
 
121
  #RuntimeError: Could not infer dtype of numpy.float32
122
  #wav = torch.tensor(wav3).float() / 32768.0
@@ -130,15 +110,15 @@ def main():
130
  #Unsqueeze for line 176
131
  # wav= wav.unsqueeze(0)
132
 
133
- action = st.selectbox("Select Action", ["Add Watermark", "Detect Watermark"])
134
 
135
- if action == "Add Watermark":
136
- #watermark_text = st.text_input("The watermark (0, 1 list of length-16):", value=st.session_state.def_value)
137
- add_watermark_button = st.button("Add Watermark", key="add_watermark_btn")
138
- if add_watermark_button: # 点击按钮后执行的
139
- #if audio_file and watermark_text:
140
- if audio_file:
141
- with st.spinner("Adding Watermark..."):
142
  #wav = my_read_file(wav,max_second_encode)
143
 
144
  #1st attempt
@@ -154,84 +134,216 @@ def main():
154
  #st.markdown(shape)
155
 
156
  #st.markdown(squeeze)
157
- if file_extension_ori in [".wav", ".flac"]:
158
- torchaudio.save("output.wav", squeeze, default_sr, bits_per_sample=16)
159
- watermarked_wav = torchaudio.save("output.wav", squeeze, default_sr, bits_per_sample=16)
160
-
161
- st.audio("output.wav", format="audio/wav")
162
-
163
- with open("output.wav", "rb") as file:
164
- #file.read()
165
- #file.write(watermarked_wav.getbuffer())
166
- binary_data = file.read()
167
- btn = st.download_button(
168
- label="Download watermarked audio",
169
- data=binary_data,
170
- file_name="output.wav",
171
- mime="audio/wav",
172
- )
173
-
174
-
175
- elif file_extension_ori == ".mp3":
176
- torchaudio.save("output.wav", squeeze, default_sr)
177
- watermarked_mp3 = torchaudio.save("output.wav", squeeze, default_sr)
178
- audio = AudioSegment.from_wav("output.wav")
179
-
180
- # Export as MP3
181
- audio.export("output.mp3", format="mp3")
182
- st.audio("output.mp3", format="audio/mpeg")
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
183
 
184
- with open("output.mp3", "rb") as file:
185
- #file.write(watermarked_wav.getbuffer())
186
- binary_data = file.read()
187
- st.download_button(
188
- label="Download watermarked audio",
189
- data=binary_data,
190
- file_name="output.mp3",
191
- mime="audio/mpeg",
192
- )
193
- # except RuntimeError:
194
- # st.error("Please input audio with one channel (mono-channel)")
195
 
196
- elif action == "Detect Watermark":
197
- detect_watermark_button = st.button("Detect Watermark", key="detect_watermark_btn")
198
 
199
- # if audio_file:
200
- # #1st attempt
201
- # watermark = model.get_watermark(wav, default_sr)
202
- # watermarked_audio = wav + watermark
203
- # print(watermarked_audio.size())
204
- # size = watermarked_audio.size()
205
- # #st.markdown(size)
206
 
207
 
208
- if detect_watermark_button:
209
- with st.spinner("Detecting..."):
210
- # result, message = detector.detect_watermark(watermarked_audio, sample_rate=default_sr, message_threshold=0.5)
211
- # st.markdown("Probability of audio being watermarked: ")
212
- # st.markdown(result)
213
- # st.markdown("This is likely a watermarked audio!")
214
- # print(f"\nThis is likely a watermarked audio: {result}")
215
-
216
- #Run on an unwatermarked audio
217
-
218
- if file_extension in [".wav", ".flac"]:
219
- wav, sample_rate = torchaudio.load("test.wav")
220
- wav= wav.unsqueeze(0)
221
-
222
- elif file_extension == ".mp3":
223
- # Load an MP3 file
224
- audio = AudioSegment.from_mp3("test.mp3")
225
- # Export it as a WAV file
226
- audio.export("test.wav", format="wav")
227
- wav, sample_rate = torchaudio.load("test.wav")
228
- wav= wav.unsqueeze(0)
229
 
230
- result2, message2 = detector.detect_watermark(wav, sample_rate=default_sr, message_threshold=0.5)
231
- print(f"This is likely an unwatermarked audio: {result2}")
232
- st.markdown("Probability of audio being watermarked: ")
233
- st.markdown(result2)
234
- st.markdown("This is likely an unwatermarked audio!")
235
 
236
 
237
  if __name__ == "__main__":
 
59
  st.markdown(markdown_text)
60
 
61
  audio_file = st.file_uploader("Upload Audio", type=["wav", "mp3"], accept_multiple_files=False)
62
+ try:
63
+ if audio_file:
64
+ #2nd attempt
65
+ # Save file to local storage
66
+ tmp_input_audio_file = os.path.join("/tmp/", audio_file.name)
67
+ file_extension = os.path.splitext(tmp_input_audio_file)[1].lower()
68
+ #st.markdown(file_extension)
69
+ if file_extension in [".wav", ".flac"]:
70
+ with open("test.wav", "wb") as f:
71
+ f.write(audio_file.getbuffer())
72
 
73
+ st.audio("test.wav", format="audio/wav")
 
 
 
 
 
 
74
 
75
+ elif file_extension == ".mp3":
76
+ with open("test.mp3", "wb") as f:
77
+ f.write(audio_file.getbuffer())
78
 
79
+ st.audio("test.mp3", format="audio/mpeg")
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
80
 
81
  #Load the WAV file using torchaudio
82
+ if file_extension in [".wav", ".flac"]:
83
+ wav, sample_rate = torchaudio.load("test.wav")
84
  # st.markdown("Before unsquueze wav")
85
  # st.markdown(wav)
86
+ file_extension_ori =".wav"
87
  #Unsqueeze for line 176
88
+ wav= wav.unsqueeze(0)
89
 
90
+ elif file_extension == ".mp3":
91
+ # Load an MP3 file
92
+ audio = AudioSegment.from_mp3("test.mp3")
93
 
94
  # Export it as a WAV file
95
+ audio.export("test.wav", format="wav")
96
+ wav3, sample_rate = torchaudio.load("test.wav")
97
+ wav= wav3.unsqueeze(0)
98
+ file_extension_ori =".mp3"
99
+ file_extension =".wav"
100
 
101
  #RuntimeError: Could not infer dtype of numpy.float32
102
  #wav = torch.tensor(wav3).float() / 32768.0
 
110
  #Unsqueeze for line 176
111
  # wav= wav.unsqueeze(0)
112
 
113
+ action = st.selectbox("Select Action", ["Add Watermark", "Detect Watermark"])
114
 
115
+ if action == "Add Watermark":
116
+ #watermark_text = st.text_input("The watermark (0, 1 list of length-16):", value=st.session_state.def_value)
117
+ add_watermark_button = st.button("Add Watermark", key="add_watermark_btn")
118
+ if add_watermark_button: # 点击按钮后执行的
119
+ #if audio_file and watermark_text:
120
+ if audio_file:
121
+ with st.spinner("Adding Watermark..."):
122
  #wav = my_read_file(wav,max_second_encode)
123
 
124
  #1st attempt
 
134
  #st.markdown(shape)
135
 
136
  #st.markdown(squeeze)
137
+ if file_extension_ori in [".wav", ".flac"]:
138
+ torchaudio.save("output.wav", squeeze, default_sr, bits_per_sample=16)
139
+ watermarked_wav = torchaudio.save("output.wav", squeeze, default_sr, bits_per_sample=16)
140
+
141
+ st.audio("output.wav", format="audio/wav")
142
+
143
+ with open("output.wav", "rb") as file:
144
+ #file.read()
145
+ #file.write(watermarked_wav.getbuffer())
146
+ binary_data = file.read()
147
+ btn = st.download_button(
148
+ label="Download watermarked audio",
149
+ data=binary_data,
150
+ file_name="output.wav",
151
+ mime="audio/wav",
152
+ )
153
+
154
+
155
+ elif file_extension_ori == ".mp3":
156
+ torchaudio.save("output.wav", squeeze, default_sr)
157
+ watermarked_mp3 = torchaudio.save("output.wav", squeeze, default_sr)
158
+ audio = AudioSegment.from_wav("output.wav")
159
+
160
+ # Export as MP3
161
+ audio.export("output.mp3", format="mp3")
162
+ st.audio("output.mp3", format="audio/mpeg")
163
+
164
+ with open("output.mp3", "rb") as file:
165
+ #file.write(watermarked_wav.getbuffer())
166
+ binary_data = file.read()
167
+ st.download_button(
168
+ label="Download watermarked audio",
169
+ data=binary_data,
170
+ file_name="output.mp3",
171
+ mime="audio/mpeg",
172
+ except error:
173
+ st.error("Please input audio with one channel (mono-channel)")
174
+
175
+ # if audio_file:
176
+ # # 保存文件到本地:
177
+ # # tmp_input_audio_file = os.path.join("/tmp/", audio_file.name)
178
+ # # st.markdown(tmp_input_audio_file)
179
+ # # with open(tmp_input_audio_file, "wb") as f:
180
+ # # f.write(audio_file.getbuffer())
181
+ # # st.audio(tmp_input_audio_file, format="mp3/wav")
182
+
183
+
184
+ # #1st attempt
185
+ # #audio_path = " audio_file.name"
186
+
187
+ # # audio, sr = torchaudio.load(audio_file)
188
+ # # st.audio(audio_file, format="audio/mpeg")
189
+ # # audio= audio.unsqueeze(0)
190
+
191
+ # # st.markdown("SR")
192
+ # # st.markdown(sr)
193
+ # # st.markdown("after unsqueeze wav or mp3")
194
+ # # st.markdown(audio)
195
+
196
+ # #2nd attempt
197
+ # # Save file to local storage
198
+ # tmp_input_audio_file = os.path.join("/tmp/", audio_file.name)
199
+ # file_extension = os.path.splitext(tmp_input_audio_file)[1].lower()
200
+ # #st.markdown(file_extension)
201
+ # if file_extension in [".wav", ".flac"]:
202
+ # with open("test.wav", "wb") as f:
203
+ # f.write(audio_file.getbuffer())
204
+
205
+ # st.audio("test.wav", format="audio/wav")
206
+
207
+ # elif file_extension == ".mp3":
208
+ # with open("test.mp3", "wb") as f:
209
+ # f.write(audio_file.getbuffer())
210
+
211
+ # st.audio("test.mp3", format="audio/mpeg")
212
+
213
+ # #Load the WAV file using torchaudio
214
+ # if file_extension in [".wav", ".flac"]:
215
+ # wav, sample_rate = torchaudio.load("test.wav")
216
+ # # st.markdown("Before unsquueze wav")
217
+ # # st.markdown(wav)
218
+ # file_extension_ori =".wav"
219
+ # #Unsqueeze for line 176
220
+ # wav= wav.unsqueeze(0)
221
+
222
+ # elif file_extension == ".mp3":
223
+ # # Load an MP3 file
224
+ # audio = AudioSegment.from_mp3("test.mp3")
225
+
226
+ # # Export it as a WAV file
227
+ # audio.export("test.wav", format="wav")
228
+ # wav3, sample_rate = torchaudio.load("test.wav")
229
+ # wav= wav3.unsqueeze(0)
230
+ # file_extension_ori =".mp3"
231
+ # file_extension =".wav"
232
+
233
+ # #RuntimeError: Could not infer dtype of numpy.float32
234
+ # #wav = torch.tensor(wav3).float() / 32768.0
235
+
236
+ # #RuntimeError: Numpy is not available
237
+ # # wav = torch.from_numpy(wav3) #/32768.0
238
+ # # wav = wav.unsqueeze(0).unsqueeze(0)
239
+ # # st.markdown("Before unsqueeze mp3")
240
+ # # st.markdown(wav)
241
+
242
+ # #Unsqueeze for line 176
243
+ # # wav= wav.unsqueeze(0)
244
+
245
+ # action = st.selectbox("Select Action", ["Add Watermark", "Detect Watermark"])
246
+
247
+ # if action == "Add Watermark":
248
+ # #watermark_text = st.text_input("The watermark (0, 1 list of length-16):", value=st.session_state.def_value)
249
+ # add_watermark_button = st.button("Add Watermark", key="add_watermark_btn")
250
+ # if add_watermark_button: # 点击按钮后执行的
251
+ # #if audio_file and watermark_text:
252
+ # if audio_file:
253
+ # with st.spinner("Adding Watermark..."):
254
+ # #wav = my_read_file(wav,max_second_encode)
255
+
256
+ # #1st attempt
257
+ # watermark = model.get_watermark(wav, default_sr)
258
+ # watermarked_audio = wav + watermark
259
+ # print(watermarked_audio.size())
260
+ # size = watermarked_audio.size()
261
+ # #st.markdown(size)
262
+
263
+ # print(watermarked_audio.squeeze())
264
+ # squeeze = watermarked_audio.squeeze(1)
265
+ # shape = squeeze.size()
266
+ # #st.markdown(shape)
267
+
268
+ # #st.markdown(squeeze)
269
+ # if file_extension_ori in [".wav", ".flac"]:
270
+ # torchaudio.save("output.wav", squeeze, default_sr, bits_per_sample=16)
271
+ # watermarked_wav = torchaudio.save("output.wav", squeeze, default_sr, bits_per_sample=16)
272
+
273
+ # st.audio("output.wav", format="audio/wav")
274
+
275
+ # with open("output.wav", "rb") as file:
276
+ # #file.read()
277
+ # #file.write(watermarked_wav.getbuffer())
278
+ # binary_data = file.read()
279
+ # btn = st.download_button(
280
+ # label="Download watermarked audio",
281
+ # data=binary_data,
282
+ # file_name="output.wav",
283
+ # mime="audio/wav",
284
+ # )
285
+
286
+
287
+ # elif file_extension_ori == ".mp3":
288
+ # torchaudio.save("output.wav", squeeze, default_sr)
289
+ # watermarked_mp3 = torchaudio.save("output.wav", squeeze, default_sr)
290
+ # audio = AudioSegment.from_wav("output.wav")
291
+
292
+ # # Export as MP3
293
+ # audio.export("output.mp3", format="mp3")
294
+ # st.audio("output.mp3", format="audio/mpeg")
295
 
296
+ # with open("output.mp3", "rb") as file:
297
+ # #file.write(watermarked_wav.getbuffer())
298
+ # binary_data = file.read()
299
+ # st.download_button(
300
+ # label="Download watermarked audio",
301
+ # data=binary_data,
302
+ # file_name="output.mp3",
303
+ # mime="audio/mpeg",
304
+ # )
305
+ # # except RuntimeError:
306
+ # # st.error("Please input audio with one channel (mono-channel)")
307
 
308
+ # elif action == "Detect Watermark":
309
+ # detect_watermark_button = st.button("Detect Watermark", key="detect_watermark_btn")
310
 
311
+ # # if audio_file:
312
+ # # #1st attempt
313
+ # # watermark = model.get_watermark(wav, default_sr)
314
+ # # watermarked_audio = wav + watermark
315
+ # # print(watermarked_audio.size())
316
+ # # size = watermarked_audio.size()
317
+ # # #st.markdown(size)
318
 
319
 
320
+ # if detect_watermark_button:
321
+ # with st.spinner("Detecting..."):
322
+ # # result, message = detector.detect_watermark(watermarked_audio, sample_rate=default_sr, message_threshold=0.5)
323
+ # # st.markdown("Probability of audio being watermarked: ")
324
+ # # st.markdown(result)
325
+ # # st.markdown("This is likely a watermarked audio!")
326
+ # # print(f"\nThis is likely a watermarked audio: {result}")
327
+
328
+ # #Run on an unwatermarked audio
329
+
330
+ # if file_extension in [".wav", ".flac"]:
331
+ # wav, sample_rate = torchaudio.load("test.wav")
332
+ # wav= wav.unsqueeze(0)
333
+
334
+ # elif file_extension == ".mp3":
335
+ # # Load an MP3 file
336
+ # audio = AudioSegment.from_mp3("test.mp3")
337
+ # # Export it as a WAV file
338
+ # audio.export("test.wav", format="wav")
339
+ # wav, sample_rate = torchaudio.load("test.wav")
340
+ # wav= wav.unsqueeze(0)
341
 
342
+ # result2, message2 = detector.detect_watermark(wav, sample_rate=default_sr, message_threshold=0.5)
343
+ # print(f"This is likely an unwatermarked audio: {result2}")
344
+ # st.markdown("Probability of audio being watermarked: ")
345
+ # st.markdown(result2)
346
+ # st.markdown("This is likely an unwatermarked audio!")
347
 
348
 
349
  if __name__ == "__main__":