bishmoy commited on
Commit
30f11b2
·
verified ·
1 Parent(s): 9a43628

added random song sampling

Browse files
Files changed (1) hide show
  1. utils.py +79 -20
utils.py CHANGED
@@ -8,7 +8,8 @@ import time
8
  import os
9
  from huggingface_hub import CommitScheduler
10
  from functools import partial
11
-
 
12
 
13
  def enable_buttons_side_by_side():
14
  return tuple(gr.update(visible=True, interactive=True) for i in range(6))
@@ -19,6 +20,8 @@ def disable_buttons_side_by_side():
19
 
20
  os.makedirs('data', exist_ok = True)
21
  LOG_FILENAME = os.path.join('data', f'log_{datetime.now().isoformat()}.json')
 
 
22
  enable_btn = gr.update(interactive=True, visible=True)
23
  disable_btn = gr.update(interactive=False)
24
  invisible_btn = gr.update(interactive=False, visible=False)
@@ -36,6 +39,31 @@ scheduler = CommitScheduler(
36
  every = 10,
37
  )
38
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
39
 
40
  def vote_last_response(state, vote_type, request: gr.Request):
41
  with scheduler.lock:
@@ -49,6 +77,16 @@ def vote_last_response(state, vote_type, request: gr.Request):
49
  }
50
  fout.write(json.dumps(data) + "\n")
51
 
 
 
 
 
 
 
 
 
 
 
52
 
53
 
54
  class AudioStateIG:
@@ -74,15 +112,16 @@ def get_ip(request: gr.Request):
74
  return ip
75
 
76
 
77
- def get_song():
78
- audio_a = "marine.mp3"
79
- state = AudioStateIG("Random_Model")
80
- return state, audio_a
 
81
 
82
  def generate_songs(state0, state1):
83
-
84
- state0, audio_a = get_song()
85
- state1, audio_b = get_song()
86
 
87
  return state0, audio_a, state1, audio_b, "Model A: Vote to Reveal", "Model B: Vote to Reveal"
88
 
