qfuxa commited on
Commit
d98de94
·
1 Parent(s): 2527697

new buffer format

Browse files
src/whisper_streaming/online_asr.py CHANGED
@@ -168,7 +168,7 @@ class OnlineASRProcessor:
168
  """
169
  Get the unvalidated buffer in string format.
170
  """
171
- return self.concatenate_tokens(self.transcript_buffer.buffer).text
172
 
173
 
174
  def process_iter(self) -> Transcript:
 
168
  """
169
  Get the unvalidated buffer in string format.
170
  """
171
+ return self.concatenate_tokens(self.transcript_buffer.buffer)
172
 
173
 
174
  def process_iter(self) -> Transcript:
whisper_fastapi_online_server.py CHANGED
@@ -186,7 +186,6 @@ async def websocket_endpoint(websocket: WebSocket):
186
  if not chunk:
187
  logger.info("FFmpeg stdout closed.")
188
  break
189
-
190
  pcm_buffer.extend(chunk)
191
  if len(pcm_buffer) >= BYTES_PER_SEC:
192
  if len(pcm_buffer) > MAX_BYTES_PER_SEC:
@@ -207,7 +206,9 @@ async def websocket_endpoint(websocket: WebSocket):
207
  new_tokens = online.process_iter()
208
  tokens.extend(new_tokens)
209
  full_transcription += sep.join([t.text for t in new_tokens])
210
- buffer = online.get_buffer()
 
 
211
  if buffer in full_transcription: # With VAC, the buffer is not updated until the next chunk is processed
212
  buffer = ""
213
  else:
@@ -253,6 +254,7 @@ async def websocket_endpoint(websocket: WebSocket):
253
  lines[-1]["diff"] = round(token.end - last_end_diarized, 2)
254
 
255
  response = {"lines": lines, "buffer": buffer}
 
256
  await websocket.send_json(response)
257
 
258
  except Exception as e:
 
186
  if not chunk:
187
  logger.info("FFmpeg stdout closed.")
188
  break
 
189
  pcm_buffer.extend(chunk)
190
  if len(pcm_buffer) >= BYTES_PER_SEC:
191
  if len(pcm_buffer) > MAX_BYTES_PER_SEC:
 
206
  new_tokens = online.process_iter()
207
  tokens.extend(new_tokens)
208
  full_transcription += sep.join([t.text for t in new_tokens])
209
+ _buffer = online.get_buffer()
210
+ buffer = _buffer.text
211
+ end_buffer = _buffer.end if _buffer.end else tokens[-1].end if tokens else 0
212
  if buffer in full_transcription: # With VAC, the buffer is not updated until the next chunk is processed
213
  buffer = ""
214
  else:
 
254
  lines[-1]["diff"] = round(token.end - last_end_diarized, 2)
255
 
256
  response = {"lines": lines, "buffer": buffer}
257
+ # response = {"lines": lines, "buffer": buffer, "time_buffer_transcription": time() + beg_loop - end_buffer, "time_buffer_diarization": time() + beg_loop - end_attributed_speaker}
258
  await websocket.send_json(response)
259
 
260
  except Exception as e: