|
|
|
|
|
import psutil |
|
import base64 |
|
import time |
|
import sys |
|
|
|
import streamlit as st |
|
from audio_processing.A2T import A2T |
|
from audio_processing.T2A import T2A |
|
from llm.llm import LLM_chain |
|
from streamlit_mic_recorder import mic_recorder |
|
|
|
llmchain = LLM_chain() |
|
|
|
def autoplay(audio, wait: bool=True): |
|
if audio: |
|
audio_bytes = audio["bytes"] |
|
sample_rate = audio["sample_rate"] |
|
sample_width = audio["sample_width"] |
|
total_samples = len(audio_bytes) / sample_width |
|
duration = total_samples / sample_rate |
|
audio_base64 = base64.b64encode(audio_bytes).decode('utf-8') |
|
if wait: |
|
time.sleep(duration) |
|
|
|
def main(): |
|
mic = mic_recorder(start_prompt="Record",stop_prompt="Stop", just_once=True) |
|
|
|
if mic is not None: |
|
a2t = A2T(mic["bytes"]) |
|
text = a2t.predict() |
|
response = llmchain(entity=text, id=0) |
|
print(sys.getsizeof(a2t), " ", sys.getsizeof(text), " ", sys.getsizeof(response), " ", sys.getsizeof(llmchain)) |
|
t2a = T2A(response).get_audio() |
|
autoplay(t2a) |
|
del response |
|
|
|
|
|
if __name__ == "__main__": |
|
print('RAM memory % used:', psutil.virtual_memory()[2]) |
|
main() |