@@ -98,9 +137,9 @@ def leftvote_last_response(
98
  vote_last_response(
99
  [state0, state1], "leftvote", request
100
  )
101
- return (disable_btn,) * 4 + (
102
- gr.Markdown(f"### Model A: {state0.model_name.split('_')[1]}", visible=True),
103
- gr.Markdown(f"### Model B: {state1.model_name.split('_')[1]}", visible=True))
104
 
105
  def rightvote_last_response(
106
  state0, state1, request: gr.Request
@@ -108,9 +147,9 @@ def rightvote_last_response(
108
  vote_last_response(
109
  [state0, state1], "rightvote", request
110
  )
111
- return (disable_btn,) * 4 + (
112
- gr.Markdown(f"### Model A: {state0.model_name.split('_')[1]}", visible=True),
113
- gr.Markdown(f"### Model B: {state1.model_name.split('_')[1]}", visible=True))
114
 
115
  def tievote_last_response(
116
  state0, state1, request: gr.Request
@@ -118,9 +157,9 @@ def tievote_last_response(
118
  vote_last_response(
119
  [state0, state1], "tievote", request
120
  )
121
- return (disable_btn,) * 4 + (
122
- gr.Markdown(f"### Model A: {state0.model_name.split('_')[1]}", visible=True),
123
- gr.Markdown(f"### Model B: {state1.model_name.split('_')[1]}", visible=True))
124
 
125
  def bothbadvote_last_response(
126
  state0, state1, request: gr.Request
@@ -128,8 +167,28 @@ def bothbadvote_last_response(
128
  vote_last_response(
129
  [state0, state1], "bothbadvote", request
130
  )
131
- return (disable_btn,) * 4 + (
132
- gr.Markdown(f"### Model A: {state0.model_name.split('_')[1]}", visible=True),
133
- gr.Markdown(f"### Model B: {state1.model_name.split('_')[1]}", visible=True))
 
 
 
 
 
 
 
 
 
 
 
134
 
 
 
 
 
 
 
 
 
 
135
 
 
8
  import os
9
  from huggingface_hub import CommitScheduler
10
  from functools import partial
11
+ import pandas as pd
12
+ import numpy as np
13
 
14
  def enable_buttons_side_by_side():
15
  return tuple(gr.update(visible=True, interactive=True) for i in range(6))
 
20
 
21
  os.makedirs('data', exist_ok = True)
22
  LOG_FILENAME = os.path.join('data', f'log_{datetime.now().isoformat()}.json')
23
+ FLAG_FILENAME = os.path.join('data', f'flagged_{datetime.now().isoformat()}.json')
24
+
25
  enable_btn = gr.update(interactive=True, visible=True)
26
  disable_btn = gr.update(interactive=False)
27
  invisible_btn = gr.update(interactive=False, visible=False)
 
39
  every = 10,
40
  )
41
 
42
+ df = pd.read_csv('/data/singfake_english.csv')
43
+ df.filename = '/data/Songs/' + df.filename + '.mp3'
44
+
45
+
46
+ indices = list(df.index)
47
+ main_indices = indices.copy()
48
+
49
+ def init_indices():
50
+ global indices, main_indices
51
+ indices = main_indices
52
+
53
+
54
+
55
+ def pick_and_remove_two():
56
+ global indices
57
+ if len(indices) < 2:
58
+ init_indices()
59
+
60
+ np.random.shuffle(indices)
61
+ sel_indices = indices[:2].copy()
62
+ indices = indices[2:]
63
+ return sel_indices
64
+
65
+
66
+
67
 
68
  def vote_last_response(state, vote_type, request: gr.Request):
69
  with scheduler.lock:
 
77
  }
78
  fout.write(json.dumps(data) + "\n")
79
 
80
+ def flag_last_response(state, vote_type, request: gr.Request):
81
+ with scheduler.lock:
82
+ with open(FLAG_FILENAME, "a") as fout:
83
+ data = {
84
+ "tstamp": round(time.time(), 4),
85
+ "type": vote_type,
86
+ "state": state.dict(),
87
+ "ip": get_ip(request),
88
+ }
89
+ fout.write(json.dumps(data) + "\n")
90
 
91
 
92
  class AudioStateIG:
 
112
  return ip
113
 
114
 
115
+ def get_song(idx, df = df):
116
+ row = df.loc[idx]
117
+ audio_path = row.filename
118
+ state = AudioStateIG(row['Bonafide Or Spoof'])
119
+ return state, audio_path
120
 
121
  def generate_songs(state0, state1):
122
+ idx0, idx1 = pick_and_remove_two()
123
+ state0, audio_a = get_song(idx0)
124
+ state1, audio_b = get_song(idx1)
125
 
126
  return state0, audio_a, state1, audio_b, "Model A: Vote to Reveal", "Model B: Vote to Reveal"
127
 
 
137
  vote_last_response(
138
  [state0, state1], "leftvote", request
139
  )
140
+ return (disable_btn,) * 6 + (
141
+ gr.Markdown(f"### Model A: {state0.model_name}", visible=True),
142
+ gr.Markdown(f"### Model B: {state1.model_name}", visible=True))
143
 
144
  def rightvote_last_response(
145
  state0, state1, request: gr.Request
 
147
  vote_last_response(
148
  [state0, state1], "rightvote", request
149
  )
150
+ return (disable_btn,) * 6 + (
151
+ gr.Markdown(f"### Model A: {state0.model_name}", visible=True),
152
+ gr.Markdown(f"### Model B: {state1.model_name}", visible=True))
153
 
154
  def tievote_last_response(
155
  state0, state1, request: gr.Request
 
157
  vote_last_response(
158
  [state0, state1], "tievote", request
159
  )
160
+ return (disable_btn,) * 6 + (
161
+ gr.Markdown(f"### Model A: {state0.model_name}", visible=True),
162
+ gr.Markdown(f"### Model B: {state1.model_name}", visible=True))
163
 
164
  def bothbadvote_last_response(
165
  state0, state1, request: gr.Request
 
167
  vote_last_response(
168
  [state0, state1], "bothbadvote", request
169
  )
170
+ return (disable_btn,) * 6 + (
171
+ gr.Markdown(f"### Model A: {state0.model_name}", visible=True),
172
+ gr.Markdown(f"### Model B: {state1.model_name}", visible=True))
173
+
174
+ def leftheard_last_response(
175
+ state, request: gr.Request
176
+ ):
177
+ vote_last_response(
178
+ [state], "leftheard", request
179
+ )
180
+ return (disable_btn,) * 6 + (
181
+ gr.Markdown(f"### Model A: {state0.model_name}", visible=True),
182
+ gr.Markdown(f"### Model B: {state1.model_name}", visible=True))
183
+
184
 
185
+ def rightheard_last_response(
186
+ state, request: gr.Request
187
+ ):
188
+ vote_last_response(
189
+ [state], "rightheard", request
190
+ )
191
+ return (disable_btn,) * 6 + (
192
+ gr.Markdown(f"### Model A: {state0.model_name}", visible=True),
193
+ gr.Markdown(f"### Model B: {state1.model_name}", visible=True))
194