mirror of
https://github.com/Monadical-SAS/reflector.git
synced 2025-12-20 20:29:06 +00:00
reformatting
This commit is contained in:
@@ -64,7 +64,6 @@ async def main():
|
|||||||
ping_pong=args.ping_pong
|
ping_pong=args.ping_pong
|
||||||
)
|
)
|
||||||
await sc.start()
|
await sc.start()
|
||||||
print("Stream client started")
|
|
||||||
async for msg in sc.get_reader():
|
async for msg in sc.get_reader():
|
||||||
print(msg)
|
print(msg)
|
||||||
|
|
||||||
|
|||||||
@@ -126,7 +126,7 @@ async def offer(request):
|
|||||||
return web.Response(
|
return web.Response(
|
||||||
content_type="application/json",
|
content_type="application/json",
|
||||||
text=json.dumps(
|
text=json.dumps(
|
||||||
{ "sdp": pc.localDescription.sdp, "type": pc.localDescription.type }
|
{"sdp": pc.localDescription.sdp, "type": pc.localDescription.type}
|
||||||
),
|
),
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|||||||
@@ -8,6 +8,7 @@ import wave
|
|||||||
from concurrent.futures import ThreadPoolExecutor
|
from concurrent.futures import ThreadPoolExecutor
|
||||||
|
|
||||||
import jax.numpy as jnp
|
import jax.numpy as jnp
|
||||||
|
import requests
|
||||||
from aiohttp import web
|
from aiohttp import web
|
||||||
from aiortc import MediaStreamTrack, RTCPeerConnection, RTCSessionDescription
|
from aiortc import MediaStreamTrack, RTCPeerConnection, RTCSessionDescription
|
||||||
from aiortc.contrib.media import MediaRelay
|
from aiortc.contrib.media import MediaRelay
|
||||||
@@ -77,10 +78,11 @@ def get_transcription():
|
|||||||
wf.close()
|
wf.close()
|
||||||
|
|
||||||
whisper_result = pipeline(out_file.getvalue())
|
whisper_result = pipeline(out_file.getvalue())
|
||||||
item = { 'text': whisper_result["text"],
|
item = {
|
||||||
'start_time': str(frames[0].time),
|
'text': whisper_result["text"],
|
||||||
'time': str(datetime.datetime.now())
|
'start_time': str(frames[0].time),
|
||||||
}
|
'time': str(datetime.datetime.now())
|
||||||
|
}
|
||||||
sorted_message_queue[frames[0].time] = str(item)
|
sorted_message_queue[frames[0].time] = str(item)
|
||||||
start_messaging_thread()
|
start_messaging_thread()
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
@@ -89,7 +91,7 @@ def get_transcription():
|
|||||||
|
|
||||||
class AudioStreamTrack(MediaStreamTrack):
|
class AudioStreamTrack(MediaStreamTrack):
|
||||||
"""
|
"""
|
||||||
A video stream track that transforms frames from an another track.
|
An audio stream track to send audio frames.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
kind = "audio"
|
kind = "audio"
|
||||||
@@ -109,15 +111,13 @@ def start_messaging_thread():
|
|||||||
message_thread.start()
|
message_thread.start()
|
||||||
|
|
||||||
|
|
||||||
def start_transcription_thread(max_threads):
|
def start_transcription_thread(max_threads: int):
|
||||||
t_threads = []
|
|
||||||
for i in range(max_threads):
|
for i in range(max_threads):
|
||||||
t_thread = threading.Thread(target=get_transcription, args=(i,))
|
t_thread = threading.Thread(target=get_transcription, args=(i,))
|
||||||
t_threads.append(t_thread)
|
|
||||||
t_thread.start()
|
t_thread.start()
|
||||||
|
|
||||||
|
|
||||||
async def offer(request):
|
async def offer(request: requests.Request):
|
||||||
params = await request.json()
|
params = await request.json()
|
||||||
offer = RTCSessionDescription(sdp=params["sdp"], type=params["type"])
|
offer = RTCSessionDescription(sdp=params["sdp"], type=params["type"])
|
||||||
|
|
||||||
@@ -125,7 +125,7 @@ async def offer(request):
|
|||||||
pc_id = "PeerConnection(%s)" % uuid.uuid4()
|
pc_id = "PeerConnection(%s)" % uuid.uuid4()
|
||||||
pcs.add(pc)
|
pcs.add(pc)
|
||||||
|
|
||||||
def log_info(msg, *args):
|
def log_info(msg: str, *args):
|
||||||
logger.info(pc_id + " " + msg, *args)
|
logger.info(pc_id + " " + msg, *args)
|
||||||
|
|
||||||
log_info("Created for %s", request.remote)
|
log_info("Created for %s", request.remote)
|
||||||
@@ -138,7 +138,7 @@ async def offer(request):
|
|||||||
start_time = datetime.datetime.now()
|
start_time = datetime.datetime.now()
|
||||||
|
|
||||||
@channel.on("message")
|
@channel.on("message")
|
||||||
def on_message(message):
|
def on_message(message: str):
|
||||||
channel_log(channel, "<", message)
|
channel_log(channel, "<", message)
|
||||||
if isinstance(message, str) and message.startswith("ping"):
|
if isinstance(message, str) and message.startswith("ping"):
|
||||||
# reply
|
# reply
|
||||||
@@ -164,13 +164,14 @@ async def offer(request):
|
|||||||
await pc.setLocalDescription(answer)
|
await pc.setLocalDescription(answer)
|
||||||
return web.Response(
|
return web.Response(
|
||||||
content_type="application/json",
|
content_type="application/json",
|
||||||
text=json.dumps(
|
text=json.dumps({
|
||||||
{ "sdp": pc.localDescription.sdp, "type": pc.localDescription.type }
|
"sdp": pc.localDescription.sdp,
|
||||||
),
|
"type": pc.localDescription.type
|
||||||
|
}),
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
async def on_shutdown(app):
|
async def on_shutdown(app: web.Application):
|
||||||
coros = [pc.close() for pc in pcs]
|
coros = [pc.close() for pc in pcs]
|
||||||
await asyncio.gather(*coros)
|
await asyncio.gather(*coros)
|
||||||
pcs.clear()
|
pcs.clear()
|
||||||
|
|||||||
@@ -38,7 +38,7 @@ class StreamClient:
|
|||||||
self.time_start = None
|
self.time_start = None
|
||||||
self.queue = asyncio.Queue()
|
self.queue = asyncio.Queue()
|
||||||
self.player = MediaPlayer(':' + str(config['DEFAULT']["AV_FOUNDATION_DEVICE_ID"]),
|
self.player = MediaPlayer(':' + str(config['DEFAULT']["AV_FOUNDATION_DEVICE_ID"]),
|
||||||
format='avfoundation', options={ 'channels': '2' })
|
format='avfoundation', options={'channels': '2'})
|
||||||
|
|
||||||
def stop(self):
|
def stop(self):
|
||||||
self.loop.run_until_complete(self.signaling.close())
|
self.loop.run_until_complete(self.signaling.close())
|
||||||
|
|||||||
@@ -70,7 +70,7 @@ def remove_whisper_repetitive_hallucination(nonduplicate_sentences):
|
|||||||
|
|
||||||
for sent in nonduplicate_sentences:
|
for sent in nonduplicate_sentences:
|
||||||
temp_result = ""
|
temp_result = ""
|
||||||
seen = { }
|
seen = {}
|
||||||
words = nltk.word_tokenize(sent)
|
words = nltk.word_tokenize(sent)
|
||||||
n_gram_filter = 3
|
n_gram_filter = 3
|
||||||
for i in range(len(words)):
|
for i in range(len(words)):
|
||||||
|
|||||||
@@ -88,11 +88,11 @@ def create_talk_diff_scatter_viz(timestamp, real_time=False):
|
|||||||
# create df for processing
|
# create df for processing
|
||||||
df = pd.DataFrame.from_dict(res["chunks"])
|
df = pd.DataFrame.from_dict(res["chunks"])
|
||||||
|
|
||||||
covered_items = { }
|
covered_items = {}
|
||||||
# ts: timestamp
|
# ts: timestamp
|
||||||
# Map each timestamped chunk with top1 and top2 matched agenda
|
# Map each timestamped chunk with top1 and top2 matched agenda
|
||||||
ts_to_topic_mapping_top_1 = { }
|
ts_to_topic_mapping_top_1 = {}
|
||||||
ts_to_topic_mapping_top_2 = { }
|
ts_to_topic_mapping_top_2 = {}
|
||||||
|
|
||||||
# Also create a mapping of the different timestamps in which each topic was covered
|
# Also create a mapping of the different timestamps in which each topic was covered
|
||||||
topic_to_ts_mapping_top_1 = collections.defaultdict(list)
|
topic_to_ts_mapping_top_1 = collections.defaultdict(list)
|
||||||
|
|||||||
@@ -57,7 +57,7 @@ def main():
|
|||||||
global proceed
|
global proceed
|
||||||
proceed = False
|
proceed = False
|
||||||
|
|
||||||
transcript_with_timestamp = { "text": "", "chunks": [] }
|
transcript_with_timestamp = {"text": "", "chunks": []}
|
||||||
last_transcribed_time = 0.0
|
last_transcribed_time = 0.0
|
||||||
|
|
||||||
listener = keyboard.Listener(on_press=on_press)
|
listener = keyboard.Listener(on_press=on_press)
|
||||||
@@ -87,10 +87,10 @@ def main():
|
|||||||
if end is None:
|
if end is None:
|
||||||
end = start + 15.0
|
end = start + 15.0
|
||||||
duration = end - start
|
duration = end - start
|
||||||
item = { 'timestamp': (last_transcribed_time, last_transcribed_time + duration),
|
item = {'timestamp': (last_transcribed_time, last_transcribed_time + duration),
|
||||||
'text': whisper_result['text'],
|
'text': whisper_result['text'],
|
||||||
'stats': (str(end_time - start_time), str(duration))
|
'stats': (str(end_time - start_time), str(duration))
|
||||||
}
|
}
|
||||||
last_transcribed_time = last_transcribed_time + duration
|
last_transcribed_time = last_transcribed_time + duration
|
||||||
transcript_with_timestamp["chunks"].append(item)
|
transcript_with_timestamp["chunks"].append(item)
|
||||||
transcription += whisper_result['text']
|
transcription += whisper_result['text']
|
||||||
|
|||||||
Reference in New Issue
Block a user